Compare commits

...

964 Commits

Author SHA1 Message Date
SabreCat
864293b62b 4.229.1 2022-05-02 14:26:47 -05:00
SabreCat
bada094139 chore(login): remove FB login option on web client 2022-05-02 14:26:42 -05:00
SabreCat
1d68a95b64 4.229.0 2022-04-29 14:24:24 -05:00
SabreCat
88999a0751 Merge branch 'develop' into release 2022-04-29 14:22:07 -05:00
SabreCat
2666c93e5f chore(css): compile images 2022-04-29 14:21:53 -05:00
CuriousMagpie
5faa49d032 2022-05 Subscriber Items 2022-04-28 15:54:09 -04:00
dependabot[bot]
55c800cb4b build(deps): bump stripe from 8.217.0 to 8.219.0 (#13949)
Bumps [stripe](https://github.com/stripe/stripe-node) from 8.217.0 to 8.219.0.
- [Release notes](https://github.com/stripe/stripe-node/releases)
- [Changelog](https://github.com/stripe/stripe-node/blob/master/CHANGELOG.md)
- [Commits](https://github.com/stripe/stripe-node/compare/v8.217.0...v8.219.0)

---
updated-dependencies:
- dependency-name: stripe
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-25 12:53:12 -04:00
Natalie L
deee147928 Corrected spelling of Wotchimon and description of rage effect. (#13943) 2022-04-21 16:39:54 -05:00
SabreCat
a9cd36c109 Merge branch 'background-toggle' into develop 2022-04-21 16:24:04 -05:00
SabreCat
4c1c00b0a3 fix(bgs): revert wording change and tokenize 2022-04-21 16:22:36 -05:00
SabreCat
245e135be8 4.228.4 2022-04-21 14:09:48 -05:00
Weblate
978c707e17 Translated using Weblate (German)
Currently translated at 99.7% (687 of 689 strings)

Translated using Weblate (German)

Currently translated at 99.5% (686 of 689 strings)

Translated using Weblate (German)

Currently translated at 100.0% (220 of 220 strings)

Translated using Weblate (German)

Currently translated at 99.9% (2581 of 2583 strings)

Translated using Weblate (German)

Currently translated at 99.2% (684 of 689 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (134 of 134 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (134 of 134 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (197 of 197 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (220 of 220 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 98.1% (210 of 214 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 98.1% (210 of 214 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (180 of 180 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (755 of 755 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (689 of 689 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (689 of 689 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (212 of 212 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 96.5% (2494 of 2583 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (180 of 180 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (373 of 373 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 91.5% (194 of 212 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 95.0% (2456 of 2583 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (134 of 134 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (197 of 197 strings)

Translated using Weblate (Spanish (Latin America))

Currently translated at 96.2% (663 of 689 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 99.7% (364 of 365 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 94.8% (2450 of 2583 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (56 of 56 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (755 of 755 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (755 of 755 strings)

Translated using Weblate (Japanese)

Currently translated at 97.6% (207 of 212 strings)

Translated using Weblate (Spanish (Latin America))

Currently translated at 95.2% (656 of 689 strings)

Translated using Weblate (Spanish (Latin America))

Currently translated at 93.7% (2422 of 2583 strings)

Translated using Weblate (Spanish (Latin America))

Currently translated at 100.0% (220 of 220 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (220 of 220 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (220 of 220 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (755 of 755 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (186 of 186 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (212 of 212 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (212 of 212 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (2579 of 2579 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (755 of 755 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (2579 of 2579 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 97.7% (215 of 220 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 98.0% (2533 of 2583 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (2579 of 2579 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (755 of 755 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (131 of 131 strings)

Translated using Weblate (Filipino)

Currently translated at 90.0% (191 of 212 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (56 of 56 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (129 of 129 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (61 of 61 strings)

Translated using Weblate (Japanese)

Currently translated at 99.5% (219 of 220 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (365 of 365 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 98.0% (2533 of 2583 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (2579 of 2579 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (214 of 214 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (180 of 180 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (56 of 56 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (755 of 755 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (186 of 186 strings)

Translated using Weblate (Japanese)

Currently translated at 97.6% (207 of 212 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 99.7% (372 of 373 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (2583 of 2583 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (2583 of 2583 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (755 of 755 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (373 of 373 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (373 of 373 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 93.8% (199 of 212 strings)

Translated using Weblate (Spanish (Latin America))

Currently translated at 96.8% (212 of 219 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (219 of 219 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (755 of 755 strings)

Translated using Weblate (Japanese)

Currently translated at 99.0% (748 of 755 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 99.6% (752 of 755 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 99.6% (752 of 755 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (373 of 373 strings)

Co-authored-by: Chap <chalda82+nogravatar@gmail.com>
Co-authored-by: Céu <marcel.ufscar@gmail.com>
Co-authored-by: Heitor Menezes Gomes <heitorgmenezes@gmail.com>
Co-authored-by: Hexe des Windes (she/her) <krausanna1@gmail.com>
Co-authored-by: Ike Osenberg <ike.osenberg@gmail.com>
Co-authored-by: Jerry Chen <minecjraft@qq.com>
Co-authored-by: Sandra Marcial <sandramarcial80@gmail.com>
Co-authored-by: Sciuridae <sweetvshoney@163.com>
Co-authored-by: Vince Vilan <vincemorel.vilan.889@my.csun.edu>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: blacksheep47 <1760906326@qq.com>
Co-authored-by: mattya 226 <worldworld1114@gmail.com>
Co-authored-by: そら <comi4work@gmail.com>
Co-authored-by: 普通学生何某人 <hewei5002@hotmail.com>
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/de/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/es_419/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/character/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/content/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/content/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/content/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/faq/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/faq/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/front/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/front/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/front/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/de/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/es_419/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/it/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/groups/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/groups/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/limited/de/
Translate-URL: https://translate.habitica.com/projects/habitica/limited/es/
Translate-URL: https://translate.habitica.com/projects/habitica/limited/es_419/
Translate-URL: https://translate.habitica.com/projects/habitica/limited/it/
Translate-URL: https://translate.habitica.com/projects/habitica/limited/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/limited/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/messages/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/npc/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/it/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/settings/fil/
Translate-URL: https://translate.habitica.com/projects/habitica/settings/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/settings/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/settings/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/spells/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/zh_Hans/
Translation: Habitica/Achievements
Translation: Habitica/Backgrounds
Translation: Habitica/Character
Translation: Habitica/Content
Translation: Habitica/Faq
Translation: Habitica/Front
Translation: Habitica/Gear
Translation: Habitica/Generic
Translation: Habitica/Groups
Translation: Habitica/Limited
Translation: Habitica/Messages
Translation: Habitica/Npc
Translation: Habitica/Questscontent
Translation: Habitica/Settings
Translation: Habitica/Spells
Translation: Habitica/Subscriber
Translation: Habitica/Tasks
2022-04-21 21:08:52 +02:00
SabreCat
623d38f281 feat(nav): clicking "Group" goes to first group 2022-04-19 15:38:15 -05:00
dependabot[bot]
c88e458a97 build(deps-dev): bump sinon from 13.0.1 to 13.0.2 (#13940)
Bumps [sinon](https://github.com/sinonjs/sinon) from 13.0.1 to 13.0.2.
- [Release notes](https://github.com/sinonjs/sinon/releases)
- [Changelog](https://github.com/sinonjs/sinon/blob/main/docs/changelog.md)
- [Commits](https://github.com/sinonjs/sinon/compare/v13.0.1...v13.0.2)

---
updated-dependencies:
- dependency-name: sinon
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-18 16:27:57 -04:00
dependabot[bot]
9957db0669 build(deps): bump nconf from 0.11.4 to 0.12.0 (#13939)
Bumps [nconf](https://github.com/flatiron/nconf) from 0.11.4 to 0.12.0.
- [Release notes](https://github.com/flatiron/nconf/releases)
- [Changelog](https://github.com/indexzero/nconf/blob/master/CHANGELOG.md)
- [Commits](https://github.com/flatiron/nconf/compare/v0.11.4...v0.12.0)

---
updated-dependencies:
- dependency-name: nconf
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-18 16:21:35 -04:00
dependabot[bot]
2e21f58ae5 build(deps): bump moment from 2.29.2 to 2.29.3 (#13936)
Bumps [moment](https://github.com/moment/moment) from 2.29.2 to 2.29.3.
- [Release notes](https://github.com/moment/moment/releases)
- [Changelog](https://github.com/moment/moment/blob/2.29.3/CHANGELOG.md)
- [Commits](https://github.com/moment/moment/compare/2.29.2...2.29.3)

---
updated-dependencies:
- dependency-name: moment
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-18 16:20:39 -04:00
dependabot[bot]
04be6d0744 build(deps): bump stripe from 8.216.0 to 8.217.0 (#13935)
Bumps [stripe](https://github.com/stripe/stripe-node) from 8.216.0 to 8.217.0.
- [Release notes](https://github.com/stripe/stripe-node/releases)
- [Changelog](https://github.com/stripe/stripe-node/blob/master/CHANGELOG.md)
- [Commits](https://github.com/stripe/stripe-node/compare/v8.216.0...v8.217.0)

---
updated-dependencies:
- dependency-name: stripe
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-18 16:19:48 -04:00
dependabot[bot]
8c43164e60 build(deps): bump apidoc from 0.51.0 to 0.51.1 (#13934)
Bumps [apidoc](https://github.com/apidoc/apidoc) from 0.51.0 to 0.51.1.
- [Release notes](https://github.com/apidoc/apidoc/releases)
- [Changelog](https://github.com/apidoc/apidoc/blob/master/CHANGELOG.md)
- [Commits](https://github.com/apidoc/apidoc/compare/0.51.0...0.51.1)

---
updated-dependencies:
- dependency-name: apidoc
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-18 16:19:28 -04:00
SabreCat
3fa940bdfd Merge remote-tracking branch 'CuriousMagpie/quest-refactors' into develop 2022-04-15 16:35:27 -05:00
Natalie L
3492549081 changed update to updateOne (#13932) 2022-04-15 16:20:37 -05:00
SabreCat
b7a6dd9706 4.228.3 2022-04-15 14:24:08 -05:00
SabreCat
78bdb52f8f Merge branch 'develop' into release 2022-04-15 14:24:02 -05:00
SabreCat
d80aaf3ab0 Merge branch 'develop' into release 2022-04-15 14:23:46 -05:00
negue
31cac936c8 Sprites: re-add previous offsets to sprites (#13933)
* Sprites: re-add previous offsets to sprites

* fix lint
2022-04-15 14:14:48 -05:00
Weblate
3b54064a1f Merge branch 'origin/develop' into Weblate. 2022-04-14 22:34:46 +02:00
Weblate
8b46df757f Translated using Weblate (Spanish (Latin America))
Currently translated at 94.1% (649 of 689 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (689 of 689 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (689 of 689 strings)

Translated using Weblate (Tagalog)

Currently translated at 1.1% (2 of 179 strings)

Translated using Weblate (Malayalam)

Currently translated at 60.9% (420 of 689 strings)

Translated using Weblate (Malayalam)

Currently translated at 38.1% (50 of 131 strings)

Translated using Weblate (Tagalog)

Currently translated at 87.5% (7 of 8 strings)

Translated using Weblate (Tagalog)

Currently translated at 76.4% (162 of 212 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 98.0% (2533 of 2583 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 98.0% (2533 of 2583 strings)

Translated using Weblate (Tagalog)

Currently translated at 75.9% (161 of 212 strings)

Translated using Weblate (Spanish (Latin America))

Currently translated at 100.0% (373 of 373 strings)

Translated using Weblate (Spanish (Latin America))

Currently translated at 93.0% (641 of 689 strings)

Translated using Weblate (French)

Currently translated at 100.0% (373 of 373 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (373 of 373 strings)

Translated using Weblate (Spanish)

Currently translated at 99.7% (687 of 689 strings)

Translated using Weblate (Spanish)

Currently translated at 99.7% (687 of 689 strings)

Translated using Weblate (Tagalog)

Currently translated at 75.9% (161 of 212 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 98.9% (747 of 755 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (755 of 755 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (373 of 373 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (689 of 689 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 98.8% (746 of 755 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 99.6% (752 of 755 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 87.2% (185 of 212 strings)

Co-authored-by: Chap <chalda82+nogravatar@gmail.com>
Co-authored-by: Ike Osenberg <ike.osenberg@gmail.com>
Co-authored-by: JoanZeppeli <x17501668978@163.com>
Co-authored-by: Linda Li <wli62442@gmail.com>
Co-authored-by: Salman Mujeeb <kingleopard22@gmail.com>
Co-authored-by: Sara López <sarayupy@gmail.com>
Co-authored-by: Sealeo Wu <anitayuanli@gmail.com>
Co-authored-by: Thiago Monteiro <thiagoasmonteiro@gmail.com>
Co-authored-by: Vince Vilan <vincemorel.vilan.889@my.csun.edu>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: mattya 226 <worldworld1114@gmail.com>
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/ml/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/es/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/es_419/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ml/
Translate-URL: https://translate.habitica.com/projects/habitica/content/es/
Translate-URL: https://translate.habitica.com/projects/habitica/content/es_419/
Translate-URL: https://translate.habitica.com/projects/habitica/content/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/content/it/
Translate-URL: https://translate.habitica.com/projects/habitica/front/tl/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/inventory/tl/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/it/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/settings/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/settings/tl/
Translation: Habitica/Achievements
Translation: Habitica/Backgrounds
Translation: Habitica/Content
Translation: Habitica/Front
Translation: Habitica/Gear
Translation: Habitica/Inventory
Translation: Habitica/Questscontent
Translation: Habitica/Settings
2022-04-14 22:30:28 +02:00
SabreCat
4a9040aefb 4.228.2 2022-04-14 15:28:51 -05:00
SabreCat
723249e60d Merge branch 'develop' into release 2022-04-14 15:28:47 -05:00
SabreCat
8b17ebd1f1 fix(settings): don't show email change without email, refresh page 2022-04-14 14:51:11 -05:00
SabreCat
1c4c7b9f1e fix(settings): correct show/hide for email and pass scenarios 2022-04-14 14:21:39 -05:00
SabreCat
58887d9a3c chore(build): ignore non-deployable folders 2022-04-14 13:35:30 -05:00
Phillip Thelen
664f960a8b Pull in missing changes from FB removal PR (#13931)
* fix(auth): hide post hoc Facebook reg

* Pull in missing changes

* fix(lint): whitespace

* fix(strings): missing error message

* fix(tests): update to match functionality

Co-authored-by: SabreCat <sabe@habitica.com>
2022-04-14 12:58:37 -05:00
will yang
dfe53e8b68 Hide Locked Background Year Tab 2022-04-13 17:14:14 -04:00
SabreCat
b608f0ad9c fix(potion): correct year 2022-04-12 16:01:27 -05:00
SabreCat
d4e05835d7 4.228.1 2022-04-12 15:55:02 -05:00
SabreCat
9343c33f37 fix(string): missing April date insert 2022-04-12 15:54:56 -05:00
Weblate
afd1248ea3 Merge branch 'origin/develop' into Weblate. 2022-04-12 21:43:47 +02:00
Weblate
0708829b2a Translated using Weblate (Spanish (Latin America))
Currently translated at 100.0% (214 of 214 strings)

Translated using Weblate (French)

Currently translated at 100.0% (212 of 212 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (372 of 372 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (131 of 131 strings)

Translated using Weblate (Spanish (Latin America))

Currently translated at 100.0% (372 of 372 strings)

Translated using Weblate (Spanish (Latin America))

Currently translated at 93.4% (2415 of 2583 strings)

Translated using Weblate (Spanish (Latin America))

Currently translated at 100.0% (98 of 98 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (186 of 186 strings)

Translated using Weblate (Japanese)

Currently translated at 97.6% (207 of 212 strings)

Translated using Weblate (Spanish (Latin America))

Currently translated at 92.8% (640 of 689 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 94.4% (2439 of 2583 strings)

Translated using Weblate (Portuguese)

Currently translated at 84.7% (111 of 131 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 97.2% (213 of 219 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 94.0% (2429 of 2583 strings)

Translated using Weblate (Malayalam)

Currently translated at 14.5% (19 of 131 strings)

Translated using Weblate (Arabic)

Currently translated at 92.3% (121 of 131 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 93.9% (2428 of 2583 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 93.9% (2428 of 2583 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 93.9% (2428 of 2583 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 99.7% (744 of 746 strings)

Translated using Weblate (Portuguese)

Currently translated at 99.7% (371 of 372 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 97.6% (673 of 689 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 97.6% (673 of 689 strings)

Translated using Weblate (Japanese)

Currently translated at 96.6% (205 of 212 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 97.6% (673 of 689 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (689 of 689 strings)

Translated using Weblate (Japanese)

Currently translated at 99.8% (688 of 689 strings)

Translated using Weblate (German)

Currently translated at 100.0% (212 of 212 strings)

Translated using Weblate (Spanish (Latin America))

Currently translated at 92.1% (635 of 689 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (2583 of 2583 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (2583 of 2583 strings)

Translated using Weblate (Italian)

Currently translated at 98.7% (2552 of 2583 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (179 of 179 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (689 of 689 strings)

Translated using Weblate (Italian)

Currently translated at 98.2% (677 of 689 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (219 of 219 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (746 of 746 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (210 of 210 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (197 of 197 strings)

Translated using Weblate (Italian)

Currently translated at 99.5% (209 of 210 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (2579 of 2579 strings)

Translated using Weblate (Japanese)

Currently translated at 99.8% (2574 of 2579 strings)

Translated using Weblate (Spanish (Latin America))

Currently translated at 100.0% (131 of 131 strings)

Translated using Weblate (Spanish (Latin America))

Currently translated at 88.0% (185 of 210 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 97.6% (673 of 689 strings)

Translated using Weblate (Spanish (Latin America))

Currently translated at 100.0% (8 of 8 strings)

Translated using Weblate (Spanish (Latin America))

Currently translated at 93.3% (2412 of 2583 strings)

Translated using Weblate (Spanish (Latin America))

Currently translated at 99.2% (130 of 131 strings)

Translated using Weblate (Spanish)

Currently translated at 98.9% (2557 of 2583 strings)

Translated using Weblate (Spanish (Latin America))

Currently translated at 87.5% (7 of 8 strings)

Translated using Weblate (Spanish (Latin America))

Currently translated at 96.4% (54 of 56 strings)

Translated using Weblate (Spanish (Latin America))

Currently translated at 83.9% (47 of 56 strings)

Translated using Weblate (Spanish)

Currently translated at 99.5% (209 of 210 strings)

Translated using Weblate (Hindi)

Currently translated at 50.4% (56 of 111 strings)

Translated using Weblate (Arabic)

Currently translated at 68.4% (76 of 111 strings)

Translated using Weblate (Arabic)

Currently translated at 87.5% (113 of 129 strings)

Translated using Weblate (Arabic)

Currently translated at 59.5% (410 of 689 strings)

Translated using Weblate (Spanish)

Currently translated at 98.9% (2556 of 2583 strings)

Translated using Weblate (Italian)

Currently translated at 96.1% (199 of 207 strings)

Translated using Weblate (Spanish)

Currently translated at 98.7% (2550 of 2583 strings)

Translated using Weblate (Spanish)

Currently translated at 99.4% (685 of 689 strings)

Translated using Weblate (Spanish)

Currently translated at 99.2% (684 of 689 strings)

Translated using Weblate (Spanish)

Currently translated at 99.2% (684 of 689 strings)

Translated using Weblate (Japanese)

Currently translated at 99.7% (2573 of 2579 strings)

Translated using Weblate (Malayalam)

Currently translated at 19.8% (22 of 111 strings)

Translated using Weblate (Malayalam)

Currently translated at 100.0% (8 of 8 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (197 of 197 strings)

Translated using Weblate (German)

Currently translated at 100.0% (197 of 197 strings)

Translated using Weblate (Spanish)

Currently translated at 98.6% (2548 of 2583 strings)

Translated using Weblate (German)

Currently translated at 99.8% (2579 of 2583 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (179 of 179 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (746 of 746 strings)

Translated using Weblate (Spanish)

Currently translated at 99.1% (683 of 689 strings)

Translated using Weblate (German)

Currently translated at 100.0% (131 of 131 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (207 of 207 strings)

Translated using Weblate (German)

Currently translated at 100.0% (197 of 197 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 97.5% (672 of 689 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (131 of 131 strings)

Translated using Weblate (German)

Currently translated at 99.7% (2577 of 2583 strings)

Translated using Weblate (German)

Currently translated at 100.0% (179 of 179 strings)

Translated using Weblate (German)

Currently translated at 100.0% (127 of 127 strings)

Translated using Weblate (German)

Currently translated at 100.0% (207 of 207 strings)

Co-authored-by: Benoit Hetru <me+hbtc@gahanka.net>
Co-authored-by: Chap <chalda82+nogravatar@gmail.com>
Co-authored-by: Céu <marcel.ufscar@gmail.com>
Co-authored-by: Heitor Menezes Gomes <heitorgmenezes@gmail.com>
Co-authored-by: Hexe des Windes (she/her) <krausanna1@gmail.com>
Co-authored-by: Ike Osenberg <ike.osenberg@gmail.com>
Co-authored-by: Mara Dolichotis <marascherzer@gmail.com>
Co-authored-by: PenariaToji <tojipeh@gmail.com>
Co-authored-by: Raithe <RaitheOfDureya@gmail.com>
Co-authored-by: Salman Mujeeb <kingleopard22@gmail.com>
Co-authored-by: Sandra Marcial <sandramarcial80@gmail.com>
Co-authored-by: Sara López <sarayupy@gmail.com>
Co-authored-by: Vinicius Rodrigues <suburbanizar@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: citrusella <citrusellaflugpucker@yahoo.com>
Co-authored-by: mattya 226 <worldworld1114@gmail.com>
Co-authored-by: sbrcrbac <fh0f0c9s9@relay.firefox.com>
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/ar/
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/de/
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/es/
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/es_419/
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/ml/
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/pt/
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ar/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/es/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/es_419/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/it/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/challenge/es_419/
Translate-URL: https://translate.habitica.com/projects/habitica/character/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/de/
Translate-URL: https://translate.habitica.com/projects/habitica/content/es_419/
Translate-URL: https://translate.habitica.com/projects/habitica/content/pt/
Translate-URL: https://translate.habitica.com/projects/habitica/content/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/faq/es_419/
Translate-URL: https://translate.habitica.com/projects/habitica/front/de/
Translate-URL: https://translate.habitica.com/projects/habitica/front/es/
Translate-URL: https://translate.habitica.com/projects/habitica/front/it/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/de/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/es/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/es_419/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/it/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/es_419/
Translate-URL: https://translate.habitica.com/projects/habitica/inventory/ml/
Translate-URL: https://translate.habitica.com/projects/habitica/limited/it/
Translate-URL: https://translate.habitica.com/projects/habitica/limited/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/npc/ar/
Translate-URL: https://translate.habitica.com/projects/habitica/overview/es_419/
Translate-URL: https://translate.habitica.com/projects/habitica/pets/ar/
Translate-URL: https://translate.habitica.com/projects/habitica/pets/hi/
Translate-URL: https://translate.habitica.com/projects/habitica/pets/ml/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/es/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/it/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/settings/de/
Translate-URL: https://translate.habitica.com/projects/habitica/settings/es/
Translate-URL: https://translate.habitica.com/projects/habitica/settings/es_419/
Translate-URL: https://translate.habitica.com/projects/habitica/settings/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/settings/it/
Translate-URL: https://translate.habitica.com/projects/habitica/settings/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/de/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/es/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/it/
Translation: Habitica/Achievements
Translation: Habitica/Backgrounds
Translation: Habitica/Challenge
Translation: Habitica/Character
Translation: Habitica/Communityguidelines
Translation: Habitica/Content
Translation: Habitica/Faq
Translation: Habitica/Front
Translation: Habitica/Gear
Translation: Habitica/Generic
Translation: Habitica/Inventory
Translation: Habitica/Limited
Translation: Habitica/Npc
Translation: Habitica/Overview
Translation: Habitica/Pets
Translation: Habitica/Questscontent
Translation: Habitica/Settings
Translation: Habitica/Subscriber
2022-04-12 21:43:37 +02:00
SabreCat
afa9a65933 Merge branch 'release' into develop 2022-04-12 14:41:03 -05:00
SabreCat
e93e91e57d 4.228.0 2022-04-12 14:39:03 -05:00
SabreCat
53569ff983 Merge branch 'sabrecat/wacky-fix' into release 2022-04-12 14:38:41 -05:00
SabreCat
d0c736a7a6 fix(gala): correct dates on seeds and customizations 2022-04-12 14:36:59 -05:00
CuriousMagpie
c8ee51b741 move quest constants to their own folder 2022-04-11 17:10:01 -04:00
CuriousMagpie
2bf63847c9 Merge branch 'quest-refactors' of https://github.com/CuriousMagpie/habitica into quest-refactors 2022-04-11 13:44:15 -04:00
CuriousMagpie
1d1b66d25a Merge remote-tracking branch 'upstream/develop' into quest-refactors 2022-04-11 13:44:03 -04:00
dependabot[bot]
9ce4482040 build(deps): bump winston from 3.6.0 to 3.7.2 (#13927)
Bumps [winston](https://github.com/winstonjs/winston) from 3.6.0 to 3.7.2.
- [Release notes](https://github.com/winstonjs/winston/releases)
- [Changelog](https://github.com/winstonjs/winston/blob/master/CHANGELOG.md)
- [Commits](https://github.com/winstonjs/winston/commits)

---
updated-dependencies:
- dependency-name: winston
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-11 12:38:23 -04:00
dependabot[bot]
28660c0bea build(deps): bump @babel/core from 7.17.8 to 7.17.9 (#13926)
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.17.8 to 7.17.9.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.17.9/packages/babel-core)

---
updated-dependencies:
- dependency-name: "@babel/core"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-11 12:37:12 -04:00
dependabot[bot]
bc15d530e5 build(deps): bump stripe from 8.215.0 to 8.216.0 (#13925)
Bumps [stripe](https://github.com/stripe/stripe-node) from 8.215.0 to 8.216.0.
- [Release notes](https://github.com/stripe/stripe-node/releases)
- [Changelog](https://github.com/stripe/stripe-node/blob/master/CHANGELOG.md)
- [Commits](https://github.com/stripe/stripe-node/compare/v8.215.0...v8.216.0)

---
updated-dependencies:
- dependency-name: stripe
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-11 12:35:01 -04:00
dependabot[bot]
34b7acb246 build(deps): bump nconf from 0.11.3 to 0.11.4 (#13924)
Bumps [nconf](https://github.com/flatiron/nconf) from 0.11.3 to 0.11.4.
- [Release notes](https://github.com/flatiron/nconf/releases)
- [Changelog](https://github.com/indexzero/nconf/blob/master/CHANGELOG.md)
- [Commits](https://github.com/flatiron/nconf/compare/v0.11.3...v0.11.4)

---
updated-dependencies:
- dependency-name: nconf
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-11 12:16:00 -04:00
SabreCat
4ef369c6f5 chore(submodule): update habitica-images 2022-04-08 15:45:32 -05:00
SabreCat
405721602f fix(quests): correct events import, prod bug with seasonal availability 2022-04-07 15:51:14 -05:00
SabreCat
19cf89baec fix(pr): remove unrelated change 2022-04-07 15:29:52 -05:00
SabreCat
8a4e9888dd Merge branch 'develop' into quest-refactors 2022-04-07 15:27:19 -05:00
SabreCat
e17b86a1f6 fix(bug-report): relevant change from #13922 2022-04-07 14:48:26 -05:00
negue
2181ab9713 Redesign: "Day Start Adjustment" (#13910)
* Merge Custom Day Start and Timezone into one Component

* ui changes

* change translation text

* typo
2022-04-07 14:37:07 -05:00
negue
8cb8411cc6 Show "Next Hourglass" Month (#13860)
* Show "Next Hourglass" Month

* fix lint

* lint,

* lint

* lint..

* linting bad

* ui fixes

* remove additional margin

* show next hourglass date to debug further

* WIP tests - maybe broken logic

* flex:1 doesn't work - so stats columns now at 33% width

* fix(cron): lint and short circuit

* refactor logic

* update test dates using timezone

* also check for the timezone date

* fix timezone for tests

* fixing the test dates?

* fixing the test dates?

* change nextHourglass logic + update gem cap label / value

* fix lint

* dont add gemsBought to it

* remove tooltip

Co-authored-by: SabreCat <sabe@habitica.com>
2022-04-06 16:30:13 -05:00
SabreCat
da3e6f96ba fix(sprites): move more heavy assets to s3 2022-04-06 14:54:19 -05:00
SabreCat
91511746bc fix(quest): update market criterion 2022-04-06 13:36:43 -05:00
SabreCat
aaba400d36 fix(quest): remove static PNG 2022-04-06 12:42:51 -05:00
CuriousMagpie
4e107d233b fix(quest): update html in questsContent.json 2022-04-06 13:26:15 -04:00
CuriousMagpie
c086d7b91d update sprites 2022-04-06 12:15:39 -05:00
CuriousMagpie
5b93199f35 fix(quest): moving gif into right folder /facepalm 2022-04-06 12:15:05 -05:00
Phillip Thelen
3b82bb9494 Update sprites.css 2022-04-06 12:14:52 -05:00
CuriousMagpie
1c347fc4b8 fix(quest): virtualPet.gif to virtualpet.gig 2022-04-06 12:14:42 -05:00
CuriousMagpie
2f16fe11e1 fix(quest): virtualPet => virtualpet 2022-04-06 12:14:31 -05:00
dependabot[bot]
05cf0cb50d build(deps): bump stripe from 8.212.0 to 8.215.0 (#13919)
Bumps [stripe](https://github.com/stripe/stripe-node) from 8.212.0 to 8.215.0.
- [Release notes](https://github.com/stripe/stripe-node/releases)
- [Changelog](https://github.com/stripe/stripe-node/blob/master/CHANGELOG.md)
- [Commits](https://github.com/stripe/stripe-node/compare/v8.212.0...v8.215.0)

---
updated-dependencies:
- dependency-name: stripe
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-06 11:27:13 -04:00
SabreCat
fb017e1f08 fix(pets): various quest and animation corrections 2022-04-05 16:03:46 -05:00
SabreCat
1ca528eb95 Merge branch 'develop' into 2022-04-wacky-potion-quest 2022-04-05 15:08:18 -05:00
SabreCat
0ff2a8c264 4.227.0 2022-04-05 13:55:47 -05:00
Weblate
eed6cfaf6d Translated using Weblate (Japanese)
Currently translated at 99.5% (2567 of 2579 strings)

Translated using Weblate (Japanese)

Currently translated at 99.4% (2566 of 2579 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (131 of 131 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 98.0% (2528 of 2579 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 97.8% (2524 of 2579 strings)

Translated using Weblate (Hebrew)

Currently translated at 100.0% (134 of 134 strings)

Translated using Weblate (Hebrew)

Currently translated at 58.9% (33 of 56 strings)

Translated using Weblate (Hebrew)

Currently translated at 84.6% (11 of 13 strings)

Translated using Weblate (Hebrew)

Currently translated at 46.8% (44 of 94 strings)

Translated using Weblate (Hebrew)

Currently translated at 57.6% (64 of 111 strings)

Translated using Weblate (Hebrew)

Currently translated at 73.7% (45 of 61 strings)

Translated using Weblate (Hebrew)

Currently translated at 18.1% (4 of 22 strings)

Translated using Weblate (Japanese)

Currently translated at 99.3% (2563 of 2579 strings)

Translated using Weblate (Hebrew)

Currently translated at 49.0% (1264 of 2579 strings)

Translated using Weblate (Hebrew)

Currently translated at 70.0% (150 of 214 strings)

Translated using Weblate (Hebrew)

Currently translated at 46.4% (59 of 127 strings)

Translated using Weblate (Hebrew)

Currently translated at 66.9% (249 of 372 strings)

Translated using Weblate (Hebrew)

Currently translated at 71.5% (133 of 186 strings)

Translated using Weblate (Hebrew)

Currently translated at 98.9% (97 of 98 strings)

Translated using Weblate (Hebrew)

Currently translated at 45.0% (307 of 682 strings)

Translated using Weblate (Hebrew)

Currently translated at 67.9% (89 of 131 strings)

Translated using Weblate (Hebrew)

Currently translated at 72.9% (151 of 207 strings)

Translated using Weblate (Hebrew)

Currently translated at 98.5% (132 of 134 strings)

Translated using Weblate (Hebrew)

Currently translated at 91.2% (333 of 365 strings)

Translated using Weblate (Hebrew)

Currently translated at 100.0% (98 of 98 strings)

Translated using Weblate (Hebrew)

Currently translated at 97.7% (131 of 134 strings)

Translated using Weblate (Hebrew)

Currently translated at 61.9% (122 of 197 strings)

Translated using Weblate (Hebrew)

Currently translated at 98.2% (55 of 56 strings)

Translated using Weblate (Hebrew)

Currently translated at 68.0% (64 of 94 strings)

Translated using Weblate (Hebrew)

Currently translated at 91.8% (102 of 111 strings)

Translated using Weblate (Hebrew)

Currently translated at 100.0% (22 of 22 strings)

Translated using Weblate (Hebrew)

Currently translated at 100.0% (8 of 8 strings)

Translated using Weblate (Hebrew)

Currently translated at 93.2% (167 of 179 strings)

Translated using Weblate (Hebrew)

Currently translated at 81.4% (44 of 54 strings)

Translated using Weblate (Hebrew)

Currently translated at 76.2% (569 of 746 strings)

Translated using Weblate (Hebrew)

Currently translated at 74.8% (95 of 127 strings)

Translated using Weblate (Hebrew)

Currently translated at 83.8% (312 of 372 strings)

Translated using Weblate (Hebrew)

Currently translated at 96.7% (180 of 186 strings)

Translated using Weblate (Hebrew)

Currently translated at 100.0% (98 of 98 strings)

Translated using Weblate (Hebrew)

Currently translated at 69.4% (91 of 131 strings)

Translated using Weblate (Hebrew)

Currently translated at 88.4% (183 of 207 strings)

Translated using Weblate (Japanese)

Currently translated at 99.1% (2557 of 2579 strings)

Translated using Weblate (Japanese)

Currently translated at 99.1% (2556 of 2579 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (179 of 179 strings)

Translated using Weblate (Japanese)

Currently translated at 99.4% (178 of 179 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (131 of 131 strings)

Translated using Weblate (French)

Currently translated at 100.0% (179 of 179 strings)

Translated using Weblate (French)

Currently translated at 100.0% (131 of 131 strings)

Translated using Weblate (French)

Currently translated at 100.0% (207 of 207 strings)

Translated using Weblate (Japanese)

Currently translated at 98.9% (2551 of 2579 strings)

Translated using Weblate (French)

Currently translated at 100.0% (2579 of 2579 strings)

Co-authored-by: Benoit Hetru <me+hbtc@gahanka.net>
Co-authored-by: JoanZeppeli <x17501668978@163.com>
Co-authored-by: Omer I.S <omeritzicschwartz@gmail.com>
Co-authored-by: Sandra Marcial <sandramarcial80@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: mattya 226 <worldworld1114@gmail.com>
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/he/
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/it/
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/he/
Translate-URL: https://translate.habitica.com/projects/habitica/challenge/he/
Translate-URL: https://translate.habitica.com/projects/habitica/character/he/
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/he/
Translate-URL: https://translate.habitica.com/projects/habitica/content/he/
Translate-URL: https://translate.habitica.com/projects/habitica/defaulttasks/he/
Translate-URL: https://translate.habitica.com/projects/habitica/front/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/front/he/
Translate-URL: https://translate.habitica.com/projects/habitica/front/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/he/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/he/
Translate-URL: https://translate.habitica.com/projects/habitica/groups/he/
Translate-URL: https://translate.habitica.com/projects/habitica/inventory/he/
Translate-URL: https://translate.habitica.com/projects/habitica/loginincentives/he/
Translate-URL: https://translate.habitica.com/projects/habitica/messages/he/
Translate-URL: https://translate.habitica.com/projects/habitica/pets/he/
Translate-URL: https://translate.habitica.com/projects/habitica/quests/he/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/he/
Translate-URL: https://translate.habitica.com/projects/habitica/rebirth/he/
Translate-URL: https://translate.habitica.com/projects/habitica/settings/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/settings/he/
Translate-URL: https://translate.habitica.com/projects/habitica/spells/he/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/he/
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/he/
Translation: Habitica/Achievements
Translation: Habitica/Backgrounds
Translation: Habitica/Challenge
Translation: Habitica/Character
Translation: Habitica/Communityguidelines
Translation: Habitica/Content
Translation: Habitica/Defaulttasks
Translation: Habitica/Front
Translation: Habitica/Gear
Translation: Habitica/Generic
Translation: Habitica/Groups
Translation: Habitica/Inventory
Translation: Habitica/Loginincentives
Translation: Habitica/Messages
Translation: Habitica/Pets
Translation: Habitica/Quests
Translation: Habitica/Questscontent
Translation: Habitica/Rebirth
Translation: Habitica/Settings
Translation: Habitica/Spells
Translation: Habitica/Subscriber
Translation: Habitica/Tasks
2022-04-05 16:35:54 +02:00
CuriousMagpie
202d74b8c4 Virtual Pet animated images 2022-04-04 17:37:09 -04:00
CuriousMagpie
3498b9ccdf Virtual Pet Hatching Potion Quest Content 2022-04-04 17:29:51 -04:00
SabreCat
39b39387d3 chore(sprites): compile CSS 2022-04-04 14:54:09 -05:00
Natalie L
c3278a3baf 2022-04 Backgrounds & Enchanted Armoire Items (#13915)
* 2022-04 Backgrounds & Enchanted Armoire Items

* remove spritesmith-main.css

* adding spritesmith-main.css back in

* css fix
2022-04-04 14:53:34 -05:00
CuriousMagpie
df3b871dba questContent.json placeholders 2022-04-04 14:50:22 -04:00
dependabot[bot]
18af9f8b40 build(deps): bump moment from 2.29.1 to 2.29.2 (#13921)
Bumps [moment](https://github.com/moment/moment) from 2.29.1 to 2.29.2.
- [Release notes](https://github.com/moment/moment/releases)
- [Changelog](https://github.com/moment/moment/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/moment/moment/compare/2.29.1...2.29.2)

---
updated-dependencies:
- dependency-name: moment
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-04 10:58:05 -04:00
dependabot[bot]
de36afc174 build(deps): bump body-parser from 1.19.2 to 1.20.0 (#13920)
Bumps [body-parser](https://github.com/expressjs/body-parser) from 1.19.2 to 1.20.0.
- [Release notes](https://github.com/expressjs/body-parser/releases)
- [Changelog](https://github.com/expressjs/body-parser/blob/master/HISTORY.md)
- [Commits](https://github.com/expressjs/body-parser/compare/1.19.2...1.20.0)

---
updated-dependencies:
- dependency-name: body-parser
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-04 10:57:45 -04:00
dependabot[bot]
fbb40c0d07 build(deps): bump superagent from 7.1.1 to 7.1.2 (#13917)
Bumps [superagent](https://github.com/visionmedia/superagent) from 7.1.1 to 7.1.2.
- [Release notes](https://github.com/visionmedia/superagent/releases)
- [Changelog](https://github.com/visionmedia/superagent/blob/master/HISTORY.md)
- [Commits](https://github.com/visionmedia/superagent/commits)

---
updated-dependencies:
- dependency-name: superagent
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-04 10:56:57 -04:00
SabreCat
34d0922bcc Merge remote-tracking branch 'rarysson/update-year-on-footer' into develop 2022-04-01 16:28:04 -05:00
Phillip Thelen
55cf2f9795 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 <sabe@habitica.com>
2022-03-31 16:43:16 -05:00
Phillip Thelen
9ff0766910 Fix cron not running if previous run failed (#13892)
* catch issue where cron wouldn’t run bc previous run failed

* add some more tests for cron middleware

* fix lint
2022-03-31 16:32:59 -05:00
Natalie L
06d982401a Update: Revised text string for zodiacZookeeper and birdsOfAFeather achievements (#13884)
* updated text string for zodiacZooKeeper and birdsOfAFeather

* added peacock and rooster (oops!)
2022-03-31 15:59:36 -05:00
citrusella
140372a70d Update faceAvatar.vue so snowman ACTUALLY shows up (#13911) 2022-03-31 15:39:53 -05:00
Weblate
bd9754221b Merge branch 'origin/develop' into Weblate. 2022-03-31 21:48:15 +02:00
SabreCat
d58ca4c998 Merge branch 'release' into develop 2022-03-31 14:47:44 -05:00
SabreCat
7c53f9fd21 4.226.1 2022-03-31 14:47:22 -05:00
SabreCat
ae6918d52e chore(event): canonical duration 2022-03-31 14:41:59 -05:00
Weblate
d367060a82 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 <me+hbtc@gahanka.net>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: mattya 226 <worldworld1114@gmail.com>
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
2022-03-31 19:36:03 +02:00
Natalie L
8e7ec46c8f Merge branch 'HabitRPG:develop' into develop 2022-03-31 11:58:23 -04:00
Natalie L
d0d32c0b58 fix: Spring Fling Strings (#13902)
* fix: spring fling string fixes

* fix: additional spring fling string fixes
2022-03-30 16:46:35 -05:00
Natalie L
1dd3bc188e Merge branch 'HabitRPG:develop' into develop 2022-03-30 17:04:21 -04:00
SabreCat
608ae5fc43 feat(event): April Fooly 2022 2022-03-30 15:31:17 -05:00
Weblate
391fa541ef Merge branch 'origin/develop' into Weblate. 2022-03-30 16:47:45 +02:00
SabreCat
bc87e8b400 Merge branch 'release' into develop 2022-03-30 09:46:11 -05:00
SabreCat
5c4b8ce58b 4.226.0 2022-03-30 09:45:06 -05:00
SabreCat
2b93ea3740 chore(sprites): compile 2022-03-30 09:44:36 -05:00
SabreCat
61956ea720 Merge remote-tracking branch 'CuriousMagpie/2022-04-subscriber-items' into release 2022-03-30 09:17:52 -05:00
Weblate
976e8cf242 Translated using Weblate (Spanish)
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 <marascherzer@gmail.com>
Co-authored-by: Pardinus <artemisadlg@gmail.com>
Co-authored-by: Sara López <sarayupy@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
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
2022-03-30 12:18:52 +02:00
Natalie L
2c566cb9e3 Merge branch 'HabitRPG:develop' into develop 2022-03-29 16:26:27 -04:00
CuriousMagpie
89d7f94fc3 habitica-images 2022-03-29 16:21:38 -04:00
Natalie L
7a15bfc140 Merge branch 'HabitRPG:develop' into develop 2022-03-29 16:12:11 -04:00
CuriousMagpie
265dfbbb98 2022-04 Subscriber Items 2022-03-29 16:08:25 -04:00
Weblate
59bd135e44 Merge branch 'origin/develop' into Weblate. 2022-03-29 21:08:20 +02:00
SabreCat
cf04d9d0be Merge branch 'release' into develop 2022-03-29 14:07:57 -05:00
SabreCat
d16bb83721 4.225.4 2022-03-29 14:07:42 -05:00
SabreCat
93ae36d139 fix(event): add underscore for mobile handling of NPCs 2022-03-29 14:04:37 -05:00
CuriousMagpie
0783ccae24 2022 Spring Fling Potions 2022-03-29 13:54:07 -05:00
Weblate
f918b4a68c 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 <me+hbtc@gahanka.net>
Co-authored-by: Mara Dolichotis <marascherzer@gmail.com>
Co-authored-by: Nazar Paruna <nazarparuna@gmail.com>
Co-authored-by: Sciuridae <sweetvshoney@163.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: mattya 226 <worldworld1114@gmail.com>
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
2022-03-29 19:41:35 +02:00
Natalie L
4070dd7754 Merge branch 'HabitRPG:develop' into develop 2022-03-29 13:15:39 -04:00
Basrara
d44b2fe785 Minor fixes (#13909)
Updated "resetText2", "transaction_rebirth", and "transaction_reroll" to correct capitalization and eliminate a double space.
2022-03-29 12:30:16 -04:00
SabreCat
966cc64396 Merge branch 'release' into develop 2022-03-28 16:33:35 -05:00
SabreCat
af3aedc5d4 4.225.3 2022-03-28 16:26:49 -05:00
SabreCat
0a2eceaa73 fix(achievement): correct string for Birds and add to user schema 2022-03-28 16:26:37 -05:00
Natalie L
57cf669a86 Merge branch 'HabitRPG:develop' into develop 2022-03-28 15:01:07 -04:00
dependabot[bot]
278ddfbf54 build(deps): bump stripe from 8.209.0 to 8.212.0 (#13906)
Bumps [stripe](https://github.com/stripe/stripe-node) from 8.209.0 to 8.212.0.
- [Release notes](https://github.com/stripe/stripe-node/releases)
- [Changelog](https://github.com/stripe/stripe-node/blob/master/CHANGELOG.md)
- [Commits](https://github.com/stripe/stripe-node/compare/v8.209.0...v8.212.0)

---
updated-dependencies:
- dependency-name: stripe
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-03-28 14:52:18 -04:00
dependabot[bot]
0c26d7bcf6 build(deps): bump @parse/node-apn from 5.1.0 to 5.1.3 (#13905)
Bumps [@parse/node-apn](https://github.com/parse-community/node-apn) from 5.1.0 to 5.1.3.
- [Release notes](https://github.com/parse-community/node-apn/releases)
- [Changelog](https://github.com/parse-community/node-apn/blob/master/CHANGELOG.md)
- [Commits](https://github.com/parse-community/node-apn/compare/5.1.0...5.1.3)

---
updated-dependencies:
- dependency-name: "@parse/node-apn"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-03-28 14:51:40 -04:00
dependabot[bot]
a20ce7bc42 build(deps): bump apidoc from 0.50.5 to 0.51.0 (#13904)
Bumps [apidoc](https://github.com/apidoc/apidoc) from 0.50.5 to 0.51.0.
- [Release notes](https://github.com/apidoc/apidoc/releases)
- [Changelog](https://github.com/apidoc/apidoc/blob/master/CHANGELOG.md)
- [Commits](https://github.com/apidoc/apidoc/compare/0.50.5...0.51.0)

---
updated-dependencies:
- dependency-name: apidoc
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-03-28 14:51:18 -04:00
CuriousMagpie
f87bb7593e Merge branch 'develop' of https://github.com/CuriousMagpie/habitica into develop 2022-03-25 18:50:14 -04:00
dependabot[bot]
2554809a2e build(deps): bump @babel/register from 7.17.0 to 7.17.7 (#13898)
Bumps [@babel/register](https://github.com/babel/babel/tree/HEAD/packages/babel-register) from 7.17.0 to 7.17.7.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.17.7/packages/babel-register)

---
updated-dependencies:
- dependency-name: "@babel/register"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-03-23 20:52:56 -05:00
Weblate
4eb4dc6ba3 Merge branch 'origin/develop' into Weblate. 2022-03-24 02:22:14 +01:00
Weblate
f08299225b Translated using Weblate (Ukrainian)
Currently translated at 79.5% (2048 of 2573 strings)

Translated using Weblate (Ukrainian)

Currently translated at 95.5% (170 of 178 strings)

Translated using Weblate (Ukrainian)

Currently translated at 84.8% (633 of 746 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (56 of 56 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (111 of 111 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (129 of 129 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (8 of 8 strings)

Translated using Weblate (Ukrainian)

Currently translated at 79.4% (2045 of 2573 strings)

Translated using Weblate (Bosnian)

Currently translated at 97.2% (108 of 111 strings)

Translated using Weblate (Hindi)

Currently translated at 98.9% (184 of 186 strings)

Translated using Weblate (Bosnian)

Currently translated at 98.9% (184 of 186 strings)

Translated using Weblate (Bosnian)

Currently translated at 97.0% (130 of 134 strings)

Translated using Weblate (Bosnian)

Currently translated at 92.3% (12 of 13 strings)

Translated using Weblate (Bosnian)

Currently translated at 62.5% (5 of 8 strings)

Translated using Weblate (Hindi)

Currently translated at 91.2% (333 of 365 strings)

Translated using Weblate (Bosnian)

Currently translated at 94.3% (202 of 214 strings)

Translated using Weblate (Hindi)

Currently translated at 65.9% (1696 of 2573 strings)

Translated using Weblate (Finnish)

Currently translated at 66.6% (1716 of 2573 strings)

Translated using Weblate (Bosnian)

Currently translated at 95.6% (44 of 46 strings)

Translated using Weblate (Ukrainian)

Currently translated at 74.4% (146 of 196 strings)

Translated using Weblate (Portuguese)

Currently translated at 67.6% (1741 of 2573 strings)

Translated using Weblate (Spanish)

Currently translated at 98.6% (2537 of 2573 strings)

Translated using Weblate (Latin)

Currently translated at 11.2% (20 of 178 strings)

Translated using Weblate (Spanish)

Currently translated at 98.6% (2537 of 2573 strings)

Translated using Weblate (German)

Currently translated at 99.0% (217 of 219 strings)

Translated using Weblate (German)

Currently translated at 99.4% (2559 of 2573 strings)

Translated using Weblate (German)

Currently translated at 98.6% (216 of 219 strings)

Translated using Weblate (German)

Currently translated at 99.1% (2551 of 2573 strings)

Translated using Weblate (Ukrainian)

Currently translated at 84.7% (632 of 746 strings)

Translated using Weblate (French)

Currently translated at 100.0% (746 of 746 strings)

Translated using Weblate (German)

Currently translated at 100.0% (746 of 746 strings)

Merge branch 'origin/develop' into Weblate.

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (134 of 134 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (111 of 111 strings)

Translated using Weblate (Ukrainian)

Currently translated at 53.5% (30 of 56 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (111 of 111 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (61 of 61 strings)

Translated using Weblate (Ukrainian)

Currently translated at 53.5% (30 of 56 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (98 of 98 strings)

Translated using Weblate (Latin)

Currently translated at 100.0% (13 of 13 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (134 of 134 strings)

Translated using Weblate (Hebrew)

Currently translated at 90.2% (121 of 134 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (111 of 111 strings)

Translated using Weblate (Hebrew)

Currently translated at 49.7% (107 of 215 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (365 of 365 strings)

Translated using Weblate (Hebrew)

Currently translated at 85.2% (311 of 365 strings)

Translated using Weblate (Ukrainian)

Currently translated at 80.1% (2040 of 2545 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (214 of 214 strings)

Translated using Weblate (Hebrew)

Currently translated at 94.9% (169 of 178 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (682 of 682 strings)

Translated using Weblate (Hebrew)

Currently translated at 84.4% (174 of 206 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (682 of 682 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (682 of 682 strings)

Translated using Weblate (Latin)

Currently translated at 61.5% (8 of 13 strings)

Translated using Weblate (German)

Currently translated at 100.0% (206 of 206 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (372 of 372 strings)

Translated using Weblate (Japanese)

Currently translated at 99.8% (2541 of 2545 strings)

Translated using Weblate (German)

Currently translated at 100.0% (2545 of 2545 strings)

Translated using Weblate (German)

Currently translated at 100.0% (2545 of 2545 strings)

Translated using Weblate (Japanese)

Currently translated at 99.7% (2539 of 2545 strings)

Translated using Weblate (German)

Currently translated at 99.8% (2541 of 2545 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 95.2% (2425 of 2545 strings)

Translated using Weblate (Ukrainian)

Currently translated at 99.7% (680 of 682 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (682 of 682 strings)

Translated using Weblate (German)

Currently translated at 100.0% (196 of 196 strings)

Translated using Weblate (German)

Currently translated at 99.6% (2537 of 2545 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (131 of 131 strings)

Translated using Weblate (German)

Currently translated at 99.5% (2534 of 2545 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 99.8% (745 of 746 strings)

Translated using Weblate (Portuguese)

Currently translated at 99.1% (369 of 372 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 99.0% (739 of 746 strings)

Translated using Weblate (German)

Currently translated at 100.0% (682 of 682 strings)

Translated using Weblate (Latin)

Currently translated at 99.4% (185 of 186 strings)

Translated using Weblate (Latin)

Currently translated at 100.0% (98 of 98 strings)

Translated using Weblate (Latin)

Currently translated at 98.4% (129 of 131 strings)

Translated using Weblate (Latin)

Currently translated at 100.0% (15 of 15 strings)

Translated using Weblate (Japanese)

Currently translated at 99.1% (676 of 682 strings)

Translated using Weblate (Spanish)

Currently translated at 99.4% (678 of 682 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (131 of 131 strings)

Translated using Weblate (Spanish)

Currently translated at 99.2% (130 of 131 strings)

Translated using Weblate (German)

Currently translated at 99.5% (2533 of 2545 strings)

Translated using Weblate (German)

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 (German)

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 (German)

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 (German)

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 (German)

Currently translated at 99.5% (2533 of 2545 strings)

Co-authored-by: Annika Frederike Schomber <nick.namen@gmx.de>
Co-authored-by: Benoit Hetru <me+hbtc@gahanka.net>
Co-authored-by: Céu <marcel.ufscar@gmail.com>
Co-authored-by: ELAS- <osu.skins.w.e@gmail.com>
Co-authored-by: Geist Mann <magister_b@web.de>
Co-authored-by: Mara Dolichotis <marascherzer@gmail.com>
Co-authored-by: Natalie Luhrs <eilatan@gmail.com>
Co-authored-by: Nazar Paruna <nazarparuna@gmail.com>
Co-authored-by: Omer I.S <omeritzicschwartz@gmail.com>
Co-authored-by: Sara López <sarayupy@gmail.com>
Co-authored-by: Sciuridae <sweetvshoney@163.com>
Co-authored-by: Simon Fischer <simon.pascal.fischer@gmail.com>
Co-authored-by: Tobias Welti <tobias.welti@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: citrusella <citrusellaflugpucker@yahoo.com>
Co-authored-by: mattya 226 <worldworld1114@gmail.com>
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/de/
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/es/
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/la/
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/de/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/es/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/challenge/la/
Translate-URL: https://translate.habitica.com/projects/habitica/challenge/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/character/bs/
Translate-URL: https://translate.habitica.com/projects/habitica/character/hi/
Translate-URL: https://translate.habitica.com/projects/habitica/character/la/
Translate-URL: https://translate.habitica.com/projects/habitica/content/pt/
Translate-URL: https://translate.habitica.com/projects/habitica/content/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/contrib/bs/
Translate-URL: https://translate.habitica.com/projects/habitica/death/la/
Translate-URL: https://translate.habitica.com/projects/habitica/faq/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/front/he/
Translate-URL: https://translate.habitica.com/projects/habitica/front/la/
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/es/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/fi/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/hi/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/pt/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/bs/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/groups/he/
Translate-URL: https://translate.habitica.com/projects/habitica/groups/hi/
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/he/
Translate-URL: https://translate.habitica.com/projects/habitica/messages/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/npc/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/overview/bs/
Translate-URL: https://translate.habitica.com/projects/habitica/overview/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/pets/bs/
Translate-URL: https://translate.habitica.com/projects/habitica/pets/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/de/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/rebirth/bs/
Translate-URL: https://translate.habitica.com/projects/habitica/rebirth/la/
Translate-URL: https://translate.habitica.com/projects/habitica/settings/de/
Translate-URL: https://translate.habitica.com/projects/habitica/settings/he/
Translate-URL: https://translate.habitica.com/projects/habitica/spells/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/de/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/bs/
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/he/
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/uk/
Translation: Habitica/Achievements
Translation: Habitica/Backgrounds
Translation: Habitica/Challenge
Translation: Habitica/Character
Translation: Habitica/Content
Translation: Habitica/Contrib
Translation: Habitica/Death
Translation: Habitica/Faq
Translation: Habitica/Front
Translation: Habitica/Gear
Translation: Habitica/Generic
Translation: Habitica/Groups
Translation: Habitica/Limited
Translation: Habitica/Messages
Translation: Habitica/Npc
Translation: Habitica/Overview
Translation: Habitica/Pets
Translation: Habitica/Questscontent
Translation: Habitica/Rebirth
Translation: Habitica/Settings
Translation: Habitica/Spells
Translation: Habitica/Subscriber
Translation: Habitica/Tasks
2022-03-24 02:21:53 +01:00
SabreCat
5890b04e30 Merge branch 'release' into develop 2022-03-23 20:21:13 -05:00
SabreCat
da481ce156 4.225.2 2022-03-23 20:21:00 -05:00
Sabe Jones
f7f928d1bd On-the-fly fix for tasks missing from tasksOrder (#13900)
* fix(tasks): revised fix logic, accounting for groups/challenges

* fix(tasks): don't grab individual user tasks in shared list

Co-authored-by: SabreCat <sabe@habitica.com>
2022-03-23 20:17:49 -05:00
dependabot[bot]
3e0b0972b3 build(deps): bump @babel/core from 7.17.5 to 7.17.8 (#13896)
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.17.5 to 7.17.8.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.17.8/packages/babel-core)

---
updated-dependencies:
- dependency-name: "@babel/core"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-03-23 12:52:58 -04:00
CuriousMagpie
b54f185d1f laptop puked, had to reset everything, joy 2022-03-22 21:02:00 -04:00
SabreCat
e88b3c2c49 4.225.1 2022-03-22 16:52:54 -05:00
SabreCat
d6e64482d6 chore(sprites): update CSS 2022-03-22 16:52:48 -05:00
SabreCat
47dd711ab9 Merge branch 'release' into develop 2022-03-22 10:37:51 -05:00
SabreCat
4d1c5024a3 4.225.0 2022-03-22 10:37:35 -05:00
SabreCat
ad9c468e77 fix(event): CSS build, small fixes 2022-03-22 10:34:44 -05:00
SabreCat
e141e2407c Merge remote-tracking branch 'CuriousMagpie/2022-spring-fling-gala' into release 2022-03-22 09:41:59 -05:00
SabreCat
33da6b7959 revert of hotfix for further review 2022-03-21 16:28:41 -05:00
SabreCat
9a454daef1 partial revert of hotfix for further review 2022-03-21 16:28:20 -05:00
CuriousMagpie
ce59306bd1 habitica-images 2022-03-21 17:01:08 -04:00
CuriousMagpie
5be15eb110 habitica-images 2022-03-21 12:41:39 -04:00
SabreCat
2828ae660c fix(tasks): correct list repair query 2022-03-18 17:40:09 -05:00
SabreCat
4a21ffa81d fix(build): force https for git repositories 2022-03-18 17:30:43 -05:00
SabreCat
fa27aa8fe7 fix(tasks): self-healing for missing tasksOrder entries 2022-03-18 17:15:20 -05:00
CuriousMagpie
c94195129f 2022 Spring Fling Content 2022-03-18 17:24:05 -04:00
CuriousMagpie
deacd8964f uploaded spring fling class set images 2022-03-18 14:06:37 -04:00
dependabot[bot]
7fcdc9f8f1 build(deps-dev): bump axios from 0.26.0 to 0.26.1 (#13890)
Bumps [axios](https://github.com/axios/axios) from 0.26.0 to 0.26.1.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/master/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v0.26.0...v0.26.1)

---
updated-dependencies:
- dependency-name: axios
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-03-18 12:44:45 -04:00
dependabot[bot]
c0d4aa9415 build(deps): bump stripe from 8.207.0 to 8.209.0 (#13888)
Bumps [stripe](https://github.com/stripe/stripe-node) from 8.207.0 to 8.209.0.
- [Release notes](https://github.com/stripe/stripe-node/releases)
- [Changelog](https://github.com/stripe/stripe-node/blob/master/CHANGELOG.md)
- [Commits](https://github.com/stripe/stripe-node/compare/v8.207.0...v8.209.0)

---
updated-dependencies:
- dependency-name: stripe
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-03-18 12:38:49 -04:00
dependabot[bot]
ea393a245a build(deps): bump apidoc from 0.50.4 to 0.50.5 (#13887)
Bumps [apidoc](https://github.com/apidoc/apidoc) from 0.50.4 to 0.50.5.
- [Release notes](https://github.com/apidoc/apidoc/releases)
- [Changelog](https://github.com/apidoc/apidoc/blob/master/CHANGELOG.md)
- [Commits](https://github.com/apidoc/apidoc/compare/0.50.4...0.50.5)

---
updated-dependencies:
- dependency-name: apidoc
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-03-18 12:37:57 -04:00
SabreCat
5ea82fe87f 4.224.3 2022-03-15 16:08:58 -05:00
SabreCat
a24651e395 fix(content): bundle ends March not May 2022-03-15 16:08:53 -05:00
Weblate
7f2c54d669 Merge branch 'origin/develop' into Weblate. 2022-03-15 21:02:54 +01:00
SabreCat
634a2011c1 Merge branch 'release' into develop 2022-03-15 15:01:27 -05:00
SabreCat
6339e9066f 4.224.2 2022-03-15 15:01:11 -05:00
SabreCat
c2d48480a0 chore(content): rerelease cuddle bubbles 2022-03-15 15:00:58 -05:00
Weblate
84f2f0b99f Translated using Weblate (Spanish (Latin America))
Currently translated at 90.0% (118 of 131 strings)

Translated using Weblate (French)

Currently translated at 100.0% (2545 of 2545 strings)

Co-authored-by: Benoit Hetru <me+hbtc@gahanka.net>
Co-authored-by: Natalie Luhrs <eilatan@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/es_419/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/fr/
Translation: Habitica/Achievements
Translation: Habitica/Gear
2022-03-15 19:50:10 +01:00
SabreCat
d9240f7887 fix(migration): actually count 2022-03-14 15:06:57 -05:00
Weblate
1a7ddead94 Merge branch 'origin/develop' into Weblate. 2022-03-14 20:32:11 +01:00
SabreCat
a0cb9da64b Merge branch 'release' into develop 2022-03-14 14:31:36 -05:00
SabreCat
dd86b96433 4.224.1 2022-03-14 14:30:20 -05:00
SabreCat
3e082fe127 chore(event): Pi Day 2022 2022-03-14 14:29:57 -05:00
Weblate
5fb284abeb Translated using Weblate (French)
Currently translated at 100.0% (196 of 196 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 98.2% (670 of 682 strings)

Translated using Weblate (Portuguese)

Currently translated at 93.4% (637 of 682 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (131 of 131 strings)

Translated using Weblate (French)

Currently translated at 100.0% (682 of 682 strings)

Translated using Weblate (French)

Currently translated at 100.0% (131 of 131 strings)

Co-authored-by: Benoit Hetru <me+hbtc@gahanka.net>
Co-authored-by: Céu <marcel.ufscar@gmail.com>
Co-authored-by: TessAliz <tuffigo.tess@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/pt/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/fr/
Translation: Habitica/Achievements
Translation: Habitica/Backgrounds
Translation: Habitica/Subscriber
2022-03-13 11:16:43 +01:00
dependabot[bot]
f69e43a9bc build(deps): bump stripe from 8.203.0 to 8.207.0 (#13880)
Bumps [stripe](https://github.com/stripe/stripe-node) from 8.203.0 to 8.207.0.
- [Release notes](https://github.com/stripe/stripe-node/releases)
- [Changelog](https://github.com/stripe/stripe-node/blob/master/CHANGELOG.md)
- [Commits](https://github.com/stripe/stripe-node/compare/v8.203.0...v8.207.0)

---
updated-dependencies:
- dependency-name: stripe
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-03-10 13:32:16 -05:00
CuriousMagpie
78c3a8e4ac chore(submodule): update habitica-images 2022-03-10 12:35:10 -05:00
Weblate
596d18588b Merge branch 'origin/develop' into Weblate. 2022-03-09 23:21:18 +01:00
SabreCat
5320de93a8 Merge branch 'release' into develop 2022-03-09 16:18:08 -06:00
SabreCat
c38781e154 4.224.0 2022-03-09 16:17:28 -06:00
SabreCat
3c7df419b7 chore(submodule): update habitica-images 2022-03-09 16:17:23 -06:00
SabreCat
52d1480844 chore(sprites): build CSS 2022-03-09 16:16:44 -06:00
CuriousMagpie
d9f593d53a added migration script 2022-03-09 15:55:31 -06:00
SabreCat
7cc17d0369 feat(content): Armoire and Backgrounds 2022-03-09 15:50:31 -06:00
CuriousMagpie
1785ac8226 added Birds of a Feather achievement 2022-03-09 15:39:42 -05:00
CuriousMagpie
43be5f0490 Add Rooster and Peacock 2022-03-08 16:52:43 -05:00
Weblate
2cf4e141f1 Translated using Weblate (Japanese)
Currently translated at 100.0% (365 of 365 strings)

Translated using Weblate (Latin)

Currently translated at 99.2% (127 of 128 strings)

Co-authored-by: Geist Mann <magister_b@web.de>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: mattya 226 <worldworld1114@gmail.com>
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/la/
Translate-URL: https://translate.habitica.com/projects/habitica/groups/ja/
Translation: Habitica/Achievements
Translation: Habitica/Groups
2022-03-08 20:37:01 +01:00
CuriousMagpie
fc4145700c image update! 2022-03-08 13:06:33 -05:00
CuriousMagpie
aa1b9a5e94 added achievement Birds of a Feather 2022-03-08 12:43:38 -05:00
CuriousMagpie
ce57a70e64 habitica images update 2022-03-08 12:37:49 -05:00
Alys
8cfb2a05ef add banned word - TRIGGER / CONTENT WARNING: assault, slurs, swearwords, etc 2022-03-06 16:38:41 +10:00
Weblate
689c526d6b Translated using Weblate (Chinese (Simplified))
Currently translated at 99.3% (2520 of 2537 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 99.3% (2520 of 2537 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 95.5% (2425 of 2537 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 95.5% (2425 of 2537 strings)

Translated using Weblate (Portuguese)

Currently translated at 68.6% (1741 of 2537 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 99.1% (669 of 675 strings)

Translated using Weblate (Portuguese)

Currently translated at 94.2% (636 of 675 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 98.4% (193 of 196 strings)

Translated using Weblate (Latin)

Currently translated at 85.1% (109 of 128 strings)

Translated using Weblate (Romanian)

Currently translated at 83.6% (164 of 196 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 98.4% (193 of 196 strings)

Translated using Weblate (Portuguese)

Currently translated at 66.8% (131 of 196 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 99.2% (2519 of 2537 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 99.4% (671 of 675 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (128 of 128 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (196 of 196 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (2537 of 2537 strings)

Translated using Weblate (Latin)

Currently translated at 81.2% (104 of 128 strings)

Translated using Weblate (Galician)

Currently translated at 14.0% (18 of 128 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (196 of 196 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (196 of 196 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (13 of 13 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (215 of 215 strings)

Translated using Weblate (Japanese)

Currently translated at 99.9% (2536 of 2537 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (2537 of 2537 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (15 of 15 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (675 of 675 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (206 of 206 strings)

Co-authored-by: Céu <marcel.ufscar@gmail.com>
Co-authored-by: Delta S <deseji93@gmail.com>
Co-authored-by: Geist Mann <magister_b@web.de>
Co-authored-by: Linda Li <wli62442@gmail.com>
Co-authored-by: Sciuridae <sweetvshoney@163.com>
Co-authored-by: Sealeo Wu <anitayuanli@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: mattya 226 <worldworld1114@gmail.com>
Co-authored-by: 普通学生何某人 <hewei5002@hotmail.com>
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/gl/
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/la/
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/es/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/pt/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/death/es/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/es/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/pt/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/limited/es/
Translate-URL: https://translate.habitica.com/projects/habitica/rebirth/es/
Translate-URL: https://translate.habitica.com/projects/habitica/settings/es/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/es/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/pt/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/ro/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/zh_Hans/
Translation: Habitica/Achievements
Translation: Habitica/Backgrounds
Translation: Habitica/Death
Translation: Habitica/Gear
Translation: Habitica/Limited
Translation: Habitica/Rebirth
Translation: Habitica/Settings
Translation: Habitica/Subscriber
2022-03-03 10:50:02 +01:00
CuriousMagpie
6b922ae7de 2022-03 backgrounds and armoire 2022-03-01 12:22:59 -05:00
dependabot[bot]
fde732313a build(deps): bump url-parse from 1.5.7 to 1.5.10 (#13875)
Bumps [url-parse](https://github.com/unshiftio/url-parse) from 1.5.7 to 1.5.10.
- [Release notes](https://github.com/unshiftio/url-parse/releases)
- [Commits](https://github.com/unshiftio/url-parse/compare/1.5.7...1.5.10)

---
updated-dependencies:
- dependency-name: url-parse
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-28 16:16:46 -05:00
Weblate
75254c75e8 Merge branch 'origin/develop' into Weblate. 2022-02-28 16:57:05 +01:00
SabreCat
080f7ece30 Merge branch 'release' into develop 2022-02-28 09:49:44 -06:00
SabreCat
e66f722311 4.223.0 2022-02-28 09:49:27 -06:00
SabreCat
05a54e505c chore(mystery): update images, run sprites 2022-02-28 09:49:21 -06:00
CuriousMagpie
82e9c2e896 2022-03 Subscriber Items 2022-02-28 09:37:57 -06:00
CuriousMagpie
8dbb55f3b7 2022-03 Subscriber Items 2022-02-28 09:37:49 -06:00
Weblate
2b7caf9edf Translated using Weblate (Chinese (Simplified))
Currently translated at 99.2% (127 of 128 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (365 of 365 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (365 of 365 strings)

Translated using Weblate (Portuguese)

Currently translated at 79.5% (101 of 127 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (56 of 56 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (111 of 111 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (61 of 61 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (365 of 365 strings)

Translated using Weblate (Ukrainian)

Currently translated at 84.8% (633 of 746 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (98 of 98 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (365 of 365 strings)

Translated using Weblate (Ukrainian)

Currently translated at 80.5% (2040 of 2533 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (214 of 214 strings)

Translated using Weblate (Ukrainian)

Currently translated at 84.8% (633 of 746 strings)

Translated using Weblate (Ukrainian)

Currently translated at 80.5% (2040 of 2533 strings)

Translated using Weblate (Ukrainian)

Currently translated at 84.8% (633 of 746 strings)

Translated using Weblate (Swedish)

Currently translated at 100.0% (98 of 98 strings)

Translated using Weblate (Swedish)

Currently translated at 80.8% (546 of 675 strings)

Translated using Weblate (Swedish)

Currently translated at 80.8% (546 of 675 strings)

Translated using Weblate (Ukrainian)

Currently translated at 80.5% (2040 of 2533 strings)

Translated using Weblate (Ukrainian)

Currently translated at 84.8% (633 of 746 strings)

Translated using Weblate (Ukrainian)

Currently translated at 78.7% (100 of 127 strings)

Translated using Weblate (Ukrainian)

Currently translated at 80.5% (2040 of 2533 strings)

Translated using Weblate (Ukrainian)

Currently translated at 84.8% (633 of 746 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (746 of 746 strings)

Translated using Weblate (Ukrainian)

Currently translated at 74.8% (146 of 195 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (98 of 98 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (206 of 206 strings)

Translated using Weblate (Swedish)

Currently translated at 86.8% (53 of 61 strings)

Translated using Weblate (Swedish)

Currently translated at 96.6% (172 of 178 strings)

Translated using Weblate (Swedish)

Currently translated at 81.0% (167 of 206 strings)

Translated using Weblate (Swedish)

Currently translated at 93.6% (104 of 111 strings)

Translated using Weblate (Swedish)

Currently translated at 80.5% (544 of 675 strings)

Translated using Weblate (Swedish)

Currently translated at 100.0% (128 of 128 strings)

Translated using Weblate (Swedish)

Currently translated at 80.5% (544 of 675 strings)

Translated using Weblate (Swedish)

Currently translated at 80.5% (544 of 675 strings)

Translated using Weblate (Swedish)

Currently translated at 80.5% (544 of 675 strings)

Translated using Weblate (Swedish)

Currently translated at 80.5% (544 of 675 strings)

Translated using Weblate (Swedish)

Currently translated at 80.5% (544 of 675 strings)

Translated using Weblate (Swedish)

Currently translated at 80.5% (544 of 675 strings)

Translated using Weblate (Swedish)

Currently translated at 80.5% (544 of 675 strings)

Translated using Weblate (Swedish)

Currently translated at 80.5% (544 of 675 strings)

Translated using Weblate (Swedish)

Currently translated at 80.5% (544 of 675 strings)

Translated using Weblate (Swedish)

Currently translated at 80.5% (544 of 675 strings)

Translated using Weblate (Swedish)

Currently translated at 80.5% (544 of 675 strings)

Translated using Weblate (Swedish)

Currently translated at 80.5% (544 of 675 strings)

Translated using Weblate (Japanese)

Currently translated at 99.0% (204 of 206 strings)

Translated using Weblate (Japanese)

Currently translated at 97.0% (200 of 206 strings)

Translated using Weblate (German)

Currently translated at 100.0% (127 of 127 strings)

Translated using Weblate (German)

Currently translated at 100.0% (206 of 206 strings)

Translated using Weblate (German)

Currently translated at 100.0% (206 of 206 strings)

Co-authored-by: Annika Frederike Schomber <nick.namen@gmx.de>
Co-authored-by: Heitor Menezes Gomes <heitorgmenezes@gmail.com>
Co-authored-by: Kedr <sergeysamori.ua@gmail.com>
Co-authored-by: Mara Dolichotis <marascherzer@gmail.com>
Co-authored-by: Mia S <miveliina@gmail.com>
Co-authored-by: Moa Davou <moa.davou99@gmail.com>
Co-authored-by: Nazar Paruna <nazarparuna@gmail.com>
Co-authored-by: Tobias Welti <tobias.welti@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: Zarah Lundberg <sar_lun@hotmail.com>
Co-authored-by: mattya 226 <worldworld1114@gmail.com>
Co-authored-by: 普通学生何某人 <hewei5002@hotmail.com>
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/sv/
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/sv/
Translate-URL: https://translate.habitica.com/projects/habitica/challenge/sv/
Translate-URL: https://translate.habitica.com/projects/habitica/challenge/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/de/
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/pt/
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/front/sv/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/groups/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/messages/sv/
Translate-URL: https://translate.habitica.com/projects/habitica/messages/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/pets/sv/
Translate-URL: https://translate.habitica.com/projects/habitica/pets/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/settings/de/
Translate-URL: https://translate.habitica.com/projects/habitica/settings/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/settings/sv/
Translate-URL: https://translate.habitica.com/projects/habitica/spells/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/uk/
Translation: Habitica/Achievements
Translation: Habitica/Backgrounds
Translation: Habitica/Challenge
Translation: Habitica/Communityguidelines
Translation: Habitica/Front
Translation: Habitica/Gear
Translation: Habitica/Generic
Translation: Habitica/Groups
Translation: Habitica/Messages
Translation: Habitica/Pets
Translation: Habitica/Questscontent
Translation: Habitica/Settings
Translation: Habitica/Spells
Translation: Habitica/Subscriber
2022-02-28 13:14:21 +01:00
dependabot[bot]
3a46d9315e build(deps): bump prismjs from 1.26.0 to 1.27.0 (#13874)
Bumps [prismjs](https://github.com/PrismJS/prism) from 1.26.0 to 1.27.0.
- [Release notes](https://github.com/PrismJS/prism/releases)
- [Changelog](https://github.com/PrismJS/prism/blob/master/CHANGELOG.md)
- [Commits](https://github.com/PrismJS/prism/compare/v1.26.0...v1.27.0)

---
updated-dependencies:
- dependency-name: prismjs
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-25 22:11:11 -05:00
CuriousMagpie
31fea29fcb update habitica-images 2022-02-24 11:19:42 -05:00
SabreCat
e0f690bc68 Merge branch 'release' into develop 2022-02-22 12:18:34 -06:00
SabreCat
4295b55339 4.222.2 2022-02-22 12:18:20 -06:00
SabreCat
08352c5f49 fix(subs): correct cancellation check logic and test 2022-02-22 11:26:15 -06:00
SabreCat
7080715bcc fix(tests): renewig typos 2022-02-22 10:13:32 -06:00
Phillip Thelen
c6d07983b2 Fix issue with validating android sub cancellation 2022-02-22 10:12:10 -06:00
dependabot[bot]
4acc42a102 build(deps-dev): bump sinon from 12.0.1 to 13.0.1 (#13825)
Bumps [sinon](https://github.com/sinonjs/sinon) from 12.0.1 to 13.0.1.
- [Release notes](https://github.com/sinonjs/sinon/releases)
- [Changelog](https://github.com/sinonjs/sinon/blob/master/docs/changelog.md)
- [Commits](https://github.com/sinonjs/sinon/compare/v12.0.1...v13.0.1)

---
updated-dependencies:
- dependency-name: sinon
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-21 15:16:27 -06:00
dependabot[bot]
b4d4a29f8a build(deps): bump body-parser from 1.19.1 to 1.19.2 (#13864)
Bumps [body-parser](https://github.com/expressjs/body-parser) from 1.19.1 to 1.19.2.
- [Release notes](https://github.com/expressjs/body-parser/releases)
- [Changelog](https://github.com/expressjs/body-parser/blob/master/HISTORY.md)
- [Commits](https://github.com/expressjs/body-parser/compare/1.19.1...1.19.2)

---
updated-dependencies:
- dependency-name: body-parser
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-21 15:15:00 -06:00
dependabot[bot]
1393863e12 build(deps): bump intro.js from 4.3.0 to 5.0.0 in /website/client (#13834)
Bumps [intro.js](https://github.com/usablica/intro.js) from 4.3.0 to 5.0.0.
- [Release notes](https://github.com/usablica/intro.js/releases)
- [Commits](https://github.com/usablica/intro.js/compare/v4.3.0...v5.0.0)

---
updated-dependencies:
- dependency-name: intro.js
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-21 15:00:38 -06:00
dependabot[bot]
afea4cda1c build(deps): bump url-parse from 1.5.4 to 1.5.7 (#13863)
Bumps [url-parse](https://github.com/unshiftio/url-parse) from 1.5.4 to 1.5.7.
- [Release notes](https://github.com/unshiftio/url-parse/releases)
- [Commits](https://github.com/unshiftio/url-parse/compare/1.5.4...1.5.7)

---
updated-dependencies:
- dependency-name: url-parse
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-21 14:57:41 -06:00
dependabot[bot]
b2a39b794d build(deps): bump @babel/core from 7.17.2 to 7.17.5 (#13866)
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.17.2 to 7.17.5.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.17.5/packages/babel-core)

---
updated-dependencies:
- dependency-name: "@babel/core"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-21 14:57:27 -06:00
dependabot[bot]
216f603d27 build(deps): bump amplitude from 5.2.0 to 6.0.0 (#13867)
Bumps [amplitude](https://github.com/geoffdutton/amplitude) from 5.2.0 to 6.0.0.
- [Release notes](https://github.com/geoffdutton/amplitude/releases)
- [Changelog](https://github.com/geoffdutton/amplitude/blob/master/CHANGELOG.md)
- [Commits](https://github.com/geoffdutton/amplitude/commits)

---
updated-dependencies:
- dependency-name: amplitude
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-21 14:56:16 -06:00
dependabot[bot]
76b78c3455 build(deps): bump stripe from 8.202.0 to 8.203.0 (#13868)
Bumps [stripe](https://github.com/stripe/stripe-node) from 8.202.0 to 8.203.0.
- [Release notes](https://github.com/stripe/stripe-node/releases)
- [Changelog](https://github.com/stripe/stripe-node/blob/master/CHANGELOG.md)
- [Commits](https://github.com/stripe/stripe-node/compare/v8.202.0...v8.203.0)

---
updated-dependencies:
- dependency-name: stripe
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-21 14:56:01 -06:00
dependabot[bot]
2e0603dada build(deps): bump express from 4.17.2 to 4.17.3 (#13870)
Bumps [express](https://github.com/expressjs/express) from 4.17.2 to 4.17.3.
- [Release notes](https://github.com/expressjs/express/releases)
- [Changelog](https://github.com/expressjs/express/blob/master/History.md)
- [Commits](https://github.com/expressjs/express/compare/4.17.2...4.17.3)

---
updated-dependencies:
- dependency-name: express
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-21 14:55:52 -06:00
SabreCat
5708cb8ef1 Merge branch 'release' into develop 2022-02-17 14:53:11 -06:00
Weblate
3e3d4dbc00 Translated using Weblate (Spanish)
Currently translated at 99.7% (2526 of 2533 strings)

Translated using Weblate (Spanish)

Currently translated at 99.0% (204 of 206 strings)

Translated using Weblate (German)

Currently translated at 100.0% (746 of 746 strings)

Translated using Weblate (German)

Currently translated at 100.0% (746 of 746 strings)

Translated using Weblate (German)

Currently translated at 100.0% (111 of 111 strings)

Translated using Weblate (German)

Currently translated at 100.0% (2533 of 2533 strings)

Translated using Weblate (German)

Currently translated at 100.0% (127 of 127 strings)

Translated using Weblate (German)

Currently translated at 100.0% (206 of 206 strings)

Translated using Weblate (German)

Currently translated at 100.0% (127 of 127 strings)

Translated using Weblate (German)

Currently translated at 100.0% (127 of 127 strings)

Translated using Weblate (German)

Currently translated at 100.0% (127 of 127 strings)

Translated using Weblate (German)

Currently translated at 100.0% (195 of 195 strings)

Translated using Weblate (German)

Currently translated at 100.0% (215 of 215 strings)

Translated using Weblate (German)

Currently translated at 100.0% (2533 of 2533 strings)

Translated using Weblate (German)

Currently translated at 100.0% (675 of 675 strings)

Translated using Weblate (Portuguese)

Currently translated at 100.0% (98 of 98 strings)

Translated using Weblate (Portuguese)

Currently translated at 94.0% (635 of 675 strings)

Translated using Weblate (Japanese)

Currently translated at 96.6% (199 of 206 strings)

Translated using Weblate (French)

Currently translated at 100.0% (195 of 195 strings)

Translated using Weblate (French)

Currently translated at 100.0% (215 of 215 strings)

Translated using Weblate (French)

Currently translated at 100.0% (2533 of 2533 strings)

Translated using Weblate (French)

Currently translated at 100.0% (675 of 675 strings)

Translated using Weblate (French)

Currently translated at 100.0% (128 of 128 strings)

Translated using Weblate (French)

Currently translated at 100.0% (206 of 206 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (215 of 215 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (215 of 215 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (2533 of 2533 strings)

Translated using Weblate (English (United Kingdom))

Currently translated at 100.0% (372 of 372 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (675 of 675 strings)

Translated using Weblate (Japanese)

Currently translated at 95.1% (196 of 206 strings)

Co-authored-by: Annika Frederike Schomber <nick.namen@gmx.de>
Co-authored-by: Benoit Hetru <me+hbtc@gahanka.net>
Co-authored-by: Chap <chalda82+nogravatar@gmail.com>
Co-authored-by: Cristiana Milhões <bookundertook@gmail.com>
Co-authored-by: Mara Dolichotis <marascherzer@gmail.com>
Co-authored-by: Natalie Luhrs <eilatan@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: mattya 226 <worldworld1114@gmail.com>
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/de/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/pt/
Translate-URL: https://translate.habitica.com/projects/habitica/challenge/pt/
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/de/
Translate-URL: https://translate.habitica.com/projects/habitica/content/en_GB/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/de/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/es/
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/limited/de/
Translate-URL: https://translate.habitica.com/projects/habitica/limited/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/limited/it/
Translate-URL: https://translate.habitica.com/projects/habitica/limited/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/pets/de/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/de/
Translate-URL: https://translate.habitica.com/projects/habitica/settings/de/
Translate-URL: https://translate.habitica.com/projects/habitica/settings/es/
Translate-URL: https://translate.habitica.com/projects/habitica/settings/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/settings/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/de/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/fr/
Translation: Habitica/Achievements
Translation: Habitica/Backgrounds
Translation: Habitica/Challenge
Translation: Habitica/Communityguidelines
Translation: Habitica/Content
Translation: Habitica/Gear
Translation: Habitica/Limited
Translation: Habitica/Pets
Translation: Habitica/Questscontent
Translation: Habitica/Settings
Translation: Habitica/Subscriber
2022-02-17 21:52:29 +01:00
SabreCat
a5c141407e 4.222.1 2022-02-17 14:38:13 -06:00
SabreCat
70be356968 chore(content): enable Mythical Marvels for end of February 2022-02-17 14:27:17 -06:00
dependabot[bot]
cb6d3cc9ca build(deps): bump @storybook/addons in /website/client (#13850)
Bumps [@storybook/addons](https://github.com/storybookjs/storybook/tree/HEAD/lib/addons) from 6.4.18 to 6.4.19.
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/v6.4.19/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v6.4.19/lib/addons)

---
updated-dependencies:
- dependency-name: "@storybook/addons"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-15 14:01:40 -05:00
dependabot[bot]
eb652932ec build(deps): bump winston from 3.5.1 to 3.6.0 (#13851)
Bumps [winston](https://github.com/winstonjs/winston) from 3.5.1 to 3.6.0.
- [Release notes](https://github.com/winstonjs/winston/releases)
- [Changelog](https://github.com/winstonjs/winston/blob/master/CHANGELOG.md)
- [Commits](https://github.com/winstonjs/winston/compare/v3.5.1...v3.6.0)

---
updated-dependencies:
- dependency-name: winston
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-15 13:46:02 -05:00
dependabot[bot]
d94c6dad57 build(deps-dev): bump axios from 0.25.0 to 0.26.0 (#13852)
Bumps [axios](https://github.com/axios/axios) from 0.25.0 to 0.26.0.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/master/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v0.25.0...v0.26.0)

---
updated-dependencies:
- dependency-name: axios
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-15 13:45:32 -05:00
dependabot[bot]
c3307afbf5 build(deps): bump follow-redirects from 1.14.7 to 1.14.8 (#13847)
Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.14.7 to 1.14.8.
- [Release notes](https://github.com/follow-redirects/follow-redirects/releases)
- [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.14.7...v1.14.8)

---
updated-dependencies:
- dependency-name: follow-redirects
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-15 13:45:15 -05:00
dependabot[bot]
f1b6d95a84 build(deps): bump amplitude-js from 8.16.1 to 8.17.0 in /website/client (#13855)
Bumps [amplitude-js](https://github.com/amplitude/amplitude-javascript) from 8.16.1 to 8.17.0.
- [Release notes](https://github.com/amplitude/amplitude-javascript/releases)
- [Changelog](https://github.com/amplitude/Amplitude-JavaScript/blob/main/CHANGELOG.md)
- [Commits](https://github.com/amplitude/amplitude-javascript/compare/v8.16.1...v8.17.0)

---
updated-dependencies:
- dependency-name: amplitude-js
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-15 13:44:49 -05:00
dependabot[bot]
b7e796f644 build(deps): bump @storybook/addon-actions in /website/client (#13857)
Bumps [@storybook/addon-actions](https://github.com/storybookjs/storybook/tree/HEAD/addons/actions) from 6.4.18 to 6.4.19.
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/v6.4.19/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v6.4.19/addons/actions)

---
updated-dependencies:
- dependency-name: "@storybook/addon-actions"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-15 13:43:33 -05:00
CuriousMagpie
ef36d655b0 Merge branch 'develop' of https://github.com/HabitRPG/habitica into develop 2022-02-14 16:37:55 -05:00
SabreCat
9af2289773 Merge branch 'release' into develop 2022-02-14 15:31:54 -06:00
SabreCat
1fd931d935 4.222.0 2022-02-14 15:31:19 -06:00
SabreCat
77751223d3 fix(valentines): adjust empty event daterange 2022-02-14 15:20:37 -06:00
CuriousMagpie
d1ef90db29 Fixed end dates to Feb 18 2022-02-14 15:03:38 -06:00
CuriousMagpie
79cda5d1f6 updates for 2022-02 magic hatching potions & valentine's week 2022-02-14 15:03:32 -06:00
dependabot[bot]
9cecbcbd5a build(deps): bump @babel/core from 7.16.12 to 7.17.2 (#13842)
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.16.12 to 7.17.2.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.17.2/packages/babel-core)

---
updated-dependencies:
- dependency-name: "@babel/core"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-14 14:53:00 -06:00
dependabot[bot]
cf3b9bac4e build(deps): bump tar from 4.4.8 to 4.4.19 in /website/client 2022-02-14 14:52:43 -06:00
dependabot[bot]
253a378529 build(deps): bump apidoc from 0.50.3 to 0.50.4 2022-02-14 14:50:29 -06:00
dependabot[bot]
d2c545620b build(deps): bump core-js from 3.20.3 to 3.21.0 in /website/client (#13838)
Bumps [core-js](https://github.com/zloirock/core-js) from 3.20.3 to 3.21.0.
- [Release notes](https://github.com/zloirock/core-js/releases)
- [Changelog](https://github.com/zloirock/core-js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/zloirock/core-js/compare/v3.20.3...v3.21.0)

---
updated-dependencies:
- dependency-name: core-js
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-14 14:49:28 -06:00
dependabot[bot]
c7c89255d8 build(deps): bump @storybook/addon-links in /website/client (#13831)
Bumps [@storybook/addon-links](https://github.com/storybookjs/storybook/tree/HEAD/addons/links) from 6.4.17 to 6.4.18.
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v6.4.18/addons/links)

---
updated-dependencies:
- dependency-name: "@storybook/addon-links"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-14 14:49:17 -06:00
dependabot[bot]
f3fc8bd031 build(deps): bump simple-get from 3.1.0 to 3.1.1 (#13840)
Bumps [simple-get](https://github.com/feross/simple-get) from 3.1.0 to 3.1.1.
- [Release notes](https://github.com/feross/simple-get/releases)
- [Commits](https://github.com/feross/simple-get/compare/v3.1.0...v3.1.1)

---
updated-dependencies:
- dependency-name: simple-get
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-14 14:49:10 -06:00
SabreCat
be5756469c 4.221.3 2022-02-14 14:48:09 -06:00
SabreCat
d9e2069995 fix(packages) new fix attempt from last known good 2022-02-14 14:37:26 -06:00
CuriousMagpie
77179d1ff1 Merge remote-tracking branch 'upstream/develop' into quest-refactors 2022-02-10 11:49:31 -05:00
dependabot[bot]
f3f46a42d1 build(deps): bump @babel/core from 7.16.12 to 7.17.2 (#13842)
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.16.12 to 7.17.2.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.17.2/packages/babel-core)

---
updated-dependencies:
- dependency-name: "@babel/core"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-10 11:43:07 -05:00
dependabot[bot]
b5fa4ff3d5 build(deps): bump tar from 4.4.8 to 4.4.19 in /website/client (#13815)
Bumps [tar](https://github.com/npm/node-tar) from 4.4.8 to 4.4.19.
- [Release notes](https://github.com/npm/node-tar/releases)
- [Changelog](https://github.com/npm/node-tar/blob/main/CHANGELOG.md)
- [Commits](https://github.com/npm/node-tar/compare/v4.4.8...v4.4.19)

---
updated-dependencies:
- dependency-name: tar
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-10 11:42:39 -05:00
dependabot[bot]
a2161c3bf3 build(deps): bump apidoc from 0.50.3 to 0.50.4 (#13828)
Bumps [apidoc](https://github.com/apidoc/apidoc) from 0.50.3 to 0.50.4.
- [Release notes](https://github.com/apidoc/apidoc/releases)
- [Changelog](https://github.com/apidoc/apidoc/blob/master/CHANGELOG.md)
- [Commits](https://github.com/apidoc/apidoc/compare/0.50.3...0.50.4)

---
updated-dependencies:
- dependency-name: apidoc
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-10 11:42:14 -05:00
dependabot[bot]
8efaf9b47f build(deps): bump core-js from 3.20.3 to 3.21.0 in /website/client (#13838)
Bumps [core-js](https://github.com/zloirock/core-js) from 3.20.3 to 3.21.0.
- [Release notes](https://github.com/zloirock/core-js/releases)
- [Changelog](https://github.com/zloirock/core-js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/zloirock/core-js/compare/v3.20.3...v3.21.0)

---
updated-dependencies:
- dependency-name: core-js
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-10 11:41:51 -05:00
dependabot[bot]
644e094f08 build(deps): bump @storybook/addon-links in /website/client (#13831)
Bumps [@storybook/addon-links](https://github.com/storybookjs/storybook/tree/HEAD/addons/links) from 6.4.17 to 6.4.18.
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v6.4.18/addons/links)

---
updated-dependencies:
- dependency-name: "@storybook/addon-links"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-10 11:41:22 -05:00
dependabot[bot]
e6efa523c1 build(deps): bump simple-get from 3.1.0 to 3.1.1 (#13840)
Bumps [simple-get](https://github.com/feross/simple-get) from 3.1.0 to 3.1.1.
- [Release notes](https://github.com/feross/simple-get/releases)
- [Commits](https://github.com/feross/simple-get/compare/v3.1.0...v3.1.1)

---
updated-dependencies:
- dependency-name: simple-get
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-10 11:41:01 -05:00
SabreCat
d8cbc2c4b2 4.221.1 2022-02-09 11:17:26 -06:00
SabreCat
81363feb26 revert Bailey datetime PR 2022-02-09 11:17:15 -06:00
SabreCat
2ac5ebe01a 4.221.0 2022-02-08 14:10:47 -06:00
Weblate
bfacfd2db8 Merge branch 'origin/develop' into Weblate. 2022-02-08 21:09:15 +01:00
dependabot[bot]
eb820a2902 build(deps): bump @storybook/addon-actions in /website/client (#13839)
Bumps [@storybook/addon-actions](https://github.com/storybookjs/storybook/tree/HEAD/addons/actions) from 6.4.17 to 6.4.18.
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v6.4.18/addons/actions)

---
updated-dependencies:
- dependency-name: "@storybook/addon-actions"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-08 12:14:42 -05:00
dependabot[bot]
efabd7ca15 build(deps): bump winston from 3.5.0 to 3.5.1 (#13830)
Bumps [winston](https://github.com/winstonjs/winston) from 3.5.0 to 3.5.1.
- [Release notes](https://github.com/winstonjs/winston/releases)
- [Changelog](https://github.com/winstonjs/winston/blob/master/CHANGELOG.md)
- [Commits](https://github.com/winstonjs/winston/compare/v3.5.0...v3.5.1)

---
updated-dependencies:
- dependency-name: winston
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-08 12:13:59 -05:00
dependabot[bot]
0266c46aee build(deps): bump stripe from 8.201.0 to 8.202.0 (#13829)
Bumps [stripe](https://github.com/stripe/stripe-node) from 8.201.0 to 8.202.0.
- [Release notes](https://github.com/stripe/stripe-node/releases)
- [Changelog](https://github.com/stripe/stripe-node/blob/master/CHANGELOG.md)
- [Commits](https://github.com/stripe/stripe-node/compare/v8.201.0...v8.202.0)

---
updated-dependencies:
- dependency-name: stripe
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-08 12:13:43 -05:00
dependabot[bot]
df3447afa6 build(deps): bump @storybook/addons in /website/client (#13824)
Bumps [@storybook/addons](https://github.com/storybookjs/storybook/tree/HEAD/lib/addons) from 6.4.17 to 6.4.18.
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v6.4.18/lib/addons)

---
updated-dependencies:
- dependency-name: "@storybook/addons"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-08 12:12:37 -05:00
dependabot[bot]
6dc46a664a build(deps): bump accepts from 1.3.7 to 1.3.8 (#13823)
Bumps [accepts](https://github.com/jshttp/accepts) from 1.3.7 to 1.3.8.
- [Release notes](https://github.com/jshttp/accepts/releases)
- [Changelog](https://github.com/jshttp/accepts/blob/master/HISTORY.md)
- [Commits](https://github.com/jshttp/accepts/compare/1.3.7...1.3.8)

---
updated-dependencies:
- dependency-name: accepts
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-08 12:12:19 -05:00
dependabot[bot]
7e7c85a419 build(deps): bump @babel/register from 7.16.9 to 7.17.0 (#13822)
Bumps [@babel/register](https://github.com/babel/babel/tree/HEAD/packages/babel-register) from 7.16.9 to 7.17.0.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.17.0/packages/babel-register)

---
updated-dependencies:
- dependency-name: "@babel/register"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-08 12:12:04 -05:00
SabreCat
9e740e7092 fix(heroes): still more indents 2022-02-08 11:10:39 -06:00
SabreCat
169634f205 fix(heroes): remove broken td and correct indentation 2022-02-08 11:09:05 -06:00
SabreCat
094cf899d8 fix(heroes): remove duplicated column 2022-02-08 10:39:11 -06:00
Weblate
30420210f5 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (365 of 365 strings)

Translated using Weblate (Ukrainian)

Currently translated at 80.4% (2039 of 2533 strings)

Translated using Weblate (Ukrainian)

Currently translated at 75.5% (96 of 127 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (186 of 186 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (675 of 675 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (675 of 675 strings)

Translated using Weblate (Japanese)

Currently translated at 93.2% (192 of 206 strings)

Translated using Weblate (Ukrainian)

Currently translated at 73.3% (143 of 195 strings)

Translated using Weblate (Ukrainian)

Currently translated at 98.1% (109 of 111 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (61 of 61 strings)

Translated using Weblate (Ukrainian)

Currently translated at 73.4% (158 of 215 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (365 of 365 strings)

Translated using Weblate (Ukrainian)

Currently translated at 80.6% (2038 of 2527 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (214 of 214 strings)

Translated using Weblate (Ukrainian)

Currently translated at 97.7% (174 of 178 strings)

Translated using Weblate (Ukrainian)

Currently translated at 50.0% (28 of 56 strings)

Translated using Weblate (Ukrainian)

Currently translated at 84.4% (630 of 746 strings)

Translated using Weblate (Ukrainian)

Currently translated at 75.5% (96 of 127 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (372 of 372 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (186 of 186 strings)

Translated using Weblate (Dutch)

Currently translated at 100.0% (128 of 128 strings)

Translated using Weblate (Japanese)

Currently translated at 91.2% (188 of 206 strings)

Translated using Weblate (Czech)

Currently translated at 92.6% (619 of 668 strings)

Translated using Weblate (German)

Currently translated at 100.0% (128 of 128 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (2527 of 2527 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (128 of 128 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (195 of 195 strings)

Translated using Weblate (Spanish)

Currently translated at 99.8% (2523 of 2527 strings)

Translated using Weblate (Spanish)

Currently translated at 99.0% (204 of 206 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (130 of 130 strings)

Translated using Weblate (Spanish)

Currently translated at 99.8% (2522 of 2527 strings)

Translated using Weblate (Spanish)

Currently translated at 97.5% (201 of 206 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (2527 of 2527 strings)

Translated using Weblate (Japanese)

Currently translated at 99.8% (2523 of 2527 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 99.2% (127 of 128 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 98.0% (202 of 206 strings)

Translated using Weblate (Ukrainian)

Currently translated at 98.1% (109 of 111 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (372 of 372 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (372 of 372 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (128 of 128 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (195 of 195 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (365 of 365 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (214 of 214 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (128 of 128 strings)

Translated using Weblate (Ukrainian)

Currently translated at 93.6% (104 of 111 strings)

Translated using Weblate (Ukrainian)

Currently translated at 94.6% (123 of 130 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (214 of 214 strings)

Translated using Weblate (Ukrainian)

Currently translated at 83.3% (622 of 746 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (372 of 372 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (128 of 128 strings)

Translated using Weblate (Ukrainian)

Currently translated at 92.7% (103 of 111 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (61 of 61 strings)

Translated using Weblate (Ukrainian)

Currently translated at 73.4% (158 of 215 strings)

Translated using Weblate (Ukrainian)

Currently translated at 73.4% (158 of 215 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (365 of 365 strings)

Translated using Weblate (Ukrainian)

Currently translated at 75.5% (96 of 127 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (128 of 128 strings)

Translated using Weblate (Danish)

Currently translated at 98.4% (126 of 128 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (206 of 206 strings)

Translated using Weblate (Japanese)

Currently translated at 90.7% (187 of 206 strings)

Translated using Weblate (Ukrainian)

Currently translated at 75.5% (96 of 127 strings)

Translated using Weblate (Ukrainian)

Currently translated at 75.5% (96 of 127 strings)

Translated using Weblate (German)

Currently translated at 100.0% (130 of 130 strings)

Translated using Weblate (German)

Currently translated at 99.8% (2523 of 2527 strings)

Translated using Weblate (Ukrainian)

Currently translated at 74.0% (94 of 127 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (130 of 130 strings)

Translated using Weblate (Ukrainian)

Currently translated at 72.0% (155 of 215 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (214 of 214 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (372 of 372 strings)

Translated using Weblate (Hebrew)

Currently translated at 66.7% (446 of 668 strings)

Translated using Weblate (Hebrew)

Currently translated at 62.5% (80 of 128 strings)

Translated using Weblate (Japanese)

Currently translated at 90.2% (186 of 206 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (195 of 195 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (130 of 130 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 99.6% (2519 of 2527 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (2527 of 2527 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (746 of 746 strings)

Co-authored-by: Asta Jensen <asta.raae@live.dk>
Co-authored-by: Jonas Nardes Braga <ionabi@gmail.com>
Co-authored-by: Kedr <sergeysamori.ua@gmail.com>
Co-authored-by: Maikel Roelofs <maikel_roelofs@live.nl>
Co-authored-by: Mara Dolichotis <marascherzer@gmail.com>
Co-authored-by: Martin Bartak <martin.bartak@gmail.com>
Co-authored-by: Nazar Paruna <nazarparuna@gmail.com>
Co-authored-by: Ofek yeshurun <ofek.yeshurun@gmail.com>
Co-authored-by: Pardinus <artemisadlg@gmail.com>
Co-authored-by: Sciuridae <sweetvshoney@163.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: mattya 226 <worldworld1114@gmail.com>
Co-authored-by: Володимир <wishreacher@gmail.com>
Co-authored-by: Естай <akseleu@yahoo.com>
Co-authored-by: そら <comi4work@gmail.com>
Co-authored-by: 张大鸣 <3063837415@qq.com>
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/da/
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/de/
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/es/
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/he/
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/nl/
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/cs/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/he/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ru/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/character/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/content/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/content/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/faq/uk/
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/es/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/ru/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/groups/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/limited/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/messages/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/npc/de/
Translate-URL: https://translate.habitica.com/projects/habitica/npc/es/
Translate-URL: https://translate.habitica.com/projects/habitica/npc/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/npc/ru/
Translate-URL: https://translate.habitica.com/projects/habitica/npc/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/pets/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/settings/es/
Translate-URL: https://translate.habitica.com/projects/habitica/settings/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/settings/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/settings/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/es/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/ru/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/uk/
Translation: Habitica/Achievements
Translation: Habitica/Backgrounds
Translation: Habitica/Character
Translation: Habitica/Communityguidelines
Translation: Habitica/Content
Translation: Habitica/Faq
Translation: Habitica/Front
Translation: Habitica/Gear
Translation: Habitica/Generic
Translation: Habitica/Groups
Translation: Habitica/Limited
Translation: Habitica/Messages
Translation: Habitica/Npc
Translation: Habitica/Pets
Translation: Habitica/Questscontent
Translation: Habitica/Settings
Translation: Habitica/Subscriber
2022-02-08 14:21:01 +01:00
SabreCat
fd4d139fc2 Merge remote-tracking branch 'CuriousMagpie/2022-02-backgrounds-armoire' into develop 2022-02-07 10:51:23 -06:00
Sabe Jones
a8859d51b1 fix(backgrounds): string syntax consistency 2022-02-07 10:49:18 -06:00
Alys
d464b98d9b add words to list of banned swear words - TRIGGER / CONTENT WARNING: assault, slurs, swearwords, etc 2022-02-06 15:50:25 +10:00
Rarysson Guilherme
492824ac90 Add automatic year detection on appFooter 2022-02-05 12:26:17 -03:00
CuriousMagpie
55443ecc23 revert files to develop 2022-02-03 12:10:16 -05:00
CuriousMagpie
98b43c681a use spread operator to combine multiple quest objects into one 2022-02-02 16:48:48 -05:00
CuriousMagpie
40f8c049ab concatenate quest constant arrays into a single quests variable 2022-02-02 16:25:28 -05:00
CuriousMagpie
b5a7b58b57 Merge remote-tracking branch 'upstream/develop' into quest-refactors 2022-02-02 16:24:42 -05:00
Weblate
ff806ec491 Merge branch 'origin/develop' into Weblate. 2022-02-01 22:34:50 +01:00
SabreCat
ca4df96902 Merge branch 'release' into develop 2022-02-01 15:29:35 -06:00
SabreCat
f43a12acb2 4.220.0 2022-02-01 15:22:45 -06:00
SabreCat
82d0251fed fix(event): extend 24h because i derped 2022-02-01 15:21:53 -06:00
SabreCat
9e5948df64 chore(sprites): compile 2022-02-01 15:21:03 -06:00
SabreCat
269c420bfa fix(zodiac): tiger cubs lol 2022-02-01 15:20:08 -06:00
SabreCat
83c2e1774b Merge remote-tracking branch 'CuriousMagpie/zodiac-zookeeper' into release 2022-02-01 14:30:02 -06:00
SabreCat
2093932af6 Merge remote-tracking branch 'CuriousMagpie/2022-02-subscriber-items' into release 2022-02-01 14:29:28 -06:00
SabreCat
b383574438 fix(event): it's 2022 now, lol 2022-02-01 14:27:08 -06:00
SabreCat
9a9449e001 chore(deps): update package lock 2022-02-01 14:25:16 -06:00
Weblate
91718fbe3f Translated using Weblate (Italian)
Currently translated at 100.0% (2523 of 2523 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (2523 of 2523 strings)

Co-authored-by: Chap <chalda82+nogravatar@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: Естай <akseleu@yahoo.com>
Translate-URL: https://translate.habitica.com/projects/habitica/gear/it/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/ru/
Translation: Habitica/Gear
2022-02-01 11:48:26 +01:00
SabreCat
844e0d7cf4 fix(dependencies): add moment-timezone 2022-01-31 22:19:03 -06:00
SabreCat
c8e949a425 Merge branch 'release' into develop 2022-01-31 19:17:26 -06:00
SabreCat
e2450b69b2 4.219.1 2022-01-31 19:17:15 -06:00
SabreCat
2ae36f64ad fix(birthday): market cake 2022-01-31 19:17:08 -06:00
SabreCat
fb73ec3ad9 Merge remote-tracking branch 'Lyqst/news-post-datetime' into develop 2022-01-31 15:41:33 -06:00
SabreCat
e7dc233fc9 Merge remote-tracking branch 'origin/feature/sprites-cdn' into develop 2022-01-31 15:40:27 -06:00
Phillip Thelen
6e43d4dc79 Add Transaction log for gem and hourglass changes (#13589)
* Log all gem transactions to database

* Also store hourglass transactions

* Fix tests

* Display transaction history in hall of heroes for admins

* add tests to new API call

* hide transaction settings tab for non admins

* fix(lint): remove console

* fix(lint): various automatic corrections

* fix(transactions): use enum expected pluralizations

* fix api unit tests

* fix lint

* fix failing test

* Fix minor inconsistencies

* Log all gem transactions to database

* Also store hourglass transactions

* Fix tests

* Display transaction history in hall of heroes for admins

* add tests to new API call

* hide transaction settings tab for non admins

* fix(lint): remove console

* fix(lint): various automatic corrections

* fix(transactions): use enum expected pluralizations

* fix api unit tests

* fix lint

* Fix minor inconsistencies

Co-authored-by: Sabe Jones <sabrecat@gmail.com>
2022-01-31 15:36:15 -06:00
Vanathi G
5beb29305d Fix selection highlight in avatar editor (#13746) 2022-01-31 15:35:17 -06:00
Aleksander Pentchev
b3925d6c7a #13731 - Changed account reset button pop-up text (#13751)
Co-authored-by: Aleksander Pentchev <aleksander.pentchev@roche.com>
2022-01-31 15:33:28 -06:00
Natalie L
de70ad65f5 Update Orb of Rebirth to ignore completed todos (#13773)
* added logic to exclude completed tasks from having task.value set to 0

* logic refinement

* fix(rebirth): complete D

Co-authored-by: SabreCat <sabe@habitica.com>
2022-01-31 15:33:11 -06:00
SabreCat
f3cd461145 4.219.0 2022-01-31 15:23:16 -06:00
Weblate
3a28fd58ef Translated using Weblate (Polish)
Currently translated at 69.1% (1744 of 2523 strings)

Co-authored-by: Sabe Jones <sabe@habitica.com>
Translate-URL: https://translate.habitica.com/projects/habitica/gear/pl/
Translation: Habitica/Gear
2022-01-31 22:21:54 +01:00
Weblate
bfa3838069 Merge branch 'origin/develop' into Weblate. 2022-01-31 22:07:27 +01:00
SabreCat
de477ebb4a Revert "Revert "Revert "Prerequisites to removing Facebook authentication (#13683)"""
This reverts commit e3ffd7acbc.
2022-01-31 14:52:22 -06:00
dependabot[bot]
a2f50815d8 build(deps): bump @storybook/addons in /website/client (#13809)
Bumps [@storybook/addons](https://github.com/storybookjs/storybook/tree/HEAD/lib/addons) from 6.4.14 to 6.4.17.
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v6.4.17/lib/addons)

---
updated-dependencies:
- dependency-name: "@storybook/addons"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-31 14:03:03 -05:00
dependabot[bot]
f647f8080d build(deps): bump @storybook/addon-links in /website/client (#13802)
Bumps [@storybook/addon-links](https://github.com/storybookjs/storybook/tree/HEAD/addons/links) from 6.4.14 to 6.4.17.
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v6.4.17/addons/links)

---
updated-dependencies:
- dependency-name: "@storybook/addon-links"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-31 12:30:37 -05:00
dependabot[bot]
14eaeb256e build(deps): bump winston from 3.4.0 to 3.5.0 (#13811)
Bumps [winston](https://github.com/winstonjs/winston) from 3.4.0 to 3.5.0.
- [Release notes](https://github.com/winstonjs/winston/releases)
- [Changelog](https://github.com/winstonjs/winston/blob/master/CHANGELOG.md)
- [Commits](https://github.com/winstonjs/winston/compare/v3.4.0...v3.5.0)

---
updated-dependencies:
- dependency-name: winston
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-31 12:28:15 -05:00
dependabot[bot]
ec83a7e213 build(deps): bump amplitude-js from 8.16.0 to 8.16.1 in /website/client (#13810)
Bumps [amplitude-js](https://github.com/amplitude/amplitude-javascript) from 8.16.0 to 8.16.1.
- [Release notes](https://github.com/amplitude/amplitude-javascript/releases)
- [Changelog](https://github.com/amplitude/Amplitude-JavaScript/blob/main/CHANGELOG.md)
- [Commits](https://github.com/amplitude/amplitude-javascript/compare/v8.16.0...v8.16.1)

---
updated-dependencies:
- dependency-name: amplitude-js
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-31 12:27:44 -05:00
dependabot[bot]
cd57289bc8 build(deps): bump stripe from 8.199.0 to 8.201.0 (#13807)
Bumps [stripe](https://github.com/stripe/stripe-node) from 8.199.0 to 8.201.0.
- [Release notes](https://github.com/stripe/stripe-node/releases)
- [Changelog](https://github.com/stripe/stripe-node/blob/master/CHANGELOG.md)
- [Commits](https://github.com/stripe/stripe-node/compare/v8.199.0...v8.201.0)

---
updated-dependencies:
- dependency-name: stripe
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-31 12:27:07 -05:00
dependabot[bot]
94c7b0d62c build(deps): bump chai from 4.3.4 to 4.3.6 in /website/client (#13806)
Bumps [chai](https://github.com/chaijs/chai) from 4.3.4 to 4.3.6.
- [Release notes](https://github.com/chaijs/chai/releases)
- [Changelog](https://github.com/chaijs/chai/blob/4.x.x/History.md)
- [Commits](https://github.com/chaijs/chai/compare/v4.3.4...v4.3.6)

---
updated-dependencies:
- dependency-name: chai
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-31 12:26:45 -05:00
dependabot[bot]
57580caf60 build(deps-dev): bump chai from 4.3.4 to 4.3.6 (#13805)
Bumps [chai](https://github.com/chaijs/chai) from 4.3.4 to 4.3.6.
- [Release notes](https://github.com/chaijs/chai/releases)
- [Changelog](https://github.com/chaijs/chai/blob/4.x.x/History.md)
- [Commits](https://github.com/chaijs/chai/compare/v4.3.4...v4.3.6)

---
updated-dependencies:
- dependency-name: chai
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-31 12:26:31 -05:00
SabreCat
ba9a65c500 chore(sprites): compile 2022-01-31 10:58:02 -06:00
SabreCat
5937635b3f feat(event): award to new users today
Also correct filename of 2022 migration
2022-01-31 10:57:49 -06:00
SabreCat
0a264c0912 Merge remote-tracking branch 'CuriousMagpie/2022-birthday-bash' into develop 2022-01-31 10:09:50 -06:00
dependabot[bot]
1bdea0dda3 build(deps): bump @storybook/addon-actions in /website/client (#13814)
Bumps [@storybook/addon-actions](https://github.com/storybookjs/storybook/tree/HEAD/addons/actions) from 6.4.14 to 6.4.17.
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v6.4.17/addons/actions)

---
updated-dependencies:
- dependency-name: "@storybook/addon-actions"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-31 10:05:52 -06:00
Weblate
ca9bc00396 Translated using Weblate (Portuguese (Brazil))
Currently translated at 98.5% (211 of 214 strings)

Translated using Weblate (Romanian)

Currently translated at 100.0% (125 of 125 strings)

Translated using Weblate (Romanian)

Currently translated at 100.0% (125 of 125 strings)

Translated using Weblate (Romanian)

Currently translated at 100.0% (125 of 125 strings)

Translated using Weblate (Romanian)

Currently translated at 64.8% (81 of 125 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 99.0% (213 of 215 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (127 of 127 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (215 of 215 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (179 of 179 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (668 of 668 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (668 of 668 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 98.1% (210 of 214 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (194 of 194 strings)

Translated using Weblate (Vietnamese)

Currently translated at 100.0% (98 of 98 strings)

Translated using Weblate (Vietnamese)

Currently translated at 100.0% (179 of 179 strings)

Translated using Weblate (French)

Currently translated at 100.0% (746 of 746 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (179 of 179 strings)

Translated using Weblate (German)

Currently translated at 100.0% (179 of 179 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (179 of 179 strings)

Translated using Weblate (Dutch)

Currently translated at 100.0% (215 of 215 strings)

Translated using Weblate (French)

Currently translated at 100.0% (365 of 365 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 98.1% (210 of 214 strings)

Translated using Weblate (French)

Currently translated at 100.0% (56 of 56 strings)

Translated using Weblate (French)

Currently translated at 100.0% (179 of 179 strings)

Translated using Weblate (French)

Currently translated at 100.0% (746 of 746 strings)

Translated using Weblate (Vietnamese)

Currently translated at 81.9% (77 of 94 strings)

Translated using Weblate (Vietnamese)

Currently translated at 80.8% (101 of 125 strings)

Translated using Weblate (French)

Currently translated at 100.0% (365 of 365 strings)

Translated using Weblate (French)

Currently translated at 100.0% (2521 of 2521 strings)

Translated using Weblate (French)

Currently translated at 100.0% (746 of 746 strings)

Translated using Weblate (French)

Currently translated at 100.0% (372 of 372 strings)

Translated using Weblate (French)

Currently translated at 100.0% (668 of 668 strings)

Translated using Weblate (French)

Currently translated at 100.0% (186 of 186 strings)

Translated using Weblate (French)

Currently translated at 100.0% (2521 of 2521 strings)

Translated using Weblate (Galician)

Currently translated at 100.0% (98 of 98 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (134 of 134 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (56 of 56 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (194 of 194 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (215 of 215 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (214 of 214 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (178 of 178 strings)

Translated using Weblate (Spanish)

Currently translated at 71.4% (40 of 56 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (746 of 746 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (127 of 127 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (372 of 372 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (2521 of 2521 strings)

Translated using Weblate (Spanish)

Currently translated at 98.4% (125 of 127 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (98 of 98 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (668 of 668 strings)

Translated using Weblate (Spanish)

Currently translated at 99.6% (2513 of 2521 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 98.1% (210 of 214 strings)

Translated using Weblate (French)

Currently translated at 100.0% (365 of 365 strings)

Translated using Weblate (French)

Currently translated at 100.0% (178 of 178 strings)

Translated using Weblate (Dutch)

Currently translated at 98.3% (657 of 668 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 96.1% (2424 of 2521 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 95.9% (2419 of 2521 strings)

Translated using Weblate (Ukrainian)

Currently translated at 95.3% (123 of 129 strings)

Translated using Weblate (Ukrainian)

Currently translated at 95.3% (123 of 129 strings)

Translated using Weblate (Ukrainian)

Currently translated at 95.3% (123 of 129 strings)

Translated using Weblate (Turkish)

Currently translated at 60.8% (118 of 194 strings)

Translated using Weblate (Ukrainian)

Currently translated at 95.3% (123 of 129 strings)

Translated using Weblate (Turkish)

Currently translated at 68.1% (1718 of 2521 strings)

Translated using Weblate (Turkish)

Currently translated at 99.4% (185 of 186 strings)

Translated using Weblate (Turkish)

Currently translated at 69.3% (463 of 668 strings)

Translated using Weblate (Turkish)

Currently translated at 88.0% (110 of 125 strings)

Translated using Weblate (Ukrainian)

Currently translated at 95.3% (123 of 129 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 98.1% (210 of 214 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 98.1% (210 of 214 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (668 of 668 strings)

Translated using Weblate (Ukrainian)

Currently translated at 95.3% (123 of 129 strings)

Translated using Weblate (Ukrainian)

Currently translated at 95.3% (123 of 129 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (365 of 365 strings)

Translated using Weblate (Ukrainian)

Currently translated at 95.3% (123 of 129 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (214 of 214 strings)

Translated using Weblate (Vietnamese)

Currently translated at 82.4% (551 of 668 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (668 of 668 strings)

Translated using Weblate (Vietnamese)

Currently translated at 94.4% (120 of 127 strings)

Translated using Weblate (Japanese)

Currently translated at 99.7% (666 of 668 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (746 of 746 strings)

Translated using Weblate (Japanese)

Currently translated at 99.4% (664 of 668 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (2521 of 2521 strings)

Translated using Weblate (Chinese (Traditional))

Currently translated at 99.1% (662 of 668 strings)

Translated using Weblate (Japanese)

Currently translated at 99.1% (662 of 668 strings)

Translated using Weblate (German)

Currently translated at 100.0% (194 of 194 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (2521 of 2521 strings)

Translated using Weblate (German)

Currently translated at 100.0% (2521 of 2521 strings)

Translated using Weblate (German)

Currently translated at 100.0% (668 of 668 strings)

Translated using Weblate (German)

Currently translated at 99.2% (663 of 668 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (365 of 365 strings)

Translated using Weblate (Vietnamese)

Currently translated at 94.4% (120 of 127 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (186 of 186 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (2521 of 2521 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (178 of 178 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (8 of 8 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (2521 of 2521 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (15 of 15 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (668 of 668 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (8 of 8 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (8 of 8 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (194 of 194 strings)

Translated using Weblate (Japanese)

Currently translated at 99.9% (2519 of 2521 strings)

Translated using Weblate (Italian)

Currently translated at 99.4% (2506 of 2521 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (365 of 365 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (127 of 127 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (365 of 365 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (127 of 127 strings)

Translated using Weblate (Vietnamese)

Currently translated at 94.4% (120 of 127 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (194 of 194 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (194 of 194 strings)

Translated using Weblate (French)

Currently translated at 100.0% (194 of 194 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 99.8% (2518 of 2521 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (2521 of 2521 strings)

Translated using Weblate (Japanese)

Currently translated at 99.8% (2517 of 2521 strings)

Translated using Weblate (French)

Currently translated at 100.0% (2521 of 2521 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 98.1% (210 of 214 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (214 of 214 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (186 of 186 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (668 of 668 strings)

Translated using Weblate (French)

Currently translated at 100.0% (668 of 668 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (125 of 125 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 99.6% (2513 of 2521 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 98.8% (2491 of 2521 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 98.6% (2488 of 2521 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 99.5% (214 of 215 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 98.6% (2488 of 2521 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 99.0% (213 of 215 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 98.4% (2482 of 2521 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 98.1% (210 of 214 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 95.3% (204 of 214 strings)

Translated using Weblate (Swedish)

Currently translated at 100.0% (186 of 186 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 99.4% (664 of 668 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 99.4% (664 of 668 strings)

Translated using Weblate (Chinese (Traditional))

Currently translated at 98.9% (661 of 668 strings)

Translated using Weblate (Ukrainian)

Currently translated at 72.0% (155 of 215 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (365 of 365 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (668 of 668 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (186 of 186 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (365 of 365 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (186 of 186 strings)

Translated using Weblate (Russian)

Currently translated at 99.1% (662 of 668 strings)

Co-authored-by: Alice Scalamandrè <alice.scalamandre@me.com>
Co-authored-by: Benoit Hetru <me+hbtc@gahanka.net>
Co-authored-by: Bo-Hsiang Chen <rubybhchen@gmail.com>
Co-authored-by: Brici Sebastian Lucian <bricisebastian@gmail.com>
Co-authored-by: Can <uzuner@mailbox.org>
Co-authored-by: Chap <chalda82+nogravatar@gmail.com>
Co-authored-by: Delta S <deseji93@gmail.com>
Co-authored-by: Flower Petal <flower.petal1618@gmail.com>
Co-authored-by: Jerry Chen <minecjraft@qq.com>
Co-authored-by: John Forcolin <gianluca.forcolin@hotmail.it>
Co-authored-by: Jonas Nardes Braga <ionabi@gmail.com>
Co-authored-by: Maikel Roelofs <maikel_roelofs@live.nl>
Co-authored-by: Mara Dolichotis <marascherzer@gmail.com>
Co-authored-by: Moa Davou <moa.davou99@gmail.com>
Co-authored-by: Nazar Paruna <nazarparuna@gmail.com>
Co-authored-by: PenariaToji <tojipeh@gmail.com>
Co-authored-by: Sciuridae <sweetvshoney@163.com>
Co-authored-by: Võ Trần Nhã Linh <vtrnnhlinh@outlook.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: blacksheep47 <1760906326@qq.com>
Co-authored-by: mattya 226 <worldworld1114@gmail.com>
Co-authored-by: Естай <akseleu@yahoo.com>
Co-authored-by: そら <comi4work@gmail.com>
Co-authored-by: 陈 <494887366@qq.com>
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/ro/
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/tr/
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/vi/
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/de/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/es/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/it/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/nl/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ru/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/tr/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/vi/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/zh_Hant/
Translate-URL: https://translate.habitica.com/projects/habitica/challenge/es/
Translate-URL: https://translate.habitica.com/projects/habitica/challenge/gl/
Translate-URL: https://translate.habitica.com/projects/habitica/challenge/vi/
Translate-URL: https://translate.habitica.com/projects/habitica/character/sv/
Translate-URL: https://translate.habitica.com/projects/habitica/character/tr/
Translate-URL: https://translate.habitica.com/projects/habitica/character/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/es/
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/vi/
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/content/es/
Translate-URL: https://translate.habitica.com/projects/habitica/content/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/death/it/
Translate-URL: https://translate.habitica.com/projects/habitica/faq/es/
Translate-URL: https://translate.habitica.com/projects/habitica/faq/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/front/de/
Translate-URL: https://translate.habitica.com/projects/habitica/front/es/
Translate-URL: https://translate.habitica.com/projects/habitica/front/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/front/it/
Translate-URL: https://translate.habitica.com/projects/habitica/front/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/front/ru/
Translate-URL: https://translate.habitica.com/projects/habitica/front/vi/
Translate-URL: https://translate.habitica.com/projects/habitica/front/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/de/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/es/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/it/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/ru/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/tr/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/es/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/ru/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/groups/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/groups/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/groups/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/groups/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/inventory/it/
Translate-URL: https://translate.habitica.com/projects/habitica/limited/es/
Translate-URL: https://translate.habitica.com/projects/habitica/limited/nl/
Translate-URL: https://translate.habitica.com/projects/habitica/limited/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/limited/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/limited/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/npc/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/quests/vi/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/es/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/settings/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/settings/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/settings/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/de/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/es/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/it/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/ru/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/tr/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/es/
Translation: Habitica/Achievements
Translation: Habitica/Backgrounds
Translation: Habitica/Challenge
Translation: Habitica/Character
Translation: Habitica/Communityguidelines
Translation: Habitica/Content
Translation: Habitica/Death
Translation: Habitica/Faq
Translation: Habitica/Front
Translation: Habitica/Gear
Translation: Habitica/Generic
Translation: Habitica/Groups
Translation: Habitica/Inventory
Translation: Habitica/Limited
Translation: Habitica/Npc
Translation: Habitica/Quests
Translation: Habitica/Questscontent
Translation: Habitica/Settings
Translation: Habitica/Subscriber
Translation: Habitica/Tasks
2022-01-31 15:58:11 +01:00
CuriousMagpie
f2f3a1f0eb added Zodiac Zookeeper achievement 2022-01-28 17:14:50 -05:00
SabreCat
86ba6055b9 chore(submodule): pull habitica-images 2022-01-28 14:44:19 -06:00
CuriousMagpie
e717880f64 added 2022 birthday bash robes & updated migration script 2022-01-28 15:05:04 -05:00
CuriousMagpie
006aad76d2 first pass on refactoring 2022-01-27 16:59:29 -05:00
SabreCat
1a76ad5dca fix(news): use Moment timezone package 2022-01-27 15:54:03 -06:00
SabreCat
988f594298 Merge branch 'develop' into news-post-datetime 2022-01-27 15:34:18 -06:00
SabreCat
e3ffd7acbc Revert "Revert "Prerequisites to removing Facebook authentication (#13683)""
This reverts commit b3c466ad5a.
2022-01-27 14:50:04 -06:00
CuriousMagpie
1a4af6d6bd Merge remote-tracking branch 'upstream/develop' into quest-refactors 2022-01-27 14:57:41 -05:00
CuriousMagpie
a0b0d1d855 submodule commit 2022-01-27 14:53:52 -05:00
CuriousMagpie
4d18169ebc added set name to violetFloppyHat 2022-01-27 14:38:09 -05:00
Natalie L
84fcb1d4ad Merge branch 'HabitRPG:develop' into 2022-02-backgrounds-armoire 2022-01-27 14:35:49 -05:00
CuriousMagpie
a32bde3ec2 fix typo 2022-01-27 13:02:16 -05:00
CuriousMagpie
bd9911fe61 updated armoire item strings 2022-01-27 12:58:53 -05:00
CuriousMagpie
75e2261e3e added Violet Loungewear Set information to hat, suit, and pillow 2022-01-27 11:39:08 -05:00
CuriousMagpie
73a2552b30 subproject commit 2022-01-26 17:07:24 -05:00
CuriousMagpie
a23522d516 fix typo 2022-01-26 17:02:46 -05:00
CuriousMagpie
fce53898d8 2022-02 armoire items -- missing description strings & stats 2022-01-26 16:57:45 -05:00
CuriousMagpie
8637d55d2b changed a few stray 2021s to 2022 2022-01-26 16:45:54 -05:00
CuriousMagpie
412f9b7898 fix typo in string 2022-01-26 16:40:48 -05:00
CuriousMagpie
40588f5ca4 2022-02 backgrounds 2022-01-26 16:33:57 -05:00
CuriousMagpie
7465c8e4ed subproject commit 2022-01-26 16:15:56 -05:00
Natalie L
aedbc10630 Merge branch 'HabitRPG:develop' into 2022-02-subscriber-items 2022-01-26 15:36:27 -05:00
CuriousMagpie
306241fa49 subproject commit 2022-01-26 13:06:29 -05:00
dependabot[bot]
e687140cfc build(deps): bump @storybook/addons in /website/client (#13789)
Bumps [@storybook/addons](https://github.com/storybookjs/storybook/tree/HEAD/lib/addons) from 6.4.13 to 6.4.14.
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v6.4.14/lib/addons)

---
updated-dependencies:
- dependency-name: "@storybook/addons"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-26 11:20:34 -05:00
dependabot[bot]
c4d0f82673 build(deps): bump axios from 0.24.0 to 0.25.0 in /website/client (#13790)
Bumps [axios](https://github.com/axios/axios) from 0.24.0 to 0.25.0.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/master/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v0.24.0...v0.25.0)

---
updated-dependencies:
- dependency-name: axios
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-26 11:20:11 -05:00
CuriousMagpie
0db8c4e2a3 add 2022-02 subscriber items 2022-01-25 17:32:31 -05:00
SabreCat
620801ef61 Revert "build(deps): bump helmet from 4.6.0 to 5.0.1 (#13735)"
This reverts commit dcffd8b032.
2022-01-25 15:37:09 -06:00
SabreCat
d8c6237173 Revert "build(deps): bump helmet from 5.0.1 to 5.0.2 (#13787)"
This reverts commit 62a7c4bc28.
2022-01-25 15:35:51 -06:00
dependabot[bot]
755ff8d22d build(deps): bump @storybook/addon-actions in /website/client (#13785)
Bumps [@storybook/addon-actions](https://github.com/storybookjs/storybook/tree/HEAD/addons/actions) from 6.4.13 to 6.4.14.
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v6.4.14/addons/actions)

---
updated-dependencies:
- dependency-name: "@storybook/addon-actions"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-25 13:12:55 -05:00
dependabot[bot]
e4e3eb4376 build(deps): bump @babel/preset-env from 7.16.8 to 7.16.11 (#13784)
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.16.8 to 7.16.11.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.16.11/packages/babel-preset-env)

---
updated-dependencies:
- dependency-name: "@babel/preset-env"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-25 13:11:40 -05:00
dependabot[bot]
e0c75e6afd build(deps): bump node-fetch from 2.6.1 to 2.6.7 (#13794)
Bumps [node-fetch](https://github.com/node-fetch/node-fetch) from 2.6.1 to 2.6.7.
- [Release notes](https://github.com/node-fetch/node-fetch/releases)
- [Commits](https://github.com/node-fetch/node-fetch/compare/v2.6.1...v2.6.7)

---
updated-dependencies:
- dependency-name: node-fetch
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-25 13:09:56 -05:00
dependabot[bot]
2ec1fc20db build(deps): bump amplitude-js from 8.15.0 to 8.16.0 in /website/client (#13791)
Bumps [amplitude-js](https://github.com/amplitude/amplitude-javascript) from 8.15.0 to 8.16.0.
- [Release notes](https://github.com/amplitude/amplitude-javascript/releases)
- [Changelog](https://github.com/amplitude/Amplitude-JavaScript/blob/main/CHANGELOG.md)
- [Commits](https://github.com/amplitude/amplitude-javascript/compare/v8.15.0...v8.16.0)

---
updated-dependencies:
- dependency-name: amplitude-js
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-25 13:09:25 -05:00
dependabot[bot]
62a7c4bc28 build(deps): bump helmet from 5.0.1 to 5.0.2 (#13787)
Bumps [helmet](https://github.com/helmetjs/helmet) from 5.0.1 to 5.0.2.
- [Release notes](https://github.com/helmetjs/helmet/releases)
- [Changelog](https://github.com/helmetjs/helmet/blob/main/CHANGELOG.md)
- [Commits](https://github.com/helmetjs/helmet/compare/v5.0.1...v5.0.2)

---
updated-dependencies:
- dependency-name: helmet
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-25 12:59:44 -05:00
dependabot[bot]
d2e1265b62 build(deps-dev): bump axios from 0.24.0 to 0.25.0 (#13786)
Bumps [axios](https://github.com/axios/axios) from 0.24.0 to 0.25.0.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/master/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v0.24.0...v0.25.0)

---
updated-dependencies:
- dependency-name: axios
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-25 12:59:22 -05:00
dependabot[bot]
92e8e24bfc build(deps): bump @storybook/addon-links in /website/client (#13783)
Bumps [@storybook/addon-links](https://github.com/storybookjs/storybook/tree/HEAD/addons/links) from 6.4.13 to 6.4.14.
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v6.4.14/addons/links)

---
updated-dependencies:
- dependency-name: "@storybook/addon-links"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-25 12:43:40 -05:00
dependabot[bot]
cc79902900 build(deps): bump @babel/core from 7.16.7 to 7.16.12 (#13782)
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.16.7 to 7.16.12.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.16.12/packages/babel-core)

---
updated-dependencies:
- dependency-name: "@babel/core"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-25 12:43:16 -05:00
dependabot[bot]
7358edb98e build(deps): bump superagent from 7.0.2 to 7.1.1 (#13780)
Bumps [superagent](https://github.com/visionmedia/superagent) from 7.0.2 to 7.1.1.
- [Release notes](https://github.com/visionmedia/superagent/releases)
- [Changelog](https://github.com/visionmedia/superagent/blob/master/HISTORY.md)
- [Commits](https://github.com/visionmedia/superagent/compare/v7.0.2...v7.1.1)

---
updated-dependencies:
- dependency-name: superagent
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-25 12:39:43 -05:00
dependabot[bot]
a0860e62e8 build(deps): bump nanoid from 3.1.30 to 3.2.0 in /website/client (#13778)
Bumps [nanoid](https://github.com/ai/nanoid) from 3.1.30 to 3.2.0.
- [Release notes](https://github.com/ai/nanoid/releases)
- [Changelog](https://github.com/ai/nanoid/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ai/nanoid/compare/3.1.30...3.2.0)

---
updated-dependencies:
- dependency-name: nanoid
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-25 12:30:47 -05:00
SabreCat
b3c466ad5a Revert "Prerequisites to removing Facebook authentication (#13683)"
This reverts commit 1177ad8b8c.
2022-01-25 09:30:37 -06:00
SabreCat
9a6b05fe67 Revert "build(deps): bump redis from 3.1.2 to 4.0.2 (#13757)"
This reverts commit 8e93ddf06c.
2022-01-25 08:24:04 -06:00
Phillip Thelen
1177ad8b8c Prerequisites to removing Facebook authentication (#13683)
* Don't sign in user when trying to connect a social account that was already created

* Log social users into matching local auth accounts

If the social account has an email that already exists as a local user, instead of creating a new account log them into their account and add the social auth to the account

* If possible set local authentication email for social users

* Allow password reset emails to be sent to social login users

* lint fixes

* Fix issues and tests

* fix tests

* Fix lint error.
2022-01-21 15:15:58 -06:00
abigley
d11810677c Fixed issue with mystery sets, pets, and mounts staying pinned in the rewards column after purchasing. Added logic to look up item info and remove from pinned list by path. (#13701) 2022-01-21 15:10:50 -06:00
SabreCat
f01c352969 fix(chat): Enter key improvement by @maryketa 2022-01-21 14:55:34 -06:00
CuriousMagpie
3fb1241010 Merge remote-tracking branch 'upstream/develop' into quest-refactors 2022-01-21 11:55:07 -05:00
dependabot[bot]
9f0747c36f build(deps): bump stripe from 8.195.0 to 8.199.0 (#13776)
Bumps [stripe](https://github.com/stripe/stripe-node) from 8.195.0 to 8.199.0.
- [Release notes](https://github.com/stripe/stripe-node/releases)
- [Changelog](https://github.com/stripe/stripe-node/blob/master/CHANGELOG.md)
- [Commits](https://github.com/stripe/stripe-node/compare/v8.195.0...v8.199.0)

---
updated-dependencies:
- dependency-name: stripe
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-20 16:11:30 -06:00
dependabot[bot]
dcffd8b032 build(deps): bump helmet from 4.6.0 to 5.0.1 (#13735)
Bumps [helmet](https://github.com/helmetjs/helmet) from 4.6.0 to 5.0.1.
- [Release notes](https://github.com/helmetjs/helmet/releases)
- [Changelog](https://github.com/helmetjs/helmet/blob/main/CHANGELOG.md)
- [Commits](https://github.com/helmetjs/helmet/compare/v4.6.0...v5.0.1)

---
updated-dependencies:
- dependency-name: helmet
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-20 15:38:43 -06:00
dependabot[bot]
7ccc1221da build(deps): bump superagent from 6.1.0 to 7.0.2 (#13752)
Bumps [superagent](https://github.com/visionmedia/superagent) from 6.1.0 to 7.0.2.
- [Release notes](https://github.com/visionmedia/superagent/releases)
- [Changelog](https://github.com/visionmedia/superagent/blob/master/HISTORY.md)
- [Commits](https://github.com/visionmedia/superagent/compare/v6.1.0...v7.0.2)

---
updated-dependencies:
- dependency-name: superagent
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-20 15:31:49 -06:00
dependabot[bot]
8e93ddf06c build(deps): bump redis from 3.1.2 to 4.0.2 (#13757)
Bumps [redis](https://github.com/redis/node-redis) from 3.1.2 to 4.0.2.
- [Release notes](https://github.com/redis/node-redis/releases)
- [Changelog](https://github.com/redis/node-redis/blob/master/CHANGELOG.md)
- [Commits](https://github.com/redis/node-redis/commits)

---
updated-dependencies:
- dependency-name: redis
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-20 15:30:23 -06:00
dependabot[bot]
cfc35f62a8 build(deps): bump @storybook/addon-actions in /website/client (#13768)
Bumps [@storybook/addon-actions](https://github.com/storybookjs/storybook/tree/HEAD/addons/actions) from 6.4.10 to 6.4.13.
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v6.4.13/addons/actions)

---
updated-dependencies:
- dependency-name: "@storybook/addon-actions"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-20 15:27:52 -06:00
CuriousMagpie
f1d70dec18 Merge remote-tracking branch 'upstream/develop' into quest-refactors 2022-01-19 16:59:08 -05:00
dependabot[bot]
356e737f4d build(deps): bump @babel/preset-env from 7.16.7 to 7.16.8 (#13766)
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.16.7 to 7.16.8.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.16.8/packages/babel-preset-env)

---
updated-dependencies:
- dependency-name: "@babel/preset-env"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-19 10:49:49 -05:00
dependabot[bot]
a6010e7097 build(deps): bump @storybook/addons in /website/client (#13756)
Bumps [@storybook/addons](https://github.com/storybookjs/storybook/tree/HEAD/lib/addons) from 6.4.10 to 6.4.13.
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v6.4.13/lib/addons)

---
updated-dependencies:
- dependency-name: "@storybook/addons"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-19 10:49:03 -05:00
dependabot[bot]
0fe40e6ba8 build(deps): bump core-js from 3.20.2 to 3.20.3 in /website/client (#13764)
Bumps [core-js](https://github.com/zloirock/core-js) from 3.20.2 to 3.20.3.
- [Release notes](https://github.com/zloirock/core-js/releases)
- [Changelog](https://github.com/zloirock/core-js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/zloirock/core-js/compare/v3.20.2...v3.20.3)

---
updated-dependencies:
- dependency-name: core-js
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-19 10:48:31 -05:00
dependabot[bot]
1b9348099a build(deps): bump @slack/webhook from 6.0.0 to 6.1.0 (#13765)
Bumps [@slack/webhook](https://github.com/slackapi/node-slack-sdk) from 6.0.0 to 6.1.0.
- [Release notes](https://github.com/slackapi/node-slack-sdk/releases)
- [Commits](https://github.com/slackapi/node-slack-sdk/compare/@slack/webhook@6.0.0...@slack/webhook@6.1.0)

---
updated-dependencies:
- dependency-name: "@slack/webhook"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-17 16:30:31 -05:00
dependabot[bot]
a2200d64b1 build(deps): bump @babel/register from 7.16.7 to 7.16.9 (#13763)
Bumps [@babel/register](https://github.com/babel/babel/tree/HEAD/packages/babel-register) from 7.16.7 to 7.16.9.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.16.9/packages/babel-register)

---
updated-dependencies:
- dependency-name: "@babel/register"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-17 16:30:03 -05:00
dependabot[bot]
923dd00e32 build(deps): bump image-size from 1.0.0 to 1.0.1 (#13761)
Bumps [image-size](https://github.com/image-size/image-size) from 1.0.0 to 1.0.1.
- [Release notes](https://github.com/image-size/image-size/releases)
- [Commits](https://github.com/image-size/image-size/compare/v1.0.0...v1.0.1)

---
updated-dependencies:
- dependency-name: image-size
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-17 16:29:06 -05:00
dependabot[bot]
8c76ee3e8d build(deps-dev): bump run-rs from 0.7.5 to 0.7.6 (#13760)
Bumps [run-rs](https://github.com/vkarpov15/run-rs) from 0.7.5 to 0.7.6.
- [Release notes](https://github.com/vkarpov15/run-rs/releases)
- [Changelog](https://github.com/vkarpov15/run-rs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/vkarpov15/run-rs/compare/0.7.5...0.7.6)

---
updated-dependencies:
- dependency-name: run-rs
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-17 16:28:47 -05:00
dependabot[bot]
20d18c701d build(deps): bump @storybook/addon-links in /website/client (#13754)
Bumps [@storybook/addon-links](https://github.com/storybookjs/storybook/tree/HEAD/addons/links) from 6.4.10 to 6.4.13.
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v6.4.13/addons/links)

---
updated-dependencies:
- dependency-name: "@storybook/addon-links"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-17 16:26:44 -05:00
dependabot[bot]
16621ef2a0 build(deps): bump winston from 3.3.4 to 3.4.0 (#13753)
Bumps [winston](https://github.com/winstonjs/winston) from 3.3.4 to 3.4.0.
- [Release notes](https://github.com/winstonjs/winston/releases)
- [Changelog](https://github.com/winstonjs/winston/blob/master/CHANGELOG.md)
- [Commits](https://github.com/winstonjs/winston/compare/v3.3.4...v3.4.0)

---
updated-dependencies:
- dependency-name: winston
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-17 16:26:00 -05:00
dependabot[bot]
b4e782baa5 build(deps): bump follow-redirects in /website/client (#13748)
Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.14.4 to 1.14.7.
- [Release notes](https://github.com/follow-redirects/follow-redirects/releases)
- [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.14.4...v1.14.7)

---
updated-dependencies:
- dependency-name: follow-redirects
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-17 16:16:15 -05:00
dependabot[bot]
4e51841aa4 build(deps): bump follow-redirects from 1.14.4 to 1.14.7 (#13747)
Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.14.4 to 1.14.7.
- [Release notes](https://github.com/follow-redirects/follow-redirects/releases)
- [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.14.4...v1.14.7)

---
updated-dependencies:
- dependency-name: follow-redirects
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-17 16:15:48 -05:00
Natalie L
c7e7071998 Merge branch 'HabitRPG:develop' into quest-unlocks 2022-01-14 13:58:43 -05:00
CuriousMagpie
b4f699b7c4 added item.locked to buy functions 2022-01-14 13:54:41 -05:00
CuriousMagpie
874954b16b quest unlock logic updates, starting on actually locking quests in shop 2022-01-13 16:36:43 -05:00
CuriousMagpie
120b2e9ade removed a bunch of commented code 2022-01-12 17:07:49 -05:00
CuriousMagpie
7d00fe1ecb more quest logic attempts 2022-01-11 15:42:48 -05:00
dependabot[bot]
f0c50386f4 build(deps): bump @storybook/addons in /website/client (#13743)
Bumps [@storybook/addons](https://github.com/storybookjs/storybook/tree/HEAD/lib/addons) from 6.4.9 to 6.4.10.
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v6.4.10/lib/addons)

---
updated-dependencies:
- dependency-name: "@storybook/addons"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-11 12:40:37 -05:00
dependabot[bot]
d881c03ba9 build(deps): bump @storybook/addon-links in /website/client (#13739)
Bumps [@storybook/addon-links](https://github.com/storybookjs/storybook/tree/HEAD/addons/links) from 6.4.9 to 6.4.10.
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v6.4.10/addons/links)

---
updated-dependencies:
- dependency-name: "@storybook/addon-links"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-10 16:16:36 -05:00
CuriousMagpie
29ab8856ca linter fix 2022-01-10 15:21:17 -05:00
dependabot[bot]
a4ffefdc54 build(deps): bump @storybook/vue in /website/client (#13745)
Bumps [@storybook/vue](https://github.com/storybookjs/storybook/tree/HEAD/app/vue) from 6.3.12 to 6.3.13.
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v6.3.13/app/vue)

---
updated-dependencies:
- dependency-name: "@storybook/vue"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-10 11:28:00 -05:00
dependabot[bot]
01e8809abf build(deps): bump amplitude-js from 8.14.1 to 8.15.0 in /website/client (#13742)
Bumps [amplitude-js](https://github.com/amplitude/amplitude-javascript) from 8.14.1 to 8.15.0.
- [Release notes](https://github.com/amplitude/amplitude-javascript/releases)
- [Changelog](https://github.com/amplitude/Amplitude-JavaScript/blob/main/CHANGELOG.md)
- [Commits](https://github.com/amplitude/amplitude-javascript/compare/v8.14.1...v8.15.0)

---
updated-dependencies:
- dependency-name: amplitude-js
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-10 11:27:18 -05:00
dependabot[bot]
3732058764 build(deps): bump winston from 3.3.3 to 3.3.4 (#13737)
Bumps [winston](https://github.com/winstonjs/winston) from 3.3.3 to 3.3.4.
- [Release notes](https://github.com/winstonjs/winston/releases)
- [Changelog](https://github.com/winstonjs/winston/blob/master/CHANGELOG.md)
- [Commits](https://github.com/winstonjs/winston/compare/v3.3.3...3.3.4)

---
updated-dependencies:
- dependency-name: winston
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-10 11:25:26 -05:00
dependabot[bot]
4682223235 build(deps): bump @storybook/addon-actions in /website/client (#13736)
Bumps [@storybook/addon-actions](https://github.com/storybookjs/storybook/tree/HEAD/addons/actions) from 6.4.9 to 6.4.10.
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v6.4.10/addons/actions)

---
updated-dependencies:
- dependency-name: "@storybook/addon-actions"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-10 11:24:48 -05:00
CuriousMagpie
1eb8ee4dc6 added a comment re Masterclasser 2022-01-07 21:44:57 -05:00
Natalie L
96c0c12c49 Merge branch 'HabitRPG:develop' into quest-unlocks 2022-01-07 17:37:23 -05:00
CuriousMagpie
3eb9225b8b and more quest logic things to try 2022-01-07 17:36:47 -05:00
CuriousMagpie
73a29f94a6 Merge branch 'quest-unlocks' of https://github.com/CuriousMagpie/habitica into quest-unlocks 2022-01-07 17:34:49 -05:00
CuriousMagpie
7bd190930f more quest logic 2022-01-07 17:33:37 -05:00
CuriousMagpie
d0e9339d3b more quest logic 2022-01-07 17:29:27 -05:00
dependabot[bot]
8954c6409c build(deps): bump copy-props from 2.0.4 to 2.0.5 (#13732)
Bumps [copy-props](https://github.com/gulpjs/copy-props) from 2.0.4 to 2.0.5.
- [Release notes](https://github.com/gulpjs/copy-props/releases)
- [Changelog](https://github.com/gulpjs/copy-props/blob/master/CHANGELOG.md)
- [Commits](https://github.com/gulpjs/copy-props/compare/2.0.4...2.0.5)

---
updated-dependencies:
- dependency-name: copy-props
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-07 16:33:55 -05:00
negue
1ec227b14c remove console 2022-01-07 22:32:02 +01:00
CuriousMagpie
d45122ce06 lockQuest logic updates 2022-01-07 16:25:31 -05:00
negue
21a3a81d5b Sprites: only create the css which points to the CDN 2022-01-07 22:12:43 +01:00
CuriousMagpie
f3f5d6bb70 Merge remote-tracking branch 'upstream/develop' into quest-unlocks 2022-01-07 15:25:08 -05:00
CuriousMagpie
9b849e095c working on quest logic 2022-01-07 15:20:21 -05:00
Weblate
322d47360b Merge branch 'origin/develop' into Weblate. 2022-01-06 23:30:02 +01:00
SabreCat
039851a8c2 Merge branch 'release' into develop 2022-01-06 16:28:58 -06:00
SabreCat
8707ecf01a 4.218.0 2022-01-06 16:28:41 -06:00
SabreCat
586801a1cf chore(sprites): compile 2022-01-06 16:28:29 -06:00
SabreCat
82ad85e564 feat(content): Armoire and Backgrounds Jan 2022 2022-01-06 16:28:16 -06:00
Weblate
3642e6f69d Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (127 of 127 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (127 of 127 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (127 of 127 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (111 of 111 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (186 of 186 strings)

Translated using Weblate (Chinese (Traditional))

Currently translated at 99.8% (660 of 661 strings)

Translated using Weblate (Chinese (Traditional))

Currently translated at 99.5% (213 of 214 strings)

Translated using Weblate (Chinese (Traditional))

Currently translated at 100.0% (372 of 372 strings)

Translated using Weblate (Chinese (Traditional))

Currently translated at 99.5% (658 of 661 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (134 of 134 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (186 of 186 strings)

Translated using Weblate (Hungarian)

Currently translated at 48.8% (61 of 125 strings)

Translated using Weblate (Vietnamese)

Currently translated at 88.9% (113 of 127 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (365 of 365 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (214 of 214 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (215 of 215 strings)

Translated using Weblate (Italian)

Currently translated at 99.2% (2495 of 2515 strings)

Translated using Weblate (French)

Currently translated at 100.0% (2515 of 2515 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (111 of 111 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (129 of 129 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (8 of 8 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (22 of 22 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (8 of 8 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (372 of 372 strings)

Translated using Weblate (Vietnamese)

Currently translated at 87.4% (111 of 127 strings)

Translated using Weblate (German)

Currently translated at 100.0% (2515 of 2515 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (2515 of 2515 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (111 of 111 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (134 of 134 strings)

Translated using Weblate (Vietnamese)

Currently translated at 86.6% (110 of 127 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (365 of 365 strings)

Translated using Weblate (Japanese)

Currently translated at 99.8% (2511 of 2515 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (56 of 56 strings)

Translated using Weblate (Ukrainian)

Currently translated at 92.7% (103 of 111 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (214 of 214 strings)

Translated using Weblate (Ukrainian)

Currently translated at 96.4% (54 of 56 strings)

Translated using Weblate (Ukrainian)

Currently translated at 92.6% (338 of 365 strings)

Translated using Weblate (Ukrainian)

Currently translated at 92.3% (337 of 365 strings)

Translated using Weblate (Ukrainian)

Currently translated at 91.2% (333 of 365 strings)

Translated using Weblate (Ukrainian)

Currently translated at 90.9% (332 of 365 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (215 of 215 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (2509 of 2509 strings)

Translated using Weblate (Russian)

Currently translated at 99.7% (2503 of 2509 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (214 of 214 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (134 of 134 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (129 of 129 strings)

Co-authored-by: Benoit Hetru <me+hbtc@gahanka.net>
Co-authored-by: Bo-Hsiang Chen <rubybhchen@gmail.com>
Co-authored-by: Chap <chalda82+nogravatar@gmail.com>
Co-authored-by: Jerry Chen <minecjraft@qq.com>
Co-authored-by: Mara Dolichotis <marascherzer@gmail.com>
Co-authored-by: Márton Csibrik <csibrikmarton@gmail.com>
Co-authored-by: Nazar Paruna <nazarparuna@gmail.com>
Co-authored-by: Sciuridae <sweetvshoney@163.com>
Co-authored-by: Võ Trần Nhã Linh <vtrnnhlinh@outlook.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: blacksheep47 <1760906326@qq.com>
Co-authored-by: mattya 226 <worldworld1114@gmail.com>
Co-authored-by: Естай <akseleu@yahoo.com>
Co-authored-by: 陈 <494887366@qq.com>
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/hu/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/zh_Hant/
Translate-URL: https://translate.habitica.com/projects/habitica/character/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/vi/
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/content/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/content/zh_Hant/
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/it/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/ru/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/zh_Hant/
Translate-URL: https://translate.habitica.com/projects/habitica/groups/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/groups/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/inventory/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/limited/it/
Translate-URL: https://translate.habitica.com/projects/habitica/limited/ru/
Translate-URL: https://translate.habitica.com/projects/habitica/loginincentives/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/npc/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/overview/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/pets/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/pets/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/spells/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/zh_Hans/
Translation: Habitica/Achievements
Translation: Habitica/Backgrounds
Translation: Habitica/Character
Translation: Habitica/Communityguidelines
Translation: Habitica/Content
Translation: Habitica/Gear
Translation: Habitica/Generic
Translation: Habitica/Groups
Translation: Habitica/Inventory
Translation: Habitica/Limited
Translation: Habitica/Loginincentives
Translation: Habitica/Npc
Translation: Habitica/Overview
Translation: Habitica/Pets
Translation: Habitica/Spells
Translation: Habitica/Tasks
2022-01-06 16:27:08 +01:00
Alys
6c841fbe17 add adult terms to list of swear words - TRIGGER / CONTENT WARNING: assault, slurs, swearwords, etc 2022-01-05 15:31:14 +10:00
dependabot[bot]
4d4a955292 build(deps): bump @babel/preset-env from 7.16.5 to 7.16.7 (#13726)
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.16.5 to 7.16.7.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.16.7/packages/babel-preset-env)

---
updated-dependencies:
- dependency-name: "@babel/preset-env"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-04 11:52:02 -05:00
dependabot[bot]
d537c53ab9 build(deps): bump core-js from 3.20.1 to 3.20.2 in /website/client (#13729)
Bumps [core-js](https://github.com/zloirock/core-js) from 3.20.1 to 3.20.2.
- [Release notes](https://github.com/zloirock/core-js/releases)
- [Changelog](https://github.com/zloirock/core-js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/zloirock/core-js/compare/v3.20.1...v3.20.2)

---
updated-dependencies:
- dependency-name: core-js
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-03 14:21:40 -05:00
dependabot[bot]
890224a460 build(deps): bump @babel/register from 7.16.5 to 7.16.7 (#13724)
Bumps [@babel/register](https://github.com/babel/babel/tree/HEAD/packages/babel-register) from 7.16.5 to 7.16.7.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.16.7/packages/babel-register)

---
updated-dependencies:
- dependency-name: "@babel/register"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-03 14:18:50 -05:00
dependabot[bot]
d2dc36a431 build(deps): bump @babel/core from 7.16.5 to 7.16.7 (#13723)
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.16.5 to 7.16.7.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.16.7/packages/babel-core)

---
updated-dependencies:
- dependency-name: "@babel/core"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-03 14:18:33 -05:00
dependabot[bot]
97fd87c08c build(deps-dev): bump @babel/plugin-proposal-optional-chaining (#13722)
Bumps [@babel/plugin-proposal-optional-chaining](https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-proposal-optional-chaining) from 7.16.5 to 7.16.7.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.16.7/packages/babel-plugin-proposal-optional-chaining)

---
updated-dependencies:
- dependency-name: "@babel/plugin-proposal-optional-chaining"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-03 14:18:14 -05:00
CuriousMagpie
7afdd22e1d migration-runner.js reset 2022-01-03 11:49:25 -05:00
CuriousMagpie
55ec42678e quest series refactor started 2021-12-31 16:28:04 -05:00
SabreCat
ad268334f3 fix(deployment): add Heroku .slugignore 2021-12-31 13:23:56 -06:00
SabreCat
a2134084d5 fix(deployment): add Heroku .slugignore 2021-12-31 13:23:39 -06:00
SabreCat
8824f6ac16 fix(sprites): add habitica-images as submodule 2021-12-31 13:03:02 -06:00
CuriousMagpie
adc7a6ee85 organized quests by type and alphabetically within type 2021-12-31 13:43:59 -05:00
SabreCat
2fe8e5bf82 4.217.0 2021-12-30 13:35:59 -06:00
SabreCat
4c0f67befb Merge branch 'develop' into release 2021-12-30 13:35:52 -06:00
Weblate
5dc7d3c3cc Translated using Weblate (Vietnamese)
Currently translated at 70.1% (1759 of 2509 strings)

Translated using Weblate (Russian)

Currently translated at 99.4% (2496 of 2509 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (2509 of 2509 strings)

Translated using Weblate (Japanese)

Currently translated at 99.0% (212 of 214 strings)

Translated using Weblate (Persian)

Currently translated at 90.2% (121 of 134 strings)

Translated using Weblate (Persian)

Currently translated at 85.0% (114 of 134 strings)

Translated using Weblate (Japanese)

Currently translated at 99.9% (2507 of 2509 strings)

Co-authored-by: Ali Ghaffaari <ali.ghaffaari@gmail.com>
Co-authored-by: An Nguyen <nguyen.thienan.business@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: mattya 226 <worldworld1114@gmail.com>
Co-authored-by: Естай <akseleu@yahoo.com>
Translate-URL: https://translate.habitica.com/projects/habitica/gear/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/ru/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/vi/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/fa/
Translation: Habitica/Gear
Translation: Habitica/Generic
Translation: Habitica/Tasks
2021-12-30 20:35:01 +01:00
SabreCat
2e09f2d4fb chore(sprites): compile 2021-12-30 13:34:11 -06:00
SabreCat
5973bca327 feat(event): New Year's Eve 2021 2021-12-30 13:34:04 -06:00
CuriousMagpie
ccc1d5b26e code from abandoned PR #13382 2021-12-29 16:33:11 -05:00
SabreCat
bcfea31ffb fix(quests): fix erroneous Egg Hunt and Waffle quest appearances 2021-12-29 13:36:12 -06:00
Weblate
cae29e63ae Merge branch 'origin/develop' into Weblate. 2021-12-28 21:40:12 +01:00
SabreCat
9eea0687ba 4.216.0 2021-12-28 14:39:05 -06:00
SabreCat
e2b506eb3c chore(sprites): compile 2021-12-28 14:38:54 -06:00
SabreCat
9bf25c49ae feat(content): Subscriber Items January 2022 2021-12-28 14:38:43 -06:00
Weblate
837d1246d5 Translated using Weblate (Japanese)
Currently translated at 99.8% (2505 of 2509 strings)

Translated using Weblate (Japanese)

Currently translated at 99.6% (2501 of 2509 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (46 of 46 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (746 of 746 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (193 of 193 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 98.8% (2481 of 2509 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (661 of 661 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (134 of 134 strings)

Translated using Weblate (Polish)

Currently translated at 96.8% (187 of 193 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (111 of 111 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (365 of 365 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (178 of 178 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (186 of 186 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (56 of 56 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (13 of 13 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (129 of 129 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (15 of 15 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (372 of 372 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (186 of 186 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (98 of 98 strings)

Translated using Weblate (Polish)

Currently translated at 94.8% (183 of 193 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (129 of 129 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (125 of 125 strings)

Translated using Weblate (Japanese)

Currently translated at 99.4% (2496 of 2509 strings)

Translated using Weblate (Vietnamese)

Currently translated at 85.0% (108 of 127 strings)

Translated using Weblate (Spanish (Latin America))

Currently translated at 94.4% (118 of 125 strings)

Translated using Weblate (Spanish (Latin America))

Currently translated at 94.4% (118 of 125 strings)

Translated using Weblate (Japanese)

Currently translated at 99.4% (2495 of 2509 strings)

Translated using Weblate (Japanese)

Currently translated at 98.1% (210 of 214 strings)

Translated using Weblate (Japanese)

Currently translated at 99.2% (2491 of 2509 strings)

Translated using Weblate (Vietnamese)

Currently translated at 100.0% (46 of 46 strings)

Translated using Weblate (French)

Currently translated at 100.0% (215 of 215 strings)

Translated using Weblate (French)

Currently translated at 100.0% (2509 of 2509 strings)

Translated using Weblate (German)

Currently translated at 100.0% (2509 of 2509 strings)

Translated using Weblate (French)

Currently translated at 100.0% (214 of 214 strings)

Translated using Weblate (German)

Currently translated at 99.8% (2506 of 2509 strings)

Translated using Weblate (German)

Currently translated at 100.0% (215 of 215 strings)

Translated using Weblate (Japanese)

Currently translated at 99.1% (2487 of 2509 strings)

Translated using Weblate (Ukrainian)

Currently translated at 99.5% (213 of 214 strings)

Translated using Weblate (German)

Currently translated at 99.8% (2505 of 2509 strings)

Translated using Weblate (Russian)

Currently translated at 98.5% (211 of 214 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (661 of 661 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (134 of 134 strings)

Translated using Weblate (Ukrainian)

Currently translated at 74.0% (143 of 193 strings)

Translated using Weblate (Ukrainian)

Currently translated at 88.2% (98 of 111 strings)

Translated using Weblate (Ukrainian)

Currently translated at 82.9% (107 of 129 strings)

Translated using Weblate (Ukrainian)

Currently translated at 87.1% (318 of 365 strings)

Translated using Weblate (Ukrainian)

Currently translated at 81.1% (2036 of 2509 strings)

Translated using Weblate (Ukrainian)

Currently translated at 99.5% (213 of 214 strings)

Translated using Weblate (Ukrainian)

Currently translated at 97.7% (174 of 178 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (372 of 372 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (186 of 186 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (98 of 98 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (657 of 657 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (214 of 214 strings)

Translated using Weblate (Japanese)

Currently translated at 98.9% (2483 of 2509 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (214 of 214 strings)

Translated using Weblate (Japanese)

Currently translated at 97.1% (208 of 214 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 99.8% (745 of 746 strings)

Translated using Weblate (Vietnamese)

Currently translated at 67.8% (38 of 56 strings)

Translated using Weblate (German)

Currently translated at 100.0% (214 of 214 strings)

Co-authored-by: Benoit Hetru <me+hbtc@gahanka.net>
Co-authored-by: César Orlando Pallares Delgado <copdeb@gmail.com>
Co-authored-by: Juan Esteban Marín <juanmarin690@gmail.com>
Co-authored-by: Klaudia Bojk <b.brekker@gmail.com>
Co-authored-by: Mara Dolichotis <marascherzer@gmail.com>
Co-authored-by: Nazar Paruna <nazarparuna@gmail.com>
Co-authored-by: Sciuridae <sweetvshoney@163.com>
Co-authored-by: Võ Trần Nhã Linh <vtrnnhlinh@outlook.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: blacksheep47 <1760906326@qq.com>
Co-authored-by: mattya 226 <worldworld1114@gmail.com>
Co-authored-by: Естай <akseleu@yahoo.com>
Co-authored-by: そら <comi4work@gmail.com>
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/es_419/
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/pl/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ru/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/challenge/pl/
Translate-URL: https://translate.habitica.com/projects/habitica/challenge/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/character/pl/
Translate-URL: https://translate.habitica.com/projects/habitica/character/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/vi/
Translate-URL: https://translate.habitica.com/projects/habitica/content/pl/
Translate-URL: https://translate.habitica.com/projects/habitica/content/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/contrib/vi/
Translate-URL: https://translate.habitica.com/projects/habitica/contrib/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/death/pl/
Translate-URL: https://translate.habitica.com/projects/habitica/faq/vi/
Translate-URL: https://translate.habitica.com/projects/habitica/front/pl/
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/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/ru/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/groups/pl/
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/npc/pl/
Translate-URL: https://translate.habitica.com/projects/habitica/npc/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/pets/pl/
Translate-URL: https://translate.habitica.com/projects/habitica/pets/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/rebirth/pl/
Translate-URL: https://translate.habitica.com/projects/habitica/settings/pl/
Translate-URL: https://translate.habitica.com/projects/habitica/spells/pl/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/pl/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/pl/
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/uk/
Translation: Habitica/Achievements
Translation: Habitica/Backgrounds
Translation: Habitica/Challenge
Translation: Habitica/Character
Translation: Habitica/Communityguidelines
Translation: Habitica/Content
Translation: Habitica/Contrib
Translation: Habitica/Death
Translation: Habitica/Faq
Translation: Habitica/Front
Translation: Habitica/Gear
Translation: Habitica/Generic
Translation: Habitica/Groups
Translation: Habitica/Limited
Translation: Habitica/Npc
Translation: Habitica/Pets
Translation: Habitica/Questscontent
Translation: Habitica/Rebirth
Translation: Habitica/Settings
Translation: Habitica/Spells
Translation: Habitica/Subscriber
Translation: Habitica/Tasks
2021-12-28 18:54:30 +01:00
dependabot[bot]
1015b6ea51 build(deps-dev): bump @babel/plugin-proposal-optional-chaining (#13704)
Bumps [@babel/plugin-proposal-optional-chaining](https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-proposal-optional-chaining) from 7.16.0 to 7.16.5.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.16.5/packages/babel-plugin-proposal-optional-chaining)

---
updated-dependencies:
- dependency-name: "@babel/plugin-proposal-optional-chaining"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-12-28 12:46:17 -05:00
Natalie L
15c9694227 Merge pull request #13717 from HabitRPG/dependabot/npm_and_yarn/website/client/core-js-3.20.1
build(deps): bump core-js from 3.19.3 to 3.20.1 in /website/client
2021-12-28 12:45:27 -05:00
dependabot[bot]
ce2e7cb0ab build(deps): bump cookie-session from 1.4.0 to 2.0.0 (#13710)
Bumps [cookie-session](https://github.com/expressjs/cookie-session) from 1.4.0 to 2.0.0.
- [Release notes](https://github.com/expressjs/cookie-session/releases)
- [Changelog](https://github.com/expressjs/cookie-session/blob/master/HISTORY.md)
- [Commits](https://github.com/expressjs/cookie-session/compare/1.4.0...v2.0.0)

---
updated-dependencies:
- dependency-name: cookie-session
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-12-28 11:09:08 -06:00
dependabot[bot]
d69327bbf5 build(deps): bump core-js from 3.19.3 to 3.20.1 in /website/client
Bumps [core-js](https://github.com/zloirock/core-js) from 3.19.3 to 3.20.1.
- [Release notes](https://github.com/zloirock/core-js/releases)
- [Changelog](https://github.com/zloirock/core-js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/zloirock/core-js/compare/v3.19.3...v3.20.1)

---
updated-dependencies:
- dependency-name: core-js
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-28 16:54:43 +00:00
Natalie L
f38135dffe Merge pull request #13720 from HabitRPG/dependabot/npm_and_yarn/website/client/amplitude-js-8.14.1
build(deps): bump amplitude-js from 8.13.1 to 8.14.1 in /website/client
2021-12-28 11:51:54 -05:00
Natalie L
c4e2cccd51 Merge pull request #13716 from HabitRPG/dependabot/npm_and_yarn/apidoc-0.50.3
build(deps): bump apidoc from 0.50.2 to 0.50.3
2021-12-28 11:50:21 -05:00
Natalie L
f294192800 Merge pull request #13711 from HabitRPG/dependabot/npm_and_yarn/babel/preset-env-7.16.5
build(deps): bump @babel/preset-env from 7.16.4 to 7.16.5
2021-12-28 11:49:14 -05:00
dependabot[bot]
a7e3976556 build(deps): bump amplitude-js from 8.13.1 to 8.14.1 in /website/client
Bumps [amplitude-js](https://github.com/amplitude/amplitude-javascript) from 8.13.1 to 8.14.1.
- [Release notes](https://github.com/amplitude/amplitude-javascript/releases)
- [Changelog](https://github.com/amplitude/Amplitude-JavaScript/blob/main/CHANGELOG.md)
- [Commits](https://github.com/amplitude/amplitude-javascript/compare/v8.13.1...v8.14.1)

---
updated-dependencies:
- dependency-name: amplitude-js
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-27 05:11:24 +00:00
dependabot[bot]
d6517bdd4c build(deps): bump apidoc from 0.50.2 to 0.50.3
Bumps [apidoc](https://github.com/apidoc/apidoc) from 0.50.2 to 0.50.3.
- [Release notes](https://github.com/apidoc/apidoc/releases)
- [Changelog](https://github.com/apidoc/apidoc/blob/master/CHANGELOG.md)
- [Commits](https://github.com/apidoc/apidoc/compare/0.50.2...0.50.3)

---
updated-dependencies:
- dependency-name: apidoc
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-27 05:02:32 +00:00
dependabot[bot]
887c21e4b5 build(deps): bump @babel/preset-env from 7.16.4 to 7.16.5
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.16.4 to 7.16.5.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.16.5/packages/babel-preset-env)

---
updated-dependencies:
- dependency-name: "@babel/preset-env"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-24 16:31:31 +00:00
Natalie L
326ef89ede Merge pull request #13703 from HabitRPG/dependabot/npm_and_yarn/express-4.17.2
build(deps): bump express from 4.17.1 to 4.17.2
2021-12-24 11:29:35 -05:00
Natalie L
0dd115998f Merge pull request #13702 from HabitRPG/dependabot/npm_and_yarn/babel/register-7.16.5
build(deps): bump @babel/register from 7.16.0 to 7.16.5
2021-12-24 11:29:06 -05:00
Natalie L
97c66779f7 Merge pull request #13715 from HabitRPG/dependabot/npm_and_yarn/stripe-8.195.0
build(deps): bump stripe from 8.193.0 to 8.195.0
2021-12-24 11:28:17 -05:00
dependabot[bot]
966a2a3dd1 build(deps): bump express from 4.17.1 to 4.17.2
Bumps [express](https://github.com/expressjs/express) from 4.17.1 to 4.17.2.
- [Release notes](https://github.com/expressjs/express/releases)
- [Changelog](https://github.com/expressjs/express/blob/master/History.md)
- [Commits](https://github.com/expressjs/express/compare/4.17.1...4.17.2)

---
updated-dependencies:
- dependency-name: express
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-23 21:50:19 +00:00
dependabot[bot]
52c32ab63d build(deps): bump @babel/register from 7.16.0 to 7.16.5
Bumps [@babel/register](https://github.com/babel/babel/tree/HEAD/packages/babel-register) from 7.16.0 to 7.16.5.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.16.5/packages/babel-register)

---
updated-dependencies:
- dependency-name: "@babel/register"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-23 21:50:17 +00:00
dependabot[bot]
f4f575c9b9 build(deps): bump stripe from 8.193.0 to 8.195.0
Bumps [stripe](https://github.com/stripe/stripe-node) from 8.193.0 to 8.195.0.
- [Release notes](https://github.com/stripe/stripe-node/releases)
- [Changelog](https://github.com/stripe/stripe-node/blob/master/CHANGELOG.md)
- [Commits](https://github.com/stripe/stripe-node/compare/v8.193.0...v8.195.0)

---
updated-dependencies:
- dependency-name: stripe
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-23 21:49:52 +00:00
Natalie L
2d44bdae5b Merge pull request #13707 from HabitRPG/dependabot/npm_and_yarn/babel/core-7.16.5
build(deps): bump @babel/core from 7.16.0 to 7.16.5
2021-12-23 16:48:10 -05:00
Natalie L
bc23380535 Merge pull request #13714 from HabitRPG/dependabot/npm_and_yarn/universal-analytics-0.5.3
build(deps): bump universal-analytics from 0.5.2 to 0.5.3
2021-12-23 16:47:27 -05:00
dependabot[bot]
4581302ba2 build(deps): bump @babel/core from 7.16.0 to 7.16.5
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.16.0 to 7.16.5.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.16.5/packages/babel-core)

---
updated-dependencies:
- dependency-name: "@babel/core"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-23 21:35:45 +00:00
dependabot[bot]
ef71a51598 build(deps): bump universal-analytics from 0.5.2 to 0.5.3
Bumps [universal-analytics](https://github.com/peaksandpies/universal-analytics) from 0.5.2 to 0.5.3.
- [Release notes](https://github.com/peaksandpies/universal-analytics/releases)
- [Changelog](https://github.com/peaksandpies/universal-analytics/blob/master/HISTORY.md)
- [Commits](https://github.com/peaksandpies/universal-analytics/compare/0.5.2...0.5.3)

---
updated-dependencies:
- dependency-name: universal-analytics
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-23 21:33:42 +00:00
SabreCat
a301186432 Merge branch 'release' into develop 2021-12-23 15:29:26 -06:00
SabreCat
3b8a9d59b1 4.215.1 2021-12-22 15:00:01 -06:00
SabreCat
f2cfc2744d fix(Slack): improve subscription notif logic 2021-12-22 14:58:15 -06:00
SabreCat
7d90317e31 fix(test): correct stub restore 2021-12-21 16:25:41 -06:00
SabreCat
e2fd6a72c2 fix(test): correct stub restore 2021-12-21 16:25:29 -06:00
SabreCat
2698251bd2 Merge branch 'release' into develop 2021-12-21 16:03:39 -06:00
SabreCat
60ea8e48a8 fix(test): return empty event list for no promo 2021-12-21 16:01:27 -06:00
SabreCat
e74a3f84f5 fix(string): missing token 2021-12-21 15:49:55 -06:00
Weblate
1c23f05deb Merge branch 'origin/develop' into Weblate. 2021-12-21 22:34:57 +01:00
SabreCat
aee8e2e905 Merge branch 'release' into develop 2021-12-21 15:34:24 -06:00
SabreCat
fbc0ccfab1 4.215.0 2021-12-21 15:33:58 -06:00
SabreCat
c299e2e4d3 chore(sprites): compile 2021-12-21 15:32:20 -06:00
SabreCat
685ba1286e feat(content): Winter Wonderland 2021-22 2021-12-21 15:32:11 -06:00
Weblate
7b4a8bb292 Translated using Weblate (Vietnamese)
Currently translated at 84.2% (107 of 127 strings)

Translated using Weblate (Czech)

Currently translated at 85.6% (107 of 125 strings)

Translated using Weblate (Vietnamese)

Currently translated at 100.0% (365 of 365 strings)

Translated using Weblate (Vietnamese)

Currently translated at 100.0% (8 of 8 strings)

Translated using Weblate (Vietnamese)

Currently translated at 78.4% (98 of 125 strings)

Translated using Weblate (Vietnamese)

Currently translated at 100.0% (365 of 365 strings)

Translated using Weblate (German)

Currently translated at 100.0% (214 of 214 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (46 of 46 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (214 of 214 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (661 of 661 strings)

Translated using Weblate (Vietnamese)

Currently translated at 83.1% (620 of 746 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (134 of 134 strings)

Translated using Weblate (Norwegian Bokmål)

Currently translated at 98.9% (184 of 186 strings)

Translated using Weblate (Norwegian Bokmål)

Currently translated at 34.4% (43 of 125 strings)

Translated using Weblate (Norwegian Bokmål)

Currently translated at 12.0% (15 of 125 strings)

Translated using Weblate (Korean)

Currently translated at 96.4% (54 of 56 strings)

Translated using Weblate (Korean)

Currently translated at 89.5% (120 of 134 strings)

Translated using Weblate (Japanese)

Currently translated at 96.2% (206 of 214 strings)

Translated using Weblate (Korean)

Currently translated at 96.4% (54 of 56 strings)

Translated using Weblate (Japanese)

Currently translated at 95.7% (205 of 214 strings)

Co-authored-by: Aleš Dvořák <mail@alesdvorak.cz>
Co-authored-by: An Nguyen <nguyen.thienan.business@gmail.com>
Co-authored-by: Chap <chalda82+nogravatar@gmail.com>
Co-authored-by: Jiyoun Namkoong <slovesk00@gmail.com>
Co-authored-by: Jon Austdal <doffen1719@hotmail.com>
Co-authored-by: Mara Dolichotis <marascherzer@gmail.com>
Co-authored-by: Sciuridae <sweetvshoney@163.com>
Co-authored-by: Võ Trần Nhã Linh <vtrnnhlinh@outlook.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: mattya 226 <worldworld1114@gmail.com>
Co-authored-by: そら <comi4work@gmail.com>
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/cs/
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/nb_NO/
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/vi/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/it/
Translate-URL: https://translate.habitica.com/projects/habitica/character/nb_NO/
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/vi/
Translate-URL: https://translate.habitica.com/projects/habitica/contrib/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/de/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/it/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/groups/vi/
Translate-URL: https://translate.habitica.com/projects/habitica/overview/vi/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/vi/
Translate-URL: https://translate.habitica.com/projects/habitica/spells/ko/
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/ko/
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/zh_Hans/
Translation: Habitica/Achievements
Translation: Habitica/Backgrounds
Translation: Habitica/Character
Translation: Habitica/Communityguidelines
Translation: Habitica/Contrib
Translation: Habitica/Generic
Translation: Habitica/Groups
Translation: Habitica/Overview
Translation: Habitica/Questscontent
Translation: Habitica/Spells
Translation: Habitica/Tasks
2021-12-21 19:20:17 +01:00
SabreCat
741ddd9006 4.214.6 2021-12-17 14:01:06 -06:00
SabreCat
5986d0ea02 fix(g1g1): correct availability window 2021-12-17 14:00:59 -06:00
Weblate
c92d3cc374 Merge branch 'origin/develop' into Weblate. 2021-12-15 23:48:50 +01:00
Weblate
e5a35528b7 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (214 of 214 strings)

Translated using Weblate (Vietnamese)

Currently translated at 99.5% (213 of 214 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (2481 of 2481 strings)

Translated using Weblate (Japanese)

Currently translated at 95.3% (204 of 214 strings)

Translated using Weblate (Korean)

Currently translated at 32.0% (57 of 178 strings)

Translated using Weblate (Korean)

Currently translated at 86.8% (317 of 365 strings)

Translated using Weblate (Korean)

Currently translated at 95.0% (193 of 203 strings)

Translated using Weblate (Korean)

Currently translated at 68.9% (1711 of 2481 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (203 of 203 strings)

Translated using Weblate (Vietnamese)

Currently translated at 100.0% (56 of 56 strings)

Translated using Weblate (Vietnamese)

Currently translated at 60.7% (34 of 56 strings)

Translated using Weblate (Vietnamese)

Currently translated at 81.9% (172 of 210 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (13 of 13 strings)

Translated using Weblate (Ukrainian)

Currently translated at 82.9% (107 of 129 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (61 of 61 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (22 of 22 strings)

Translated using Weblate (Ukrainian)

Currently translated at 86.3% (315 of 365 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (8 of 8 strings)

Translated using Weblate (Ukrainian)

Currently translated at 82.0% (2035 of 2481 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (203 of 203 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (15 of 15 strings)

Translated using Weblate (Ukrainian)

Currently translated at 73.2% (93 of 127 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (372 of 372 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (46 of 46 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (657 of 657 strings)

Translated using Weblate (German)

Currently translated at 100.0% (661 of 661 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (186 of 186 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (657 of 657 strings)

Translated using Weblate (Ukrainian)

Currently translated at 98.9% (368 of 372 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (657 of 657 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (657 of 657 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (657 of 657 strings)

Translated using Weblate (Vietnamese)

Currently translated at 100.0% (365 of 365 strings)

Translated using Weblate (Ukrainian)

Currently translated at 97.1% (638 of 657 strings)

Translated using Weblate (Vietnamese)

Currently translated at 88.0% (170 of 193 strings)

Translated using Weblate (Vietnamese)

Currently translated at 100.0% (202 of 202 strings)

Translated using Weblate (Latvian)

Currently translated at 12.0% (15 of 125 strings)

Translated using Weblate (French)

Currently translated at 100.0% (193 of 193 strings)

Translated using Weblate (Ukrainian)

Currently translated at 90.1% (592 of 657 strings)

Translated using Weblate (French)

Currently translated at 100.0% (661 of 661 strings)

Translated using Weblate (Ukrainian)

Currently translated at 74.0% (143 of 193 strings)

Translated using Weblate (Ukrainian)

Currently translated at 82.9% (107 of 129 strings)

Translated using Weblate (Ukrainian)

Currently translated at 89.6% (589 of 657 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (661 of 661 strings)

Translated using Weblate (Ukrainian)

Currently translated at 87.2% (577 of 661 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (134 of 134 strings)

Translated using Weblate (Polish)

Currently translated at 70.2% (1744 of 2481 strings)

Translated using Weblate (Polish)

Currently translated at 70.2% (1744 of 2481 strings)

Translated using Weblate (German)

Currently translated at 100.0% (2481 of 2481 strings)

Translated using Weblate (Ukrainian)

Currently translated at 83.3% (622 of 746 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (98 of 98 strings)

Translated using Weblate (Polish)

Currently translated at 99.2% (124 of 125 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (746 of 746 strings)

Translated using Weblate (Korean)

Currently translated at 80.8% (76 of 94 strings)

Translated using Weblate (Korean)

Currently translated at 100.0% (46 of 46 strings)

Translated using Weblate (Korean)

Currently translated at 100.0% (372 of 372 strings)

Translated using Weblate (Vietnamese)

Currently translated at 100.0% (134 of 134 strings)

Translated using Weblate (Vietnamese)

Currently translated at 100.0% (134 of 134 strings)

Translated using Weblate (German)

Currently translated at 99.6% (2472 of 2481 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 75.0% (6 of 8 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (98 of 98 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (193 of 193 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (2481 of 2481 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (2481 of 2481 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (746 of 746 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (661 of 661 strings)

Translated using Weblate (Korean)

Currently translated at 100.0% (111 of 111 strings)

Translated using Weblate (Korean)

Currently translated at 100.0% (98 of 98 strings)

Translated using Weblate (Korean)

Currently translated at 84.1% (556 of 661 strings)

Translated using Weblate (Korean)

Currently translated at 86.5% (116 of 134 strings)

Translated using Weblate (Korean)

Currently translated at 100.0% (15 of 15 strings)

Translated using Weblate (Korean)

Currently translated at 95.9% (357 of 372 strings)

Translated using Weblate (Vietnamese)

Currently translated at 96.9% (354 of 365 strings)

Translated using Weblate (Japanese)

Currently translated at 99.9% (2479 of 2481 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (661 of 661 strings)

Translated using Weblate (Vietnamese)

Currently translated at 100.0% (186 of 186 strings)

Translated using Weblate (Hungarian)

Currently translated at 24.8% (31 of 125 strings)

Translated using Weblate (Hungarian)

Currently translated at 24.0% (30 of 125 strings)

Translated using Weblate (Hungarian)

Currently translated at 23.2% (29 of 125 strings)

Co-authored-by: An Nguyen <nguyen.thienan.business@gmail.com>
Co-authored-by: Andris Zaguzovs <zaguzovs.andris@gmail.com>
Co-authored-by: Benoit Hetru <me+hbtc@gahanka.net>
Co-authored-by: Izabela Piskulla <ipiskulla@gmail.com>
Co-authored-by: Jiyoun Namkoong <slovesk00@gmail.com>
Co-authored-by: KanI <twinklingnerd@gmail.com>
Co-authored-by: Leonardo Nunes <starlotri@gmail.com>
Co-authored-by: Mara Dolichotis <marascherzer@gmail.com>
Co-authored-by: Márton Csibrik <csibrikmarton@gmail.com>
Co-authored-by: Nazar Paruna <nazarparuna@gmail.com>
Co-authored-by: Võ Trần Nhã Linh <vtrnnhlinh@outlook.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: konhi <hello.konhi@gmail.com>
Co-authored-by: mattya 226 <worldworld1114@gmail.com>
Co-authored-by: Естай <akseleu@yahoo.com>
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/hu/
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/lv/
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/pl/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/de/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ko/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ru/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/challenge/ko/
Translate-URL: https://translate.habitica.com/projects/habitica/challenge/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/challenge/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/content/ko/
Translate-URL: https://translate.habitica.com/projects/habitica/content/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/contrib/ko/
Translate-URL: https://translate.habitica.com/projects/habitica/contrib/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/death/ko/
Translate-URL: https://translate.habitica.com/projects/habitica/death/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/faq/vi/
Translate-URL: https://translate.habitica.com/projects/habitica/front/ko/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/de/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/ko/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/pl/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/ru/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/ko/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/vi/
Translate-URL: https://translate.habitica.com/projects/habitica/groups/ko/
Translate-URL: https://translate.habitica.com/projects/habitica/groups/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/groups/vi/
Translate-URL: https://translate.habitica.com/projects/habitica/inventory/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/limited/vi/
Translate-URL: https://translate.habitica.com/projects/habitica/loginincentives/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/messages/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/npc/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/overview/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/pets/ko/
Translate-URL: https://translate.habitica.com/projects/habitica/quests/ko/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/ru/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/rebirth/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/settings/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/settings/vi/
Translate-URL: https://translate.habitica.com/projects/habitica/spells/vi/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/ru/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/vi/
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/ko/
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/vi/
Translation: Habitica/Achievements
Translation: Habitica/Backgrounds
Translation: Habitica/Challenge
Translation: Habitica/Communityguidelines
Translation: Habitica/Content
Translation: Habitica/Contrib
Translation: Habitica/Death
Translation: Habitica/Faq
Translation: Habitica/Front
Translation: Habitica/Gear
Translation: Habitica/Generic
Translation: Habitica/Groups
Translation: Habitica/Inventory
Translation: Habitica/Limited
Translation: Habitica/Loginincentives
Translation: Habitica/Messages
Translation: Habitica/Npc
Translation: Habitica/Overview
Translation: Habitica/Pets
Translation: Habitica/Quests
Translation: Habitica/Questscontent
Translation: Habitica/Rebirth
Translation: Habitica/Settings
Translation: Habitica/Spells
Translation: Habitica/Subscriber
Translation: Habitica/Tasks
2021-12-15 23:48:44 +01:00
SabreCat
831cce65e2 4.214.5 2021-12-15 16:42:34 -06:00
SabreCat
64c732e991 fix(test): stub event list not singleton 2021-12-15 16:32:58 -06:00
SabreCat
391a9bd91b feat(promo): G1G1 2021
Also refactors a number of places on web client to start using event 
list from world state instead of singular currentEvent
2021-12-15 16:20:43 -06:00
Lyqst
fd4115ffcf Remove date from News title, add posting time in EST 2021-12-15 11:48:57 -03:00
negue
a1cddcaf17 Feature: new "report a bug" modal (#13530)
* WIP: report a bug api/ui

* fix lint

* add USER_USERNAME

* extend sendTxn tests / checks + fix bug report email

* fix lint

* add more checks to sendTxn - fix bug-report variables

* fix lint / ci

* fix test: reset email config url

* fix test stub

* fix tests

* refactor the variables checks

* lint.

* move bug-report page as a modal

* send user_email to the email

* show true/false instead 1/0

* fix issues

* fix footer report bug email if not logged in

* fix styles/margins

* prefill user's email

* show facebook email if local email not existing

* bugReportSuccessModal.vue

* add BROWSER_UA to mail properties

* extract bugReportLogic to its own lib file for unit test

* test api validators

* fix lint
2021-12-14 19:16:50 -06:00
negue
c37dac5568 FIX: refactor notifications position based on different promo banners (#13679) 2021-12-14 19:14:38 -06:00
Natalie L
9e0e805d35 Fix: Updated challenge.js to allow shortName to be editable by party leader (#13654)
* updated challenge.js to allow shortName to be editable

* fix api-v3 integration test error
2021-12-14 15:54:57 -06:00
SabreCat
a174b218bd chore(heroku): remove unbuilt sprites 2021-12-14 14:28:58 -06:00
SabreCat
67fdb4dcb3 Merge branch 'release' into develop 2021-12-14 14:23:07 -06:00
SabreCat
ecc04c6a69 chore(TOS): update terms 2021-12-14 14:22:25 -06:00
dependabot[bot]
21367f418e build(deps): bump @storybook/addon-actions in /website/client (#13695)
Bumps [@storybook/addon-actions](https://github.com/storybookjs/storybook/tree/HEAD/addons/actions) from 6.3.12 to 6.4.9.
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v6.4.9/addons/actions)

---
updated-dependencies:
- dependency-name: "@storybook/addon-actions"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-12-13 16:09:11 -06:00
dependabot[bot]
16508f934b build(deps): bump universal-analytics from 0.4.23 to 0.5.2 (#13697)
Bumps [universal-analytics](https://github.com/peaksandpies/universal-analytics) from 0.4.23 to 0.5.2.
- [Release notes](https://github.com/peaksandpies/universal-analytics/releases)
- [Changelog](https://github.com/peaksandpies/universal-analytics/blob/master/HISTORY.md)
- [Commits](https://github.com/peaksandpies/universal-analytics/commits/0.5.2)

---
updated-dependencies:
- dependency-name: universal-analytics
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-12-13 15:55:02 -06:00
dependabot[bot]
e387f2f782 build(deps): bump @storybook/addons in /website/client (#13693)
Bumps [@storybook/addons](https://github.com/storybookjs/storybook/tree/HEAD/lib/addons) from 6.3.12 to 6.4.9.
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v6.4.9/lib/addons)

---
updated-dependencies:
- dependency-name: "@storybook/addons"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-12-13 15:54:45 -06:00
dependabot[bot]
429810f50f build(deps): bump @babel/preset-env from 7.16.0 to 7.16.4 (#13640)
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.16.0 to 7.16.4.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.16.4/packages/babel-preset-env)

---
updated-dependencies:
- dependency-name: "@babel/preset-env"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-12-13 15:52:43 -06:00
dependabot[bot]
fcd5c38460 build(deps): bump @google-cloud/trace-agent from 5.1.5 to 5.1.6 (#13638)
Bumps [@google-cloud/trace-agent](https://github.com/googleapis/cloud-trace-nodejs) from 5.1.5 to 5.1.6.
- [Release notes](https://github.com/googleapis/cloud-trace-nodejs/releases)
- [Changelog](https://github.com/googleapis/cloud-trace-nodejs/blob/main/CHANGELOG.md)
- [Commits](https://github.com/googleapis/cloud-trace-nodejs/compare/v5.1.5...v5.1.6)

---
updated-dependencies:
- dependency-name: "@google-cloud/trace-agent"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-12-13 15:52:31 -06:00
Natalie L
042ae6e228 Merge pull request #13694 from HabitRPG/dependabot/npm_and_yarn/website/client/core-js-3.19.3
build(deps): bump core-js from 3.19.2 to 3.19.3 in /website/client
2021-12-13 16:33:15 -05:00
Natalie L
a21e914f86 Merge pull request #13692 from HabitRPG/dependabot/npm_and_yarn/website/client/storybook/addon-links-6.4.9
build(deps): bump @storybook/addon-links from 6.3.12 to 6.4.9 in /website/client
2021-12-13 16:32:28 -05:00
Natalie L
d46e7f8aff Merge pull request #13691 from HabitRPG/dependabot/npm_and_yarn/stripe-8.193.0
build(deps): bump stripe from 8.191.0 to 8.193.0
2021-12-13 16:29:52 -05:00
Natalie L
6e9cf80079 Merge pull request #13686 from HabitRPG/dependabot/npm_and_yarn/express-basic-auth-1.2.1
build(deps): bump express-basic-auth from 1.2.0 to 1.2.1
2021-12-13 16:14:39 -05:00
Natalie L
60843e6afa Merge pull request #13684 from HabitRPG/dependabot/npm_and_yarn/body-parser-1.19.1
build(deps): bump body-parser from 1.19.0 to 1.19.1
2021-12-13 16:14:10 -05:00
dependabot[bot]
9c281b8010 build(deps): bump core-js from 3.19.2 to 3.19.3 in /website/client
Bumps [core-js](https://github.com/zloirock/core-js) from 3.19.2 to 3.19.3.
- [Release notes](https://github.com/zloirock/core-js/releases)
- [Changelog](https://github.com/zloirock/core-js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/zloirock/core-js/compare/v3.19.2...v3.19.3)

---
updated-dependencies:
- dependency-name: core-js
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-13 05:11:38 +00:00
dependabot[bot]
775730ff02 build(deps): bump @storybook/addon-links in /website/client
Bumps [@storybook/addon-links](https://github.com/storybookjs/storybook/tree/HEAD/addons/links) from 6.3.12 to 6.4.9.
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v6.4.9/addons/links)

---
updated-dependencies:
- dependency-name: "@storybook/addon-links"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-13 05:07:21 +00:00
dependabot[bot]
409f3bfa27 build(deps): bump stripe from 8.191.0 to 8.193.0
Bumps [stripe](https://github.com/stripe/stripe-node) from 8.191.0 to 8.193.0.
- [Release notes](https://github.com/stripe/stripe-node/releases)
- [Changelog](https://github.com/stripe/stripe-node/blob/master/CHANGELOG.md)
- [Commits](https://github.com/stripe/stripe-node/compare/v8.191.0...v8.193.0)

---
updated-dependencies:
- dependency-name: stripe
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-13 05:06:24 +00:00
dependabot[bot]
c425f85378 build(deps): bump express-basic-auth from 1.2.0 to 1.2.1
Bumps [express-basic-auth](https://github.com/LionC/express-basic-auth) from 1.2.0 to 1.2.1.
- [Release notes](https://github.com/LionC/express-basic-auth/releases)
- [Commits](https://github.com/LionC/express-basic-auth/compare/v1.2.0...v1.2.1)

---
updated-dependencies:
- dependency-name: express-basic-auth
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-13 05:03:12 +00:00
dependabot[bot]
59fa547e20 build(deps): bump body-parser from 1.19.0 to 1.19.1
Bumps [body-parser](https://github.com/expressjs/body-parser) from 1.19.0 to 1.19.1.
- [Release notes](https://github.com/expressjs/body-parser/releases)
- [Changelog](https://github.com/expressjs/body-parser/blob/master/HISTORY.md)
- [Commits](https://github.com/expressjs/body-parser/compare/1.19.0...1.19.1)

---
updated-dependencies:
- dependency-name: body-parser
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-13 05:02:38 +00:00
SabreCat
389768d9e3 4.214.4 2021-12-10 14:11:38 -06:00
SabreCat
938cda1fcf fix(privacy): fussy wording 2021-12-10 14:11:27 -06:00
SabreCat
495b34124d 4.214.3 2021-12-10 09:58:48 -06:00
Craig Inches
af9a12bb20 Alter naming to match expected elsewhere (#13682) 2021-12-10 09:58:36 -06:00
Craig Inches
9e1e4248a5 Alter naming to match expected elsewhere (#13682) 2021-12-10 09:43:34 -06:00
SabreCat
8b4074015f 4.214.2 2021-12-09 16:45:03 -06:00
SabreCat
94d666e8b9 Merge branch 'develop' into release 2021-12-09 16:44:55 -06:00
SabreCat
1e8222af15 Revert "Revert "chore(legal): updates to Privacy Policy""
This reverts commit d995a7484b.
2021-12-09 16:43:31 -06:00
SabreCat
de89032491 fix(privacy): line edits 2021-12-09 16:25:01 -06:00
SabreCat
7a67d87ce1 4.214.1 2021-12-08 10:02:51 -06:00
SabreCat
90a1fabcdf Merge branch 'develop' into release 2021-12-08 10:02:44 -06:00
Weblate
caac438858 Translated using Weblate (German)
Currently translated at 100.0% (193 of 193 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (661 of 661 strings)

Translated using Weblate (Japanese)

Currently translated at 99.6% (659 of 661 strings)

Translated using Weblate (German)

Currently translated at 100.0% (661 of 661 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (2481 of 2481 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (661 of 661 strings)

Translated using Weblate (Vietnamese)

Currently translated at 96.2% (179 of 186 strings)

Translated using Weblate (French)

Currently translated at 100.0% (193 of 193 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 99.6% (2473 of 2481 strings)

Translated using Weblate (French)

Currently translated at 100.0% (2481 of 2481 strings)

Translated using Weblate (French)

Currently translated at 100.0% (746 of 746 strings)

Translated using Weblate (French)

Currently translated at 100.0% (127 of 127 strings)

Translated using Weblate (French)

Currently translated at 100.0% (372 of 372 strings)

Translated using Weblate (French)

Currently translated at 100.0% (661 of 661 strings)

Co-authored-by: Benoit Hetru <me+hbtc@gahanka.net>
Co-authored-by: Chap <chalda82+nogravatar@gmail.com>
Co-authored-by: Dmitriy Pleshevskiy <dmitriy@ideascup.me>
Co-authored-by: Mara Dolichotis <marascherzer@gmail.com>
Co-authored-by: Sciuridae <sweetvshoney@163.com>
Co-authored-by: Võ Trần Nhã Linh <vtrnnhlinh@outlook.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: mattya 226 <worldworld1114@gmail.com>
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/de/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/it/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ru/
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/content/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/it/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/settings/vi/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/de/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/fr/
Translation: Habitica/Backgrounds
Translation: Habitica/Communityguidelines
Translation: Habitica/Content
Translation: Habitica/Gear
Translation: Habitica/Questscontent
Translation: Habitica/Settings
Translation: Habitica/Subscriber
2021-12-08 16:59:54 +01:00
Vanathi G
a193bd4b7a Fix show more button behaviour in Stable (#13655) 2021-12-07 15:42:09 -06:00
SabreCat
d995a7484b Revert "chore(legal): updates to Privacy Policy"
This reverts commit e22eef993b.
2021-12-07 15:37:27 -06:00
Weblate
445f0cc117 Merge branch 'origin/develop' into Weblate. 2021-12-07 18:00:02 +01:00
Weblate
5f3336f3d5 Translated using Weblate (Japanese)
Currently translated at 100.0% (2477 of 2477 strings)

Translated using Weblate (Vietnamese)

Currently translated at 100.0% (129 of 129 strings)

Translated using Weblate (Vietnamese)

Currently translated at 100.0% (13 of 13 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (134 of 134 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (193 of 193 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (193 of 193 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (210 of 210 strings)

Translated using Weblate (Japanese)

Currently translated at 99.9% (2475 of 2477 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (2477 of 2477 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (203 of 203 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (178 of 178 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (56 of 56 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (746 of 746 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (746 of 746 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (746 of 746 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (127 of 127 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (372 of 372 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (98 of 98 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (654 of 654 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (125 of 125 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (186 of 186 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (746 of 746 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (2477 of 2477 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (178 of 178 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (746 of 746 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (186 of 186 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (746 of 746 strings)

Translated using Weblate (Hindi)

Currently translated at 98.9% (184 of 186 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (46 of 46 strings)

Translated using Weblate (Japanese)

Currently translated at 99.7% (2471 of 2477 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 98.7% (737 of 746 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (127 of 127 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (46 of 46 strings)

Translated using Weblate (German)

Currently translated at 100.0% (127 of 127 strings)

Translated using Weblate (Vietnamese)

Currently translated at 100.0% (61 of 61 strings)

Translated using Weblate (Ukrainian)

Currently translated at 88.2% (98 of 111 strings)

Translated using Weblate (Japanese)

Currently translated at 99.5% (2465 of 2477 strings)

Translated using Weblate (Dutch)

Currently translated at 98.7% (646 of 654 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (746 of 746 strings)

Translated using Weblate (Dutch)

Currently translated at 98.3% (643 of 654 strings)

Translated using Weblate (Vietnamese)

Currently translated at 100.0% (46 of 46 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (746 of 746 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (127 of 127 strings)

Translated using Weblate (Turkish)

Currently translated at 88.0% (110 of 125 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (56 of 56 strings)

Translated using Weblate (Russian)

Currently translated at 94.6% (53 of 56 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (372 of 372 strings)

Translated using Weblate (Vietnamese)

Currently translated at 98.3% (60 of 61 strings)

Translated using Weblate (Vietnamese)

Currently translated at 100.0% (8 of 8 strings)

Translated using Weblate (Vietnamese)

Currently translated at 100.0% (372 of 372 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (8 of 8 strings)

Translated using Weblate (Czech)

Currently translated at 96.4% (54 of 56 strings)

Translated using Weblate (Czech)

Currently translated at 93.7% (121 of 129 strings)

Translated using Weblate (Japanese)

Currently translated at 99.4% (2463 of 2477 strings)

Translated using Weblate (German)

Currently translated at 99.1% (2456 of 2477 strings)

Translated using Weblate (German)

Currently translated at 100.0% (746 of 746 strings)

Translated using Weblate (German)

Currently translated at 100.0% (372 of 372 strings)

Translated using Weblate (Japanese)

Currently translated at 99.3% (2461 of 2477 strings)

Translated using Weblate (Japanese)

Currently translated at 99.5% (743 of 746 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (372 of 372 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (654 of 654 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (2473 of 2473 strings)

Translated using Weblate (Dutch)

Currently translated at 97.0% (635 of 654 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 99.8% (745 of 746 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (372 of 372 strings)

Translated using Weblate (Vietnamese)

Currently translated at 76.3% (97 of 127 strings)

Translated using Weblate (Hebrew)

Currently translated at 90.2% (121 of 134 strings)

Translated using Weblate (Hebrew)

Currently translated at 61.9% (119 of 192 strings)

Translated using Weblate (Hebrew)

Currently translated at 65.9% (62 of 94 strings)

Translated using Weblate (Hebrew)

Currently translated at 85.2% (52 of 61 strings)

Translated using Weblate (Hebrew)

Currently translated at 50.9% (107 of 210 strings)

Translated using Weblate (Hebrew)

Currently translated at 100.0% (22 of 22 strings)

Translated using Weblate (Hebrew)

Currently translated at 68.7% (1700 of 2473 strings)

Translated using Weblate (Hebrew)

Currently translated at 50.0% (28 of 56 strings)

Translated using Weblate (Hebrew)

Currently translated at 93.3% (14 of 15 strings)

Translated using Weblate (Hebrew)

Currently translated at 76.4% (570 of 746 strings)

Translated using Weblate (Hebrew)

Currently translated at 95.6% (178 of 186 strings)

Translated using Weblate (Hebrew)

Currently translated at 59.2% (74 of 125 strings)

Translated using Weblate (Hebrew)

Currently translated at 89.2% (166 of 186 strings)

Co-authored-by: Arnav Singhal <arnavsinghalyt@gmail.com>
Co-authored-by: Chap <chalda82+nogravatar@gmail.com>
Co-authored-by: Dmitriy Pleshevskiy <dmitriy@ideascup.me>
Co-authored-by: Ele Kho <elena.chochlova@seznam.cz>
Co-authored-by: Jerry Chen <minecjraft@qq.com>
Co-authored-by: John Collins <munmedia9865@gmail.com>
Co-authored-by: KanI <twinklingnerd@gmail.com>
Co-authored-by: Maikel Roelofs <maikel_roelofs@live.nl>
Co-authored-by: Mara Dolichotis <marascherzer@gmail.com>
Co-authored-by: Michael Purkert <Tevollogins123@gmail.com>
Co-authored-by: Nazar Paruna <nazarparuna@gmail.com>
Co-authored-by: Omer I.S <omeritzicschwartz@gmail.com>
Co-authored-by: Otto Spaude <ottospaude2@gmail.com>
Co-authored-by: Raithe <RaitheOfDureya@gmail.com>
Co-authored-by: Sciuridae <sweetvshoney@163.com>
Co-authored-by: Võ Trần Nhã Linh <vtrnnhlinh@outlook.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: mattya 226 <worldworld1114@gmail.com>
Co-authored-by: Естай <akseleu@yahoo.com>
Co-authored-by: そら <comi4work@gmail.com>
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/he/
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/it/
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/tr/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/it/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/nl/
Translate-URL: https://translate.habitica.com/projects/habitica/challenge/it/
Translate-URL: https://translate.habitica.com/projects/habitica/character/he/
Translate-URL: https://translate.habitica.com/projects/habitica/character/hi/
Translate-URL: https://translate.habitica.com/projects/habitica/character/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/de/
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/it/
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/ru/
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/vi/
Translate-URL: https://translate.habitica.com/projects/habitica/content/de/
Translate-URL: https://translate.habitica.com/projects/habitica/content/it/
Translate-URL: https://translate.habitica.com/projects/habitica/content/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/content/ru/
Translate-URL: https://translate.habitica.com/projects/habitica/content/vi/
Translate-URL: https://translate.habitica.com/projects/habitica/content/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/contrib/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/contrib/vi/
Translate-URL: https://translate.habitica.com/projects/habitica/contrib/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/death/he/
Translate-URL: https://translate.habitica.com/projects/habitica/faq/he/
Translate-URL: https://translate.habitica.com/projects/habitica/faq/it/
Translate-URL: https://translate.habitica.com/projects/habitica/faq/ru/
Translate-URL: https://translate.habitica.com/projects/habitica/front/it/
Translate-URL: https://translate.habitica.com/projects/habitica/front/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/de/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/he/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/it/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/ru/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/it/
Translate-URL: https://translate.habitica.com/projects/habitica/inventory/vi/
Translate-URL: https://translate.habitica.com/projects/habitica/limited/he/
Translate-URL: https://translate.habitica.com/projects/habitica/limited/ru/
Translate-URL: https://translate.habitica.com/projects/habitica/loginincentives/he/
Translate-URL: https://translate.habitica.com/projects/habitica/messages/he/
Translate-URL: https://translate.habitica.com/projects/habitica/messages/vi/
Translate-URL: https://translate.habitica.com/projects/habitica/npc/cs/
Translate-URL: https://translate.habitica.com/projects/habitica/npc/vi/
Translate-URL: https://translate.habitica.com/projects/habitica/overview/ru/
Translate-URL: https://translate.habitica.com/projects/habitica/pets/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/quests/he/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/de/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/he/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/it/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/ru/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/rebirth/vi/
Translate-URL: https://translate.habitica.com/projects/habitica/settings/he/
Translate-URL: https://translate.habitica.com/projects/habitica/settings/it/
Translate-URL: https://translate.habitica.com/projects/habitica/spells/cs/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/he/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/it/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/he/
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/it/
Translation: Habitica/Achievements
Translation: Habitica/Backgrounds
Translation: Habitica/Challenge
Translation: Habitica/Character
Translation: Habitica/Communityguidelines
Translation: Habitica/Content
Translation: Habitica/Contrib
Translation: Habitica/Death
Translation: Habitica/Faq
Translation: Habitica/Front
Translation: Habitica/Gear
Translation: Habitica/Generic
Translation: Habitica/Inventory
Translation: Habitica/Limited
Translation: Habitica/Loginincentives
Translation: Habitica/Messages
Translation: Habitica/Npc
Translation: Habitica/Overview
Translation: Habitica/Pets
Translation: Habitica/Quests
Translation: Habitica/Questscontent
Translation: Habitica/Rebirth
Translation: Habitica/Settings
Translation: Habitica/Spells
Translation: Habitica/Subscriber
Translation: Habitica/Tasks
2021-12-07 17:59:42 +01:00
SabreCat
1a58e3f8a1 Merge branch 'release' into develop 2021-12-07 10:58:06 -06:00
Natalie L
4c657f43de Update: Dec 2021 Background and Armoire Items (#13667) 2021-12-07 10:45:36 -06:00
SabreCat
ea53382030 4.214.0 2021-12-07 10:44:31 -06:00
SabreCat
0c3b41727c chore(content): add images, compile sprites 2021-12-07 10:44:23 -06:00
SabreCat
5279f45804 Merge remote-tracking branch 'CuriousMagpie/backgrounds-armoire-202112' into release 2021-12-07 10:28:33 -06:00
Natalie L
f752f7a80d Merge pull request #13673 from HabitRPG/dependabot/npm_and_yarn/website/client/smartbanner.js-1.17.0
build(deps): bump smartbanner.js from 1.16.0 to 1.17.0 in /website/client
2021-12-06 12:10:15 -05:00
Natalie L
07c906c557 Merge pull request #13672 from HabitRPG/dependabot/npm_and_yarn/website/client/amplitude-js-8.13.1
build(deps): bump amplitude-js from 8.12.0 to 8.13.1 in /website/client
2021-12-06 12:09:12 -05:00
Natalie L
b2f7d994f0 Merge pull request #13669 from HabitRPG/dependabot/npm_and_yarn/website/client/core-js-3.19.2
build(deps): bump core-js from 3.19.1 to 3.19.2 in /website/client
2021-12-06 12:04:07 -05:00
Natalie L
a814fe8581 Merge pull request #13668 from HabitRPG/dependabot/npm_and_yarn/rate-limiter-flexible-2.3.6
build(deps): bump rate-limiter-flexible from 2.3.5 to 2.3.6
2021-12-06 12:03:41 -05:00
dependabot[bot]
2e41576fa2 build(deps): bump smartbanner.js in /website/client
Bumps [smartbanner.js](https://github.com/ain/smartbanner.js) from 1.16.0 to 1.17.0.
- [Release notes](https://github.com/ain/smartbanner.js/releases)
- [Commits](https://github.com/ain/smartbanner.js/compare/v1.16.0...v1.17.0)

---
updated-dependencies:
- dependency-name: smartbanner.js
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-06 05:10:00 +00:00
dependabot[bot]
f7db8fc721 build(deps): bump amplitude-js from 8.12.0 to 8.13.1 in /website/client
Bumps [amplitude-js](https://github.com/amplitude/amplitude-javascript) from 8.12.0 to 8.13.1.
- [Release notes](https://github.com/amplitude/amplitude-javascript/releases)
- [Changelog](https://github.com/amplitude/Amplitude-JavaScript/blob/main/CHANGELOG.md)
- [Commits](https://github.com/amplitude/amplitude-javascript/compare/v8.12.0...v8.13.1)

---
updated-dependencies:
- dependency-name: amplitude-js
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-06 05:07:56 +00:00
dependabot[bot]
75b6d6e11a build(deps): bump core-js from 3.19.1 to 3.19.2 in /website/client
Bumps [core-js](https://github.com/zloirock/core-js) from 3.19.1 to 3.19.2.
- [Release notes](https://github.com/zloirock/core-js/releases)
- [Changelog](https://github.com/zloirock/core-js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/zloirock/core-js/compare/v3.19.1...v3.19.2)

---
updated-dependencies:
- dependency-name: core-js
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-06 05:03:41 +00:00
dependabot[bot]
a294b404ac build(deps): bump rate-limiter-flexible from 2.3.5 to 2.3.6
Bumps [rate-limiter-flexible](https://github.com/animir/node-rate-limiter-flexible) from 2.3.5 to 2.3.6.
- [Release notes](https://github.com/animir/node-rate-limiter-flexible/releases)
- [Commits](https://github.com/animir/node-rate-limiter-flexible/commits)

---
updated-dependencies:
- dependency-name: rate-limiter-flexible
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-06 05:03:02 +00:00
SabreCat
e22eef993b chore(legal): updates to Privacy Policy 2021-12-03 16:36:09 -06:00
CuriousMagpie
529bc97c9a Update: Dec 2021 Background and Armoire Items 2021-12-02 14:49:04 -05:00
Alys
1f3bde5caf change "reports" to "report" 2021-12-01 10:17:44 +10:00
Alys
df83887df6 remove an unnecessary instruction to send email from Community Guidelines 2021-12-01 10:15:39 +10:00
SabreCat
986071628e 4.213.0 2021-11-29 15:03:40 -06:00
SabreCat
54f6845fcd chore(sprites): compile 2021-11-29 15:03:29 -06:00
SabreCat
8784d6eee1 feat(content): subscriber items December 2021 2021-11-29 15:02:35 -06:00
SabreCat
966ecd8ee5 Merge branch 'develop' into release 2021-11-29 14:37:07 -06:00
Weblate
77a38b399d Merge branch 'origin/develop' into Weblate. 2021-11-29 16:22:10 +01:00
Alys
28197837cc removes "Mossy" from questOnyxUnlockText string 2021-11-28 18:30:06 +10:00
SabreCat
8e76c42260 fix(lint): comma 2021-11-24 11:51:32 -06:00
SabreCat
466aa38999 fix(lint): comma 2021-11-24 11:51:00 -06:00
Weblate
293f573c3a Merge branch 'origin/develop' into Weblate. 2021-11-24 18:38:09 +01:00
SabreCat
0541505797 Merge branch 'release' into develop 2021-11-24 11:24:16 -06:00
SabreCat
480f510062 4.212.2 2021-11-24 11:24:01 -06:00
SabreCat
d20271e91f feat(content): Harvest Feast 2021 2021-11-24 11:23:09 -06:00
SabreCat
1d2782c74e 4.212.1 2021-11-24 07:42:14 -06:00
SabreCat
cd5044e780 Revert "Revert "Set cache to private for the language resources""
This reverts commit c6d1954153.
2021-11-24 07:41:55 -06:00
SabreCat
cd0dc44a83 Merge branch 'release' into develop 2021-11-23 15:34:23 -06:00
SabreCat
a009f9ca5e 4.212.0 2021-11-23 15:34:09 -06:00
SabreCat
1356e14b40 chore(sprites): compile 2021-11-23 15:33:56 -06:00
SabreCat
2704694214 feat(content): Onyx Hatching Potion quest 2021-11-23 15:33:47 -06:00
SabreCat
e1fe58ee77 Merge branch 'bird-bundles' into release 2021-11-23 15:14:01 -06:00
SabreCat
ebdfc797f5 fix(g1g1): don't stack modals plz 2021-11-23 14:30:03 -06:00
Weblate
89ef025795 Translated using Weblate (German)
Currently translated at 99.2% (2454 of 2473 strings)

Translated using Weblate (Swedish)

Currently translated at 100.0% (133 of 133 strings)

Translated using Weblate (Hebrew)

Currently translated at 90.2% (121 of 134 strings)

Translated using Weblate (Hebrew)

Currently translated at 61.9% (119 of 192 strings)

Translated using Weblate (Hebrew)

Currently translated at 89.9% (116 of 129 strings)

Translated using Weblate (Hebrew)

Currently translated at 85.2% (52 of 61 strings)

Translated using Weblate (Hebrew)

Currently translated at 50.9% (107 of 210 strings)

Translated using Weblate (Hebrew)

Currently translated at 85.2% (311 of 365 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (2473 of 2473 strings)

Translated using Weblate (Hebrew)

Currently translated at 68.7% (1700 of 2473 strings)

Translated using Weblate (Hebrew)

Currently translated at 98.0% (199 of 203 strings)

Translated using Weblate (Hebrew)

Currently translated at 94.9% (169 of 178 strings)

Translated using Weblate (Hebrew)

Currently translated at 50.0% (28 of 56 strings)

Translated using Weblate (Hebrew)

Currently translated at 74.0% (40 of 54 strings)

Translated using Weblate (Hebrew)

Currently translated at 93.3% (14 of 15 strings)

Translated using Weblate (Hebrew)

Currently translated at 70.8% (90 of 127 strings)

Translated using Weblate (Hebrew)

Currently translated at 95.6% (178 of 186 strings)

Translated using Weblate (Hebrew)

Currently translated at 95.9% (94 of 98 strings)

Translated using Weblate (Hebrew)

Currently translated at 89.2% (166 of 186 strings)

Translated using Weblate (Vietnamese)

Currently translated at 100.0% (371 of 371 strings)

Translated using Weblate (German)

Currently translated at 100.0% (56 of 56 strings)

Translated using Weblate (Vietnamese)

Currently translated at 77.6% (97 of 125 strings)

Translated using Weblate (Portuguese)

Currently translated at 100.0% (15 of 15 strings)

Translated using Weblate (Portuguese)

Currently translated at 100.0% (186 of 186 strings)

Translated using Weblate (Chinese (Traditional))

Currently translated at 97.6% (124 of 127 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (127 of 127 strings)

Translated using Weblate (Japanese)

Currently translated at 99.3% (650 of 654 strings)

Translated using Weblate (Vietnamese)

Currently translated at 100.0% (56 of 56 strings)

Translated using Weblate (Vietnamese)

Currently translated at 98.2% (55 of 56 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (178 of 178 strings)

Translated using Weblate (Vietnamese)

Currently translated at 100.0% (98 of 98 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (2473 of 2473 strings)

Translated using Weblate (German)

Currently translated at 99.1% (2452 of 2473 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (125 of 125 strings)

Translated using Weblate (Ukrainian)

Currently translated at 96.8% (121 of 125 strings)

Translated using Weblate (Vietnamese)

Currently translated at 94.5% (345 of 365 strings)

Translated using Weblate (Vietnamese)

Currently translated at 100.0% (178 of 178 strings)

Translated using Weblate (Hebrew)

Currently translated at 90.9% (101 of 111 strings)

Translated using Weblate (Galician)

Currently translated at 0.5% (1 of 178 strings)

Translated using Weblate (Vietnamese)

Currently translated at 100.0% (186 of 186 strings)

Translated using Weblate (Portuguese)

Currently translated at 71.4% (40 of 56 strings)

Translated using Weblate (German)

Currently translated at 100.0% (192 of 192 strings)

Translated using Weblate (German)

Currently translated at 97.3% (2407 of 2473 strings)

Translated using Weblate (German)

Currently translated at 82.1% (46 of 56 strings)

Translated using Weblate (German)

Currently translated at 100.0% (127 of 127 strings)

Translated using Weblate (German)

Currently translated at 100.0% (371 of 371 strings)

Translated using Weblate (German)

Currently translated at 97.3% (2407 of 2473 strings)

Translated using Weblate (German)

Currently translated at 97.3% (2407 of 2473 strings)

Translated using Weblate (German)

Currently translated at 97.1% (2402 of 2473 strings)

Translated using Weblate (German)

Currently translated at 97.1% (2402 of 2473 strings)

Translated using Weblate (German)

Currently translated at 97.1% (2402 of 2473 strings)

Translated using Weblate (German)

Currently translated at 100.0% (203 of 203 strings)

Translated using Weblate (German)

Currently translated at 82.1% (46 of 56 strings)

Translated using Weblate (German)

Currently translated at 82.1% (46 of 56 strings)

Translated using Weblate (German)

Currently translated at 82.1% (46 of 56 strings)

Translated using Weblate (Spanish)

Currently translated at 99.5% (202 of 203 strings)

Translated using Weblate (German)

Currently translated at 100.0% (365 of 365 strings)

Translated using Weblate (German)

Currently translated at 97.1% (2402 of 2473 strings)

Translated using Weblate (German)

Currently translated at 97.1% (2402 of 2473 strings)

Translated using Weblate (French)

Currently translated at 100.0% (178 of 178 strings)

Translated using Weblate (French)

Currently translated at 100.0% (98 of 98 strings)

Translated using Weblate (Vietnamese)

Currently translated at 100.0% (134 of 134 strings)

Translated using Weblate (Swahili)

Currently translated at 58.4% (73 of 125 strings)

Translated using Weblate (Swahili)

Currently translated at 46.4% (58 of 125 strings)

Translated using Weblate (Swahili)

Currently translated at 36.0% (45 of 125 strings)

Translated using Weblate (Sundanese)

Currently translated at 100.0% (125 of 125 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (56 of 56 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (192 of 192 strings)

Translated using Weblate (German)

Currently translated at 100.0% (192 of 192 strings)

Translated using Weblate (German)

Currently translated at 100.0% (8 of 8 strings)

Translated using Weblate (German)

Currently translated at 96.6% (2391 of 2473 strings)

Translated using Weblate (German)

Currently translated at 100.0% (178 of 178 strings)

Translated using Weblate (German)

Currently translated at 100.0% (98 of 98 strings)

Translated using Weblate (Esperanto)

Currently translated at 89.7% (88 of 98 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (2473 of 2473 strings)

Translated using Weblate (Chinese (Traditional))

Currently translated at 93.4% (2310 of 2473 strings)

Translated using Weblate (Chinese (Traditional))

Currently translated at 100.0% (56 of 56 strings)

Translated using Weblate (Japanese)

Currently translated at 99.3% (2457 of 2473 strings)

Translated using Weblate (Japanese)

Currently translated at 99.1% (2452 of 2473 strings)

Translated using Weblate (Chinese (Traditional))

Currently translated at 100.0% (134 of 134 strings)

Translated using Weblate (Chinese (Traditional))

Currently translated at 100.0% (203 of 203 strings)

Translated using Weblate (Chinese (Traditional))

Currently translated at 100.0% (178 of 178 strings)

Translated using Weblate (Chinese (Traditional))

Currently translated at 100.0% (98 of 98 strings)

Translated using Weblate (Chinese (Traditional))

Currently translated at 100.0% (654 of 654 strings)

Translated using Weblate (Chinese (Traditional))

Currently translated at 99.6% (652 of 654 strings)

Translated using Weblate (Chinese (Traditional))

Currently translated at 99.5% (651 of 654 strings)

Translated using Weblate (Chinese (Traditional))

Currently translated at 100.0% (94 of 94 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (94 of 94 strings)

Translated using Weblate (Spanish (Latin America))

Currently translated at 75.0% (42 of 56 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (178 of 178 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (98 of 98 strings)

Translated using Weblate (Chinese (Traditional))

Currently translated at 93.2% (2307 of 2473 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (2473 of 2473 strings)

Translated using Weblate (Chinese (Traditional))

Currently translated at 99.3% (650 of 654 strings)

Co-authored-by: Alexandra Shchigunova <alexa.shch.22@gmail.com>
Co-authored-by: An Nguyen <nguyen.thienan.business@gmail.com>
Co-authored-by: Arthur Ouzlaner <panther1984@gmail.com>
Co-authored-by: Benoit Hetru <me+hbtc@gahanka.net>
Co-authored-by: Bo-Hsiang Chen <rubybhchen@gmail.com>
Co-authored-by: Delta S <deseji93@gmail.com>
Co-authored-by: KanI <twinklingnerd@gmail.com>
Co-authored-by: Lio Zam <zerofux@web.de>
Co-authored-by: Ma Mi <habitica_mimaha@banetel.eu>
Co-authored-by: Mara Dolichotis <marascherzer@gmail.com>
Co-authored-by: Moa Davou <moa.davou99@gmail.com>
Co-authored-by: Omer I.S <omeritzicschwartz@gmail.com>
Co-authored-by: Sara Adriana Silva Pedro <sarapedro1994@gmail.com>
Co-authored-by: Sciuridae <sweetvshoney@163.com>
Co-authored-by: Simon Fischer <simon.pascal.fischer@gmail.com>
Co-authored-by: Skylar River <valnbiha@gmail.com>
Co-authored-by: Tobias Welti <tobias.welti@gmail.com>
Co-authored-by: Võ Trần Nhã Linh <vtrnnhlinh@outlook.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: citrusella <citrusellaflugpucker@yahoo.com>
Co-authored-by: lllllllll <karmazin.eugene@gmail.com>
Co-authored-by: mattya 226 <worldworld1114@gmail.com>
Co-authored-by: michael timothy notopuro <2019072630@student.pppkpetra.sch.id>
Co-authored-by: Естай <akseleu@yahoo.com>
Co-authored-by: そら <comi4work@gmail.com>
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/su/
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/sw/
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/vi/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/zh_Hant/
Translate-URL: https://translate.habitica.com/projects/habitica/challenge/de/
Translate-URL: https://translate.habitica.com/projects/habitica/challenge/eo/
Translate-URL: https://translate.habitica.com/projects/habitica/challenge/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/challenge/he/
Translate-URL: https://translate.habitica.com/projects/habitica/challenge/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/challenge/vi/
Translate-URL: https://translate.habitica.com/projects/habitica/challenge/zh_Hant/
Translate-URL: https://translate.habitica.com/projects/habitica/character/he/
Translate-URL: https://translate.habitica.com/projects/habitica/character/pt/
Translate-URL: https://translate.habitica.com/projects/habitica/character/vi/
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/de/
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/he/
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/zh_Hant/
Translate-URL: https://translate.habitica.com/projects/habitica/content/de/
Translate-URL: https://translate.habitica.com/projects/habitica/content/vi/
Translate-URL: https://translate.habitica.com/projects/habitica/death/he/
Translate-URL: https://translate.habitica.com/projects/habitica/death/pt/
Translate-URL: https://translate.habitica.com/projects/habitica/defaulttasks/he/
Translate-URL: https://translate.habitica.com/projects/habitica/faq/de/
Translate-URL: https://translate.habitica.com/projects/habitica/faq/es_419/
Translate-URL: https://translate.habitica.com/projects/habitica/faq/he/
Translate-URL: https://translate.habitica.com/projects/habitica/faq/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/faq/pt/
Translate-URL: https://translate.habitica.com/projects/habitica/faq/zh_Hant/
Translate-URL: https://translate.habitica.com/projects/habitica/front/de/
Translate-URL: https://translate.habitica.com/projects/habitica/front/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/front/gl/
Translate-URL: https://translate.habitica.com/projects/habitica/front/he/
Translate-URL: https://translate.habitica.com/projects/habitica/front/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/front/vi/
Translate-URL: https://translate.habitica.com/projects/habitica/front/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/front/zh_Hant/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/de/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/he/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/ru/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/zh_Hant/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/de/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/es/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/he/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/zh_Hant/
Translate-URL: https://translate.habitica.com/projects/habitica/groups/de/
Translate-URL: https://translate.habitica.com/projects/habitica/groups/he/
Translate-URL: https://translate.habitica.com/projects/habitica/groups/vi/
Translate-URL: https://translate.habitica.com/projects/habitica/limited/he/
Translate-URL: https://translate.habitica.com/projects/habitica/messages/he/
Translate-URL: https://translate.habitica.com/projects/habitica/npc/he/
Translate-URL: https://translate.habitica.com/projects/habitica/overview/de/
Translate-URL: https://translate.habitica.com/projects/habitica/pets/he/
Translate-URL: https://translate.habitica.com/projects/habitica/quests/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/quests/zh_Hant/
Translate-URL: https://translate.habitica.com/projects/habitica/settings/he/
Translate-URL: https://translate.habitica.com/projects/habitica/spells/vi/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/de/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/he/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/he/
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/sv/
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/vi/
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/zh_Hant/
Translation: Habitica/Achievements
Translation: Habitica/Backgrounds
Translation: Habitica/Challenge
Translation: Habitica/Character
Translation: Habitica/Communityguidelines
Translation: Habitica/Content
Translation: Habitica/Death
Translation: Habitica/Defaulttasks
Translation: Habitica/Faq
Translation: Habitica/Front
Translation: Habitica/Gear
Translation: Habitica/Generic
Translation: Habitica/Groups
Translation: Habitica/Limited
Translation: Habitica/Messages
Translation: Habitica/Npc
Translation: Habitica/Overview
Translation: Habitica/Pets
Translation: Habitica/Quests
Translation: Habitica/Settings
Translation: Habitica/Spells
Translation: Habitica/Subscriber
Translation: Habitica/Tasks
2021-11-23 19:24:12 +01:00
SabreCat
f2b9098917 fix(g1g1): launch modal from more banners 2021-11-22 14:57:41 -06:00
Natalie L
9d23d4d215 Merge pull request #13647 from HabitRPG/dependabot/npm_and_yarn/apidoc-0.50.2
build(deps): bump apidoc from 0.50.1 to 0.50.2
2021-11-22 14:39:02 -05:00
Natalie L
85556d314e Merge pull request #13644 from HabitRPG/dependabot/npm_and_yarn/got-11.8.3
build(deps): bump got from 11.8.2 to 11.8.3
2021-11-22 14:37:39 -05:00
Natalie L
a44085c067 Merge pull request #13643 from HabitRPG/dependabot/npm_and_yarn/stripe-8.191.0
build(deps): bump stripe from 8.188.0 to 8.191.0
2021-11-22 14:36:49 -05:00
Natalie L
5661f64f1c Merge pull request #13641 from HabitRPG/dependabot/npm_and_yarn/rate-limiter-flexible-2.3.5
build(deps): bump rate-limiter-flexible from 2.3.4 to 2.3.5
2021-11-22 14:35:48 -05:00
Natalie L
b1d2d9c3cc Merge pull request #13639 from HabitRPG/dependabot/npm_and_yarn/website/client/amplitude-js-8.12.0
build(deps): bump amplitude-js from 8.10.0 to 8.12.0 in /website/client
2021-11-22 14:34:28 -05:00
Natalie L
d59fadd559 Merge pull request #13637 from HabitRPG/dependabot/npm_and_yarn/parse/node-apn-5.1.0
build(deps): bump @parse/node-apn from 4.1.1 to 5.1.0
2021-11-22 14:31:21 -05:00
SabreCat
43945f5187 Merge branch 'release' into develop 2021-11-22 11:27:46 -06:00
dependabot[bot]
02f279e78b build(deps): bump apidoc from 0.50.1 to 0.50.2
Bumps [apidoc](https://github.com/apidoc/apidoc) from 0.50.1 to 0.50.2.
- [Release notes](https://github.com/apidoc/apidoc/releases)
- [Changelog](https://github.com/apidoc/apidoc/blob/master/CHANGELOG.md)
- [Commits](https://github.com/apidoc/apidoc/compare/0.50.1...0.50.2)

---
updated-dependencies:
- dependency-name: apidoc
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-22 05:08:49 +00:00
dependabot[bot]
3132050dad build(deps): bump got from 11.8.2 to 11.8.3
Bumps [got](https://github.com/sindresorhus/got) from 11.8.2 to 11.8.3.
- [Release notes](https://github.com/sindresorhus/got/releases)
- [Commits](https://github.com/sindresorhus/got/compare/v11.8.2...v11.8.3)

---
updated-dependencies:
- dependency-name: got
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-22 05:07:01 +00:00
dependabot[bot]
517e128228 build(deps): bump stripe from 8.188.0 to 8.191.0
Bumps [stripe](https://github.com/stripe/stripe-node) from 8.188.0 to 8.191.0.
- [Release notes](https://github.com/stripe/stripe-node/releases)
- [Changelog](https://github.com/stripe/stripe-node/blob/master/CHANGELOG.md)
- [Commits](https://github.com/stripe/stripe-node/compare/v8.188.0...v8.191.0)

---
updated-dependencies:
- dependency-name: stripe
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-22 05:06:23 +00:00
dependabot[bot]
51184e13d2 build(deps): bump rate-limiter-flexible from 2.3.4 to 2.3.5
Bumps [rate-limiter-flexible](https://github.com/animir/node-rate-limiter-flexible) from 2.3.4 to 2.3.5.
- [Release notes](https://github.com/animir/node-rate-limiter-flexible/releases)
- [Commits](https://github.com/animir/node-rate-limiter-flexible/commits)

---
updated-dependencies:
- dependency-name: rate-limiter-flexible
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-22 05:05:45 +00:00
dependabot[bot]
3dbfb20869 build(deps): bump amplitude-js from 8.10.0 to 8.12.0 in /website/client
Bumps [amplitude-js](https://github.com/amplitude/amplitude-javascript) from 8.10.0 to 8.12.0.
- [Release notes](https://github.com/amplitude/amplitude-javascript/releases)
- [Changelog](https://github.com/amplitude/Amplitude-JavaScript/blob/main/CHANGELOG.md)
- [Commits](https://github.com/amplitude/amplitude-javascript/compare/v8.10.0...v8.12.0)

---
updated-dependencies:
- dependency-name: amplitude-js
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-22 05:04:20 +00:00
dependabot[bot]
b6b8a73360 build(deps): bump @parse/node-apn from 4.1.1 to 5.1.0
Bumps [@parse/node-apn](https://github.com/parse-community/node-apn) from 4.1.1 to 5.1.0.
- [Release notes](https://github.com/parse-community/node-apn/releases)
- [Changelog](https://github.com/parse-community/node-apn/blob/master/ChangeLog.md)
- [Commits](https://github.com/parse-community/node-apn/compare/4.1.1...5.1.0)

---
updated-dependencies:
- dependency-name: "@parse/node-apn"
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-22 05:03:39 +00:00
Natalie L
0a8082cb35 fix: remove Bird Quest Bundle from Featured Quests in Shop (#13635) 2021-11-19 15:36:01 -06:00
CuriousMagpie
5fc26e9497 fix: remove Bird Quest Bundle from Featured Quests in Shop 2021-11-19 14:43:48 -05:00
SabreCat
aefe4a6ee3 4.211.8 2021-11-18 15:19:02 -06:00
SabreCat
c6d1954153 Revert "Set cache to private for the language resources"
This reverts commit 90a14ee871.
2021-11-18 15:18:53 -06:00
SabreCat
31469a2d70 Revert "Make the linter happy"
This reverts commit df28670d16.
2021-11-18 15:18:30 -06:00
SabreCat
6475eb4f5c 4.211.7 2021-11-18 14:52:36 -06:00
SabreCat
c7c17dbb55 fix(language): load locale during build of app.vue 2021-11-18 14:52:28 -06:00
SabreCat
30a5c3f91b 4.211.6 2021-11-18 12:58:51 -06:00
SabreCat
0e507a9c20 Merge branch 'fix_i18n' into release 2021-11-18 12:58:47 -06:00
agares
df28670d16 Make the linter happy 2021-11-18 19:28:44 +01:00
agares
90a14ee871 Set cache to private for the language resources 2021-11-18 19:14:00 +01:00
SabreCat
ccc6c9ef6c Revert "fix(language): test to see if Axios is the culprit"
This reverts commit d1b537a737.
2021-11-17 13:54:06 -06:00
SabreCat
c57ebb5624 4.211.5 2021-11-17 10:48:05 -06:00
SabreCat
d1b537a737 fix(language): test to see if Axios is the culprit 2021-11-17 10:47:58 -06:00
SabreCat
b943f4bc7f Revert "fix(language): prefer session data over request data"
This reverts commit 86d6580ffb.
2021-11-17 10:46:46 -06:00
SabreCat
79033af36e Revert "fix(test): skip undesired test"
This reverts commit 93e0d16d5d.
2021-11-17 10:46:08 -06:00
SabreCat
89f449b513 4.211.4 2021-11-16 16:34:15 -06:00
SabreCat
93e0d16d5d fix(test): skip undesired test 2021-11-16 16:34:09 -06:00
SabreCat
86d6580ffb fix(language): prefer session data over request data 2021-11-16 16:34:01 -06:00
SabreCat
48e3b218fa 4.211.3 2021-11-16 11:55:20 -06:00
Natalie L
7aecec9cf4 Merge pull request #13628 from HabitRPG/dependabot/npm_and_yarn/rate-limiter-flexible-2.3.4
build(deps): bump rate-limiter-flexible from 2.3.3 to 2.3.4
2021-11-15 13:56:51 -05:00
Natalie L
99c7801a02 Merge pull request #13627 from HabitRPG/dependabot/npm_and_yarn/website/client/amplitude-js-8.10.0
build(deps): bump amplitude-js from 8.9.1 to 8.10.0 in /website/client
2021-11-15 13:56:07 -05:00
Natalie L
dbe89a6897 Merge pull request #13626 from HabitRPG/dependabot/npm_and_yarn/stripe-8.188.0
build(deps): bump stripe from 8.186.1 to 8.188.0
2021-11-15 13:55:28 -05:00
dependabot[bot]
3dfb06aca6 build(deps): bump rate-limiter-flexible from 2.3.3 to 2.3.4
Bumps [rate-limiter-flexible](https://github.com/animir/node-rate-limiter-flexible) from 2.3.3 to 2.3.4.
- [Release notes](https://github.com/animir/node-rate-limiter-flexible/releases)
- [Commits](https://github.com/animir/node-rate-limiter-flexible/commits/v2.3.4)

---
updated-dependencies:
- dependency-name: rate-limiter-flexible
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-15 05:04:56 +00:00
dependabot[bot]
b84992dd01 build(deps): bump amplitude-js from 8.9.1 to 8.10.0 in /website/client
Bumps [amplitude-js](https://github.com/amplitude/amplitude-javascript) from 8.9.1 to 8.10.0.
- [Release notes](https://github.com/amplitude/amplitude-javascript/releases)
- [Changelog](https://github.com/amplitude/Amplitude-JavaScript/blob/main/CHANGELOG.md)
- [Commits](https://github.com/amplitude/amplitude-javascript/compare/v8.9.1...v8.10.0)

---
updated-dependencies:
- dependency-name: amplitude-js
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-15 05:04:46 +00:00
dependabot[bot]
7a4b707840 build(deps): bump stripe from 8.186.1 to 8.188.0
Bumps [stripe](https://github.com/stripe/stripe-node) from 8.186.1 to 8.188.0.
- [Release notes](https://github.com/stripe/stripe-node/releases)
- [Changelog](https://github.com/stripe/stripe-node/blob/master/CHANGELOG.md)
- [Commits](https://github.com/stripe/stripe-node/compare/v8.186.1...v8.188.0)

---
updated-dependencies:
- dependency-name: stripe
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-15 05:04:18 +00:00
Sabe Jones
b448c721d8 fix(shop): don't show current month's mystery set in time travelers (#13492) 2021-11-12 10:48:07 -06:00
John Bryson
33e35d76a4 selectList spacing (#13329) (#13590)
* Use Flexbox for selectList to get the full width of the selectItems within dropdown
* Add a width to selectDifficulty to avoid visual regression when switching selectList to Flexbox
2021-11-12 10:41:54 -06:00
Jason Carvalho
480a0529a2 Fix logic of emailInvalid and emailValid (#13614)
Fix email validation to return invalid even when 3 characters or less
are present in the input field.
2021-11-12 10:30:31 -06:00
Natalie L
758ad6af8b Merge pull request #13622 from HabitRPG/dependabot/npm_and_yarn/website/client/intro.js-4.3.0
build(deps): bump intro.js from 4.2.2 to 4.3.0 in /website/client
2021-11-10 11:23:39 -05:00
Alys
4951e82c8d add adult term to list of swear words - TRIGGER / CONTENT WARNING: assault, slurs, swearwords, etc 2021-11-10 15:05:30 +10:00
dependabot[bot]
7364b2cd97 build(deps): bump stripe from 8.184.0 to 8.186.1 (#13621)
Bumps [stripe](https://github.com/stripe/stripe-node) from 8.184.0 to 8.186.1.
- [Release notes](https://github.com/stripe/stripe-node/releases)
- [Changelog](https://github.com/stripe/stripe-node/blob/master/CHANGELOG.md)
- [Commits](https://github.com/stripe/stripe-node/compare/v8.184.0...v8.186.1)

---
updated-dependencies:
- dependency-name: stripe
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-11-09 15:19:10 -06:00
dependabot[bot]
fda5a88aa4 build(deps-dev): bump sinon from 11.1.2 to 12.0.1 (#13620)
Bumps [sinon](https://github.com/sinonjs/sinon) from 11.1.2 to 12.0.1.
- [Release notes](https://github.com/sinonjs/sinon/releases)
- [Changelog](https://github.com/sinonjs/sinon/blob/master/docs/changelog.md)
- [Commits](https://github.com/sinonjs/sinon/compare/v11.1.2...v12.0.1)

---
updated-dependencies:
- dependency-name: sinon
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-11-09 15:18:25 -06:00
Weblate
23e2829ffe Merge branch 'origin/develop' into Weblate. 2021-11-09 21:07:08 +01:00
SabreCat
52f6affc3a Merge branch 'release' into develop 2021-11-09 14:06:40 -06:00
SabreCat
46c2040c02 4.211.2 2021-11-09 14:06:24 -06:00
SabreCat
117dc23a03 feat(content): Ember and Autumn Leaf rerelease 2021-11-09 14:06:11 -06:00
Weblate
e64f77638c Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (2473 of 2473 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (56 of 56 strings)

Translated using Weblate (Swedish)

Currently translated at 78.7% (100 of 127 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (2473 of 2473 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (2473 of 2473 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (134 of 134 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (129 of 129 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 99.1% (2451 of 2473 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (203 of 203 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (178 of 178 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (178 of 178 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (127 of 127 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (98 of 98 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (98 of 98 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (654 of 654 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (654 of 654 strings)

Translated using Weblate (Vietnamese)

Currently translated at 94.6% (176 of 186 strings)

Translated using Weblate (Swedish)

Currently translated at 71.6% (91 of 127 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (134 of 134 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (203 of 203 strings)

Translated using Weblate (Vietnamese)

Currently translated at 99.4% (185 of 186 strings)

Translated using Weblate (French)

Currently translated at 100.0% (134 of 134 strings)

Translated using Weblate (German)

Currently translated at 100.0% (134 of 134 strings)

Translated using Weblate (French)

Currently translated at 100.0% (2473 of 2473 strings)

Translated using Weblate (French)

Currently translated at 100.0% (203 of 203 strings)

Translated using Weblate (German)

Currently translated at 100.0% (203 of 203 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (134 of 134 strings)

Translated using Weblate (Russian)

Currently translated at 99.2% (2454 of 2473 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (203 of 203 strings)

Translated using Weblate (Swedish)

Currently translated at 70.8% (90 of 127 strings)

Translated using Weblate (Vietnamese)

Currently translated at 100.0% (188 of 188 strings)

Translated using Weblate (Vietnamese)

Currently translated at 100.0% (203 of 203 strings)

Translated using Weblate (Vietnamese)

Currently translated at 100.0% (15 of 15 strings)

Translated using Weblate (Swedish)

Currently translated at 100.0% (137 of 137 strings)

Translated using Weblate (Swedish)

Currently translated at 89.0% (332 of 373 strings)

Translated using Weblate (Swedish)

Currently translated at 100.0% (54 of 54 strings)

Translated using Weblate (Swedish)

Currently translated at 100.0% (15 of 15 strings)

Translated using Weblate (Swedish)

Currently translated at 70.8% (90 of 127 strings)

Translated using Weblate (Swedish)

Currently translated at 95.9% (356 of 371 strings)

Translated using Weblate (Swedish)

Currently translated at 100.0% (188 of 188 strings)

Translated using Weblate (Swedish)

Currently translated at 100.0% (125 of 125 strings)

Translated using Weblate (Vietnamese)

Currently translated at 57.1% (32 of 56 strings)

Translated using Weblate (Vietnamese)

Currently translated at 71.2% (1764 of 2477 strings)

Translated using Weblate (Vietnamese)

Currently translated at 74.0% (94 of 127 strings)

Translated using Weblate (Vietnamese)

Currently translated at 94.6% (176 of 186 strings)

Translated using Weblate (Swedish)

Currently translated at 100.0% (137 of 137 strings)

Translated using Weblate (German)

Currently translated at 100.0% (111 of 111 strings)

Translated using Weblate (Swedish)

Currently translated at 86.2% (113 of 131 strings)

Translated using Weblate (German)

Currently translated at 96.6% (2393 of 2477 strings)

Translated using Weblate (German)

Currently translated at 100.0% (127 of 127 strings)

Translated using Weblate (Russian)

Currently translated at 99.2% (650 of 655 strings)

Translated using Weblate (German)

Currently translated at 100.0% (655 of 655 strings)

Translated using Weblate (German)

Currently translated at 100.0% (125 of 125 strings)

Translated using Weblate (French)

Currently translated at 100.0% (2477 of 2477 strings)

Translated using Weblate (French)

Currently translated at 100.0% (56 of 56 strings)

Translated using Weblate (French)

Currently translated at 100.0% (655 of 655 strings)

Translated using Weblate (French)

Currently translated at 100.0% (186 of 186 strings)

Co-authored-by: An Nguyen <nguyen.thienan.business@gmail.com>
Co-authored-by: Benoit Hetru <me+hbtc@gahanka.net>
Co-authored-by: Jerry Chen <minecjraft@qq.com>
Co-authored-by: KanI <twinklingnerd@gmail.com>
Co-authored-by: Liv Larsson <liv.l3@icloud.com>
Co-authored-by: Mara Dolichotis <marascherzer@gmail.com>
Co-authored-by: Moa Davou <moa.davou99@gmail.com>
Co-authored-by: Paul Braunstorfer <paul.braunstorfer@gmx.net>
Co-authored-by: Võ Trần Nhã Linh <vtrnnhlinh@outlook.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: Естай <akseleu@yahoo.com>
Co-authored-by: そら <comi4work@gmail.com>
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/de/
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/sv/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/de/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ru/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/challenge/ru/
Translate-URL: https://translate.habitica.com/projects/habitica/challenge/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/character/sv/
Translate-URL: https://translate.habitica.com/projects/habitica/character/vi/
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/de/
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/ru/
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/sv/
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/vi/
Translate-URL: https://translate.habitica.com/projects/habitica/content/sv/
Translate-URL: https://translate.habitica.com/projects/habitica/death/sv/
Translate-URL: https://translate.habitica.com/projects/habitica/death/vi/
Translate-URL: https://translate.habitica.com/projects/habitica/defaulttasks/sv/
Translate-URL: https://translate.habitica.com/projects/habitica/faq/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/faq/vi/
Translate-URL: https://translate.habitica.com/projects/habitica/faq/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/front/ru/
Translate-URL: https://translate.habitica.com/projects/habitica/front/zh_Hans/
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/ru/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/vi/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/de/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/ru/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/vi/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/groups/sv/
Translate-URL: https://translate.habitica.com/projects/habitica/npc/ru/
Translate-URL: https://translate.habitica.com/projects/habitica/npc/sv/
Translate-URL: https://translate.habitica.com/projects/habitica/pets/de/
Translate-URL: https://translate.habitica.com/projects/habitica/settings/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/settings/vi/
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/de/
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/ru/
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/sv/
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/zh_Hans/
Translation: Habitica/Achievements
Translation: Habitica/Backgrounds
Translation: Habitica/Challenge
Translation: Habitica/Character
Translation: Habitica/Communityguidelines
Translation: Habitica/Content
Translation: Habitica/Death
Translation: Habitica/Defaulttasks
Translation: Habitica/Faq
Translation: Habitica/Front
Translation: Habitica/Gear
Translation: Habitica/Generic
Translation: Habitica/Groups
Translation: Habitica/Npc
Translation: Habitica/Pets
Translation: Habitica/Settings
Translation: Habitica/Tasks
2021-11-09 19:55:10 +01:00
dependabot[bot]
16eee93636 build(deps): bump intro.js from 4.2.2 to 4.3.0 in /website/client
Bumps [intro.js](https://github.com/usablica/intro.js) from 4.2.2 to 4.3.0.
- [Release notes](https://github.com/usablica/intro.js/releases)
- [Commits](https://github.com/usablica/intro.js/compare/v4.2.2...v4.3.0)

---
updated-dependencies:
- dependency-name: intro.js
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-08 05:05:27 +00:00
Alys
e4c4e8c5e6 add an adult term to list of banned swear words - TRIGGER / CONTENT WARNING: assault, slurs, swearwords, etc 2021-11-07 19:06:04 +10:00
SabreCat
44cd9d52b5 Merge branch 'release' into develop 2021-11-05 10:30:40 -05:00
SabreCat
6f9b05529e 4.211.1 2021-11-05 10:30:21 -05:00
SabreCat
9ac96a2ed4 fix(backgrounds): correct month in set text 2021-11-05 10:29:30 -05:00
dependabot[bot]
365233ee70 build(deps): bump @vue/cli-plugin-eslint in /website/client (#13603)
Bumps [@vue/cli-plugin-eslint](https://github.com/vuejs/vue-cli/tree/HEAD/packages/@vue/cli-plugin-eslint) from 4.5.14 to 4.5.15.
- [Release notes](https://github.com/vuejs/vue-cli/releases)
- [Changelog](https://github.com/vuejs/vue-cli/blob/dev/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vue-cli/commits/v4.5.15/packages/@vue/cli-plugin-eslint)

---
updated-dependencies:
- dependency-name: "@vue/cli-plugin-eslint"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-11-05 08:55:53 -05:00
dependabot[bot]
06f5f6a73f build(deps): bump @vue/cli-plugin-unit-mocha in /website/client (#13607)
Bumps [@vue/cli-plugin-unit-mocha](https://github.com/vuejs/vue-cli/tree/HEAD/packages/@vue/cli-plugin-unit-mocha) from 4.5.14 to 4.5.15.
- [Release notes](https://github.com/vuejs/vue-cli/releases)
- [Changelog](https://github.com/vuejs/vue-cli/blob/dev/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vue-cli/commits/v4.5.15/packages/@vue/cli-plugin-unit-mocha)

---
updated-dependencies:
- dependency-name: "@vue/cli-plugin-unit-mocha"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-11-05 08:55:46 -05:00
dependabot[bot]
c4b346570c build(deps): bump axios from 0.23.0 to 0.24.0 in /website/client (#13610)
Bumps [axios](https://github.com/axios/axios) from 0.23.0 to 0.24.0.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/master/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v0.23.0...v0.24.0)

---
updated-dependencies:
- dependency-name: axios
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-11-05 08:55:35 -05:00
dependabot[bot]
08d6854ce7 build(deps): bump @vue/cli-plugin-babel in /website/client (#13608)
Bumps [@vue/cli-plugin-babel](https://github.com/vuejs/vue-cli/tree/HEAD/packages/@vue/cli-plugin-babel) from 4.5.14 to 4.5.15.
- [Release notes](https://github.com/vuejs/vue-cli/releases)
- [Changelog](https://github.com/vuejs/vue-cli/blob/dev/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vue-cli/commits/v4.5.15/packages/@vue/cli-plugin-babel)

---
updated-dependencies:
- dependency-name: "@vue/cli-plugin-babel"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-11-04 16:49:33 -05:00
dependabot[bot]
98349891ca build(deps-dev): bump @babel/plugin-proposal-optional-chaining (#13609)
Bumps [@babel/plugin-proposal-optional-chaining](https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-proposal-optional-chaining) from 7.14.5 to 7.16.0.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.16.0/packages/babel-plugin-proposal-optional-chaining)

---
updated-dependencies:
- dependency-name: "@babel/plugin-proposal-optional-chaining"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-11-04 16:46:10 -05:00
dependabot[bot]
44d979615b build(deps): bump amplitude from 5.1.7 to 5.2.0 (#13596)
Bumps [amplitude](https://github.com/geoffdutton/amplitude) from 5.1.7 to 5.2.0.
- [Release notes](https://github.com/geoffdutton/amplitude/releases)
- [Changelog](https://github.com/geoffdutton/amplitude/blob/master/CHANGELOG.md)
- [Commits](https://github.com/geoffdutton/amplitude/compare/v5.1.7...v5.2.0)

---
updated-dependencies:
- dependency-name: amplitude
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-11-04 16:40:13 -05:00
dependabot[bot]
4c355079e6 build(deps): bump validator from 13.6.0 to 13.7.0 in /website/client (#13613)
Bumps [validator](https://github.com/validatorjs/validator.js) from 13.6.0 to 13.7.0.
- [Release notes](https://github.com/validatorjs/validator.js/releases)
- [Changelog](https://github.com/validatorjs/validator.js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/validatorjs/validator.js/compare/13.6.0...13.7.0)

---
updated-dependencies:
- dependency-name: validator
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-11-04 16:36:09 -05:00
Natalie L
5d87c2af13 fix: I18n string update (#13588)
* i18n string updates (issue #9210)

* change offHand to offHandCapitalized

* added removeTasks to challenge.json

* added hairBangs back to character.json

* added hairBangs back to character.json

* more hairBangs nonsense

* added hairBangs to hair-settings.vue, removed same from character.json

* changed levelUp to levelup in levelUp.vue and achievements.json

* fix duplicate string values

* fixed different strings with same content in different files

* updated test/api/v3 and test/api/v4 with messageTaskNotFound

* Delete POST-tasks_taskId_checklist_itemId_score.test.js

File got copied to a new directory, doesn't need to be here.

* fix: userID token in patrons.vue and heroes.vue

* removed: unused clock of code

* Restored eggsItemType to inventory.json

Co-authored-by: Sabe Jones <sabrecat@gmail.com>
2021-11-04 16:33:08 -05:00
dependabot[bot]
56ac23bea6 build(deps): bump vue-router from 3.5.2 to 3.5.3 in /website/client (#13611)
Bumps [vue-router](https://github.com/vuejs/vue-router) from 3.5.2 to 3.5.3.
- [Release notes](https://github.com/vuejs/vue-router/releases)
- [Changelog](https://github.com/vuejs/vue-router/blob/dev/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vue-router/compare/v3.5.2...v3.5.3)

---
updated-dependencies:
- dependency-name: vue-router
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-11-04 16:32:29 -05:00
dependabot[bot]
645817198d build(deps): bump @vue/cli-plugin-router in /website/client (#13599)
Bumps [@vue/cli-plugin-router](https://github.com/vuejs/vue-cli/tree/HEAD/packages/@vue/cli-plugin-router) from 4.5.14 to 4.5.15.
- [Release notes](https://github.com/vuejs/vue-cli/releases)
- [Changelog](https://github.com/vuejs/vue-cli/blob/dev/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vue-cli/commits/v4.5.15/packages/@vue/cli-plugin-router)

---
updated-dependencies:
- dependency-name: "@vue/cli-plugin-router"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-11-04 16:19:23 -05:00
dependabot[bot]
147afa6446 build(deps): bump @babel/preset-env from 7.15.8 to 7.16.0 (#13600)
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.15.8 to 7.16.0.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.16.0/packages/babel-preset-env)

---
updated-dependencies:
- dependency-name: "@babel/preset-env"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-11-04 16:15:59 -05:00
dependabot[bot]
afd43f4638 build(deps): bump @vue/cli-service in /website/client (#13606)
Bumps [@vue/cli-service](https://github.com/vuejs/vue-cli/tree/HEAD/packages/@vue/cli-service) from 4.5.14 to 4.5.15.
- [Release notes](https://github.com/vuejs/vue-cli/releases)
- [Changelog](https://github.com/vuejs/vue-cli/blob/dev/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vue-cli/commits/v4.5.15/packages/@vue/cli-service)

---
updated-dependencies:
- dependency-name: "@vue/cli-service"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-11-04 16:15:44 -05:00
dependabot[bot]
cb785cfb13 build(deps): bump core-js from 3.18.3 to 3.19.1 in /website/client (#13618)
Bumps [core-js](https://github.com/zloirock/core-js) from 3.18.3 to 3.19.1.
- [Release notes](https://github.com/zloirock/core-js/releases)
- [Changelog](https://github.com/zloirock/core-js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/zloirock/core-js/compare/v3.18.3...v3.19.1)

---
updated-dependencies:
- dependency-name: core-js
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-11-04 16:15:31 -05:00
dependabot[bot]
0301af90e2 build(deps): bump amplitude-js from 8.8.0 to 8.9.1 in /website/client (#13617)
Bumps [amplitude-js](https://github.com/amplitude/amplitude-javascript) from 8.8.0 to 8.9.1.
- [Release notes](https://github.com/amplitude/amplitude-javascript/releases)
- [Changelog](https://github.com/amplitude/Amplitude-JavaScript/blob/main/CHANGELOG.md)
- [Commits](https://github.com/amplitude/amplitude-javascript/compare/v8.8.0...v8.9.1)

---
updated-dependencies:
- dependency-name: amplitude-js
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-11-04 16:10:00 -05:00
dependabot[bot]
dfe246cbfd build(deps): bump rate-limiter-flexible from 2.3.1 to 2.3.3 (#13592)
Bumps [rate-limiter-flexible](https://github.com/animir/node-rate-limiter-flexible) from 2.3.1 to 2.3.3.
- [Release notes](https://github.com/animir/node-rate-limiter-flexible/releases)
- [Commits](https://github.com/animir/node-rate-limiter-flexible/commits)

---
updated-dependencies:
- dependency-name: rate-limiter-flexible
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-11-04 15:41:44 -05:00
dependabot[bot]
d0651ec220 build(deps): bump @babel/core from 7.15.8 to 7.16.0 (#13593)
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.15.8 to 7.16.0.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.16.0/packages/babel-core)

---
updated-dependencies:
- dependency-name: "@babel/core"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-11-04 15:41:32 -05:00
dependabot[bot]
ac4b94c2e1 build(deps): bump @babel/register from 7.15.3 to 7.16.0 (#13595)
Bumps [@babel/register](https://github.com/babel/babel/tree/HEAD/packages/babel-register) from 7.15.3 to 7.16.0.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.16.0/packages/babel-register)

---
updated-dependencies:
- dependency-name: "@babel/register"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-11-04 15:39:51 -05:00
dependabot[bot]
59c472578c build(deps-dev): bump axios from 0.23.0 to 0.24.0 (#13598)
Bumps [axios](https://github.com/axios/axios) from 0.23.0 to 0.24.0.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/master/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v0.23.0...v0.24.0)

---
updated-dependencies:
- dependency-name: axios
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-11-04 15:39:29 -05:00
dependabot[bot]
136c93f082 build(deps): bump js2xmlparser from 4.0.1 to 4.0.2 (#13601)
Bumps [js2xmlparser](https://github.com/michaelkourlas/node-js2xmlparser) from 4.0.1 to 4.0.2.
- [Release notes](https://github.com/michaelkourlas/node-js2xmlparser/releases)
- [Changelog](https://github.com/michaelkourlas/node-js2xmlparser/blob/master/CHANGES.md)
- [Commits](https://github.com/michaelkourlas/node-js2xmlparser/compare/v4.0.1...v4.0.2)

---
updated-dependencies:
- dependency-name: js2xmlparser
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-11-04 15:38:43 -05:00
dependabot[bot]
eca55ff987 build(deps): bump apidoc from 0.50.0 to 0.50.1 (#13604)
Bumps [apidoc](https://github.com/apidoc/apidoc) from 0.50.0 to 0.50.1.
- [Release notes](https://github.com/apidoc/apidoc/releases)
- [Changelog](https://github.com/apidoc/apidoc/blob/master/CHANGELOG.md)
- [Commits](https://github.com/apidoc/apidoc/compare/0.50.0...0.50.1)

---
updated-dependencies:
- dependency-name: apidoc
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-11-04 15:38:22 -05:00
dependabot[bot]
19042fc143 build(deps): bump validator from 13.6.0 to 13.7.0 (#13612)
Bumps [validator](https://github.com/validatorjs/validator.js) from 13.6.0 to 13.7.0.
- [Release notes](https://github.com/validatorjs/validator.js/releases)
- [Changelog](https://github.com/validatorjs/validator.js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/validatorjs/validator.js/compare/13.6.0...13.7.0)

---
updated-dependencies:
- dependency-name: validator
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-11-04 15:37:32 -05:00
dependabot[bot]
8adfef686e build(deps): bump ua-parser-js from 0.7.20 to 0.7.31 in /website/client (#13615)
Bumps [ua-parser-js](https://github.com/faisalman/ua-parser-js) from 0.7.20 to 0.7.31.
- [Release notes](https://github.com/faisalman/ua-parser-js/releases)
- [Commits](https://github.com/faisalman/ua-parser-js/compare/0.7.20...0.7.31)

---
updated-dependencies:
- dependency-name: ua-parser-js
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-11-04 15:36:57 -05:00
Weblate
52a8a36da6 Merge branch 'origin/develop' into Weblate. 2021-11-04 17:53:57 +01:00
Weblate
854b9b0f80 Translated using Weblate (Czech)
Currently translated at 100.0% (13 of 13 strings)

Translated using Weblate (Czech)

Currently translated at 84.2% (80 of 95 strings)

Translated using Weblate (Czech)

Currently translated at 100.0% (15 of 15 strings)

Translated using Weblate (Czech)

Currently translated at 100.0% (188 of 188 strings)

Translated using Weblate (Russian)

Currently translated at 94.6% (53 of 56 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (738 of 738 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (186 of 186 strings)

Translated using Weblate (Vietnamese)

Currently translated at 96.9% (127 of 131 strings)

Translated using Weblate (Chinese (Hong Kong))

Currently translated at 60.4% (116 of 192 strings)

Translated using Weblate (Chinese (Traditional))

Currently translated at 100.0% (192 of 192 strings)

Translated using Weblate (Chinese (Traditional))

Currently translated at 88.0% (2163 of 2457 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (56 of 56 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (54 of 54 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (648 of 648 strings)

Translated using Weblate (Dutch)

Currently translated at 100.0% (125 of 125 strings)

Translated using Weblate (Chinese (Traditional))

Currently translated at 100.0% (56 of 56 strings)

Translated using Weblate (Swedish)

Currently translated at 57.1% (32 of 56 strings)

Translated using Weblate (German)

Currently translated at 100.0% (738 of 738 strings)

Translated using Weblate (Thai)

Currently translated at 96.0% (98 of 102 strings)

Translated using Weblate (Thai)

Currently translated at 36.0% (45 of 125 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (22 of 22 strings)

Co-authored-by: An Nguyen <nguyen.thienan.business@gmail.com>
Co-authored-by: KanI <twinklingnerd@gmail.com>
Co-authored-by: Liv Larsson <liv.l3@icloud.com>
Co-authored-by: Maikel Roelofs <maikel_roelofs@live.nl>
Co-authored-by: Mara Dolichotis <marascherzer@gmail.com>
Co-authored-by: Martin Bartak <martin.bartak@gmail.com>
Co-authored-by: Sirapat Charukamnertkanok <sirapat1charu@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: blacksheep47 <1760906326@qq.com>
Co-authored-by: mattya 226 <worldworld1114@gmail.com>
Co-authored-by: Естай <akseleu@yahoo.com>
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/nl/
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/th/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/challenge/th/
Translate-URL: https://translate.habitica.com/projects/habitica/character/cs/
Translate-URL: https://translate.habitica.com/projects/habitica/death/cs/
Translate-URL: https://translate.habitica.com/projects/habitica/defaulttasks/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/faq/ru/
Translate-URL: https://translate.habitica.com/projects/habitica/faq/sv/
Translate-URL: https://translate.habitica.com/projects/habitica/faq/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/faq/zh_Hant/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/zh_Hant/
Translate-URL: https://translate.habitica.com/projects/habitica/loginincentives/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/npc/vi/
Translate-URL: https://translate.habitica.com/projects/habitica/quests/cs/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/de/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/rebirth/cs/
Translate-URL: https://translate.habitica.com/projects/habitica/settings/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/zh_Hant/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/zh_Hant_HK/
Translation: Habitica/Achievements
Translation: Habitica/Backgrounds
Translation: Habitica/Challenge
Translation: Habitica/Character
Translation: Habitica/Death
Translation: Habitica/Defaulttasks
Translation: Habitica/Faq
Translation: Habitica/Gear
Translation: Habitica/Loginincentives
Translation: Habitica/Npc
Translation: Habitica/Quests
Translation: Habitica/Questscontent
Translation: Habitica/Rebirth
Translation: Habitica/Settings
Translation: Habitica/Subscriber
2021-11-04 17:53:40 +01:00
SabreCat
5661391b35 Merge branch 'release' into develop 2021-11-04 11:52:48 -05:00
SabreCat
cc3c1508bb 4.211.0 2021-11-04 11:52:30 -05:00
SabreCat
0bb2c939e7 chore(sprites): compile 2021-11-04 11:52:09 -05:00
SabreCat
0bc59f1c50 feat(content): Armoire gear and Backgrounds for Nov 2021 2021-11-04 11:52:00 -05:00
SabreCat
65d2229e89 fix(faq): remove outdated reference to Report a Bug Guild 2021-11-03 13:29:06 -05:00
Weblate
d759081b51 Merge branch 'origin/develop' into Weblate. 2021-11-01 20:10:22 +01:00
Sabe Jones
7afbe39ae9 Merge branch 'release' into develop 2021-11-01 14:08:52 -05:00
Sabe Jones
ec1f4f200b 4.210.2 2021-11-01 14:01:25 -05:00
Sabe Jones
e475ebf65c fix(home): remove FB signup, fix app footer outside of user context 2021-11-01 13:58:46 -05:00
Weblate
318f760899 Translated using Weblate (Korean)
Currently translated at 99.4% (187 of 188 strings)

Translated using Weblate (Korean)

Currently translated at 81.0% (77 of 95 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (192 of 192 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (2457 of 2457 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (648 of 648 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (125 of 125 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (192 of 192 strings)

Translated using Weblate (Chinese (Traditional))

Currently translated at 100.0% (13 of 13 strings)

Translated using Weblate (Chinese (Traditional))

Currently translated at 100.0% (111 of 111 strings)

Translated using Weblate (Chinese (Traditional))

Currently translated at 100.0% (131 of 131 strings)

Translated using Weblate (Chinese (Traditional))

Currently translated at 100.0% (8 of 8 strings)

Translated using Weblate (Chinese (Traditional))

Currently translated at 100.0% (210 of 210 strings)

Translated using Weblate (Chinese (Traditional))

Currently translated at 100.0% (373 of 373 strings)

Translated using Weblate (Chinese (Traditional))

Currently translated at 86.8% (2133 of 2457 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (2457 of 2457 strings)

Translated using Weblate (Chinese (Traditional))

Currently translated at 100.0% (180 of 180 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (180 of 180 strings)

Translated using Weblate (Chinese (Traditional))

Currently translated at 100.0% (15 of 15 strings)

Translated using Weblate (Chinese (Traditional))

Currently translated at 96.8% (123 of 127 strings)

Translated using Weblate (Chinese (Traditional))

Currently translated at 100.0% (371 of 371 strings)

Translated using Weblate (Chinese (Traditional))

Currently translated at 100.0% (47 of 47 strings)

Translated using Weblate (Chinese (Traditional))

Currently translated at 100.0% (188 of 188 strings)

Translated using Weblate (Russian)

Currently translated at 96.8% (121 of 125 strings)

Translated using Weblate (Chinese (Traditional))

Currently translated at 100.0% (186 of 186 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (186 of 186 strings)

Translated using Weblate (French)

Currently translated at 100.0% (192 of 192 strings)

Translated using Weblate (French)

Currently translated at 100.0% (2457 of 2457 strings)

Translated using Weblate (Swedish)

Currently translated at 90.9% (101 of 111 strings)

Translated using Weblate (Swedish)

Currently translated at 84.7% (111 of 131 strings)

Translated using Weblate (Swedish)

Currently translated at 85.2% (52 of 61 strings)

Translated using Weblate (Swedish)

Currently translated at 74.9% (1842 of 2457 strings)

Translated using Weblate (Swedish)

Currently translated at 95.9% (356 of 371 strings)

Translated using Weblate (Swedish)

Currently translated at 99.4% (187 of 188 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (192 of 192 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (2457 of 2457 strings)

Translated using Weblate (Thai)

Currently translated at 35.2% (44 of 125 strings)

Translated using Weblate (Swedish)

Currently translated at 84.7% (111 of 131 strings)

Translated using Weblate (Swedish)

Currently translated at 85.2% (52 of 61 strings)

Translated using Weblate (Swedish)

Currently translated at 73.8% (155 of 210 strings)

Translated using Weblate (Swedish)

Currently translated at 88.2% (329 of 373 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (2457 of 2457 strings)

Translated using Weblate (Swedish)

Currently translated at 55.3% (31 of 56 strings)

Translated using Weblate (Swedish)

Currently translated at 85.5% (631 of 738 strings)

Translated using Weblate (Swedish)

Currently translated at 70.8% (90 of 127 strings)

Translated using Weblate (Swedish)

Currently translated at 83.7% (543 of 648 strings)

Translated using Weblate (Chinese (Traditional))

Currently translated at 100.0% (648 of 648 strings)

Translated using Weblate (Chinese (Traditional))

Currently translated at 100.0% (648 of 648 strings)

Translated using Weblate (Chinese (Traditional))

Currently translated at 100.0% (648 of 648 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (192 of 192 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 99.7% (2452 of 2457 strings)

Translated using Weblate (Chinese (Traditional))

Currently translated at 84.2% (107 of 127 strings)

Translated using Weblate (Thai)

Currently translated at 85.4% (112 of 131 strings)

Translated using Weblate (Thai)

Currently translated at 69.2% (1702 of 2457 strings)

Translated using Weblate (Thai)

Currently translated at 70.8% (90 of 127 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 98.6% (2423 of 2457 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 98.6% (2423 of 2457 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (180 of 180 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (56 of 56 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (188 of 188 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 98.2% (2413 of 2457 strings)

Translated using Weblate (Chinese (Traditional))

Currently translated at 100.0% (137 of 137 strings)

Translated using Weblate (Chinese (Traditional))

Currently translated at 99.6% (646 of 648 strings)

Co-authored-by: Alessandro Cardoso da Costa <abcsandro@hotmail.com>
Co-authored-by: Bay David Yong Sheng <bryanbay.sg@gmail.com>
Co-authored-by: Benoit Hetru <me+hbtc@gahanka.net>
Co-authored-by: Bo-Hsiang Chen <rubybhchen@gmail.com>
Co-authored-by: Jiyoun Namkoong <slovesk00@gmail.com>
Co-authored-by: KanI <twinklingnerd@gmail.com>
Co-authored-by: Koldo Almandoz Forcen <koldo.almandoz.forcen@gmail.com>
Co-authored-by: Liv Larsson <liv.l3@icloud.com>
Co-authored-by: Moa Davou <moa.davou99@gmail.com>
Co-authored-by: Raithe <RaitheOfDureya@gmail.com>
Co-authored-by: Sirapat Charukamnertkanok <sirapat1charu@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: mattya 226 <worldworld1114@gmail.com>
Co-authored-by: Естай <akseleu@yahoo.com>
Co-authored-by: 劉芷妤 <a3649881@gmail.com>
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/ru/
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/th/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ru/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/sv/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/zh_Hant/
Translate-URL: https://translate.habitica.com/projects/habitica/character/ko/
Translate-URL: https://translate.habitica.com/projects/habitica/character/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/character/sv/
Translate-URL: https://translate.habitica.com/projects/habitica/character/zh_Hant/
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/sv/
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/th/
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/zh_Hant/
Translate-URL: https://translate.habitica.com/projects/habitica/content/sv/
Translate-URL: https://translate.habitica.com/projects/habitica/content/zh_Hant/
Translate-URL: https://translate.habitica.com/projects/habitica/contrib/zh_Hant/
Translate-URL: https://translate.habitica.com/projects/habitica/death/zh_Hant/
Translate-URL: https://translate.habitica.com/projects/habitica/faq/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/faq/sv/
Translate-URL: https://translate.habitica.com/projects/habitica/front/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/front/ru/
Translate-URL: https://translate.habitica.com/projects/habitica/front/zh_Hant/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/es/
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/gear/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/ru/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/sv/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/th/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/zh_Hant/
Translate-URL: https://translate.habitica.com/projects/habitica/groups/sv/
Translate-URL: https://translate.habitica.com/projects/habitica/groups/zh_Hant/
Translate-URL: https://translate.habitica.com/projects/habitica/limited/sv/
Translate-URL: https://translate.habitica.com/projects/habitica/limited/zh_Hant/
Translate-URL: https://translate.habitica.com/projects/habitica/messages/sv/
Translate-URL: https://translate.habitica.com/projects/habitica/npc/sv/
Translate-URL: https://translate.habitica.com/projects/habitica/npc/th/
Translate-URL: https://translate.habitica.com/projects/habitica/npc/zh_Hant/
Translate-URL: https://translate.habitica.com/projects/habitica/overview/zh_Hant/
Translate-URL: https://translate.habitica.com/projects/habitica/pets/sv/
Translate-URL: https://translate.habitica.com/projects/habitica/pets/zh_Hant/
Translate-URL: https://translate.habitica.com/projects/habitica/quests/ko/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/sv/
Translate-URL: https://translate.habitica.com/projects/habitica/rebirth/zh_Hant/
Translate-URL: https://translate.habitica.com/projects/habitica/settings/ru/
Translate-URL: https://translate.habitica.com/projects/habitica/settings/zh_Hant/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/es/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/ru/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/zh_Hant/
Translation: Habitica/Achievements
Translation: Habitica/Backgrounds
Translation: Habitica/Character
Translation: Habitica/Communityguidelines
Translation: Habitica/Content
Translation: Habitica/Contrib
Translation: Habitica/Death
Translation: Habitica/Faq
Translation: Habitica/Front
Translation: Habitica/Gear
Translation: Habitica/Groups
Translation: Habitica/Limited
Translation: Habitica/Messages
Translation: Habitica/Npc
Translation: Habitica/Overview
Translation: Habitica/Pets
Translation: Habitica/Quests
Translation: Habitica/Questscontent
Translation: Habitica/Rebirth
Translation: Habitica/Settings
Translation: Habitica/Subscriber
Translation: Habitica/Tasks
2021-11-01 16:40:34 +01:00
Sabe Jones
0d6e34c646 fix(analytics): don't record task events as "click" 2021-10-29 11:08:46 -05:00
dependabot[bot]
613b027d08 build(deps): bump stripe from 8.183.0 to 8.184.0 (#13585)
Bumps [stripe](https://github.com/stripe/stripe-node) from 8.183.0 to 8.184.0.
- [Release notes](https://github.com/stripe/stripe-node/releases)
- [Changelog](https://github.com/stripe/stripe-node/blob/master/CHANGELOG.md)
- [Commits](https://github.com/stripe/stripe-node/compare/v8.183.0...v8.184.0)

---
updated-dependencies:
- dependency-name: stripe
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-10-28 15:32:47 -05:00
Sabe Jones
74a8b3aff2 fix(test): underscore >.< 2021-10-28 15:27:56 -05:00
Sabe Jones
353b5a6dcb fix(test): underscore >.< 2021-10-28 15:26:13 -05:00
Sabe Jones
877f16fd88 chore(package): update caniuse-lite 2021-10-28 14:39:09 -05:00
Sabe Jones
2766ddf7a2 fix(test): temporary candy test 2021-10-28 14:17:55 -05:00
Sabe Jones
4bae27c328 fix(test): temporary candy test 2021-10-28 14:17:04 -05:00
Weblate
4dbe618017 Merge branch 'origin/develop' into Weblate. 2021-10-28 20:57:09 +02:00
Weblate
95ee1642bf Translated using Weblate (Chinese (Simplified))
Currently translated at 99.6% (2445 of 2453 strings)

Translated using Weblate (Chinese (Traditional))

Currently translated at 98.7% (640 of 648 strings)

Translated using Weblate (Vietnamese)

Currently translated at 93.4% (57 of 61 strings)

Translated using Weblate (Spanish (Latin America))

Currently translated at 99.0% (731 of 738 strings)

Translated using Weblate (Spanish (Latin America))

Currently translated at 100.0% (13 of 13 strings)

Translated using Weblate (Spanish (Latin America))

Currently translated at 98.1% (109 of 111 strings)

Translated using Weblate (Spanish (Latin America))

Currently translated at 97.9% (2403 of 2453 strings)

Translated using Weblate (Spanish (Latin America))

Currently translated at 98.8% (178 of 180 strings)

Translated using Weblate (Spanish (Latin America))

Currently translated at 69.6% (39 of 56 strings)

Translated using Weblate (Spanish (Latin America))

Currently translated at 100.0% (15 of 15 strings)

Translated using Weblate (Spanish (Latin America))

Currently translated at 100.0% (47 of 47 strings)

Translated using Weblate (Spanish (Latin America))

Currently translated at 100.0% (371 of 371 strings)

Translated using Weblate (Spanish (Latin America))

Currently translated at 92.9% (118 of 127 strings)

Translated using Weblate (Spanish (Latin America))

Currently translated at 100.0% (188 of 188 strings)

Translated using Weblate (Spanish (Latin America))

Currently translated at 96.4% (625 of 648 strings)

Translated using Weblate (Spanish (Latin America))

Currently translated at 100.0% (186 of 186 strings)

Translated using Weblate (Spanish (Latin America))

Currently translated at 81.8% (104 of 127 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (131 of 131 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (180 of 180 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (54 of 54 strings)

Translated using Weblate (Vietnamese)

Currently translated at 83.7% (618 of 738 strings)

Translated using Weblate (Vietnamese)

Currently translated at 84.4% (547 of 648 strings)

Translated using Weblate (Vietnamese)

Currently translated at 83.8% (619 of 738 strings)

Translated using Weblate (Vietnamese)

Currently translated at 71.9% (1765 of 2453 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (125 of 125 strings)

Translated using Weblate (Spanish (Latin America))

Currently translated at 100.0% (373 of 373 strings)

Translated using Weblate (Spanish (Latin America))

Currently translated at 97.7% (2398 of 2453 strings)

Translated using Weblate (Spanish (Latin America))

Currently translated at 81.1% (103 of 127 strings)

Translated using Weblate (Spanish (Latin America))

Currently translated at 99.4% (187 of 188 strings)

Translated using Weblate (Spanish (Latin America))

Currently translated at 100.0% (102 of 102 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (648 of 648 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (125 of 125 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 96.0% (120 of 125 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 99.3% (2436 of 2453 strings)

Translated using Weblate (Basque)

Currently translated at 100.0% (13 of 13 strings)

Translated using Weblate (Basque)

Currently translated at 100.0% (22 of 22 strings)

Translated using Weblate (Basque)

Currently translated at 100.0% (15 of 15 strings)

Translated using Weblate (Basque)

Currently translated at 48.9% (23 of 47 strings)

Translated using Weblate (German)

Currently translated at 83.9% (47 of 56 strings)

Translated using Weblate (German)

Currently translated at 83.9% (47 of 56 strings)

Translated using Weblate (Russian)

Currently translated at 99.6% (646 of 648 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (125 of 125 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (125 of 125 strings)

Translated using Weblate (German)

Currently translated at 99.2% (124 of 125 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (125 of 125 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (191 of 191 strings)

Translated using Weblate (Czech)

Currently translated at 97.2% (108 of 111 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (210 of 210 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 98.9% (2428 of 2453 strings)

Translated using Weblate (Czech)

Currently translated at 79.0% (1939 of 2453 strings)

Translated using Weblate (Chinese (Traditional))

Currently translated at 79.5% (101 of 127 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (127 of 127 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (648 of 648 strings)

Translated using Weblate (Chinese (Traditional))

Currently translated at 100.0% (125 of 125 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (125 of 125 strings)

Translated using Weblate (English (en@lolcat))

Currently translated at 100.0% (56 of 56 strings)

Translated using Weblate (English (en@lolcat))

Currently translated at 98.4% (185 of 188 strings)

Translated using Weblate (English (en@lolcat))

Currently translated at 100.0% (13 of 13 strings)

Translated using Weblate (English (en@lolcat))

Currently translated at 98.5% (200 of 203 strings)

Translated using Weblate (English (en@lolcat))

Currently translated at 100.0% (54 of 54 strings)

Translated using Weblate (English (en@lolcat))

Currently translated at 100.0% (15 of 15 strings)

Translated using Weblate (English (en@lolcat))

Currently translated at 97.8% (46 of 47 strings)

Translated using Weblate (English (en@lolcat))

Currently translated at 99.4% (369 of 371 strings)

Translated using Weblate (English (en@lolcat))

Currently translated at 99.4% (369 of 371 strings)

Co-authored-by: Alessandro Cardoso da Costa <abcsandro@hotmail.com>
Co-authored-by: An Nguyen <nguyen.thienan.business@gmail.com>
Co-authored-by: Bo-Hsiang Chen <rubybhchen@gmail.com>
Co-authored-by: Darcie Leigh Pearce <eviolus@gmail.com>
Co-authored-by: KanI <twinklingnerd@gmail.com>
Co-authored-by: Koldo Almandoz Forcen <koldo.almandoz.forcen@gmail.com>
Co-authored-by: Ling Yan <very.irritating.spam@gmail.com>
Co-authored-by: Martin Bartak <martin.bartak@gmail.com>
Co-authored-by: Nakonana <nanaki1989@web.de>
Co-authored-by: Paul Braunstorfer <paul.braunstorfer@gmx.net>
Co-authored-by: Raithe <RaitheOfDureya@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: Yowi <johana.f.c@gmail.com>
Co-authored-by: blacksheep47 <1760906326@qq.com>
Co-authored-by: citrusella <citrusellaflugpucker@yahoo.com>
Co-authored-by: mattya 226 <worldworld1114@gmail.com>
Co-authored-by: Естай <akseleu@yahoo.com>
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/de/
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/es/
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/zh_Hant/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/es_419/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ru/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/vi/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/zh_Hant/
Translate-URL: https://translate.habitica.com/projects/habitica/challenge/es_419/
Translate-URL: https://translate.habitica.com/projects/habitica/character/en@lolcat/
Translate-URL: https://translate.habitica.com/projects/habitica/character/es_419/
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/es_419/
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/zh_Hant/
Translate-URL: https://translate.habitica.com/projects/habitica/content/en@lolcat/
Translate-URL: https://translate.habitica.com/projects/habitica/content/es_419/
Translate-URL: https://translate.habitica.com/projects/habitica/contrib/en@lolcat/
Translate-URL: https://translate.habitica.com/projects/habitica/contrib/es_419/
Translate-URL: https://translate.habitica.com/projects/habitica/contrib/eu/
Translate-URL: https://translate.habitica.com/projects/habitica/death/en@lolcat/
Translate-URL: https://translate.habitica.com/projects/habitica/death/es_419/
Translate-URL: https://translate.habitica.com/projects/habitica/death/eu/
Translate-URL: https://translate.habitica.com/projects/habitica/defaulttasks/en@lolcat/
Translate-URL: https://translate.habitica.com/projects/habitica/defaulttasks/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/faq/de/
Translate-URL: https://translate.habitica.com/projects/habitica/faq/es_419/
Translate-URL: https://translate.habitica.com/projects/habitica/front/es_419/
Translate-URL: https://translate.habitica.com/projects/habitica/front/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/cs/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/es_419/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/vi/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/en@lolcat/
Translate-URL: https://translate.habitica.com/projects/habitica/groups/es_419/
Translate-URL: https://translate.habitica.com/projects/habitica/limited/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/loginincentives/eu/
Translate-URL: https://translate.habitica.com/projects/habitica/messages/vi/
Translate-URL: https://translate.habitica.com/projects/habitica/npc/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/pets/cs/
Translate-URL: https://translate.habitica.com/projects/habitica/pets/es_419/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/es_419/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/vi/
Translate-URL: https://translate.habitica.com/projects/habitica/rebirth/en@lolcat/
Translate-URL: https://translate.habitica.com/projects/habitica/rebirth/es_419/
Translate-URL: https://translate.habitica.com/projects/habitica/rebirth/eu/
Translate-URL: https://translate.habitica.com/projects/habitica/settings/es_419/
Translate-URL: https://translate.habitica.com/projects/habitica/spells/en@lolcat/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/zh_Hans/
Translation: Habitica/Achievements
Translation: Habitica/Backgrounds
Translation: Habitica/Challenge
Translation: Habitica/Character
Translation: Habitica/Communityguidelines
Translation: Habitica/Content
Translation: Habitica/Contrib
Translation: Habitica/Death
Translation: Habitica/Defaulttasks
Translation: Habitica/Faq
Translation: Habitica/Front
Translation: Habitica/Gear
Translation: Habitica/Generic
Translation: Habitica/Groups
Translation: Habitica/Limited
Translation: Habitica/Loginincentives
Translation: Habitica/Messages
Translation: Habitica/Npc
Translation: Habitica/Pets
Translation: Habitica/Questscontent
Translation: Habitica/Rebirth
Translation: Habitica/Settings
Translation: Habitica/Spells
Translation: Habitica/Subscriber
2021-10-28 20:56:54 +02:00
Sabe Jones
4b63ff70c2 4.210.1 2021-10-28 13:55:17 -05:00
Sabe Jones
b39b42b3c2 Merge branch 'develop' into release 2021-10-28 13:55:11 -05:00
Sabe Jones
6e18807487 4.210.0 2021-10-28 13:54:28 -05:00
Sabe Jones
c94dd23fe6 chore(sprites): compile 2021-10-28 13:54:17 -05:00
Sabe Jones
5e71abe64f feat(content): Habitoween 2021
Royal Purple Jack-O-Lantern Mount, Candy, Spooky Gem Sale, Subscriber 
Mystery Items for November
2021-10-28 13:52:46 -05:00
Natalie L
686d0b05d2 added searchMembers to getMembers() (#13583) 2021-10-22 11:43:32 -05:00
Benja Appel
4f07075159 Frost spell buff won't affect challenge or group dailies (#13582) 2021-10-22 11:35:27 -05:00
dependabot[bot]
91f8be61c4 build(deps): bump @vue/cli-plugin-router in /website/client (#13576)
Bumps [@vue/cli-plugin-router](https://github.com/vuejs/vue-cli/tree/HEAD/packages/@vue/cli-plugin-router) from 4.5.13 to 4.5.14.
- [Release notes](https://github.com/vuejs/vue-cli/releases)
- [Changelog](https://github.com/vuejs/vue-cli/blob/dev/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vue-cli/commits/v4.5.14/packages/@vue/cli-plugin-router)

---
updated-dependencies:
- dependency-name: "@vue/cli-plugin-router"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-10-22 11:27:42 -05:00
dependabot[bot]
6509892c8f build(deps): bump core-js from 3.18.1 to 3.18.3 in /website/client (#13579)
Bumps [core-js](https://github.com/zloirock/core-js) from 3.18.1 to 3.18.3.
- [Release notes](https://github.com/zloirock/core-js/releases)
- [Changelog](https://github.com/zloirock/core-js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/zloirock/core-js/compare/v3.18.1...v3.18.3)

---
updated-dependencies:
- dependency-name: core-js
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-10-21 17:41:16 -05:00
dependabot[bot]
3a528192aa build(deps): bump @vue/cli-plugin-unit-mocha in /website/client (#13578)
Bumps [@vue/cli-plugin-unit-mocha](https://github.com/vuejs/vue-cli/tree/HEAD/packages/@vue/cli-plugin-unit-mocha) from 4.5.13 to 4.5.14.
- [Release notes](https://github.com/vuejs/vue-cli/releases)
- [Changelog](https://github.com/vuejs/vue-cli/blob/dev/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vue-cli/commits/v4.5.14/packages/@vue/cli-plugin-unit-mocha)

---
updated-dependencies:
- dependency-name: "@vue/cli-plugin-unit-mocha"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-10-21 17:41:04 -05:00
dependabot[bot]
6495e4d164 build(deps): bump @storybook/vue from 6.3.9 to 6.3.12 in /website/client (#13577)
Bumps [@storybook/vue](https://github.com/storybookjs/storybook/tree/HEAD/app/vue) from 6.3.9 to 6.3.12.
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v6.3.12/app/vue)

---
updated-dependencies:
- dependency-name: "@storybook/vue"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-10-21 17:40:53 -05:00
dependabot[bot]
cc5c9eab54 build(deps): bump @storybook/addon-links in /website/client (#13575)
Bumps [@storybook/addon-links](https://github.com/storybookjs/storybook/tree/HEAD/addons/links) from 6.3.9 to 6.3.12.
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v6.3.12/addons/links)

---
updated-dependencies:
- dependency-name: "@storybook/addon-links"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-10-21 17:40:13 -05:00
dependabot[bot]
7568a09d48 build(deps): bump @vue/cli-plugin-eslint in /website/client (#13573)
Bumps [@vue/cli-plugin-eslint](https://github.com/vuejs/vue-cli/tree/HEAD/packages/@vue/cli-plugin-eslint) from 4.5.13 to 4.5.14.
- [Release notes](https://github.com/vuejs/vue-cli/releases)
- [Changelog](https://github.com/vuejs/vue-cli/blob/dev/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vue-cli/commits/v4.5.14/packages/@vue/cli-plugin-eslint)

---
updated-dependencies:
- dependency-name: "@vue/cli-plugin-eslint"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-10-21 17:40:02 -05:00
dependabot[bot]
f1f52e2634 build(deps): bump apidoc from 0.29.0 to 0.50.0 (#13570)
Bumps [apidoc](https://github.com/apidoc/apidoc) from 0.29.0 to 0.50.0.
- [Release notes](https://github.com/apidoc/apidoc/releases)
- [Changelog](https://github.com/apidoc/apidoc/blob/master/CHANGELOG.md)
- [Commits](https://github.com/apidoc/apidoc/compare/0.29.0...0.50.0)

---
updated-dependencies:
- dependency-name: apidoc
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-10-21 17:39:50 -05:00
dependabot[bot]
2ad96d4210 build(deps): bump axios from 0.22.0 to 0.23.0 in /website/client (#13567)
Bumps [axios](https://github.com/axios/axios) from 0.22.0 to 0.23.0.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/master/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v0.22.0...v0.23.0)

---
updated-dependencies:
- dependency-name: axios
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-10-21 17:39:39 -05:00
Matheus Lima Cunha
72a0313fb2 Prevent Cron from incorrectly updating loggedIn (#13559)
* Prevent Cron from incorrectly updating loggedIn

* fix(lint): missing comma

Co-authored-by: Sabe Jones <sabrecat@gmail.com>
2021-10-21 17:39:16 -05:00
Benja Appel
dc5b85097e Fix chat @-mentions not opening in a modal (#13581)
* fix #13276

* Fix eslint no-useless-concat
2021-10-21 17:37:03 -05:00
dependabot[bot]
14bdb5de67 build(deps): bump @vue/cli-service in /website/client (#13572)
Bumps [@vue/cli-service](https://github.com/vuejs/vue-cli/tree/HEAD/packages/@vue/cli-service) from 4.5.13 to 4.5.14.
- [Release notes](https://github.com/vuejs/vue-cli/releases)
- [Changelog](https://github.com/vuejs/vue-cli/blob/dev/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vue-cli/commits/v4.5.14/packages/@vue/cli-service)

---
updated-dependencies:
- dependency-name: "@vue/cli-service"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-10-21 16:19:26 -05:00
dependabot[bot]
a721e0a5a0 build(deps): bump @storybook/addons in /website/client (#13571)
Bumps [@storybook/addons](https://github.com/storybookjs/storybook/tree/HEAD/lib/addons) from 6.3.8 to 6.3.12.
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v6.3.12/lib/addons)

---
updated-dependencies:
- dependency-name: "@storybook/addons"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-10-21 16:19:08 -05:00
dependabot[bot]
e09680eec3 build(deps): bump @vue/cli-plugin-babel in /website/client (#13569)
Bumps [@vue/cli-plugin-babel](https://github.com/vuejs/vue-cli/tree/HEAD/packages/@vue/cli-plugin-babel) from 4.5.13 to 4.5.14.
- [Release notes](https://github.com/vuejs/vue-cli/releases)
- [Changelog](https://github.com/vuejs/vue-cli/blob/dev/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vue-cli/commits/v4.5.14/packages/@vue/cli-plugin-babel)

---
updated-dependencies:
- dependency-name: "@vue/cli-plugin-babel"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-10-21 16:01:16 -05:00
dependabot[bot]
4b06736350 build(deps): bump jwks-rsa from 2.0.4 to 2.0.5 (#13565)
Bumps [jwks-rsa](https://github.com/auth0/node-jwks-rsa) from 2.0.4 to 2.0.5.
- [Release notes](https://github.com/auth0/node-jwks-rsa/releases)
- [Changelog](https://github.com/auth0/node-jwks-rsa/blob/master/CHANGELOG.md)
- [Commits](https://github.com/auth0/node-jwks-rsa/compare/2.0.4...v2.0.5)

---
updated-dependencies:
- dependency-name: jwks-rsa
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-10-21 16:00:24 -05:00
dependabot[bot]
ed4c1396b0 build(deps-dev): bump axios from 0.22.0 to 0.23.0 (#13563)
Bumps [axios](https://github.com/axios/axios) from 0.22.0 to 0.23.0.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/master/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v0.22.0...v0.23.0)

---
updated-dependencies:
- dependency-name: axios
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-10-21 15:59:12 -05:00
dependabot[bot]
44001679b1 build(deps): bump @storybook/addon-actions in /website/client (#13562)
Bumps [@storybook/addon-actions](https://github.com/storybookjs/storybook/tree/HEAD/addons/actions) from 6.3.10 to 6.3.12.
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v6.3.12/addons/actions)

---
updated-dependencies:
- dependency-name: "@storybook/addon-actions"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-10-21 15:56:47 -05:00
dependabot[bot]
854f7b0651 build(deps): bump stripe from 8.178.0 to 8.183.0 (#13561)
Bumps [stripe](https://github.com/stripe/stripe-node) from 8.178.0 to 8.183.0.
- [Release notes](https://github.com/stripe/stripe-node/releases)
- [Changelog](https://github.com/stripe/stripe-node/blob/master/CHANGELOG.md)
- [Commits](https://github.com/stripe/stripe-node/compare/v8.178.0...v8.183.0)

---
updated-dependencies:
- dependency-name: stripe
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-10-21 15:56:32 -05:00
Weblate
c401dd2842 Translated using Weblate (English (en@lolcat))
Currently translated at 98.4% (185 of 188 strings)

Translated using Weblate (English (en@lolcat))

Currently translated at 98.4% (185 of 188 strings)

Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: citrusella <citrusellaflugpucker@yahoo.com>
Translate-URL: https://translate.habitica.com/projects/habitica/character/en@lolcat/
Translation: Habitica/Character
2021-10-21 22:52:23 +02:00
Weblate
f4f797dea5 Merge branch 'origin/develop' into Weblate. 2021-10-21 22:50:07 +02:00
Weblate
f930ccaecc Translated using Weblate (English (en@lolcat))
Currently translated at 98.4% (185 of 188 strings)

Translated using Weblate (English (en@lolcat))

Currently translated at 96.0% (195 of 203 strings)

Translated using Weblate (French)

Currently translated at 100.0% (125 of 125 strings)

Co-authored-by: Benoit Hetru <me+hbtc@gahanka.net>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: citrusella <citrusellaflugpucker@yahoo.com>
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/character/en@lolcat/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/en@lolcat/
Translation: Habitica/Achievements
Translation: Habitica/Character
Translation: Habitica/Generic
2021-10-21 22:49:55 +02:00
Natalie L
63dc3e2696 removed extraneous string in check in modal (#13558) 2021-10-21 15:49:01 -05:00
Benja Appel
c6e7b18e8b Api task streak default value (#13557)
* Default value for task streak (fix #13372)

* Truncate task streak value decimals on update
2021-10-21 15:47:17 -05:00
dependabot[bot]
1c8433ff61 build(deps): bump @babel/preset-env from 7.15.6 to 7.15.8 (#13552)
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.15.6 to 7.15.8.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.15.8/packages/babel-preset-env)

---
updated-dependencies:
- dependency-name: "@babel/preset-env"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-10-21 15:17:32 -05:00
negue
7044c497a2 FIX: notifications position with 2nd banner - WIP (#13556)
* FIX: notifications position with 2nd banner

* emit event when worldState is loaded

* fix heights / padding of notifications
2021-10-21 15:17:09 -05:00
dependabot[bot]
4afaccd404 build(deps): bump @babel/core from 7.15.5 to 7.15.8 (#13548)
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.15.5 to 7.15.8.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.15.8/packages/babel-core)

---
updated-dependencies:
- dependency-name: "@babel/core"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-10-21 14:39:01 -05:00
Weblate
2da97c6414 Merge branch 'origin/develop' into Weblate. 2021-10-21 17:51:27 +02:00
Sabe Jones
496153b6e9 Merge branch 'release' into develop 2021-10-21 10:50:05 -05:00
Sabe Jones
7646f7da9f 4.209.0 2021-10-21 10:49:41 -05:00
Sabe Jones
d2ddb743b6 feat(content): Shade pet/mount collection achievements 2021-10-21 10:49:22 -05:00
Weblate
2cdbf9d978 Translated using Weblate (Ukrainian)
Currently translated at 86.3% (322 of 373 strings)

Translated using Weblate (Ukrainian)

Currently translated at 99.4% (187 of 188 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (191 of 191 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (95 of 95 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (13 of 13 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (111 of 111 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (131 of 131 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (8 of 8 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (210 of 210 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (373 of 373 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (2453 of 2453 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (180 of 180 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (56 of 56 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (15 of 15 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (738 of 738 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (127 of 127 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (47 of 47 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (188 of 188 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (648 of 648 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (186 of 186 strings)

Translated using Weblate (Spanish (Latin America))

Currently translated at 97.6% (2395 of 2453 strings)

Translated using Weblate (Chinese (Traditional))

Currently translated at 100.0% (102 of 102 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 97.8% (2400 of 2453 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (738 of 738 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 97.8% (2400 of 2453 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 97.8% (2400 of 2453 strings)

Translated using Weblate (Dutch)

Currently translated at 96.8% (92 of 95 strings)

Translated using Weblate (Dutch)

Currently translated at 100.0% (373 of 373 strings)

Translated using Weblate (Dutch)

Currently translated at 95.1% (2335 of 2453 strings)

Translated using Weblate (Dutch)

Currently translated at 100.0% (180 of 180 strings)

Translated using Weblate (Dutch)

Currently translated at 98.2% (55 of 56 strings)

Translated using Weblate (Dutch)

Currently translated at 96.0% (709 of 738 strings)

Translated using Weblate (Dutch)

Currently translated at 88.1% (112 of 127 strings)

Translated using Weblate (Dutch)

Currently translated at 100.0% (373 of 373 strings)

Translated using Weblate (Dutch)

Currently translated at 95.1% (2335 of 2453 strings)

Translated using Weblate (Dutch)

Currently translated at 95.9% (708 of 738 strings)

Translated using Weblate (Dutch)

Currently translated at 81.1% (103 of 127 strings)

Translated using Weblate (Spanish (Latin America))

Currently translated at 99.1% (118 of 119 strings)

Translated using Weblate (Dutch)

Currently translated at 100.0% (61 of 61 strings)

Translated using Weblate (Dutch)

Currently translated at 98.0% (206 of 210 strings)

Translated using Weblate (Dutch)

Currently translated at 100.0% (203 of 203 strings)

Translated using Weblate (Dutch)

Currently translated at 100.0% (137 of 137 strings)

Translated using Weblate (Dutch)

Currently translated at 94.7% (90 of 95 strings)

Translated using Weblate (Dutch)

Currently translated at 100.0% (13 of 13 strings)

Translated using Weblate (Dutch)

Currently translated at 100.0% (111 of 111 strings)

Translated using Weblate (Dutch)

Currently translated at 87.5% (7 of 8 strings)

Translated using Weblate (Dutch)

Currently translated at 98.0% (206 of 210 strings)

Translated using Weblate (Dutch)

Currently translated at 100.0% (373 of 373 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 97.8% (2400 of 2453 strings)

Translated using Weblate (Dutch)

Currently translated at 100.0% (180 of 180 strings)

Translated using Weblate (Dutch)

Currently translated at 96.4% (54 of 56 strings)

Translated using Weblate (Dutch)

Currently translated at 100.0% (15 of 15 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (738 of 738 strings)

Translated using Weblate (Dutch)

Currently translated at 95.9% (708 of 738 strings)

Translated using Weblate (Dutch)

Currently translated at 79.5% (101 of 127 strings)

Translated using Weblate (Dutch)

Currently translated at 100.0% (47 of 47 strings)

Translated using Weblate (Dutch)

Currently translated at 100.0% (188 of 188 strings)

Translated using Weblate (Dutch)

Currently translated at 96.1% (623 of 648 strings)

Translated using Weblate (Dutch)

Currently translated at 100.0% (186 of 186 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 97.7% (2399 of 2453 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (738 of 738 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (188 of 188 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (111 of 111 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (8 of 8 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (56 of 56 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (13 of 13 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (373 of 373 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (180 of 180 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 96.4% (54 of 56 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (15 of 15 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (738 of 738 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (127 of 127 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (47 of 47 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (186 of 186 strings)

Co-authored-by: CaveMobster <cavemobster@gmail.com>
Co-authored-by: Chalda Pnuzig <chalda82+nogravatar@gmail.com>
Co-authored-by: Mila Meow <milameow25@gmail.com>
Co-authored-by: Nazar Paruna <nazarparuna@gmail.com>
Co-authored-by: Sabe Jones <sabe@habitica.com>
Co-authored-by: Sciuridae <sweetvshoney@163.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: blacksheep47 <1760906326@qq.com>
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/es_419/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/it/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/nl/
Translate-URL: https://translate.habitica.com/projects/habitica/challenge/zh_Hant/
Translate-URL: https://translate.habitica.com/projects/habitica/character/it/
Translate-URL: https://translate.habitica.com/projects/habitica/character/nl/
Translate-URL: https://translate.habitica.com/projects/habitica/character/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/character/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/it/
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/nl/
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/contrib/it/
Translate-URL: https://translate.habitica.com/projects/habitica/contrib/nl/
Translate-URL: https://translate.habitica.com/projects/habitica/contrib/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/death/it/
Translate-URL: https://translate.habitica.com/projects/habitica/death/nl/
Translate-URL: https://translate.habitica.com/projects/habitica/death/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/faq/it/
Translate-URL: https://translate.habitica.com/projects/habitica/faq/nl/
Translate-URL: https://translate.habitica.com/projects/habitica/faq/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/front/it/
Translate-URL: https://translate.habitica.com/projects/habitica/front/nl/
Translate-URL: https://translate.habitica.com/projects/habitica/front/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/es_419/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/it/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/nl/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/nl/
Translate-URL: https://translate.habitica.com/projects/habitica/groups/it/
Translate-URL: https://translate.habitica.com/projects/habitica/groups/nl/
Translate-URL: https://translate.habitica.com/projects/habitica/groups/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/groups/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/limited/it/
Translate-URL: https://translate.habitica.com/projects/habitica/limited/nl/
Translate-URL: https://translate.habitica.com/projects/habitica/messages/nl/
Translate-URL: https://translate.habitica.com/projects/habitica/npc/it/
Translate-URL: https://translate.habitica.com/projects/habitica/overview/it/
Translate-URL: https://translate.habitica.com/projects/habitica/overview/nl/
Translate-URL: https://translate.habitica.com/projects/habitica/overview/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/pets/it/
Translate-URL: https://translate.habitica.com/projects/habitica/pets/nl/
Translate-URL: https://translate.habitica.com/projects/habitica/pets/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/quests/it/
Translate-URL: https://translate.habitica.com/projects/habitica/quests/nl/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/it/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/nl/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/rebirth/it/
Translate-URL: https://translate.habitica.com/projects/habitica/rebirth/nl/
Translate-URL: https://translate.habitica.com/projects/habitica/rebirth/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/settings/it/
Translate-URL: https://translate.habitica.com/projects/habitica/settings/nl/
Translate-URL: https://translate.habitica.com/projects/habitica/settings/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/it/
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/nl/
Translation: Habitica/Achievements
Translation: Habitica/Backgrounds
Translation: Habitica/Challenge
Translation: Habitica/Character
Translation: Habitica/Communityguidelines
Translation: Habitica/Contrib
Translation: Habitica/Death
Translation: Habitica/Faq
Translation: Habitica/Front
Translation: Habitica/Gear
Translation: Habitica/Generic
Translation: Habitica/Groups
Translation: Habitica/Limited
Translation: Habitica/Messages
Translation: Habitica/Npc
Translation: Habitica/Overview
Translation: Habitica/Pets
Translation: Habitica/Quests
Translation: Habitica/Questscontent
Translation: Habitica/Rebirth
Translation: Habitica/Settings
Translation: Habitica/Subscriber
Translation: Habitica/Tasks
2021-10-21 15:41:22 +02:00
Sabe Jones
73b3d9bc56 fix(analytics): confirm that 2x/day task actions should track on client 2021-10-20 10:49:32 -05:00
Sabe Jones
823a35b859 fix(cron): remove now-erroneous function call 2021-10-14 15:26:28 -05:00
Sabe Jones
0480681006 chore(ABtest): remove vestigial drop cap A/B test code 2021-10-14 15:04:14 -05:00
Sabe Jones
433d42b6f6 4.208.2 2021-10-14 13:58:53 -05:00
Weblate
ab20b5e6cd Translated using Weblate (Chinese (Simplified))
Currently translated at 99.4% (371 of 373 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 73.2% (41 of 56 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 99.8% (737 of 738 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 98.0% (206 of 210 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (738 of 738 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (127 of 127 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (648 of 648 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (371 of 371 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (61 of 61 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 99.4% (187 of 188 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 99.4% (185 of 186 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 99.4% (371 of 373 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 98.3% (177 of 180 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 69.6% (39 of 56 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 98.4% (125 of 127 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 99.4% (185 of 186 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (2453 of 2453 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (191 of 191 strings)

Translated using Weblate (German)

Currently translated at 100.0% (180 of 180 strings)

Translated using Weblate (German)

Currently translated at 96.0% (122 of 127 strings)

Translated using Weblate (German)

Currently translated at 96.0% (122 of 127 strings)

Translated using Weblate (German)

Currently translated at 96.0% (122 of 127 strings)

Translated using Weblate (German)

Currently translated at 100.0% (186 of 186 strings)

Translated using Weblate (German)

Currently translated at 100.0% (186 of 186 strings)

Translated using Weblate (German)

Currently translated at 75.0% (6 of 8 strings)

Translated using Weblate (German)

Currently translated at 100.0% (738 of 738 strings)

Translated using Weblate (German)

Currently translated at 96.0% (122 of 127 strings)

Translated using Weblate (Japanese)

Currently translated at 99.0% (642 of 648 strings)

Translated using Weblate (German)

Currently translated at 100.0% (648 of 648 strings)

Translated using Weblate (Arabic)

Currently translated at 75.0% (6 of 8 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (373 of 373 strings)

Translated using Weblate (German)

Currently translated at 100.0% (47 of 47 strings)

Translated using Weblate (German)

Currently translated at 100.0% (648 of 648 strings)

Translated using Weblate (German)

Currently translated at 100.0% (186 of 186 strings)

Translated using Weblate (Thai)

Currently translated at 84.7% (111 of 131 strings)

Translated using Weblate (Thai)

Currently translated at 67.5% (129 of 191 strings)

Translated using Weblate (Russian)

Currently translated at 99.3% (644 of 648 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (111 of 111 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (111 of 111 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (8 of 8 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (61 of 61 strings)

Translated using Weblate (Japanese)

Currently translated at 99.7% (2446 of 2453 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (2453 of 2453 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (47 of 47 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (648 of 648 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (186 of 186 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (186 of 186 strings)

Translated using Weblate (French)

Currently translated at 100.0% (2453 of 2453 strings)

Translated using Weblate (French)

Currently translated at 100.0% (738 of 738 strings)

Translated using Weblate (French)

Currently translated at 100.0% (127 of 127 strings)

Translated using Weblate (French)

Currently translated at 100.0% (47 of 47 strings)

Translated using Weblate (French)

Currently translated at 100.0% (188 of 188 strings)

Translated using Weblate (French)

Currently translated at 100.0% (648 of 648 strings)

Translated using Weblate (French)

Currently translated at 100.0% (186 of 186 strings)

Co-authored-by: Aurelio Montero <soldadomono@hotmail.com>
Co-authored-by: Benoit Hetru <me+hbtc@gahanka.net>
Co-authored-by: Céu <marcel.ufscar@gmail.com>
Co-authored-by: Flavia Otsuka <flaviasatie@gmail.com>
Co-authored-by: Ma Mi <habitica_mimaha@banetel.eu>
Co-authored-by: Mara Dolichotis <marascherzer@gmail.com>
Co-authored-by: Nakonana <nanaki1989@web.de>
Co-authored-by: Raghdah .F <ragod11498@gmail.com>
Co-authored-by: Raithe <RaitheOfDureya@gmail.com>
Co-authored-by: Sciuridae <sweetvshoney@163.com>
Co-authored-by: Sirapat Charukamnertkanok <sirapat1charu@gmail.com>
Co-authored-by: Tobias Welti <tobias.welti@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: mattya 226 <worldworld1114@gmail.com>
Co-authored-by: Естай <akseleu@yahoo.com>
Co-authored-by: そら <comi4work@gmail.com>
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/de/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/es/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ru/
Translate-URL: https://translate.habitica.com/projects/habitica/character/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/character/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/de/
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/content/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/contrib/de/
Translate-URL: https://translate.habitica.com/projects/habitica/contrib/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/contrib/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/faq/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/front/de/
Translate-URL: https://translate.habitica.com/projects/habitica/front/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/es/
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/groups/es/
Translate-URL: https://translate.habitica.com/projects/habitica/groups/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/inventory/ar/
Translate-URL: https://translate.habitica.com/projects/habitica/limited/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/messages/es/
Translate-URL: https://translate.habitica.com/projects/habitica/messages/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/npc/th/
Translate-URL: https://translate.habitica.com/projects/habitica/overview/de/
Translate-URL: https://translate.habitica.com/projects/habitica/overview/es/
Translate-URL: https://translate.habitica.com/projects/habitica/pets/es/
Translate-URL: https://translate.habitica.com/projects/habitica/pets/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/de/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/settings/de/
Translate-URL: https://translate.habitica.com/projects/habitica/settings/es/
Translate-URL: https://translate.habitica.com/projects/habitica/settings/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/settings/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/settings/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/th/
Translation: Habitica/Backgrounds
Translation: Habitica/Character
Translation: Habitica/Communityguidelines
Translation: Habitica/Content
Translation: Habitica/Contrib
Translation: Habitica/Faq
Translation: Habitica/Front
Translation: Habitica/Gear
Translation: Habitica/Groups
Translation: Habitica/Inventory
Translation: Habitica/Limited
Translation: Habitica/Messages
Translation: Habitica/Npc
Translation: Habitica/Overview
Translation: Habitica/Pets
Translation: Habitica/Questscontent
Translation: Habitica/Settings
Translation: Habitica/Subscriber
2021-10-14 18:20:54 +02:00
Sabe Jones
f538998aca Merge branch 'release' into develop 2021-10-12 16:09:04 -05:00
Sabe Jones
dc1bbbbea9 4.208.1 2021-10-12 16:06:05 -05:00
Sabe Jones
f4bf576c2f feat(content): enable Spooky Sporklies 2021-10-12 16:01:33 -05:00
dependabot[bot]
6a84f1d8f7 build(deps): bump @storybook/addon-actions in /website/client (#13545)
Bumps [@storybook/addon-actions](https://github.com/storybookjs/storybook/tree/HEAD/addons/actions) from 6.3.8 to 6.3.10.
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v6.3.10/addons/actions)

---
updated-dependencies:
- dependency-name: "@storybook/addon-actions"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-10-07 16:44:43 -05:00
dependabot[bot]
a4b7c50d8b build(deps): bump stripe from 8.176.0 to 8.178.0 (#13534)
Bumps [stripe](https://github.com/stripe/stripe-node) from 8.176.0 to 8.178.0.
- [Release notes](https://github.com/stripe/stripe-node/releases)
- [Changelog](https://github.com/stripe/stripe-node/blob/master/CHANGELOG.md)
- [Commits](https://github.com/stripe/stripe-node/compare/v8.176.0...v8.178.0)

---
updated-dependencies:
- dependency-name: stripe
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-10-07 15:45:27 -05:00
KoRnoliX
d2a0d4194a Fix casting items on parties that exceed it limit by showing Load More Button (#13509)
* Fixed party size and notification when inviting

Fixed party limit to 30 members (previously 31) and pop-up when trying
to invite someone, when party has already reached it's members limit, to properly
show members number.

* Fixed View Party button in header

Fixed View Party button in header to properly show Load More button
when party size exceeds party limit.

* Fixed View Party button to properly open party

Fixed View Party button to properly open party members list on refreshing the main page, this bug was
caused by previous commit.

* Fixed SelectMembersModal to properly show Load More button

Fixed SelectMembersModal (the modal that apperas when casting
cards/specials on party member) to properly show Load More button when party size exceeds party limit

* fix(test): limit now technically 29 plus leader

* fix(test): adjust for tweakage

Co-authored-by: Sabe Jones <sabrecat@gmail.com>
2021-10-07 15:41:22 -05:00
dependabot[bot]
879e8e72b2 build(deps): bump rate-limiter-flexible from 2.2.4 to 2.3.1 (#13531)
Bumps [rate-limiter-flexible](https://github.com/animir/node-rate-limiter-flexible) from 2.2.4 to 2.3.1.
- [Release notes](https://github.com/animir/node-rate-limiter-flexible/releases)
- [Commits](https://github.com/animir/node-rate-limiter-flexible/commits)

---
updated-dependencies:
- dependency-name: rate-limiter-flexible
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-10-07 15:35:11 -05:00
dependabot[bot]
e74926ff85 build(deps): bump axios from 0.21.4 to 0.22.0 in /website/client (#13532)
Bumps [axios](https://github.com/axios/axios) from 0.21.4 to 0.22.0.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/master/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v0.21.4...v0.22.0)

---
updated-dependencies:
- dependency-name: axios
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-10-07 15:34:49 -05:00
dependabot[bot]
9c7cd9837d build(deps): bump @storybook/addon-actions in /website/client (#13536)
Bumps [@storybook/addon-actions](https://github.com/storybookjs/storybook/tree/HEAD/addons/actions) from 6.3.8 to 6.3.9.
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v6.3.9/addons/actions)

---
updated-dependencies:
- dependency-name: "@storybook/addon-actions"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-10-07 15:31:53 -05:00
dependabot[bot]
0f84aaba21 build(deps-dev): bump axios from 0.21.4 to 0.22.0 (#13537)
Bumps [axios](https://github.com/axios/axios) from 0.21.4 to 0.22.0.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/master/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v0.21.4...v0.22.0)

---
updated-dependencies:
- dependency-name: axios
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-10-07 15:31:40 -05:00
dependabot[bot]
9d3f36dc18 build(deps): bump @storybook/vue from 6.3.8 to 6.3.9 in /website/client (#13538)
Bumps [@storybook/vue](https://github.com/storybookjs/storybook/tree/HEAD/app/vue) from 6.3.8 to 6.3.9.
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v6.3.9/app/vue)

---
updated-dependencies:
- dependency-name: "@storybook/vue"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-10-07 15:31:13 -05:00
dependabot[bot]
d845a0ccdf build(deps): bump @storybook/addon-links in /website/client (#13539)
Bumps [@storybook/addon-links](https://github.com/storybookjs/storybook/tree/HEAD/addons/links) from 6.3.8 to 6.3.9.
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v6.3.9/addons/links)

---
updated-dependencies:
- dependency-name: "@storybook/addon-links"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-10-07 15:30:44 -05:00
dependabot[bot]
6b82f683cf build(deps): bump url-parse from 1.5.1 to 1.5.3 in /website/client (#13541)
Bumps [url-parse](https://github.com/unshiftio/url-parse) from 1.5.1 to 1.5.3.
- [Release notes](https://github.com/unshiftio/url-parse/releases)
- [Commits](https://github.com/unshiftio/url-parse/compare/1.5.1...1.5.3)

---
updated-dependencies:
- dependency-name: url-parse
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-10-07 15:30:08 -05:00
Weblate
137cafda45 Merge branch 'origin/develop' into Weblate. 2021-10-07 21:44:50 +02:00
Sabe Jones
cb0197cdfc Merge branch 'release' into develop 2021-10-07 14:43:34 -05:00
Sabe Jones
edae85747a 4.208.0 2021-10-07 14:41:31 -05:00
Sabe Jones
8e9340011a chore(sprites): compile 2021-10-07 14:41:10 -05:00
Sabe Jones
abc922f3ed feat(content): Armoire and Backgrounds October 2021 2021-10-07 14:39:58 -05:00
Weblate
cc00c99ca5 Translated using Weblate (Bosnian)
Currently translated at 84.2% (622 of 738 strings)

Translated using Weblate (German)

Currently translated at 100.0% (191 of 191 strings)

Translated using Weblate (German)

Currently translated at 100.0% (13 of 13 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (61 of 61 strings)

Translated using Weblate (German)

Currently translated at 100.0% (373 of 373 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (2445 of 2445 strings)

Translated using Weblate (German)

Currently translated at 97.8% (2393 of 2445 strings)

Translated using Weblate (German)

Currently translated at 100.0% (180 of 180 strings)

Translated using Weblate (Japanese)

Currently translated at 89.2% (50 of 56 strings)

Translated using Weblate (German)

Currently translated at 83.9% (47 of 56 strings)

Translated using Weblate (German)

Currently translated at 83.9% (47 of 56 strings)

Translated using Weblate (Chinese (Traditional))

Currently translated at 94.5% (698 of 738 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 99.8% (737 of 738 strings)

Translated using Weblate (Ukrainian)

Currently translated at 80.0% (591 of 738 strings)

Translated using Weblate (Russian)

Currently translated at 99.8% (737 of 738 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (738 of 738 strings)

Translated using Weblate (Dutch)

Currently translated at 95.6% (706 of 738 strings)

Translated using Weblate (Italian)

Currently translated at 99.8% (737 of 738 strings)

Translated using Weblate (Indonesian)

Currently translated at 76.8% (567 of 738 strings)

Translated using Weblate (Hebrew)

Currently translated at 77.2% (570 of 738 strings)

Translated using Weblate (French)

Currently translated at 100.0% (738 of 738 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (738 of 738 strings)

Translated using Weblate (German)

Currently translated at 100.0% (738 of 738 strings)

Translated using Weblate (German)

Currently translated at 100.0% (738 of 738 strings)

Translated using Weblate (German)

Currently translated at 94.4% (120 of 127 strings)

Translated using Weblate (Arabic)

Currently translated at 25.0% (45 of 180 strings)

Translated using Weblate (Japanese)

Currently translated at 99.7% (2440 of 2445 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (2445 of 2445 strings)

Translated using Weblate (Japanese)

Currently translated at 87.5% (49 of 56 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (738 of 738 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (188 of 188 strings)

Translated using Weblate (Japanese)

Currently translated at 99.7% (2439 of 2445 strings)

Translated using Weblate (Spanish)

Currently translated at 94.9% (2322 of 2445 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (180 of 180 strings)

Translated using Weblate (German)

Currently translated at 86.6% (110 of 127 strings)

Translated using Weblate (German)

Currently translated at 100.0% (188 of 188 strings)

Translated using Weblate (German)

Currently translated at 100.0% (641 of 641 strings)

Translated using Weblate (German)

Currently translated at 100.0% (119 of 119 strings)

Translated using Weblate (German)

Currently translated at 100.0% (119 of 119 strings)

Translated using Weblate (Spanish)

Currently translated at 94.4% (2310 of 2445 strings)

Translated using Weblate (Arabic)

Currently translated at 97.8% (184 of 188 strings)

Translated using Weblate (Spanish)

Currently translated at 93.3% (2282 of 2445 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (127 of 127 strings)

Translated using Weblate (Arabic)

Currently translated at 14.4% (26 of 180 strings)

Translated using Weblate (Arabic)

Currently translated at 97.8% (184 of 188 strings)

Translated using Weblate (Arabic)

Currently translated at 100.0% (15 of 15 strings)

Translated using Weblate (Spanish)

Currently translated at 92.1% (2254 of 2445 strings)

Translated using Weblate (German)

Currently translated at 100.0% (137 of 137 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 98.1% (2400 of 2445 strings)

Translated using Weblate (Spanish)

Currently translated at 90.6% (2216 of 2445 strings)

Translated using Weblate (German)

Currently translated at 97.7% (2389 of 2445 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (127 of 127 strings)

Translated using Weblate (German)

Currently translated at 79.5% (101 of 127 strings)

Translated using Weblate (Japanese)

Currently translated at 99.6% (2436 of 2445 strings)

Translated using Weblate (Ukrainian)

Currently translated at 83.4% (2040 of 2445 strings)

Translated using Weblate (French)

Currently translated at 100.0% (373 of 373 strings)

Translated using Weblate (Spanish)

Currently translated at 88.8% (2173 of 2445 strings)

Translated using Weblate (French)

Currently translated at 100.0% (180 of 180 strings)

Translated using Weblate (French)

Currently translated at 100.0% (56 of 56 strings)

Translated using Weblate (French)

Currently translated at 100.0% (15 of 15 strings)

Translated using Weblate (French)

Currently translated at 100.0% (127 of 127 strings)

Translated using Weblate (Thai)

Currently translated at 69.6% (1702 of 2445 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (13 of 13 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (131 of 131 strings)

Translated using Weblate (Russian)

Currently translated at 99.7% (2440 of 2445 strings)

Translated using Weblate (Spanish)

Currently translated at 87.8% (2148 of 2445 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (180 of 180 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (56 of 56 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (15 of 15 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (738 of 738 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (641 of 641 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (641 of 641 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (191 of 191 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (373 of 373 strings)

Translated using Weblate (Spanish)

Currently translated at 97.9% (723 of 738 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (191 of 191 strings)

Translated using Weblate (French)

Currently translated at 100.0% (191 of 191 strings)

Translated using Weblate (French)

Currently translated at 100.0% (2445 of 2445 strings)

Translated using Weblate (Japanese)

Currently translated at 99.5% (2433 of 2445 strings)

Translated using Weblate (Ukrainian)

Currently translated at 75.2% (143 of 190 strings)

Translated using Weblate (Ukrainian)

Currently translated at 86.5% (323 of 373 strings)

Translated using Weblate (Ukrainian)

Currently translated at 99.4% (179 of 180 strings)

Translated using Weblate (Ukrainian)

Currently translated at 80.0% (591 of 738 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (47 of 47 strings)

Translated using Weblate (Ukrainian)

Currently translated at 88.4% (567 of 641 strings)

Translated using Weblate (Ukrainian)

Currently translated at 68.4% (130 of 190 strings)

Translated using Weblate (Ukrainian)

Currently translated at 74.2% (156 of 210 strings)

Translated using Weblate (Ukrainian)

Currently translated at 82.2% (2010 of 2445 strings)

Translated using Weblate (Ukrainian)

Currently translated at 79.1% (584 of 738 strings)

Translated using Weblate (Ukrainian)

Currently translated at 85.1% (546 of 641 strings)

Translated using Weblate (Ukrainian)

Currently translated at 81.3% (1986 of 2441 strings)

Translated using Weblate (Japanese)

Currently translated at 99.7% (2434 of 2441 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (56 of 56 strings)

Translated using Weblate (Ukrainian)

Currently translated at 82.6% (530 of 641 strings)

Translated using Weblate (Spanish)

Currently translated at 86.1% (2102 of 2441 strings)

Translated using Weblate (Spanish)

Currently translated at 99.2% (126 of 127 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (119 of 119 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (137 of 137 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (137 of 137 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (190 of 190 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (210 of 210 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (210 of 210 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (373 of 373 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (2441 of 2441 strings)

Translated using Weblate (Spanish)

Currently translated at 97.8% (722 of 738 strings)

Translated using Weblate (Spanish)

Currently translated at 92.9% (118 of 127 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (188 of 188 strings)

Translated using Weblate (Russian)

Currently translated at 99.7% (2436 of 2441 strings)

Translated using Weblate (Spanish)

Currently translated at 88.9% (113 of 127 strings)

Translated using Weblate (Russian)

Currently translated at 99.3% (2426 of 2441 strings)

Translated using Weblate (French)

Currently translated at 100.0% (111 of 111 strings)

Translated using Weblate (Spanish)

Currently translated at 86.0% (2100 of 2441 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (371 of 371 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (641 of 641 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (119 of 119 strings)

Translated using Weblate (French)

Currently translated at 100.0% (56 of 56 strings)

Translated using Weblate (French)

Currently translated at 100.0% (13 of 13 strings)

Translated using Weblate (French)

Currently translated at 100.0% (2441 of 2441 strings)

Translated using Weblate (French)

Currently translated at 100.0% (180 of 180 strings)

Translated using Weblate (French)

Currently translated at 100.0% (188 of 188 strings)

Translated using Weblate (French)

Currently translated at 100.0% (2441 of 2441 strings)

Translated using Weblate (French)

Currently translated at 99.2% (2422 of 2441 strings)

Translated using Weblate (French)

Currently translated at 99.0% (2418 of 2441 strings)

Translated using Weblate (Thai)

Currently translated at 100.0% (56 of 56 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 98.8% (2414 of 2441 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (119 of 119 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 98.8% (2414 of 2441 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (641 of 641 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 98.8% (2414 of 2441 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 98.8% (2414 of 2441 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (641 of 641 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 98.8% (2413 of 2441 strings)

Translated using Weblate (German)

Currently translated at 100.0% (190 of 190 strings)

Translated using Weblate (German)

Currently translated at 100.0% (210 of 210 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (371 of 371 strings)

Translated using Weblate (French)

Currently translated at 100.0% (210 of 210 strings)

Translated using Weblate (Thai)

Currently translated at 66.3% (425 of 641 strings)

Translated using Weblate (Thai)

Currently translated at 56.6% (119 of 210 strings)

Translated using Weblate (Thai)

Currently translated at 69.7% (1702 of 2441 strings)

Translated using Weblate (Japanese)

Currently translated at 99.6% (2433 of 2441 strings)

Translated using Weblate (Thai)

Currently translated at 55.7% (117 of 210 strings)

Translated using Weblate (Japanese)

Currently translated at 99.3% (2426 of 2441 strings)

Translated using Weblate (Japanese)

Currently translated at 99.1% (2421 of 2441 strings)

Translated using Weblate (Japanese)

Currently translated at 99.0% (2417 of 2441 strings)

Translated using Weblate (Arabic)

Currently translated at 100.0% (102 of 102 strings)

Translated using Weblate (Arabic)

Currently translated at 100.0% (102 of 102 strings)

Translated using Weblate (Arabic)

Currently translated at 100.0% (119 of 119 strings)

Translated using Weblate (Indonesian)

Currently translated at 100.0% (641 of 641 strings)

Translated using Weblate (Chinese (Traditional))

Currently translated at 100.0% (119 of 119 strings)

Translated using Weblate (Japanese)

Currently translated at 98.9% (2416 of 2441 strings)

Translated using Weblate (Russian)

Currently translated at 99.0% (2419 of 2441 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (131 of 131 strings)

Translated using Weblate (German)

Currently translated at 97.7% (2385 of 2441 strings)

Translated using Weblate (German)

Currently translated at 97.7% (2385 of 2441 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (210 of 210 strings)

Co-authored-by: Aurelio Montero <soldadomono@hotmail.com>
Co-authored-by: Benoit Hetru <me+hbtc@gahanka.net>
Co-authored-by: Céu <marcel.ufscar@gmail.com>
Co-authored-by: Haris Saputra <harishawiharis@gmail.com>
Co-authored-by: Kedr <sergeysamori.ua@gmail.com>
Co-authored-by: Lauren Chiang <laurenrenc@gmail.com>
Co-authored-by: Ma Mi <habitica_mimaha@banetel.eu>
Co-authored-by: Ma Mi <habitika@banetel.eu>
Co-authored-by: Mara Dolichotis <marascherzer@gmail.com>
Co-authored-by: Matheus Victor <matheusvictor.salles@gmail.com>
Co-authored-by: Missaoui Mounir <Mounir.missaoui@esprit.tn>
Co-authored-by: Ole Jostes <Ceratius@outlook.de>
Co-authored-by: Oscar Rodríguez Díaz <alexoscarcrd@gmail.com>
Co-authored-by: Raghdah .F <ragod11498@gmail.com>
Co-authored-by: Raithe <RaitheOfDureya@gmail.com>
Co-authored-by: Sciuridae <sweetvshoney@163.com>
Co-authored-by: Simon Fischer <simon.pascal.fischer@gmail.com>
Co-authored-by: Sirapat Charukamnertkanok <sirapat1charu@gmail.com>
Co-authored-by: Skylar River <valnbiha@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: mattya 226 <worldworld1114@gmail.com>
Co-authored-by: wechbik <lazy@maildrop.cc>
Co-authored-by: Естай <akseleu@yahoo.com>
Co-authored-by: そら <comi4work@gmail.com>
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/ar/
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/de/
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/es/
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/ru/
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/zh_Hant/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/de/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/es/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/id/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ru/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/th/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/challenge/ar/
Translate-URL: https://translate.habitica.com/projects/habitica/character/ar/
Translate-URL: https://translate.habitica.com/projects/habitica/character/de/
Translate-URL: https://translate.habitica.com/projects/habitica/character/es/
Translate-URL: https://translate.habitica.com/projects/habitica/character/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/de/
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/es/
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/content/es/
Translate-URL: https://translate.habitica.com/projects/habitica/content/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/contrib/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/death/ar/
Translate-URL: https://translate.habitica.com/projects/habitica/death/es/
Translate-URL: https://translate.habitica.com/projects/habitica/death/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/faq/de/
Translate-URL: https://translate.habitica.com/projects/habitica/faq/es/
Translate-URL: https://translate.habitica.com/projects/habitica/faq/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/faq/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/faq/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/front/ar/
Translate-URL: https://translate.habitica.com/projects/habitica/front/de/
Translate-URL: https://translate.habitica.com/projects/habitica/front/es/
Translate-URL: https://translate.habitica.com/projects/habitica/front/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/front/ja/
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/es/
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/gear/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/ru/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/th/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/groups/de/
Translate-URL: https://translate.habitica.com/projects/habitica/groups/es/
Translate-URL: https://translate.habitica.com/projects/habitica/groups/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/groups/pt_BR/
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/es/
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/ru/
Translate-URL: https://translate.habitica.com/projects/habitica/limited/th/
Translate-URL: https://translate.habitica.com/projects/habitica/limited/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/messages/es/
Translate-URL: https://translate.habitica.com/projects/habitica/npc/es/
Translate-URL: https://translate.habitica.com/projects/habitica/npc/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/pets/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/bs/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/de/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/es/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/he/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/id/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/it/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/nl/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/ru/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/zh_Hant/
Translate-URL: https://translate.habitica.com/projects/habitica/rebirth/de/
Translate-URL: https://translate.habitica.com/projects/habitica/rebirth/es/
Translate-URL: https://translate.habitica.com/projects/habitica/rebirth/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/spells/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/spells/th/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/de/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/es/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/de/
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/es/
Translation: Habitica/Achievements
Translation: Habitica/Backgrounds
Translation: Habitica/Challenge
Translation: Habitica/Character
Translation: Habitica/Communityguidelines
Translation: Habitica/Content
Translation: Habitica/Contrib
Translation: Habitica/Death
Translation: Habitica/Faq
Translation: Habitica/Front
Translation: Habitica/Gear
Translation: Habitica/Groups
Translation: Habitica/Limited
Translation: Habitica/Messages
Translation: Habitica/Npc
Translation: Habitica/Pets
Translation: Habitica/Questscontent
Translation: Habitica/Rebirth
Translation: Habitica/Spells
Translation: Habitica/Subscriber
Translation: Habitica/Tasks
2021-10-07 21:16:40 +02:00
Tressley Cahill
1ec3415efb Update ISSUE_TEMPLATE.md
Updated to remove instances of the Report a Bug guild being mentioned.
2021-10-05 15:02:37 -04:00
Sabe Jones
353493675f Merge branch 'release' into develop 2021-10-04 19:03:42 -05:00
Sabe Jones
15fa4f47c2 4.207.2 2021-10-04 19:02:53 -05:00
Sabe Jones
155f11eabb feat(event): set canonical time range 2021-10-04 19:01:47 -05:00
Sabe Jones
d44b32764f fix(promo): use mobile generic key, maintain gear date range 2021-10-04 18:59:04 -05:00
Sabe Jones
bbe2076007 fix(promo): update hardcoded event references 2021-10-04 18:58:57 -05:00
Sabe Jones
51fd50e411 chore(testing): add Gems promo to festival 2021-10-04 18:58:46 -05:00
Seth Falco
72fc134a88 chore: replace http wiki links with https (#13528) 2021-10-01 17:58:09 -05:00
Sabe Jones
df23c45e01 4.207.1 2021-10-01 17:55:01 -05:00
dependabot[bot]
02c2344674 build(deps): bump stripe from 8.174.0 to 8.176.0 (#13511)
Bumps [stripe](https://github.com/stripe/stripe-node) from 8.174.0 to 8.176.0.
- [Release notes](https://github.com/stripe/stripe-node/releases)
- [Changelog](https://github.com/stripe/stripe-node/blob/master/CHANGELOG.md)
- [Commits](https://github.com/stripe/stripe-node/compare/v8.174.0...v8.176.0)

---
updated-dependencies:
- dependency-name: stripe
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-10-01 17:51:02 -05:00
dependabot[bot]
ced2b7f13e build(deps): bump hellojs from 1.19.4 to 1.19.5 in /website/client (#13517)
Bumps [hellojs](https://github.com/MrSwitch/hello.js) from 1.19.4 to 1.19.5.
- [Release notes](https://github.com/MrSwitch/hello.js/releases)
- [Changelog](https://github.com/MrSwitch/hello.js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/MrSwitch/hello.js/compare/v1.19.4...v1.19.5)

---
updated-dependencies:
- dependency-name: hellojs
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-10-01 17:50:42 -05:00
dependabot[bot]
2675f505ad build(deps): bump passport from 0.4.1 to 0.5.0 (#13524)
Bumps [passport](https://github.com/jaredhanson/passport) from 0.4.1 to 0.5.0.
- [Release notes](https://github.com/jaredhanson/passport/releases)
- [Changelog](https://github.com/jaredhanson/passport/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jaredhanson/passport/compare/v0.4.1...v0.5.0)

---
updated-dependencies:
- dependency-name: passport
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-10-01 17:50:05 -05:00
dependabot[bot]
cd36452168 build(deps): bump core-js from 3.17.3 to 3.18.1 in /website/client (#13525)
Bumps [core-js](https://github.com/zloirock/core-js) from 3.17.3 to 3.18.1.
- [Release notes](https://github.com/zloirock/core-js/releases)
- [Changelog](https://github.com/zloirock/core-js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/zloirock/core-js/compare/v3.17.3...v3.18.1)

---
updated-dependencies:
- dependency-name: core-js
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-10-01 17:49:07 -05:00
dependabot[bot]
3482aec646 build(deps): bump glob from 7.1.7 to 7.2.0 (#13526)
Bumps [glob](https://github.com/isaacs/node-glob) from 7.1.7 to 7.2.0.
- [Release notes](https://github.com/isaacs/node-glob/releases)
- [Changelog](https://github.com/isaacs/node-glob/blob/master/changelog.md)
- [Commits](https://github.com/isaacs/node-glob/compare/v7.1.7...v7.2.0)

---
updated-dependencies:
- dependency-name: glob
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-10-01 17:48:56 -05:00
dependabot[bot]
b8030180d4 build(deps): bump amplitude-js from 8.6.0 to 8.8.0 in /website/client (#13527)
Bumps [amplitude-js](https://github.com/amplitude/amplitude-javascript) from 8.6.0 to 8.8.0.
- [Release notes](https://github.com/amplitude/amplitude-javascript/releases)
- [Changelog](https://github.com/amplitude/Amplitude-JavaScript/blob/main/CHANGELOG.md)
- [Commits](https://github.com/amplitude/amplitude-javascript/compare/v8.6.0...v8.8.0)

---
updated-dependencies:
- dependency-name: amplitude-js
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-10-01 17:48:45 -05:00
Sabe Jones
be46a3164d Merge branch 'release' into develop 2021-09-29 21:46:31 -05:00
Sabe Jones
7f13ac1424 4.207.0 2021-09-29 21:46:17 -05:00
Sabe Jones
f9e1c1ee49 chore(sprites): compile 2021-09-29 21:46:11 -05:00
Sabe Jones
3e4ec0baf8 feat(content): Mystery Items 2021-10 2021-09-29 21:46:03 -05:00
Sabe Jones
743c81aad4 Merge branch 'release' into develop 2021-09-28 16:09:55 -05:00
Sabe Jones
18949e7238 4.206.2 2021-09-28 16:09:06 -05:00
Sabe Jones
c1fc549a1c chore(event): enable autumnal avatar customizations 2021-09-28 16:08:52 -05:00
Sabe Jones
60f251a8c7 fix(apidoc): change path in middleware and lintignore 2021-09-24 11:18:06 -05:00
Sabe Jones
3b2a61384b 4.206.1 2021-09-22 10:10:25 -05:00
Sabe Jones
07e19ddb83 fix(event): add underscore for iOS shop suffix 2021-09-22 10:10:13 -05:00
Weblate
8d400c3b8a Merge branch 'origin/develop' into Weblate. 2021-09-21 23:19:34 +02:00
Sabe Jones
ad3a8ae698 Merge branch 'release' into develop 2021-09-21 16:19:09 -05:00
Sabe Jones
ed6ce8a2c0 4.206.0 2021-09-21 16:18:07 -05:00
Sabe Jones
07caa4c09a chore(sprites): compile 2021-09-21 16:17:04 -05:00
Sabe Jones
0933fe48ba feat(content): Fall Festival 2021 2021-09-21 16:16:52 -05:00
Weblate
47eb47a974 Translated using Weblate (French)
Currently translated at 100.0% (373 of 373 strings)

Translated using Weblate (French)

Currently translated at 100.0% (203 of 203 strings)

Translated using Weblate (French)

Currently translated at 100.0% (56 of 56 strings)

Translated using Weblate (French)

Currently translated at 100.0% (47 of 47 strings)

Translated using Weblate (Russian)

Currently translated at 99.8% (737 of 738 strings)

Translated using Weblate (Ukrainian)

Currently translated at 87.5% (7 of 8 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (2413 of 2413 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (738 of 738 strings)

Translated using Weblate (Thai)

Currently translated at 34.4% (41 of 119 strings)

Co-authored-by: Benoit Hetru <me+hbtc@gahanka.net>
Co-authored-by: Sirapat Charukamnertkanok <sirapat1charu@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: mattya 226 <worldworld1114@gmail.com>
Co-authored-by: Естай <akseleu@yahoo.com>
Co-authored-by: Назар Коцур <bicolino34@gmail.com>
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/th/
Translate-URL: https://translate.habitica.com/projects/habitica/contrib/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/faq/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/groups/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/inventory/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/ru/
Translation: Habitica/Achievements
Translation: Habitica/Contrib
Translation: Habitica/Faq
Translation: Habitica/Gear
Translation: Habitica/Generic
Translation: Habitica/Groups
Translation: Habitica/Inventory
Translation: Habitica/Questscontent
2021-09-20 23:03:03 +02:00
dependabot[bot]
7746c50f65 build(deps): bump @storybook/addons in /website/client (#13486)
Bumps [@storybook/addons](https://github.com/storybookjs/storybook/tree/HEAD/lib/addons) from 6.2.9 to 6.3.8.
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v6.3.8/lib/addons)

---
updated-dependencies:
- dependency-name: "@storybook/addons"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-09-17 16:53:37 -05:00
dependabot[bot]
120dfa1799 build(deps): bump @storybook/vue from 6.2.9 to 6.3.8 in /website/client (#13488)
Bumps [@storybook/vue](https://github.com/storybookjs/storybook/tree/HEAD/app/vue) from 6.2.9 to 6.3.8.
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v6.3.8/app/vue)

---
updated-dependencies:
- dependency-name: "@storybook/vue"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-09-17 16:35:18 -05:00
dependabot[bot]
5f6344a5ff build(deps): bump axios from 0.21.3 to 0.21.4 in /website/client (#13498)
Bumps [axios](https://github.com/axios/axios) from 0.21.3 to 0.21.4.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/master/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/0.21.3...v0.21.4)

---
updated-dependencies:
- dependency-name: axios
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-09-17 16:35:05 -05:00
dependabot[bot]
d6a903e348 build(deps): bump amplitude from 5.1.6 to 5.1.7 (#13502)
Bumps [amplitude](https://github.com/geoffdutton/amplitude) from 5.1.6 to 5.1.7.
- [Release notes](https://github.com/geoffdutton/amplitude/releases)
- [Changelog](https://github.com/geoffdutton/amplitude/blob/master/CHANGELOG.md)
- [Commits](https://github.com/geoffdutton/amplitude/compare/v5.1.6...v5.1.7)

---
updated-dependencies:
- dependency-name: amplitude
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-09-17 16:34:53 -05:00
Nicolas CARPi
6457fe84cd remove sample forms from apidoc (#13507)
* remove sample forms from apidoc

* add explicit path to config for apidoc

* bring all apidoc files into apidoc folder
2021-09-17 16:34:08 -05:00
Benja Appel
c5b0833bf2 fix cloned challenge task order (#13328) (#13506)
* fix cloned challenge task order (#13328)

* fix lint errors
2021-09-17 16:33:42 -05:00
dependabot[bot]
5339fb011c build(deps): bump @storybook/addon-actions in /website/client (#13484)
Bumps [@storybook/addon-actions](https://github.com/storybookjs/storybook/tree/HEAD/addons/actions) from 6.2.9 to 6.3.8.
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v6.3.8/addons/actions)

---
updated-dependencies:
- dependency-name: "@storybook/addon-actions"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-09-17 16:10:27 -05:00
dependabot[bot]
2d2b7102c4 build(deps): bump @storybook/addon-links in /website/client (#13491)
Bumps [@storybook/addon-links](https://github.com/storybookjs/storybook/tree/HEAD/addons/links) from 6.2.9 to 6.3.8.
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v6.3.8/addons/links)

---
updated-dependencies:
- dependency-name: "@storybook/addon-links"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-09-17 16:10:08 -05:00
dependabot[bot]
fc87996417 build(deps): bump @babel/preset-env from 7.15.4 to 7.15.6 (#13501)
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.15.4 to 7.15.6.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.15.6/packages/babel-preset-env)

---
updated-dependencies:
- dependency-name: "@babel/preset-env"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-09-17 16:09:12 -05:00
dependabot[bot]
a4337b2777 build(deps-dev): bump axios from 0.21.3 to 0.21.4 (#13503)
Bumps [axios](https://github.com/axios/axios) from 0.21.3 to 0.21.4.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/master/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/0.21.3...v0.21.4)

---
updated-dependencies:
- dependency-name: axios
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-09-17 16:08:50 -05:00
dependabot[bot]
f19aab5299 build(deps): bump amplitude-js from 8.5.0 to 8.6.0 in /website/client (#13504)
Bumps [amplitude-js](https://github.com/amplitude/amplitude-javascript) from 8.5.0 to 8.6.0.
- [Release notes](https://github.com/amplitude/amplitude-javascript/releases)
- [Changelog](https://github.com/amplitude/Amplitude-JavaScript/blob/main/CHANGELOG.md)
- [Commits](https://github.com/amplitude/amplitude-javascript/compare/v8.5.0...v8.6.0)

---
updated-dependencies:
- dependency-name: amplitude-js
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-09-17 16:08:23 -05:00
dependabot[bot]
714041f988 build(deps): bump core-js from 3.17.2 to 3.17.3 in /website/client (#13505)
Bumps [core-js](https://github.com/zloirock/core-js) from 3.17.2 to 3.17.3.
- [Release notes](https://github.com/zloirock/core-js/releases)
- [Changelog](https://github.com/zloirock/core-js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/zloirock/core-js/compare/v3.17.2...v3.17.3)

---
updated-dependencies:
- dependency-name: core-js
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-09-17 16:08:06 -05:00
Ilenia
0bd8b19d7d added missing space (#13508) 2021-09-17 16:03:51 -05:00
Sabe Jones
72e2facc49 Merge branch 'develop' into release 2021-09-16 17:53:35 -05:00
Weblate
61436c75b9 Translated using Weblate (French)
Currently translated at 100.0% (738 of 738 strings)

Translated using Weblate (French)

Currently translated at 100.0% (641 of 641 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (190 of 190 strings)

Translated using Weblate (French)

Currently translated at 100.0% (190 of 190 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (2413 of 2413 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (738 of 738 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (641 of 641 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (119 of 119 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (190 of 190 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (641 of 641 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (190 of 190 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (2413 of 2413 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (641 of 641 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (2413 of 2413 strings)

Translated using Weblate (Dutch)

Currently translated at 100.0% (119 of 119 strings)

Translated using Weblate (Japanese)

Currently translated at 99.8% (2409 of 2413 strings)

Translated using Weblate (Portuguese)

Currently translated at 90.7% (582 of 641 strings)

Translated using Weblate (Italian)

Currently translated at 99.6% (639 of 641 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (186 of 186 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (181 of 181 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (131 of 131 strings)

Translated using Weblate (French)

Currently translated at 100.0% (2413 of 2413 strings)

Translated using Weblate (French)

Currently translated at 100.0% (641 of 641 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (190 of 190 strings)

Translated using Weblate (Japanese)

Currently translated at 99.6% (2405 of 2413 strings)

Translated using Weblate (Thai)

Currently translated at 84.2% (80 of 95 strings)

Translated using Weblate (Thai)

Currently translated at 56.3% (116 of 206 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (61 of 61 strings)

Translated using Weblate (Spanish (Latin America))

Currently translated at 82.6% (105 of 127 strings)

Translated using Weblate (Thai)

Currently translated at 92.3% (12 of 13 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (180 of 180 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (371 of 371 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (186 of 186 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 99.5% (2402 of 2413 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (180 of 180 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 99.5% (2402 of 2413 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 99.8% (640 of 641 strings)

Co-authored-by: Benoit Hetru <me+hbtc@gahanka.net>
Co-authored-by: Cristiane Vigouroux <cvazsantos@gmail.com>
Co-authored-by: Il Mago <nethleen@gmail.com>
Co-authored-by: Jane Kong <myonjane@gmail.com>
Co-authored-by: Maikel Roelofs <maikel_roelofs@live.nl>
Co-authored-by: Olivia BIBRAC <oliviabibrac@hotmail.fr>
Co-authored-by: Raithe <RaitheOfDureya@gmail.com>
Co-authored-by: Sciuridae <sweetvshoney@163.com>
Co-authored-by: Sirapat Charukamnertkanok <sirapat1charu@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: Yowi <johana.f.c@gmail.com>
Co-authored-by: blacksheep47 <1760906326@qq.com>
Co-authored-by: mattya 226 <worldworld1114@gmail.com>
Co-authored-by: そら <comi4work@gmail.com>
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/nl/
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/it/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/pt/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/es_419/
Translate-URL: https://translate.habitica.com/projects/habitica/content/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/front/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/front/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/it/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/limited/th/
Translate-URL: https://translate.habitica.com/projects/habitica/messages/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/npc/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/quests/th/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/rebirth/th/
Translate-URL: https://translate.habitica.com/projects/habitica/settings/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/it/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/pt_BR/
Translation: Habitica/Achievements
Translation: Habitica/Backgrounds
Translation: Habitica/Communityguidelines
Translation: Habitica/Content
Translation: Habitica/Front
Translation: Habitica/Gear
Translation: Habitica/Limited
Translation: Habitica/Messages
Translation: Habitica/Npc
Translation: Habitica/Quests
Translation: Habitica/Questscontent
Translation: Habitica/Rebirth
Translation: Habitica/Settings
Translation: Habitica/Subscriber
2021-09-17 00:51:54 +02:00
Sabe Jones
bd42887120 4.205.4 2021-09-16 17:44:49 -05:00
Sabe Jones
7b76343621 Merge branch 'release' into develop 2021-09-15 11:22:54 -05:00
Sabe Jones
88dfad4660 4.205.3 2021-09-15 11:22:36 -05:00
Sabe Jones
5bfef56dfa fix(analytics): correct formatting for client events
Also corrects end date in Bird Buddies string
2021-09-15 11:21:16 -05:00
Benja Appel
f05479fd87 remove timer for quests in inventory (#13495) 2021-09-13 21:40:41 -05:00
Sabe Jones
59e4c2db66 Merge branch 'release' into develop 2021-09-13 21:31:24 -05:00
Sabe Jones
660d6f7777 4.205.2 2021-09-13 21:30:45 -05:00
Sabe Jones
281252971c feat(content): enable bird buddy bundle 2021-09-13 21:29:28 -05:00
dependabot[bot]
949a50e1ea build(deps): bump @babel/core from 7.15.0 to 7.15.5 (#13485)
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.15.0 to 7.15.5.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.15.5/packages/babel-core)

---
updated-dependencies:
- dependency-name: "@babel/core"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-09-10 15:42:50 -05:00
Sabe Jones
93093af68d fix(backgrounds): 3x3 grid corrections (#13493) 2021-09-10 15:32:59 -05:00
negue
5694a95015 Improve Z-Indexes for Notifications / Menus / Toolbar (#13494)
* Fix: zIndexes of Menu's and Notifications + add overview of the currently used z-indexes

* fix markdown
2021-09-10 15:31:57 -05:00
dependabot[bot]
93d4b90934 build(deps): bump axios from 0.21.1 to 0.21.3 in /website/client (#13480)
Bumps [axios](https://github.com/axios/axios) from 0.21.1 to 0.21.3.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/master/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v0.21.1...0.21.3)

---
updated-dependencies:
- dependency-name: axios
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-09-10 15:21:32 -05:00
dependabot[bot]
e1555c3ece build(deps): bump csv-stringify from 5.6.4 to 5.6.5 (#13481)
Bumps [csv-stringify](https://github.com/adaltas/node-csv-stringify) from 5.6.4 to 5.6.5.
- [Release notes](https://github.com/adaltas/node-csv-stringify/releases)
- [Commits](https://github.com/adaltas/node-csv-stringify/commits)

---
updated-dependencies:
- dependency-name: csv-stringify
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-09-10 15:21:11 -05:00
dependabot[bot]
46e68a493c build(deps): bump core-js from 3.16.4 to 3.17.2 in /website/client (#13482)
Bumps [core-js](https://github.com/zloirock/core-js) from 3.16.4 to 3.17.2.
- [Release notes](https://github.com/zloirock/core-js/releases)
- [Changelog](https://github.com/zloirock/core-js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/zloirock/core-js/compare/v3.16.4...v3.17.2)

---
updated-dependencies:
- dependency-name: core-js
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-09-10 15:20:58 -05:00
dependabot[bot]
089a41150b build(deps): bump stripe from 8.171.0 to 8.174.0 (#13483)
Bumps [stripe](https://github.com/stripe/stripe-node) from 8.171.0 to 8.174.0.
- [Release notes](https://github.com/stripe/stripe-node/releases)
- [Changelog](https://github.com/stripe/stripe-node/blob/master/CHANGELOG.md)
- [Commits](https://github.com/stripe/stripe-node/compare/v8.171.0...v8.174.0)

---
updated-dependencies:
- dependency-name: stripe
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-09-10 15:20:42 -05:00
dependabot[bot]
d6ff526f67 build(deps-dev): bump axios from 0.21.1 to 0.21.3 (#13487)
Bumps [axios](https://github.com/axios/axios) from 0.21.1 to 0.21.3.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/master/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v0.21.1...0.21.3)

---
updated-dependencies:
- dependency-name: axios
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-09-10 15:20:22 -05:00
dependabot[bot]
f1aa6c663c build(deps): bump @babel/preset-env from 7.15.0 to 7.15.4 (#13489)
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.15.0 to 7.15.4.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.15.4/packages/babel-preset-env)

---
updated-dependencies:
- dependency-name: "@babel/preset-env"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-09-10 15:20:08 -05:00
Weblate
bc3e2c00a5 Merge branch 'origin/develop' into Weblate. 2021-09-09 23:02:25 +02:00
Melior
cc481d3635 Translated using Weblate (French)
Currently translated at 100.0% (131 of 131 strings)

Translated using Weblate (Thai)

Currently translated at 34.2% (38 of 111 strings)

Translated using Weblate (Thai)

Currently translated at 70.5% (1702 of 2413 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (137 of 137 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (190 of 190 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (2413 of 2413 strings)

Translated using Weblate (Russian)

Currently translated at 99.7% (736 of 738 strings)

Translated using Weblate (Russian)

Currently translated at 99.2% (126 of 127 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (371 of 371 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (641 of 641 strings)

Translated using Weblate (Russian)

Currently translated at 99.1% (118 of 119 strings)

Translated using Weblate (German)

Currently translated at 99.6% (639 of 641 strings)

Translated using Weblate (German)

Currently translated at 74.0% (94 of 127 strings)

Co-authored-by: Benoit Hetru <me+hbtc@gahanka.net>
Co-authored-by: Mara Dolichotis <marascherzer@gmail.com>
Co-authored-by: Melior <admin@habitica.com>
Co-authored-by: Phillip Thelen <phillip@habitica.com>
Co-authored-by: Sirapat Charukamnertkanok <sirapat1charu@gmail.com>
Co-authored-by: Естай <akseleu@yahoo.com>
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/ru/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/de/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ru/
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/de/
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/ru/
Translate-URL: https://translate.habitica.com/projects/habitica/content/ru/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/ru/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/th/
Translate-URL: https://translate.habitica.com/projects/habitica/npc/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/pets/th/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/ru/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/ru/
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/ru/
Translation: Habitica/Achievements
Translation: Habitica/Backgrounds
Translation: Habitica/Communityguidelines
Translation: Habitica/Content
Translation: Habitica/Gear
Translation: Habitica/Npc
Translation: Habitica/Pets
Translation: Habitica/Questscontent
Translation: Habitica/Subscriber
Translation: Habitica/Tasks
2021-09-09 23:02:13 +02:00
Sabe Jones
16dad596d8 4.205.1 2021-09-09 15:58:32 -05:00
Sabe Jones
ae5324924e Retire Report a Bug Guild (#13479)
* feat(bug-reporting): Retire Bug Guild and add fancy mailto links

* fix(bug-reporting): update GitHub documentation

* fix(bug-reporting): eh markdown?

* fix(bug-reporting): update Tavern link, remove redundant string

* fix(typo): HabitiCa
2021-09-09 15:50:44 -05:00
Melior
cd1aceeea8 Merge branch 'origin/develop' into Weblate. 2021-09-07 20:36:06 +02:00
Sabe Jones
56ecc3e971 Merge branch 'release' into develop 2021-09-07 13:35:43 -05:00
Sabe Jones
d58630faee 4.205.0 2021-09-07 13:35:26 -05:00
Sabe Jones
de4e28a79f chore(sprites): compile 2021-09-07 13:35:19 -05:00
Sabe Jones
241b7b05a4 feat(content): Armoire items and Backgrounds 2021-09-07 13:35:11 -05:00
Melior
8ca0875925 Translated using Weblate (Thai)
Currently translated at 27.9% (31 of 111 strings)

Translation: Habitica/Pets
Translate-URL: https://translate.habitica.com/projects/habitica/pets/th/

Translated using Weblate (Thai)

Currently translated at 26.1% (47 of 180 strings)

Translation: Habitica/Front
Translate-URL: https://translate.habitica.com/projects/habitica/front/th/

Translated using Weblate (Thai)

Currently translated at 84.0% (620 of 738 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/th/

Translated using Weblate (Thai)

Currently translated at 84.7% (111 of 131 strings)

Translation: Habitica/Npc
Translate-URL: https://translate.habitica.com/projects/habitica/npc/th/

Translated using Weblate (Thai)

Currently translated at 70.8% (1701 of 2401 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/th/

Translated using Weblate (Indonesian)

Currently translated at 100.0% (56 of 56 strings)

Translation: Habitica/Spells
Translate-URL: https://translate.habitica.com/projects/habitica/spells/id/

Translated using Weblate (Indonesian)

Currently translated at 71.1% (1708 of 2401 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/id/

Translated using Weblate (Swedish)

Currently translated at 95.6% (355 of 371 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/sv/

Translated using Weblate (German)

Currently translated at 99.3% (733 of 738 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/de/

Translated using Weblate (German)

Currently translated at 100.0% (371 of 371 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/de/

Translated using Weblate (Indonesian)

Currently translated at 51.8% (28 of 54 strings)

Translation: Habitica/Defaulttasks
Translate-URL: https://translate.habitica.com/projects/habitica/defaulttasks/id/

Translated using Weblate (Thai)

Currently translated at 84.6% (11 of 13 strings)

Translation: Habitica/Rebirth
Translate-URL: https://translate.habitica.com/projects/habitica/rebirth/th/

Translated using Weblate (Thai)

Currently translated at 84.0% (620 of 738 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/th/

Translated using Weblate (Thai)

Currently translated at 67.7% (128 of 189 strings)

Translation: Habitica/Subscriber
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/th/

Translated using Weblate (Japanese)

Currently translated at 100.0% (738 of 738 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/ja/

Translated using Weblate (Swedish)

Currently translated at 100.0% (137 of 137 strings)

Translation: Habitica/Tasks
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/sv/

Translated using Weblate (Indonesian)

Currently translated at 82.1% (46 of 56 strings)

Translation: Habitica/Faq
Translate-URL: https://translate.habitica.com/projects/habitica/faq/id/
2021-09-07 12:42:03 +02:00
Liza
ef5a85c605 fix watcher to update challenges on group change (#13311) 2021-09-01 19:31:28 -05:00
J Sanderson
38d035eea6 Dark mode input fix (fixes #13312) (#13414)
* fix: add form-control class where missing

* fix: chat input background colour

* fix(pr): don't commit package changes

* fix(css): use white variable

Co-authored-by: J Sanderson <julia@parentscheme.com>
Co-authored-by: Sabe Jones <sabrecat@gmail.com>
2021-09-01 19:24:36 -05:00
negue
c253ff94e6 Fix: Quest Rewards (#13327)
* Fix: Add Pets / Mounts to Quest-Rewards

* add other popover labels

* fix: quest drop equipment popover

* fix quest reward popover padding

* custom position for pet rewards
2021-09-01 19:18:01 -05:00
Shiqi
bf4f80b357 🐞 fix(abort quest): (#13449)
sync party member after aborting quest
2021-09-01 19:06:25 -05:00
Melvin
22db983f40 Improve the checklists in the apidocs (#13476) 2021-09-01 18:47:35 -05:00
negue
72606ad376 Fix Storybook Installation and production build CI (#13465)
* Revert storybook updates - pin versions - add production build CI

* test.yml wasnt added to the commit

Co-authored-by: Sabe Jones <sabrecat@gmail.com>
2021-09-01 18:47:13 -05:00
dependabot[bot]
c11948f57c build(deps): bump csv-stringify from 5.6.2 to 5.6.4 (#13466)
Bumps [csv-stringify](https://github.com/adaltas/node-csv-stringify) from 5.6.2 to 5.6.4.
- [Release notes](https://github.com/adaltas/node-csv-stringify/releases)
- [Commits](https://github.com/adaltas/node-csv-stringify/commits)

---
updated-dependencies:
- dependency-name: csv-stringify
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-09-01 18:05:34 -05:00
dependabot[bot]
18aeaed40a build(deps-dev): bump sinon from 10.0.0 to 11.1.2 (#13470)
Bumps [sinon](https://github.com/sinonjs/sinon) from 10.0.0 to 11.1.2.
- [Release notes](https://github.com/sinonjs/sinon/releases)
- [Changelog](https://github.com/sinonjs/sinon/blob/master/docs/changelog.md)
- [Commits](https://github.com/sinonjs/sinon/compare/v10.0.0...v11.1.2)

---
updated-dependencies:
- dependency-name: sinon
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-09-01 18:05:24 -05:00
dependabot[bot]
9d67bc3827 build(deps): bump stripe from 8.170.0 to 8.171.0 (#13472)
Bumps [stripe](https://github.com/stripe/stripe-node) from 8.170.0 to 8.171.0.
- [Release notes](https://github.com/stripe/stripe-node/releases)
- [Changelog](https://github.com/stripe/stripe-node/blob/master/CHANGELOG.md)
- [Commits](https://github.com/stripe/stripe-node/compare/v8.170.0...v8.171.0)

---
updated-dependencies:
- dependency-name: stripe
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-09-01 18:03:41 -05:00
dependabot[bot]
09ad76e4bb build(deps): bump node-gcm from 1.0.4 to 1.0.5 (#13473)
Bumps [node-gcm](https://github.com/ToothlessGear/node-gcm) from 1.0.4 to 1.0.5.
- [Release notes](https://github.com/ToothlessGear/node-gcm/releases)
- [Changelog](https://github.com/ToothlessGear/node-gcm/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ToothlessGear/node-gcm/commits)

---
updated-dependencies:
- dependency-name: node-gcm
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-09-01 18:03:31 -05:00
dependabot[bot]
56337bd7d4 build(deps): bump intro.js from 4.1.0 to 4.2.2 in /website/client (#13474)
Bumps [intro.js](https://github.com/usablica/intro.js) from 4.1.0 to 4.2.2.
- [Release notes](https://github.com/usablica/intro.js/releases)
- [Commits](https://github.com/usablica/intro.js/compare/v4.1.0...v4.2.2)

---
updated-dependencies:
- dependency-name: intro.js
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-09-01 18:03:18 -05:00
dependabot[bot]
980d7b2b37 build(deps): bump core-js from 3.16.2 to 3.16.4 in /website/client (#13475)
Bumps [core-js](https://github.com/zloirock/core-js) from 3.16.2 to 3.16.4.
- [Release notes](https://github.com/zloirock/core-js/releases)
- [Changelog](https://github.com/zloirock/core-js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/zloirock/core-js/compare/v3.16.2...v3.16.4)

---
updated-dependencies:
- dependency-name: core-js
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-09-01 18:03:07 -05:00
dependabot[bot]
d62a03bad7 build(deps): bump tar from 6.1.6 to 6.1.11 (#13477)
Bumps [tar](https://github.com/npm/node-tar) from 6.1.6 to 6.1.11.
- [Release notes](https://github.com/npm/node-tar/releases)
- [Changelog](https://github.com/npm/node-tar/blob/main/CHANGELOG.md)
- [Commits](https://github.com/npm/node-tar/compare/v6.1.6...v6.1.11)

---
updated-dependencies:
- dependency-name: tar
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-09-01 18:02:55 -05:00
Sabe Jones
682b6f14bd 4.204.2 2021-09-01 14:53:30 -05:00
Sabe Jones
386077b74f Merge branch 'develop' into release 2021-09-01 14:53:20 -05:00
Melior
bdebf39b46 Translated using Weblate (Indonesian)
Currently translated at 44.4% (24 of 54 strings)

Translation: Habitica/Defaulttasks
Translate-URL: https://translate.habitica.com/projects/habitica/defaulttasks/id/

Translated using Weblate (Indonesian)

Currently translated at 42.5% (23 of 54 strings)

Translation: Habitica/Defaulttasks
Translate-URL: https://translate.habitica.com/projects/habitica/defaulttasks/id/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (189 of 189 strings)

Translation: Habitica/Subscriber
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/zh_Hans/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (180 of 180 strings)

Translation: Habitica/Front
Translate-URL: https://translate.habitica.com/projects/habitica/front/zh_Hans/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (374 of 374 strings)

Translation: Habitica/Groups
Translate-URL: https://translate.habitica.com/projects/habitica/groups/zh_Hans/

Translated using Weblate (Indonesian)

Currently translated at 71.0% (1706 of 2401 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/id/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (180 of 180 strings)

Translation: Habitica/Front
Translate-URL: https://translate.habitica.com/projects/habitica/front/zh_Hans/

Translated using Weblate (Indonesian)

Currently translated at 76.9% (568 of 738 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/id/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (127 of 127 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/zh_Hans/

Translated using Weblate (Russian)

Currently translated at 85.0% (108 of 127 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/ru/

Translated using Weblate (Russian)

Currently translated at 99.8% (633 of 634 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ru/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (186 of 186 strings)

Translation: Habitica/Settings
Translate-URL: https://translate.habitica.com/projects/habitica/settings/zh_Hans/

Translated using Weblate (Thai)

Currently translated at 97.8% (134 of 137 strings)

Translation: Habitica/Tasks
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/th/

Translated using Weblate (French)

Currently translated at 100.0% (137 of 137 strings)

Translation: Habitica/Tasks
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/fr/

Translated using Weblate (Chinese (Traditional))

Currently translated at 100.0% (374 of 374 strings)

Translation: Habitica/Groups
Translate-URL: https://translate.habitica.com/projects/habitica/groups/zh_Hant/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (374 of 374 strings)

Translation: Habitica/Groups
Translate-URL: https://translate.habitica.com/projects/habitica/groups/zh_Hans/

Translated using Weblate (Italian)

Currently translated at 100.0% (2401 of 2401 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/it/

Translated using Weblate (French)

Currently translated at 100.0% (738 of 738 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/fr/

Translated using Weblate (French)

Currently translated at 100.0% (371 of 371 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/fr/

Translated using Weblate (Italian)

Currently translated at 100.0% (634 of 634 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/it/

Translated using Weblate (French)

Currently translated at 100.0% (119 of 119 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/fr/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (374 of 374 strings)

Translation: Habitica/Groups
Translate-URL: https://translate.habitica.com/projects/habitica/groups/zh_Hans/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (738 of 738 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/zh_Hans/
2021-09-01 19:05:39 +02:00
Sabe Jones
24c8b7f222 fix(analytics): reduce item drop firehose 2021-08-30 17:54:21 -05:00
Sabe Jones
0fb1fd5756 Merge branch 'release' into develop 2021-08-30 16:26:28 -05:00
Sabe Jones
4ebde2ddbc 4.204.1 2021-08-30 16:26:10 -05:00
Sabe Jones
40bf664f20 chore(analytics): various updates to analytics tracking 2021-08-30 16:21:05 -05:00
Sabe Jones
814cd2b64f Merge branch 'develop' of https://github.com/HabitRPG/habitica into develop 2021-08-30 14:39:15 -05:00
Sabe Jones
74a30fb1ec Merge branch 'release' into develop 2021-08-30 14:38:12 -05:00
Sabe Jones
722770354d 4.204.0 2021-08-30 14:37:54 -05:00
Melior
773b07f2f0 Translated using Weblate (Indonesian)
Currently translated at 90.0% (100 of 111 strings)

Translation: Habitica/Pets
Translate-URL: https://translate.habitica.com/projects/habitica/pets/id/

Translated using Weblate (Indonesian)

Currently translated at 83.9% (110 of 131 strings)

Translation: Habitica/Npc
Translate-URL: https://translate.habitica.com/projects/habitica/npc/id/

Translated using Weblate (Indonesian)

Currently translated at 81.9% (50 of 61 strings)

Translation: Habitica/Messages
Translate-URL: https://translate.habitica.com/projects/habitica/messages/id/

Translated using Weblate (Turkish)

Currently translated at 71.7% (1723 of 2401 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/tr/

Translated using Weblate (Turkish)

Currently translated at 71.7% (1723 of 2401 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/tr/

Translated using Weblate (Turkish)

Currently translated at 71.7% (1723 of 2401 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/tr/

Translated using Weblate (Indonesian)

Currently translated at 76.9% (568 of 738 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/id/

Translated using Weblate (Indonesian)

Currently translated at 100.0% (634 of 634 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/id/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (137 of 137 strings)

Translation: Habitica/Tasks
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/pt_BR/

Translated using Weblate (Chinese (Traditional))

Currently translated at 97.8% (134 of 137 strings)

Translation: Habitica/Tasks
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/zh_Hant/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (137 of 137 strings)

Translation: Habitica/Tasks
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/zh_Hans/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (738 of 738 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/zh_Hans/

Translated using Weblate (Thai)

Currently translated at 96.2% (181 of 188 strings)

Translation: Habitica/Character
Translate-URL: https://translate.habitica.com/projects/habitica/character/th/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (374 of 374 strings)

Translation: Habitica/Groups
Translate-URL: https://translate.habitica.com/projects/habitica/groups/zh_Hans/

Translated using Weblate (Japanese)

Currently translated at 99.8% (737 of 738 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/ja/

Translated using Weblate (Japanese)

Currently translated at 100.0% (127 of 127 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/ja/

Translated using Weblate (Japanese)

Currently translated at 100.0% (127 of 127 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/ja/

Translated using Weblate (Thai)

Currently translated at 94.8% (130 of 137 strings)

Translation: Habitica/Tasks
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/th/

Translated using Weblate (Thai)

Currently translated at 100.0% (8 of 8 strings)

Translation: Habitica/Inventory
Translate-URL: https://translate.habitica.com/projects/habitica/inventory/th/

Translated using Weblate (Chinese (Simplified))

Currently translated at 99.7% (373 of 374 strings)

Translation: Habitica/Groups
Translate-URL: https://translate.habitica.com/projects/habitica/groups/zh_Hans/

Translated using Weblate (Japanese)

Currently translated at 100.0% (127 of 127 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/ja/

Translated using Weblate (Indonesian)

Currently translated at 89.1% (99 of 111 strings)

Translation: Habitica/Pets
Translate-URL: https://translate.habitica.com/projects/habitica/pets/id/

Translated using Weblate (Thai)

Currently translated at 89.2% (166 of 186 strings)

Translation: Habitica/Settings
Translate-URL: https://translate.habitica.com/projects/habitica/settings/th/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (137 of 137 strings)

Translation: Habitica/Tasks
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/zh_Hans/

Translated using Weblate (Thai)

Currently translated at 31.0% (37 of 119 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/th/

Translated using Weblate (Chinese (Traditional))

Currently translated at 100.0% (374 of 374 strings)

Translation: Habitica/Groups
Translate-URL: https://translate.habitica.com/projects/habitica/groups/zh_Hant/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (374 of 374 strings)

Translation: Habitica/Groups
Translate-URL: https://translate.habitica.com/projects/habitica/groups/zh_Hans/

Translated using Weblate (Indonesian)

Currently translated at 80.3% (45 of 56 strings)

Translation: Habitica/Faq
Translate-URL: https://translate.habitica.com/projects/habitica/faq/id/

Translated using Weblate (Japanese)

Currently translated at 100.0% (371 of 371 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/ja/

Translated using Weblate (Japanese)

Currently translated at 100.0% (119 of 119 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/ja/

Translated using Weblate (Indonesian)

Currently translated at 100.0% (119 of 119 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/id/

Translated using Weblate (Swedish)

Currently translated at 94.1% (129 of 137 strings)

Translation: Habitica/Tasks
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/sv/

Translated using Weblate (Japanese)

Currently translated at 100.0% (137 of 137 strings)

Translation: Habitica/Tasks
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/ja/

Translated using Weblate (Japanese)

Currently translated at 98.3% (117 of 119 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/ja/

Translated using Weblate (Thai)

Currently translated at 100.0% (56 of 56 strings)

Translation: Habitica/Spells
Translate-URL: https://translate.habitica.com/projects/habitica/spells/th/

Translated using Weblate (Thai)

Currently translated at 64.2% (36 of 56 strings)

Translation: Habitica/Faq
Translate-URL: https://translate.habitica.com/projects/habitica/faq/th/

Translated using Weblate (Thai)

Currently translated at 94.8% (130 of 137 strings)

Translation: Habitica/Tasks
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/th/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (186 of 186 strings)

Translation: Habitica/Settings
Translate-URL: https://translate.habitica.com/projects/habitica/settings/zh_Hans/

Translated using Weblate (Thai)

Currently translated at 94.1% (129 of 137 strings)

Translation: Habitica/Tasks
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/th/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (137 of 137 strings)

Translation: Habitica/Tasks
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/zh_Hans/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (738 of 738 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/zh_Hans/

Translated using Weblate (Vietnamese)

Currently translated at 78.9% (94 of 119 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/vi/

Translated using Weblate (Czech)

Currently translated at 97.8% (134 of 137 strings)

Translation: Habitica/Tasks
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/cs/

Translated using Weblate (Czech)

Currently translated at 72.6% (69 of 95 strings)

Translation: Habitica/Quests
Translate-URL: https://translate.habitica.com/projects/habitica/quests/cs/

Translated using Weblate (Czech)

Currently translated at 100.0% (203 of 203 strings)

Translation: Habitica/Generic
Translate-URL: https://translate.habitica.com/projects/habitica/generic/cs/

Translated using Weblate (Czech)

Currently translated at 100.0% (180 of 180 strings)

Translation: Habitica/Front
Translate-URL: https://translate.habitica.com/projects/habitica/front/cs/

Translated using Weblate (Japanese)

Currently translated at 99.4% (734 of 738 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/ja/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (371 of 371 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/zh_Hans/

Translated using Weblate (Czech)

Currently translated at 100.0% (188 of 188 strings)

Translation: Habitica/Character
Translate-URL: https://translate.habitica.com/projects/habitica/character/cs/

Translated using Weblate (Czech)

Currently translated at 97.6% (619 of 634 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/cs/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (119 of 119 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/zh_Hans/

Translated using Weblate (Japanese)

Currently translated at 100.0% (2401 of 2401 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/ja/

Translated using Weblate (Thai)

Currently translated at 64.5% (122 of 189 strings)

Translation: Habitica/Subscriber
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/th/

Translated using Weblate (Thai)

Currently translated at 64.5% (122 of 189 strings)

Translation: Habitica/Subscriber
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/th/

Translated using Weblate (Thai)

Currently translated at 75.0% (6 of 8 strings)

Translation: Habitica/Overview
Translate-URL: https://translate.habitica.com/projects/habitica/overview/th/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (371 of 371 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 99.1% (118 of 119 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/pt_BR/

Translated using Weblate (Italian)

Currently translated at 100.0% (137 of 137 strings)

Translation: Habitica/Tasks
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/it/

Translated using Weblate (Italian)

Currently translated at 100.0% (738 of 738 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/it/

Translated using Weblate (Italian)

Currently translated at 100.0% (371 of 371 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/it/

Translated using Weblate (Italian)

Currently translated at 100.0% (119 of 119 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/it/

Translated using Weblate (Chinese (Simplified))

Currently translated at 98.3% (117 of 119 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/zh_Hans/
2021-08-30 17:00:54 +02:00
Sabe Jones
e49486e974 chore(sprites): compile 2021-08-28 17:33:16 -05:00
Sabe Jones
8ca9853a2f feat(content): subscriber items September 2021 2021-08-28 17:33:10 -05:00
Sabe Jones
a08005e5da Revert "Revert "chore(lint): disable breaking rules""
This reverts commit a6e32d0822.
2021-08-27 18:55:21 -05:00
Sabe Jones
f13e982553 Revert "Revert "chore(lint): run fix""
This reverts commit 5179440f77.
2021-08-27 18:54:55 -05:00
Sabe Jones
5b346690a9 fix(storybook): temporarily disable story 2021-08-26 23:05:48 -05:00
Sabe Jones
e6da2752a7 fix(storybook): temporarily disable story 2021-08-26 23:05:13 -05:00
Sabe Jones
0f668ec96f Merge branch 'release' into develop 2021-08-26 22:52:34 -05:00
Sabe Jones
e5a19d7fb4 Revert "chore(package): update client lock"
This reverts commit 562db48e02.
2021-08-26 22:50:54 -05:00
Sabe Jones
5179440f77 Revert "chore(lint): run fix"
This reverts commit 15fdf2d75a.
2021-08-26 22:50:46 -05:00
Sabe Jones
a6e32d0822 Revert "chore(lint): disable breaking rules"
This reverts commit 7207ca8cc4.
2021-08-26 22:50:37 -05:00
Sabe Jones
7207ca8cc4 chore(lint): disable breaking rules 2021-08-26 21:23:59 -05:00
Sabe Jones
15fdf2d75a chore(lint): run fix 2021-08-26 21:19:18 -05:00
Sabe Jones
562db48e02 chore(package): update client lock 2021-08-26 21:05:10 -05:00
Sabe Jones
638e29c6cd chore(packages): update lock 2021-08-26 20:39:41 -05:00
negue
53424d548a Rework Notifications: separate and bundle to an amount of 4 (#13300)
* WIP notifications only show 2 at once

* separate and bundle notifications to pairs

* notification fadein/-out/move animations - remove notifications on an interval instead of calculated timeouts

* easier way to import all sprite css files

* add stories + fix sizes / paddings + click to hide + animation fixes

* keep notification at the top but always under the toolbars

* change animations to ease-in 0.25s + add prop to change the delay between deletion and add

* fix adding logic in a rare case of added notifications when only one item is currently visible + add debug mode

* disable lint for notification console

* add more notification example trigger buttons

* potential fix of animation / queue

* increase amount of notifications to 4

* fix sanity

* fix test:unit call again

* new notification styles - fix animations

* keep error notifications visible until manually removed + refactor adding/removal logic

* fix margins

* prevent multiple filling + different delay on filling

* stop and restart removal timer on new notifications

* reduce line-height / apply different margin for icons

* move sprites.scss out and use it in app.vue as well

* update sprites back to 31
2021-08-26 19:56:41 -05:00
Sabe Jones
07ecbd4444 4.203.1 2021-08-26 19:54:42 -05:00
Sabe Jones
4f0f058b2d Merge branch 'develop' into release 2021-08-26 19:54:37 -05:00
Sabe Jones
7f0bdd6a9c fix(shops): merge issue with mounted() function 2021-08-26 19:54:13 -05:00
Zach Bauer
1a484b56ac Fix shop item popover staying open after click (#12921)
* don't refocus shopItem popover on click

* fix webpack compile error

* manually disable and enable popover

* clean up old changes
2021-08-26 19:47:27 -05:00
Alan Cruz
876a7b766c if selectedpage === 'invites' check if there is any pending invitation, if not, set selectedPage to 'members' (#13315) 2021-08-26 19:36:18 -05:00
negue
30c202dbbe Quest Sidebar: Boss Pending Health inside the normal Bar (#13317) 2021-08-26 19:22:56 -05:00
Lu
572e709d63 Settings: Add missing margin to settings checkboxes - Fixes #12794 (#13319)
* Add missing margin to settings checkboxes

* Fix checkboxes in notifications
2021-08-26 18:42:51 -05:00
Sabe Jones
b4dc3796a1 fix(achievement): Bunny not Rabbit 2021-08-26 18:34:17 -05:00
dependabot[bot]
cae36ea554 build(deps): bump vue-cli-plugin-storybook in /website/client (#13346)
Bumps [vue-cli-plugin-storybook](https://github.com/storybookjs/vue-cli-plugin-storybook) from 2.0.0 to 2.1.0.
- [Release notes](https://github.com/storybookjs/vue-cli-plugin-storybook/releases)
- [Changelog](https://github.com/storybookjs/vue-cli-plugin-storybook/blob/master/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/vue-cli-plugin-storybook/compare/v2.0.0...v2.1.0)

---
updated-dependencies:
- dependency-name: vue-cli-plugin-storybook
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-08-26 18:33:23 -05:00
Faris P
f9a0939796 Class icon misalignment fixed. fixes #13316 (#13330)
* change position of class icon on profile modal

Changed the bottom position of class icon on profile modal

* Convert `badgeSize` to pixel

Converted the badgeSize prop to pixel value by adding `+ 'px'`.
2021-08-26 18:33:05 -05:00
dependabot[bot]
62602a997c build(deps): bump vue and vue-template-compiler in /website/client (#13336)
Bumps [vue](https://github.com/vuejs/vue) and [vue-template-compiler](https://github.com/vuejs/vue). These dependencies needed to be updated together.

Updates `vue` from 2.6.12 to 2.6.14
- [Release notes](https://github.com/vuejs/vue/releases)
- [Commits](https://github.com/vuejs/vue/compare/v2.6.12...v2.6.14)

Updates `vue-template-compiler` from 2.6.12 to 2.6.14
- [Release notes](https://github.com/vuejs/vue/releases)
- [Commits](https://github.com/vuejs/vue/compare/v2.6.12...v2.6.14)

---
updated-dependencies:
- dependency-name: vue
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: vue-template-compiler
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-08-26 18:18:21 -05:00
Nat Welch
7870ffece8 fix(cors): Allow all origins to support 3rd party tools (#13383) 2021-08-26 18:12:11 -05:00
KoRnoliX
9a2df5c1e5 Fix habits' dropdown list overlap (#13385)
Fix habits' tags dropdown list to properly close after expanding
difficulties dropdown list so they don't overlap
2021-08-26 18:09:23 -05:00
KoRnoliX
76fccd80ac Fix transform atidote unpin after using rebirthing fixes #13306 (#13400)
* Fix habits' dropdown list overlap

Fix habits' tags dropdown list to properly close after expanding
difficulties dropdown list so they don't overlap

* Fix transform antidote unpin after rebirth

Fix transformation buff antidote to properly unpin from Rewards section
after using Orb of Rebirth

* Revert "Fix habits' dropdown list overlap"

This reverts commit 6a72e27b89.

Co-authored-by: Sabe Jones <sabrecat@gmail.com>
2021-08-26 18:05:59 -05:00
dependabot[bot]
b3adc88138 build(deps): bump intro.js from 3.4.0 to 4.1.0 in /website/client (#13356)
Bumps [intro.js](https://github.com/usablica/intro.js) from 3.4.0 to 4.1.0.
- [Release notes](https://github.com/usablica/intro.js/releases)
- [Commits](https://github.com/usablica/intro.js/compare/v3.4.0...v4.1.0)

---
updated-dependencies:
- dependency-name: intro.js
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-08-26 17:52:24 -05:00
dependabot[bot]
1435b7a012 build(deps-dev): bump sinon-chai from 3.6.0 to 3.7.0 (#13310)
Bumps [sinon-chai](https://github.com/domenic/sinon-chai) from 3.6.0 to 3.7.0.
- [Release notes](https://github.com/domenic/sinon-chai/releases)
- [Changelog](https://github.com/domenic/sinon-chai/blob/master/CHANGELOG.md)
- [Commits](https://github.com/domenic/sinon-chai/compare/3.6.0...3.7.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-08-26 17:17:53 -05:00
dependabot[bot]
c7f58ddf9a build(deps): bump ws from 6.2.1 to 6.2.2 in /website/client (#13314)
Bumps [ws](https://github.com/websockets/ws) from 6.2.1 to 6.2.2.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/commits)

---
updated-dependencies:
- dependency-name: ws
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-08-26 17:08:41 -05:00
dependabot[bot]
6344a90f41 build(deps): bump @babel/preset-env from 7.14.4 to 7.15.0 (#13434)
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.14.4 to 7.15.0.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.15.0/packages/babel-preset-env)

---
updated-dependencies:
- dependency-name: "@babel/preset-env"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-08-26 17:08:16 -05:00
dependabot[bot]
b240490142 build(deps-dev): bump @babel/plugin-proposal-optional-chaining (#13341)
Bumps [@babel/plugin-proposal-optional-chaining](https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-proposal-optional-chaining) from 7.14.2 to 7.14.5.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.14.5/packages/babel-plugin-proposal-optional-chaining)

---
updated-dependencies:
- dependency-name: "@babel/plugin-proposal-optional-chaining"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-08-26 16:35:26 -05:00
dependabot[bot]
96af878c3b build(deps): bump postcss from 7.0.23 to 7.0.36 in /website/client (#13342)
Bumps [postcss](https://github.com/postcss/postcss) from 7.0.23 to 7.0.36.
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/7.0.23...7.0.36)

---
updated-dependencies:
- dependency-name: postcss
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-08-26 16:35:06 -05:00
dependabot[bot]
4d9c366a7e build(deps-dev): bump run-rs from 0.7.4 to 0.7.5 (#13351)
Bumps [run-rs](https://github.com/vkarpov15/run-rs) from 0.7.4 to 0.7.5.
- [Release notes](https://github.com/vkarpov15/run-rs/releases)
- [Changelog](https://github.com/vkarpov15/run-rs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/vkarpov15/run-rs/compare/0.7.4...0.7.5)

---
updated-dependencies:
- dependency-name: run-rs
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-08-26 16:34:22 -05:00
dependabot[bot]
4862264172 build(deps): bump nconf from 0.11.2 to 0.11.3 (#13362)
Bumps [nconf](https://github.com/flatiron/nconf) from 0.11.2 to 0.11.3.
- [Release notes](https://github.com/flatiron/nconf/releases)
- [Changelog](https://github.com/indexzero/nconf/blob/master/CHANGELOG.md)
- [Commits](https://github.com/flatiron/nconf/compare/v0.11.2...v0.11.3)

---
updated-dependencies:
- dependency-name: nconf
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-08-26 16:34:07 -05:00
dependabot[bot]
ecc00889da build(deps): bump nconf from 0.11.2 to 0.11.3 in /website/client (#13365)
Bumps [nconf](https://github.com/flatiron/nconf) from 0.11.2 to 0.11.3.
- [Release notes](https://github.com/flatiron/nconf/releases)
- [Changelog](https://github.com/indexzero/nconf/blob/master/CHANGELOG.md)
- [Commits](https://github.com/flatiron/nconf/compare/v0.11.2...v0.11.3)

---
updated-dependencies:
- dependency-name: nconf
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-08-26 16:33:54 -05:00
Jon Wolverton
f86bb98ccd Collection quest ignoring items (#13401)
* update tests to check for issue #12664

* rewrite processCollectionQuest to allocate quest items proportionally

Removes need to check for excess items, fixing issue #12664

* move test for this bug to the correct context section & remove redundant test

* refactor processCollectionQuest more

* tweak confusing comments
2021-08-26 16:33:29 -05:00
dependabot[bot]
234252d7d1 build(deps): bump hellojs from 1.19.3 to 1.19.4 in /website/client (#13366)
Bumps [hellojs](https://github.com/MrSwitch/hello.js) from 1.19.3 to 1.19.4.
- [Release notes](https://github.com/MrSwitch/hello.js/releases)
- [Changelog](https://github.com/MrSwitch/hello.js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/MrSwitch/hello.js/compare/v1.19.3...v1.19.4)

---
updated-dependencies:
- dependency-name: hellojs
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-08-26 16:30:52 -05:00
dependabot[bot]
ccd37a5b88 build(deps): bump vue-router from 3.5.1 to 3.5.2 in /website/client (#13368)
Bumps [vue-router](https://github.com/vuejs/vue-router) from 3.5.1 to 3.5.2.
- [Release notes](https://github.com/vuejs/vue-router/releases)
- [Changelog](https://github.com/vuejs/vue-router/blob/dev/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vue-router/compare/v3.5.1...v3.5.2)

---
updated-dependencies:
- dependency-name: vue-router
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-08-26 16:23:01 -05:00
dependabot[bot]
001c771dc1 build(deps): bump @babel/register from 7.13.16 to 7.15.3 (#13448)
Bumps [@babel/register](https://github.com/babel/babel/tree/HEAD/packages/babel-register) from 7.13.16 to 7.15.3.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.15.3/packages/babel-register)

---
updated-dependencies:
- dependency-name: "@babel/register"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-08-26 16:22:31 -05:00
KoRnoliX
b3cfcab5fb Fix negative quest scroll number on bundle purchase (#13415) 2021-08-26 16:22:00 -05:00
dependabot[bot]
28e133858a build(deps): bump jwks-rsa from 2.0.3 to 2.0.4 (#13398)
Bumps [jwks-rsa](https://github.com/auth0/node-jwks-rsa) from 2.0.3 to 2.0.4.
- [Release notes](https://github.com/auth0/node-jwks-rsa/releases)
- [Changelog](https://github.com/auth0/node-jwks-rsa/blob/master/CHANGELOG.md)
- [Commits](https://github.com/auth0/node-jwks-rsa/compare/v2.0.3...2.0.4)

---
updated-dependencies:
- dependency-name: jwks-rsa
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-08-26 16:16:26 -05:00
dependabot[bot]
435b41604e build(deps): bump regenerator-runtime from 0.13.7 to 0.13.9 (#13410)
Bumps [regenerator-runtime](https://github.com/facebook/regenerator) from 0.13.7 to 0.13.9.
- [Release notes](https://github.com/facebook/regenerator/releases)
- [Commits](https://github.com/facebook/regenerator/compare/regenerator-runtime@0.13.7...regenerator-runtime@0.13.9)

---
updated-dependencies:
- dependency-name: regenerator-runtime
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-08-26 16:15:33 -05:00
dependabot[bot]
8540c7ab85 build(deps): bump rate-limiter-flexible from 2.2.2 to 2.2.4 (#13411)
Bumps [rate-limiter-flexible](https://github.com/animir/node-rate-limiter-flexible) from 2.2.2 to 2.2.4.
- [Release notes](https://github.com/animir/node-rate-limiter-flexible/releases)
- [Commits](https://github.com/animir/node-rate-limiter-flexible/commits)

---
updated-dependencies:
- dependency-name: rate-limiter-flexible
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-08-26 16:15:18 -05:00
dependabot[bot]
f289fe5ce5 build(deps): bump mongoose from 5.13.5 to 5.13.7 (#13452)
Bumps [mongoose](https://github.com/Automattic/mongoose) from 5.13.5 to 5.13.7.
- [Release notes](https://github.com/Automattic/mongoose/releases)
- [Changelog](https://github.com/Automattic/mongoose/blob/master/History.md)
- [Commits](https://github.com/Automattic/mongoose/compare/5.13.5...5.13.7)

---
updated-dependencies:
- dependency-name: mongoose
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-08-26 15:55:28 -05:00
dependabot[bot]
a322555a36 build(deps): bump amplitude-js from 8.4.0 to 8.5.0 in /website/client (#13453)
Bumps [amplitude-js](https://github.com/amplitude/amplitude-javascript) from 8.4.0 to 8.5.0.
- [Release notes](https://github.com/amplitude/amplitude-javascript/releases)
- [Changelog](https://github.com/amplitude/Amplitude-JavaScript/blob/main/CHANGELOG.md)
- [Commits](https://github.com/amplitude/amplitude-javascript/compare/v8.4.0...v8.5.0)

---
updated-dependencies:
- dependency-name: amplitude-js
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-08-26 15:55:15 -05:00
dependabot[bot]
13e7d45549 build(deps): bump @storybook/addon-knobs in /website/client (#13456)
Bumps [@storybook/addon-knobs](https://github.com/storybookjs/addon-knobs) from 6.2.9 to 6.3.0.
- [Release notes](https://github.com/storybookjs/addon-knobs/releases)
- [Changelog](https://github.com/storybookjs/addon-knobs/blob/v6.3.0/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/addon-knobs/commits/v6.3.0)

---
updated-dependencies:
- dependency-name: "@storybook/addon-knobs"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-08-26 15:54:52 -05:00
dependabot[bot]
2398714fc2 build(deps): bump stripe from 8.168.0 to 8.170.0 (#13459)
Bumps [stripe](https://github.com/stripe/stripe-node) from 8.168.0 to 8.170.0.
- [Release notes](https://github.com/stripe/stripe-node/releases)
- [Changelog](https://github.com/stripe/stripe-node/blob/master/CHANGELOG.md)
- [Commits](https://github.com/stripe/stripe-node/compare/v8.168.0...v8.170.0)

---
updated-dependencies:
- dependency-name: stripe
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-08-26 15:54:42 -05:00
dependabot[bot]
f9deea3b8d build(deps): bump core-js from 3.16.1 to 3.16.2 in /website/client (#13461)
Bumps [core-js](https://github.com/zloirock/core-js) from 3.16.1 to 3.16.2.
- [Release notes](https://github.com/zloirock/core-js/releases)
- [Changelog](https://github.com/zloirock/core-js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/zloirock/core-js/compare/v3.16.1...v3.16.2)

---
updated-dependencies:
- dependency-name: core-js
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-08-26 15:54:18 -05:00
dependabot[bot]
f26cbab27f build(deps): bump @google-cloud/trace-agent from 5.1.3 to 5.1.5 (#13462)
Bumps [@google-cloud/trace-agent](https://github.com/googleapis/cloud-trace-nodejs) from 5.1.3 to 5.1.5.
- [Release notes](https://github.com/googleapis/cloud-trace-nodejs/releases)
- [Changelog](https://github.com/googleapis/cloud-trace-nodejs/blob/main/CHANGELOG.md)
- [Commits](https://github.com/googleapis/cloud-trace-nodejs/compare/v5.1.3...v5.1.5)

---
updated-dependencies:
- dependency-name: "@google-cloud/trace-agent"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-08-26 15:53:30 -05:00
Melior
c0bb10a82b Merge branch 'origin/develop' into Weblate. 2021-08-24 22:46:48 +02:00
Sabe Jones
86d042034b Merge branch 'release' into develop 2021-08-24 15:45:46 -05:00
Sabe Jones
44a4740e1d 4.203.0 2021-08-24 15:43:01 -05:00
Sabe Jones
e066c50774 chore(sprites): compile 2021-08-24 15:42:47 -05:00
Sabe Jones
48f1bec83a feat(content): Time Traveler quest, achievement 2021-08-24 15:42:40 -05:00
Melior
d707070627 Translated using Weblate (Japanese)
Currently translated at 99.2% (126 of 127 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/ja/

Translated using Weblate (Japanese)

Currently translated at 100.0% (47 of 47 strings)

Translation: Habitica/Contrib
Translate-URL: https://translate.habitica.com/projects/habitica/contrib/ja/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (206 of 206 strings)

Translation: Habitica/Limited
Translate-URL: https://translate.habitica.com/projects/habitica/limited/zh_Hans/

Translated using Weblate (Chinese (Traditional))

Currently translated at 95.4% (699 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/zh_Hant/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (732 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/zh_Hans/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (732 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/zh_Hans/

Translated using Weblate (Chinese (Traditional))

Currently translated at 100.0% (189 of 189 strings)

Translation: Habitica/Subscriber
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/zh_Hant/

Translated using Weblate (Chinese (Traditional))

Currently translated at 100.0% (370 of 370 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/zh_Hant/

Translated using Weblate (Chinese (Traditional))

Currently translated at 99.6% (632 of 634 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/zh_Hant/

Translated using Weblate (Japanese)

Currently translated at 96.0% (122 of 127 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/ja/

Translated using Weblate (Indonesian)

Currently translated at 83.4% (106 of 127 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/id/

Translated using Weblate (Italian)

Currently translated at 100.0% (2401 of 2401 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/it/

Translated using Weblate (Japanese)

Currently translated at 100.0% (186 of 186 strings)

Translation: Habitica/Settings
Translate-URL: https://translate.habitica.com/projects/habitica/settings/ja/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (2401 of 2401 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/pt_BR/

Translated using Weblate (Japanese)

Currently translated at 94.4% (120 of 127 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/ja/

Translated using Weblate (Indonesian)

Currently translated at 88.1% (326 of 370 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/id/

Translated using Weblate (Indonesian)

Currently translated at 88.1% (326 of 370 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/id/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (111 of 111 strings)

Translation: Habitica/Pets
Translate-URL: https://translate.habitica.com/projects/habitica/pets/zh_Hans/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (131 of 131 strings)

Translation: Habitica/Npc
Translate-URL: https://translate.habitica.com/projects/habitica/npc/zh_Hans/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (2401 of 2401 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/zh_Hans/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (203 of 203 strings)

Translation: Habitica/Generic
Translate-URL: https://translate.habitica.com/projects/habitica/generic/zh_Hans/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (102 of 102 strings)

Translation: Habitica/Challenge
Translate-URL: https://translate.habitica.com/projects/habitica/challenge/zh_Hans/

Translated using Weblate (Swedish)

Currently translated at 100.0% (54 of 54 strings)

Translation: Habitica/Defaulttasks
Translate-URL: https://translate.habitica.com/projects/habitica/defaulttasks/sv/

Translated using Weblate (Swedish)

Currently translated at 95.9% (355 of 370 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/sv/

Translated using Weblate (Japanese)

Currently translated at 92.9% (118 of 127 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/ja/

Translated using Weblate (Swedish)

Currently translated at 96.2% (129 of 134 strings)

Translation: Habitica/Tasks
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (15 of 15 strings)

Translation: Habitica/Death
Translate-URL: https://translate.habitica.com/projects/habitica/death/sv/

Translated using Weblate (Chinese (Traditional))

Currently translated at 95.4% (699 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/zh_Hant/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (732 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/zh_Hans/

Translated using Weblate (Indonesian)

Currently translated at 76.3% (97 of 127 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/id/

Translated using Weblate (Japanese)

Currently translated at 90.5% (115 of 127 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/ja/

Translated using Weblate (Indonesian)

Currently translated at 74.0% (94 of 127 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/id/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (134 of 134 strings)

Translation: Habitica/Tasks
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/zh_Hans/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (374 of 374 strings)

Translation: Habitica/Groups
Translate-URL: https://translate.habitica.com/projects/habitica/groups/zh_Hans/

Translated using Weblate (Spanish)

Currently translated at 100.0% (189 of 189 strings)

Translation: Habitica/Subscriber
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/es/

Translated using Weblate (Spanish)

Currently translated at 100.0% (206 of 206 strings)

Translation: Habitica/Limited
Translate-URL: https://translate.habitica.com/projects/habitica/limited/es/

Translated using Weblate (Spanish)

Currently translated at 98.4% (721 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/es/

Translated using Weblate (Japanese)

Currently translated at 88.9% (113 of 127 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/ja/

Translated using Weblate (Japanese)

Currently translated at 88.9% (113 of 127 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/ja/

Translated using Weblate (Spanish)

Currently translated at 83.4% (106 of 127 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/es/

Translated using Weblate (Spanish)

Currently translated at 100.0% (370 of 370 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/es/

Translated using Weblate (Spanish)

Currently translated at 100.0% (634 of 634 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/es/

Translated using Weblate (Spanish)

Currently translated at 100.0% (634 of 634 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/es/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (111 of 111 strings)

Translation: Habitica/Pets
Translate-URL: https://translate.habitica.com/projects/habitica/pets/pt_BR/

Translated using Weblate (Spanish)

Currently translated at 98.5% (625 of 634 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/es/

Translated using Weblate (Spanish)

Currently translated at 98.5% (625 of 634 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/es/

Translated using Weblate (Spanish)

Currently translated at 98.2% (623 of 634 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/es/

Translated using Weblate (Spanish)

Currently translated at 98.2% (623 of 634 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/es/

Translated using Weblate (French)

Currently translated at 100.0% (370 of 370 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/fr/

Translated using Weblate (Ukrainian)

Currently translated at 72.5% (1743 of 2401 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/uk/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (2401 of 2401 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/pt_BR/

Translated using Weblate (Portuguese)

Currently translated at 72.7% (1746 of 2401 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/pt/

Translated using Weblate (Indonesian)

Currently translated at 76.7% (43 of 56 strings)

Translation: Habitica/Faq
Translate-URL: https://translate.habitica.com/projects/habitica/faq/id/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (127 of 127 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/pt_BR/

Translated using Weblate (Japanese)

Currently translated at 85.0% (108 of 127 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/ja/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (370 of 370 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/zh_Hans/

Translated using Weblate (Portuguese)

Currently translated at 99.4% (368 of 370 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/pt/

Translated using Weblate (Japanese)

Currently translated at 100.0% (370 of 370 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/ja/

Translated using Weblate (Italian)

Currently translated at 100.0% (370 of 370 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/it/

Translated using Weblate (Indonesian)

Currently translated at 100.0% (188 of 188 strings)

Translation: Habitica/Character
Translate-URL: https://translate.habitica.com/projects/habitica/character/id/

Translated using Weblate (Portuguese)

Currently translated at 91.7% (582 of 634 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/pt/

Translated using Weblate (Indonesian)

Currently translated at 99.4% (185 of 186 strings)

Translation: Habitica/Settings
Translate-URL: https://translate.habitica.com/projects/habitica/settings/id/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 99.2% (126 of 127 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 98.4% (125 of 127 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 97.6% (124 of 127 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 97.6% (124 of 127 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 96.0% (122 of 127 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 96.0% (122 of 127 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 95.2% (121 of 127 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 95.2% (121 of 127 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (634 of 634 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 93.7% (119 of 127 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 93.7% (119 of 127 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 92.9% (118 of 127 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 92.9% (118 of 127 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 91.3% (116 of 127 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 90.5% (115 of 127 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 89.7% (114 of 127 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 88.9% (113 of 127 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 88.1% (112 of 127 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (2401 of 2401 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (370 of 370 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/pt_BR/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (111 of 111 strings)

Translation: Habitica/Pets
Translate-URL: https://translate.habitica.com/projects/habitica/pets/zh_Hans/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 99.7% (369 of 370 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (634 of 634 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/pt_BR/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (370 of 370 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/zh_Hans/
2021-08-24 22:25:30 +02:00
Sabe Jones
268f25e42c fix(ui): clarify Habits don't have "streaks" 2021-08-19 16:11:29 -05:00
Sabe Jones
ca185f0198 Merge branch 'release' into develop 2021-08-18 19:06:10 -05:00
Sabe Jones
72b9642ed5 fix(ui): revise cursor modes 2021-08-18 19:05:23 -05:00
Melior
22ec56748f Merge branch 'origin/develop' into Weblate. 2021-08-17 23:22:25 +02:00
Sabe Jones
3f04f64ea3 4.202.0 2021-08-17 16:16:44 -05:00
Sabe Jones
ee333967fc chore(sprites): compile 2021-08-17 16:16:35 -05:00
Sabe Jones
949011c505 feat(content): new and reprise Hatching Potions 2021-08-17 16:16:28 -05:00
Melior
cb223423dc Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (732 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/zh_Hans/

Translated using Weblate (Japanese)

Currently translated at 83.4% (106 of 127 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/ja/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (188 of 188 strings)

Translation: Habitica/Character
Translate-URL: https://translate.habitica.com/projects/habitica/character/zh_Hans/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (189 of 189 strings)

Translation: Habitica/Subscriber
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/zh_Hans/

Translated using Weblate (Spanish (Latin America))

Currently translated at 98.9% (187 of 189 strings)

Translation: Habitica/Subscriber
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/es_419/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (13 of 13 strings)

Translation: Habitica/Rebirth
Translate-URL: https://translate.habitica.com/projects/habitica/rebirth/zh_Hans/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (111 of 111 strings)

Translation: Habitica/Pets
Translate-URL: https://translate.habitica.com/projects/habitica/pets/zh_Hans/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (8 of 8 strings)

Translation: Habitica/Overview
Translate-URL: https://translate.habitica.com/projects/habitica/overview/zh_Hans/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (374 of 374 strings)

Translation: Habitica/Groups
Translate-URL: https://translate.habitica.com/projects/habitica/groups/zh_Hans/

Translated using Weblate (Chinese (Traditional))

Currently translated at 100.0% (180 of 180 strings)

Translation: Habitica/Front
Translate-URL: https://translate.habitica.com/projects/habitica/front/zh_Hant/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (180 of 180 strings)

Translation: Habitica/Front
Translate-URL: https://translate.habitica.com/projects/habitica/front/zh_Hans/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (56 of 56 strings)

Translation: Habitica/Faq
Translate-URL: https://translate.habitica.com/projects/habitica/faq/zh_Hans/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (15 of 15 strings)

Translation: Habitica/Death
Translate-URL: https://translate.habitica.com/projects/habitica/death/zh_Hans/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (732 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/zh_Hans/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (127 of 127 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/zh_Hans/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (127 of 127 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/zh_Hans/

Translated using Weblate (Italian)

Currently translated at 100.0% (127 of 127 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/it/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (47 of 47 strings)

Translation: Habitica/Contrib
Translate-URL: https://translate.habitica.com/projects/habitica/contrib/zh_Hans/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (188 of 188 strings)

Translation: Habitica/Character
Translate-URL: https://translate.habitica.com/projects/habitica/character/zh_Hans/

Translated using Weblate (Spanish)

Currently translated at 97.7% (620 of 634 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/es/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (186 of 186 strings)

Translation: Habitica/Settings
Translate-URL: https://translate.habitica.com/projects/habitica/settings/zh_Hans/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 87.4% (111 of 127 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 85.8% (109 of 127 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 85.8% (109 of 127 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/pt_BR/

Translated using Weblate (Japanese)

Currently translated at 81.1% (103 of 127 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/ja/

Translated using Weblate (French)

Currently translated at 100.0% (13 of 13 strings)

Translation: Habitica/Rebirth
Translate-URL: https://translate.habitica.com/projects/habitica/rebirth/fr/

Translated using Weblate (French)

Currently translated at 100.0% (131 of 131 strings)

Translation: Habitica/Npc
Translate-URL: https://translate.habitica.com/projects/habitica/npc/fr/

Translated using Weblate (French)

Currently translated at 100.0% (203 of 203 strings)

Translation: Habitica/Generic
Translate-URL: https://translate.habitica.com/projects/habitica/generic/fr/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (127 of 127 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/zh_Hans/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 83.4% (106 of 127 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/pt_BR/

Translated using Weblate (Japanese)

Currently translated at 78.7% (100 of 127 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/ja/

Translated using Weblate (Italian)

Currently translated at 88.9% (113 of 127 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/it/

Translated using Weblate (French)

Currently translated at 100.0% (127 of 127 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/fr/

Translated using Weblate (French)

Currently translated at 100.0% (369 of 369 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/fr/

Translated using Weblate (French)

Currently translated at 100.0% (116 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/fr/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 82.6% (105 of 127 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/pt_BR/

Translated using Weblate (French)

Currently translated at 86.6% (110 of 127 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/fr/

Translated using Weblate (Chinese (Simplified))

Currently translated at 99.2% (126 of 127 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/zh_Hans/

Translated using Weblate (Chinese (Simplified))

Currently translated at 99.2% (126 of 127 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/zh_Hans/

Translated using Weblate (French)

Currently translated at 85.8% (109 of 127 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/fr/

Translated using Weblate (French)

Currently translated at 100.0% (634 of 634 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/fr/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 99.9% (2399 of 2401 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/pt_BR/

Translated using Weblate (Indonesian)

Currently translated at 100.0% (102 of 102 strings)

Translation: Habitica/Challenge
Translate-URL: https://translate.habitica.com/projects/habitica/challenge/id/

Translated using Weblate (German)

Currently translated at 100.0% (634 of 634 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/de/

Translated using Weblate (Indonesian)

Currently translated at 93.0% (173 of 186 strings)

Translation: Habitica/Settings
Translate-URL: https://translate.habitica.com/projects/habitica/settings/id/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (634 of 634 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 81.8% (104 of 127 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 81.1% (103 of 127 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 80.3% (102 of 127 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 79.5% (101 of 127 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 78.7% (100 of 127 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 77.9% (99 of 127 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 77.9% (99 of 127 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/pt_BR/

Translated using Weblate (Thai)

Currently translated at 25.5% (46 of 180 strings)

Translation: Habitica/Front
Translate-URL: https://translate.habitica.com/projects/habitica/front/th/

Translated using Weblate (Chinese (Simplified))

Currently translated at 88.9% (113 of 127 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/zh_Hans/

Translated using Weblate (Chinese (Simplified))

Currently translated at 82.6% (105 of 127 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/zh_Hans/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (186 of 186 strings)

Translation: Habitica/Settings
Translate-URL: https://translate.habitica.com/projects/habitica/settings/zh_Hans/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 99.9% (2399 of 2401 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 76.3% (97 of 127 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/pt_BR/

Translated using Weblate (Chinese (Simplified))

Currently translated at 81.1% (103 of 127 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/zh_Hans/

Translated using Weblate (Japanese)

Currently translated at 100.0% (2401 of 2401 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/ja/

Translated using Weblate (Chinese (Simplified))

Currently translated at 79.5% (101 of 127 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/zh_Hans/

Translated using Weblate (Italian)

Currently translated at 86.6% (110 of 127 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/it/

Translated using Weblate (Norwegian Bokmål)

Currently translated at 9.4% (11 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/nb_NO/

Translated using Weblate (Norwegian Bokmål)

Currently translated at 9.4% (11 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/nb_NO/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 99.8% (2397 of 2401 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/pt_BR/

Translated using Weblate (Russian)

Currently translated at 84.2% (107 of 127 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/ru/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 76.3% (97 of 127 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 99.6% (632 of 634 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/pt_BR/

Translated using Weblate (Russian)

Currently translated at 81.8% (104 of 127 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/ru/

Translated using Weblate (Indonesian)

Currently translated at 100.0% (634 of 634 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/id/

Translated using Weblate (Ukrainian)

Currently translated at 72.5% (1741 of 2401 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/uk/

Translated using Weblate (Ukrainian)

Currently translated at 78.1% (572 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/uk/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 74.0% (94 of 127 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/pt_BR/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (134 of 134 strings)

Translation: Habitica/Tasks
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/zh_Hans/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (2401 of 2401 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/zh_Hans/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (634 of 634 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/zh_Hans/

Translated using Weblate (Thai)

Currently translated at 97.0% (197 of 203 strings)

Translation: Habitica/Generic
Translate-URL: https://translate.habitica.com/projects/habitica/generic/th/

Translated using Weblate (Chinese (Traditional))

Currently translated at 98.4% (186 of 189 strings)

Translation: Habitica/Subscriber
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/zh_Hant/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (189 of 189 strings)

Translation: Habitica/Subscriber
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/zh_Hans/

Translated using Weblate (Chinese (Traditional))

Currently translated at 100.0% (203 of 203 strings)

Translation: Habitica/Generic
Translate-URL: https://translate.habitica.com/projects/habitica/generic/zh_Hant/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (203 of 203 strings)

Translation: Habitica/Generic
Translate-URL: https://translate.habitica.com/projects/habitica/generic/zh_Hans/

Translated using Weblate (Chinese (Traditional))

Currently translated at 95.6% (700 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/zh_Hant/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (732 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/zh_Hans/

Translated using Weblate (Indonesian)

Currently translated at 93.5% (593 of 634 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/id/
2021-08-17 18:05:47 +02:00
Sabe Jones
68a23fb3aa fix(text): small syntax issues in EN locale 2021-08-16 16:15:20 -05:00
Sabe Jones
47e25e1231 4.201.1 2021-08-12 16:44:21 -05:00
Sabe Jones
faa78628c3 Merge branch 'develop' into release 2021-08-12 16:44:12 -05:00
Melior
cf062c41a0 Merge branch 'origin/develop' into Weblate. 2021-08-12 23:34:56 +02:00
j-dover
45fa2a3221 fix unlock() to unpin bgs from full set (#13416) 2021-08-12 16:28:26 -05:00
dependabot[bot]
bb8df83fb6 build(deps): bump amplitude-js from 8.3.0 to 8.4.0 in /website/client (#13420)
Bumps [amplitude-js](https://github.com/amplitude/amplitude-javascript) from 8.3.0 to 8.4.0.
- [Release notes](https://github.com/amplitude/amplitude-javascript/releases)
- [Changelog](https://github.com/amplitude/Amplitude-JavaScript/blob/main/CHANGELOG.md)
- [Commits](https://github.com/amplitude/amplitude-javascript/compare/v8.3.0...v8.4.0)

---
updated-dependencies:
- dependency-name: amplitude-js
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-08-12 16:22:55 -05:00
dependabot[bot]
82df649ff8 build(deps): bump mongoose from 5.12.10 to 5.13.5 (#13421)
Bumps [mongoose](https://github.com/Automattic/mongoose) from 5.12.10 to 5.13.5.
- [Release notes](https://github.com/Automattic/mongoose/releases)
- [Changelog](https://github.com/Automattic/mongoose/blob/master/History.md)
- [Commits](https://github.com/Automattic/mongoose/compare/5.12.10...5.13.5)

---
updated-dependencies:
- dependency-name: mongoose
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-08-12 16:22:40 -05:00
dependabot[bot]
e31c57027c build(deps): bump amazon-payments from 0.2.8 to 0.2.9 (#13422)
Bumps [amazon-payments](https://github.com/MadisonReed/amazon-payments) from 0.2.8 to 0.2.9.
- [Release notes](https://github.com/MadisonReed/amazon-payments/releases)
- [Commits](https://github.com/MadisonReed/amazon-payments/commits)

---
updated-dependencies:
- dependency-name: amazon-payments
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-08-12 16:22:28 -05:00
dependabot[bot]
b666649463 build(deps-dev): bump chalk from 4.1.1 to 4.1.2 (#13424)
Bumps [chalk](https://github.com/chalk/chalk) from 4.1.1 to 4.1.2.
- [Release notes](https://github.com/chalk/chalk/releases)
- [Commits](https://github.com/chalk/chalk/compare/v4.1.1...v4.1.2)

---
updated-dependencies:
- dependency-name: chalk
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-08-12 16:22:17 -05:00
dependabot[bot]
f38aba68b9 build(deps): bump tar from 6.1.0 to 6.1.6 (#13429)
Bumps [tar](https://github.com/npm/node-tar) from 6.1.0 to 6.1.6.
- [Release notes](https://github.com/npm/node-tar/releases)
- [Changelog](https://github.com/npm/node-tar/blob/main/CHANGELOG.md)
- [Commits](https://github.com/npm/node-tar/compare/v6.1.0...v6.1.6)

---
updated-dependencies:
- dependency-name: tar
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-08-12 16:22:04 -05:00
dependabot[bot]
a420ef0109 build(deps): bump stripe from 8.150.0 to 8.168.0 (#13432)
Bumps [stripe](https://github.com/stripe/stripe-node) from 8.150.0 to 8.168.0.
- [Release notes](https://github.com/stripe/stripe-node/releases)
- [Changelog](https://github.com/stripe/stripe-node/blob/master/CHANGELOG.md)
- [Commits](https://github.com/stripe/stripe-node/compare/v8.150.0...v8.168.0)

---
updated-dependencies:
- dependency-name: stripe
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-08-12 16:21:40 -05:00
dependabot[bot]
686277b3dc build(deps): bump core-js from 3.12.1 to 3.16.1 in /website/client (#13433)
Bumps [core-js](https://github.com/zloirock/core-js) from 3.12.1 to 3.16.1.
- [Release notes](https://github.com/zloirock/core-js/releases)
- [Changelog](https://github.com/zloirock/core-js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/zloirock/core-js/compare/v3.12.1...v3.16.1)

---
updated-dependencies:
- dependency-name: core-js
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-08-12 16:21:14 -05:00
dependabot[bot]
8feaf35200 build(deps): bump apidoc from 0.28.1 to 0.29.0 (#13435)
Bumps [apidoc](https://github.com/apidoc/apidoc) from 0.28.1 to 0.29.0.
- [Release notes](https://github.com/apidoc/apidoc/releases)
- [Changelog](https://github.com/apidoc/apidoc/blob/master/CHANGELOG.md)
- [Commits](https://github.com/apidoc/apidoc/compare/0.28.1...0.29.0)

---
updated-dependencies:
- dependency-name: apidoc
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-08-12 16:20:14 -05:00
dependabot[bot]
534d296195 build(deps): bump @babel/core from 7.14.3 to 7.15.0 (#13436)
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.14.3 to 7.15.0.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.15.0/packages/babel-core)

---
updated-dependencies:
- dependency-name: "@babel/core"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-08-12 16:20:00 -05:00
Phillip Thelen
cca1565b99 Send group ID with @mention push notifications (#13440)
This allows the apps to open the correct group page directly
2021-08-12 16:19:01 -05:00
dependabot[bot]
03d3e32be9 build(deps): bump @storybook/addon-links in /website/client (#13445)
Bumps [@storybook/addon-links](https://github.com/storybookjs/storybook/tree/HEAD/addons/links) from 6.2.9 to 6.3.7.
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v6.3.7/addons/links)

---
updated-dependencies:
- dependency-name: "@storybook/addon-links"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-08-12 16:18:42 -05:00
dependabot[bot]
6655e351cd build(deps): bump @storybook/vue from 6.2.9 to 6.3.7 in /website/client (#13446)
Bumps [@storybook/vue](https://github.com/storybookjs/storybook/tree/HEAD/app/vue) from 6.2.9 to 6.3.7.
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v6.3.7/app/vue)

---
updated-dependencies:
- dependency-name: "@storybook/vue"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-08-12 16:18:31 -05:00
dependabot[bot]
0639f5f337 build(deps): bump @storybook/addon-actions in /website/client (#13447)
Bumps [@storybook/addon-actions](https://github.com/storybookjs/storybook/tree/HEAD/addons/actions) from 6.2.9 to 6.3.7.
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v6.3.7/addons/actions)

---
updated-dependencies:
- dependency-name: "@storybook/addon-actions"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-08-12 16:18:18 -05:00
Alys
e2b53dc716 update Community Guidelines and Tavern moderator / staff list (#13441)
* change strings and images for Community Guidelines

* move image from next to new "quick version" list to under it

* small adjustments to the new Community Guidelines strings and code

* update list of Mods and staff in Tavern sidebar

* fix layout issue caused by long moderator names

* chore(i18n): remove unused strings

Co-authored-by: Sabe Jones <sabrecat@gmail.com>
2021-08-12 16:17:18 -05:00
dependabot[bot]
edc5fd50d6 build(deps): bump path-parse from 1.0.6 to 1.0.7 (#13442)
Bumps [path-parse](https://github.com/jbgutierrez/path-parse) from 1.0.6 to 1.0.7.
- [Release notes](https://github.com/jbgutierrez/path-parse/releases)
- [Commits](https://github.com/jbgutierrez/path-parse/commits/v1.0.7)

---
updated-dependencies:
- dependency-name: path-parse
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-08-12 15:38:39 -05:00
dependabot[bot]
b4bc6f1ef5 build(deps): bump path-parse from 1.0.6 to 1.0.7 in /website/client (#13443)
Bumps [path-parse](https://github.com/jbgutierrez/path-parse) from 1.0.6 to 1.0.7.
- [Release notes](https://github.com/jbgutierrez/path-parse/releases)
- [Commits](https://github.com/jbgutierrez/path-parse/commits/v1.0.7)

---
updated-dependencies:
- dependency-name: path-parse
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-08-12 15:38:24 -05:00
Phillip Thelen
e830e676c3 Add additional data about dailies to task history (#13444) 2021-08-12 15:38:11 -05:00
Melior
8a423997a7 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (189 of 189 strings)

Translation: Habitica/Subscriber
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/pt_BR/

Translated using Weblate (French)

Currently translated at 100.0% (2401 of 2401 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/fr/

Translated using Weblate (Japanese)

Currently translated at 100.0% (634 of 634 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ja/

Translated using Weblate (French)

Currently translated at 100.0% (634 of 634 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/fr/

Translated using Weblate (French)

Currently translated at 100.0% (116 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/fr/

Translated using Weblate (Thai)

Currently translated at 92.5% (124 of 134 strings)

Translation: Habitica/Tasks
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/th/

Translated using Weblate (Thai)

Currently translated at 25.8% (30 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/th/

Translated using Weblate (Thai)

Currently translated at 97.0% (197 of 203 strings)

Translation: Habitica/Generic
Translate-URL: https://translate.habitica.com/projects/habitica/generic/th/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (374 of 374 strings)

Translation: Habitica/Groups
Translate-URL: https://translate.habitica.com/projects/habitica/groups/pt_BR/

Translated using Weblate (Indonesian)

Currently translated at 90.2% (572 of 634 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/id/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (374 of 374 strings)

Translation: Habitica/Groups
Translate-URL: https://translate.habitica.com/projects/habitica/groups/pt_BR/

Translated using Weblate (Swedish)

Currently translated at 90.9% (101 of 111 strings)

Translation: Habitica/Pets
Translate-URL: https://translate.habitica.com/projects/habitica/pets/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (23 of 23 strings)

Translation: Habitica/Loginincentives
Translate-URL: https://translate.habitica.com/projects/habitica/loginincentives/sv/

Translated using Weblate (Italian)

Currently translated at 100.0% (2401 of 2401 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/it/

Translated using Weblate (Swedish)

Currently translated at 100.0% (102 of 102 strings)

Translation: Habitica/Challenge
Translate-URL: https://translate.habitica.com/projects/habitica/challenge/sv/

Translated using Weblate (Italian)

Currently translated at 100.0% (634 of 634 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/it/

Translated using Weblate (Swedish)

Currently translated at 100.0% (102 of 102 strings)

Translation: Habitica/Challenge
Translate-URL: https://translate.habitica.com/projects/habitica/challenge/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (102 of 102 strings)

Translation: Habitica/Challenge
Translate-URL: https://translate.habitica.com/projects/habitica/challenge/sv/

Translated using Weblate (Indonesian)

Currently translated at 82.6% (524 of 634 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/id/

Translated using Weblate (Swedish)

Currently translated at 100.0% (116 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/sv/

Translated using Weblate (Ukrainian)

Currently translated at 72.3% (1738 of 2401 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/uk/

Translated using Weblate (Indonesian)

Currently translated at 71.4% (40 of 56 strings)

Translation: Habitica/Faq
Translate-URL: https://translate.habitica.com/projects/habitica/faq/id/

Translated using Weblate (Indonesian)

Currently translated at 76.9% (488 of 634 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/id/

Translated using Weblate (Russian)

Currently translated at 100.0% (2401 of 2401 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/ru/

Translated using Weblate (Russian)

Currently translated at 100.0% (634 of 634 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ru/
2021-08-12 21:41:13 +02:00
Sabe Jones
08ddfe7d99 4.201.0 2021-08-10 17:00:40 -05:00
Melior
ec050f504b Merge branch 'origin/develop' into Weblate. 2021-08-10 23:25:13 +02:00
Sabe Jones
40273c1de2 chore(sprites): compile 2021-08-10 16:22:34 -05:00
Sabe Jones
2b15c92163 feat(content): backgrounds, Armoire 2021-08-10 16:22:25 -05:00
Melior
524c0b8654 Translated using Weblate (Spanish)
Currently translated at 98.9% (187 of 189 strings)

Translation: Habitica/Subscriber
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/es/

Translated using Weblate (Ukrainian)

Currently translated at 72.5% (1737 of 2395 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/uk/

Translated using Weblate (Spanish)

Currently translated at 100.0% (369 of 369 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/es/

Translated using Weblate (Thai)

Currently translated at 71.0% (1701 of 2395 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/th/

Translated using Weblate (Indonesian)

Currently translated at 100.0% (122 of 122 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/id/

Translated using Weblate (Thai)

Currently translated at 54.8% (113 of 206 strings)

Translation: Habitica/Limited
Translate-URL: https://translate.habitica.com/projects/habitica/limited/th/

Translated using Weblate (Indonesian)

Currently translated at 73.3% (460 of 627 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/id/

Translated using Weblate (Indonesian)

Currently translated at 67.7% (425 of 627 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/id/

Translated using Weblate (Thai)

Currently translated at 95.0% (97 of 102 strings)

Translation: Habitica/Challenge
Translate-URL: https://translate.habitica.com/projects/habitica/challenge/th/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (186 of 186 strings)

Translation: Habitica/Settings
Translate-URL: https://translate.habitica.com/projects/habitica/settings/zh_Hans/

Translated using Weblate (Thai)

Currently translated at 17.7% (32 of 180 strings)

Translation: Habitica/Front
Translate-URL: https://translate.habitica.com/projects/habitica/front/th/

Translated using Weblate (Thai)

Currently translated at 100.0% (8 of 8 strings)

Translation: Habitica/Inventory
Translate-URL: https://translate.habitica.com/projects/habitica/inventory/th/

Translated using Weblate (Thai)

Currently translated at 78.9% (75 of 95 strings)

Translation: Habitica/Quests
Translate-URL: https://translate.habitica.com/projects/habitica/quests/th/

Translated using Weblate (Thai)

Currently translated at 78.9% (75 of 95 strings)

Translation: Habitica/Quests
Translate-URL: https://translate.habitica.com/projects/habitica/quests/th/

Translated using Weblate (Portuguese)

Currently translated at 90.0% (100 of 111 strings)

Translation: Habitica/Pets
Translate-URL: https://translate.habitica.com/projects/habitica/pets/pt/

Translated using Weblate (Italian)

Currently translated at 100.0% (2395 of 2395 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/it/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (111 of 111 strings)

Translation: Habitica/Pets
Translate-URL: https://translate.habitica.com/projects/habitica/pets/pt_BR/

Translated using Weblate (Thai)

Currently translated at 72.6% (69 of 95 strings)

Translation: Habitica/Quests
Translate-URL: https://translate.habitica.com/projects/habitica/quests/th/

Translated using Weblate (Thai)

Currently translated at 67.6% (424 of 627 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/th/

Translated using Weblate (Thai)

Currently translated at 77.7% (42 of 54 strings)

Translation: Habitica/Defaulttasks
Translate-URL: https://translate.habitica.com/projects/habitica/defaulttasks/th/

Translated using Weblate (Italian)

Currently translated at 100.0% (189 of 189 strings)

Translation: Habitica/Subscriber
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/it/

Translated using Weblate (Russian)

Currently translated at 100.0% (2395 of 2395 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/ru/

Translated using Weblate (Russian)

Currently translated at 100.0% (732 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/ru/

Translated using Weblate (Japanese)

Currently translated at 100.0% (374 of 374 strings)

Translation: Habitica/Groups
Translate-URL: https://translate.habitica.com/projects/habitica/groups/ja/

Translated using Weblate (Hebrew)

Currently translated at 91.7% (123 of 134 strings)

Translation: Habitica/Tasks
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/he/

Translated using Weblate (Russian)

Currently translated at 100.0% (189 of 189 strings)

Translation: Habitica/Subscriber
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/ru/

Translated using Weblate (Hebrew)

Currently translated at 84.6% (11 of 13 strings)

Translation: Habitica/Rebirth
Translate-URL: https://translate.habitica.com/projects/habitica/rebirth/he/

Translated using Weblate (Hebrew)

Currently translated at 83.9% (110 of 131 strings)

Translation: Habitica/Npc
Translate-URL: https://translate.habitica.com/projects/habitica/npc/he/

Translated using Weblate (Hebrew)

Currently translated at 75.0% (6 of 8 strings)

Translation: Habitica/Overview
Translate-URL: https://translate.habitica.com/projects/habitica/overview/he/

Translated using Weblate (Hebrew)

Currently translated at 85.8% (321 of 374 strings)

Translation: Habitica/Groups
Translate-URL: https://translate.habitica.com/projects/habitica/groups/he/

Translated using Weblate (Russian)

Currently translated at 100.0% (2395 of 2395 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/ru/

Translated using Weblate (Hebrew)

Currently translated at 97.2% (175 of 180 strings)

Translation: Habitica/Front
Translate-URL: https://translate.habitica.com/projects/habitica/front/he/

Translated using Weblate (Hebrew)

Currently translated at 62.5% (35 of 56 strings)

Translation: Habitica/Faq
Translate-URL: https://translate.habitica.com/projects/habitica/faq/he/

Translated using Weblate (Hebrew)

Currently translated at 72.2% (39 of 54 strings)

Translation: Habitica/Defaulttasks
Translate-URL: https://translate.habitica.com/projects/habitica/defaulttasks/he/

Translated using Weblate (Hebrew)

Currently translated at 95.0% (116 of 122 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/he/

Translated using Weblate (Hebrew)

Currently translated at 97.8% (46 of 47 strings)

Translation: Habitica/Contrib
Translate-URL: https://translate.habitica.com/projects/habitica/contrib/he/

Translated using Weblate (Hebrew)

Currently translated at 95.7% (180 of 188 strings)

Translation: Habitica/Character
Translate-URL: https://translate.habitica.com/projects/habitica/character/he/

Translated using Weblate (Hebrew)

Currently translated at 97.0% (99 of 102 strings)

Translation: Habitica/Challenge
Translate-URL: https://translate.habitica.com/projects/habitica/challenge/he/

Translated using Weblate (Hebrew)

Currently translated at 63.7% (74 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/he/

Translated using Weblate (Hebrew)

Currently translated at 89.7% (167 of 186 strings)

Translation: Habitica/Settings
Translate-URL: https://translate.habitica.com/projects/habitica/settings/he/

Translated using Weblate (French)

Currently translated at 100.0% (189 of 189 strings)

Translation: Habitica/Subscriber
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/fr/

Translated using Weblate (Russian)

Currently translated at 100.0% (127 of 127 strings)

Translation: Habitica/Npc
Translate-URL: https://translate.habitica.com/projects/habitica/npc/ru/

Translated using Weblate (Japanese)

Currently translated at 100.0% (374 of 374 strings)

Translation: Habitica/Groups
Translate-URL: https://translate.habitica.com/projects/habitica/groups/ja/

Translated using Weblate (Russian)

Currently translated at 99.9% (2393 of 2395 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/ru/

Translated using Weblate (French)

Currently translated at 100.0% (2395 of 2395 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/fr/

Translated using Weblate (Japanese)

Currently translated at 100.0% (56 of 56 strings)

Translation: Habitica/Faq
Translate-URL: https://translate.habitica.com/projects/habitica/faq/ja/

Translated using Weblate (Turkish)

Currently translated at 50.0% (27 of 54 strings)

Translation: Habitica/Defaulttasks
Translate-URL: https://translate.habitica.com/projects/habitica/defaulttasks/tr/

Translated using Weblate (Spanish (Latin America))

Currently translated at 100.0% (732 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/es_419/

Translated using Weblate (Spanish (Latin America))

Currently translated at 99.8% (2391 of 2395 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/es_419/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (732 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (732 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (732 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (732 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (732 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (732 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/pt_BR/

Translated using Weblate (Japanese)

Currently translated at 100.0% (189 of 189 strings)

Translation: Habitica/Subscriber
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/ja/

Translated using Weblate (Japanese)

Currently translated at 100.0% (2395 of 2395 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/ja/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (188 of 188 strings)

Translation: Habitica/Character
Translate-URL: https://translate.habitica.com/projects/habitica/character/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (131 of 131 strings)

Translation: Habitica/Npc
Translate-URL: https://translate.habitica.com/projects/habitica/npc/pt_BR/

Translated using Weblate (Thai)

Currently translated at 67.1% (421 of 627 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/th/

Translated using Weblate (Italian)

Currently translated at 99.9% (2393 of 2395 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/it/

Translated using Weblate (Italian)

Currently translated at 100.0% (116 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/it/

Translated using Weblate (Japanese)

Currently translated at 100.0% (186 of 186 strings)

Translation: Habitica/Settings
Translate-URL: https://translate.habitica.com/projects/habitica/settings/ja/

Translated using Weblate (Thai)

Currently translated at 59.2% (32 of 54 strings)

Translation: Habitica/Defaulttasks
Translate-URL: https://translate.habitica.com/projects/habitica/defaulttasks/th/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (206 of 206 strings)

Translation: Habitica/Limited
Translate-URL: https://translate.habitica.com/projects/habitica/limited/zh_Hans/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (2395 of 2395 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/zh_Hans/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (56 of 56 strings)

Translation: Habitica/Faq
Translate-URL: https://translate.habitica.com/projects/habitica/faq/zh_Hans/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (188 of 188 strings)

Translation: Habitica/Character
Translate-URL: https://translate.habitica.com/projects/habitica/character/zh_Hans/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 99.4% (188 of 189 strings)

Translation: Habitica/Subscriber
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/pt_BR/

Translated using Weblate (Thai)

Currently translated at 64.2% (36 of 56 strings)

Translation: Habitica/Faq
Translate-URL: https://translate.habitica.com/projects/habitica/faq/th/

Translated using Weblate (Thai)

Currently translated at 100.0% (47 of 47 strings)

Translation: Habitica/Contrib
Translate-URL: https://translate.habitica.com/projects/habitica/contrib/th/

Translated using Weblate (Spanish (Latin America))

Currently translated at 100.0% (188 of 188 strings)

Translation: Habitica/Character
Translate-URL: https://translate.habitica.com/projects/habitica/character/es_419/

Translated using Weblate (Spanish (Latin America))

Currently translated at 100.0% (627 of 627 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/es_419/

Translated using Weblate (Japanese)

Currently translated at 100.0% (374 of 374 strings)

Translation: Habitica/Groups
Translate-URL: https://translate.habitica.com/projects/habitica/groups/ja/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (189 of 189 strings)

Translation: Habitica/Subscriber
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/zh_Hans/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (95 of 95 strings)

Translation: Habitica/Quests
Translate-URL: https://translate.habitica.com/projects/habitica/quests/zh_Hans/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (2395 of 2395 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/zh_Hans/

Translated using Weblate (Thai)

Currently translated at 21.6% (24 of 111 strings)

Translation: Habitica/Pets
Translate-URL: https://translate.habitica.com/projects/habitica/pets/th/

Translated using Weblate (Thai)

Currently translated at 100.0% (56 of 56 strings)

Translation: Habitica/Spells
Translate-URL: https://translate.habitica.com/projects/habitica/spells/th/

Translated using Weblate (Thai)

Currently translated at 100.0% (2 of 2 strings)

Translation: Habitica/Noscript
Translate-URL: https://translate.habitica.com/projects/habitica/noscript/th/

Translated using Weblate (Thai)

Currently translated at 66.9% (420 of 627 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/th/

Translated using Weblate (Thai)

Currently translated at 100.0% (15 of 15 strings)

Translation: Habitica/Death
Translate-URL: https://translate.habitica.com/projects/habitica/death/th/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (374 of 374 strings)

Translation: Habitica/Groups
Translate-URL: https://translate.habitica.com/projects/habitica/groups/zh_Hans/

Translated using Weblate (Chinese (Traditional))

Currently translated at 89.0% (2132 of 2395 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/zh_Hant/

Translated using Weblate (Chinese (Simplified))

Currently translated at 99.8% (2391 of 2395 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/zh_Hans/

Translated using Weblate (Chinese (Traditional))

Currently translated at 98.4% (186 of 189 strings)

Translation: Habitica/Subscriber
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/zh_Hant/

Translated using Weblate (Chinese (Traditional))

Currently translated at 100.0% (95 of 95 strings)

Translation: Habitica/Quests
Translate-URL: https://translate.habitica.com/projects/habitica/quests/zh_Hant/

Translated using Weblate (Chinese (Traditional))

Currently translated at 100.0% (206 of 206 strings)

Translation: Habitica/Limited
Translate-URL: https://translate.habitica.com/projects/habitica/limited/zh_Hant/
2021-08-10 18:17:23 +02:00
Sabe Jones
958f929a25 4.200.0 2021-07-29 17:07:04 -05:00
Sabe Jones
753211a629 chore(sprites): compile 2021-07-29 17:06:54 -05:00
Sabe Jones
c335269ad7 Merge branch 'develop' into release 2021-07-29 17:04:43 -05:00
Melior
6f43c8c3b7 Merge branch 'origin/develop' into Weblate. 2021-07-29 23:29:57 +02:00
Sabe Jones
16b5b755cd feat(content): August Mystery Items 2021-07-29 16:27:08 -05:00
Melior
0cdbfcf42b Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (732 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/pt_BR/

Translated using Weblate (Japanese)

Currently translated at 100.0% (188 of 188 strings)

Translation: Habitica/Character
Translate-URL: https://translate.habitica.com/projects/habitica/character/ja/

Translated using Weblate (Indonesian)

Currently translated at 100.0% (8 of 8 strings)

Translation: Habitica/Overview
Translate-URL: https://translate.habitica.com/projects/habitica/overview/id/

Translated using Weblate (Spanish (Latin America))

Currently translated at 100.0% (732 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/es_419/

Translated using Weblate (Spanish (Latin America))

Currently translated at 100.0% (134 of 134 strings)

Translation: Habitica/Tasks
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/es_419/

Translated using Weblate (Spanish (Latin America))

Currently translated at 100.0% (116 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/es_419/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (732 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/pt_BR/

Translated using Weblate (Spanish (Latin America))

Currently translated at 100.0% (134 of 134 strings)

Translation: Habitica/Tasks
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/es_419/

Translated using Weblate (Spanish (Latin America))

Currently translated at 100.0% (134 of 134 strings)

Translation: Habitica/Tasks
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/es_419/

Translated using Weblate (Spanish (Latin America))

Currently translated at 100.0% (134 of 134 strings)

Translation: Habitica/Tasks
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/es_419/

Translated using Weblate (Spanish (Latin America))

Currently translated at 100.0% (134 of 134 strings)

Translation: Habitica/Tasks
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/es_419/

Translated using Weblate (Spanish (Latin America))

Currently translated at 100.0% (134 of 134 strings)

Translation: Habitica/Tasks
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/es_419/

Translated using Weblate (Spanish (Latin America))

Currently translated at 100.0% (134 of 134 strings)

Translation: Habitica/Tasks
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/es_419/

Translated using Weblate (Japanese)

Currently translated at 100.0% (95 of 95 strings)

Translation: Habitica/Quests
Translate-URL: https://translate.habitica.com/projects/habitica/quests/ja/

Translated using Weblate (Japanese)

Currently translated at 100.0% (61 of 61 strings)

Translation: Habitica/Messages
Translate-URL: https://translate.habitica.com/projects/habitica/messages/ja/

Translated using Weblate (Japanese)

Currently translated at 100.0% (374 of 374 strings)

Translation: Habitica/Groups
Translate-URL: https://translate.habitica.com/projects/habitica/groups/ja/

Translated using Weblate (Ukrainian)

Currently translated at 69.1% (130 of 188 strings)

Translation: Habitica/Subscriber
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/uk/

Translated using Weblate (Ukrainian)

Currently translated at 77.8% (570 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/uk/

Translated using Weblate (Hebrew)

Currently translated at 71.3% (1705 of 2391 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/he/

Translated using Weblate (Chinese (Traditional))

Currently translated at 98.2% (55 of 56 strings)

Translation: Habitica/Faq
Translate-URL: https://translate.habitica.com/projects/habitica/faq/zh_Hant/

Translated using Weblate (Hebrew)

Currently translated at 63.7% (74 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/he/

Translated using Weblate (Hebrew)

Currently translated at 90.2% (121 of 134 strings)

Translation: Habitica/Tasks
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/he/

Translated using Weblate (Hebrew)

Currently translated at 63.2% (119 of 188 strings)

Translation: Habitica/Subscriber
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/he/

Translated using Weblate (Hebrew)

Currently translated at 84.6% (11 of 13 strings)

Translation: Habitica/Rebirth
Translate-URL: https://translate.habitica.com/projects/habitica/rebirth/he/

Translated using Weblate (Hebrew)

Currently translated at 89.1% (99 of 111 strings)

Translation: Habitica/Pets
Translate-URL: https://translate.habitica.com/projects/habitica/pets/he/

Translated using Weblate (Hebrew)

Currently translated at 83.9% (110 of 131 strings)

Translation: Habitica/Npc
Translate-URL: https://translate.habitica.com/projects/habitica/npc/he/

Translated using Weblate (Hebrew)

Currently translated at 100.0% (2 of 2 strings)

Translation: Habitica/Noscript
Translate-URL: https://translate.habitica.com/projects/habitica/noscript/he/

Translated using Weblate (Hebrew)

Currently translated at 85.2% (52 of 61 strings)

Translation: Habitica/Messages
Translate-URL: https://translate.habitica.com/projects/habitica/messages/he/

Translated using Weblate (Hebrew)

Currently translated at 100.0% (1 of 1 strings)

Translation: Habitica/Merch
Translate-URL: https://translate.habitica.com/projects/habitica/merch/he/

Translated using Weblate (Hebrew)

Currently translated at 51.9% (107 of 206 strings)

Translation: Habitica/Limited
Translate-URL: https://translate.habitica.com/projects/habitica/limited/he/

Translated using Weblate (Hebrew)

Currently translated at 84.7% (317 of 374 strings)

Translation: Habitica/Groups
Translate-URL: https://translate.habitica.com/projects/habitica/groups/he/

Translated using Weblate (Hebrew)

Currently translated at 87.5% (7 of 8 strings)

Translation: Habitica/Inventory
Translate-URL: https://translate.habitica.com/projects/habitica/inventory/he/

Translated using Weblate (Hebrew)

Currently translated at 71.2% (1704 of 2391 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/he/

Translated using Weblate (Hebrew)

Currently translated at 98.0% (199 of 203 strings)

Translation: Habitica/Generic
Translate-URL: https://translate.habitica.com/projects/habitica/generic/he/

Translated using Weblate (Hebrew)

Currently translated at 96.6% (174 of 180 strings)

Translation: Habitica/Front
Translate-URL: https://translate.habitica.com/projects/habitica/front/he/

Translated using Weblate (Hebrew)

Currently translated at 62.5% (35 of 56 strings)

Translation: Habitica/Faq
Translate-URL: https://translate.habitica.com/projects/habitica/faq/he/

Translated using Weblate (Hebrew)

Currently translated at 57.4% (31 of 54 strings)

Translation: Habitica/Defaulttasks
Translate-URL: https://translate.habitica.com/projects/habitica/defaulttasks/he/

Translated using Weblate (Hebrew)

Currently translated at 100.0% (15 of 15 strings)

Translation: Habitica/Death
Translate-URL: https://translate.habitica.com/projects/habitica/death/he/

Translated using Weblate (Hebrew)

Currently translated at 78.1% (572 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/he/

Translated using Weblate (Hebrew)

Currently translated at 94.2% (115 of 122 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/he/

Translated using Weblate (Hebrew)

Currently translated at 84.2% (311 of 369 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/he/

Translated using Weblate (Hebrew)

Currently translated at 100.0% (47 of 47 strings)

Translation: Habitica/Contrib
Translate-URL: https://translate.habitica.com/projects/habitica/contrib/he/

Translated using Weblate (Hebrew)

Currently translated at 95.7% (180 of 188 strings)

Translation: Habitica/Character
Translate-URL: https://translate.habitica.com/projects/habitica/character/he/

Translated using Weblate (Russian)

Currently translated at 100.0% (102 of 102 strings)

Translation: Habitica/Challenge
Translate-URL: https://translate.habitica.com/projects/habitica/challenge/ru/

Translated using Weblate (Hebrew)

Currently translated at 68.8% (432 of 627 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/he/

Translated using Weblate (Hebrew)

Currently translated at 62.9% (73 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/he/

Translated using Weblate (Hebrew)

Currently translated at 89.2% (166 of 186 strings)

Translation: Habitica/Settings
Translate-URL: https://translate.habitica.com/projects/habitica/settings/he/

Translated using Weblate (Hebrew)

Currently translated at 89.5% (120 of 134 strings)

Translation: Habitica/Tasks
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/he/

Translated using Weblate (Hebrew)

Currently translated at 85.2% (52 of 61 strings)

Translation: Habitica/Messages
Translate-URL: https://translate.habitica.com/projects/habitica/messages/he/

Translated using Weblate (Hebrew)

Currently translated at 97.0% (197 of 203 strings)

Translation: Habitica/Generic
Translate-URL: https://translate.habitica.com/projects/habitica/generic/he/

Translated using Weblate (Hebrew)

Currently translated at 62.5% (35 of 56 strings)

Translation: Habitica/Faq
Translate-URL: https://translate.habitica.com/projects/habitica/faq/he/

Translated using Weblate (Hebrew)

Currently translated at 100.0% (15 of 15 strings)

Translation: Habitica/Death
Translate-URL: https://translate.habitica.com/projects/habitica/death/he/

Translated using Weblate (Hebrew)

Currently translated at 100.0% (15 of 15 strings)

Translation: Habitica/Death
Translate-URL: https://translate.habitica.com/projects/habitica/death/he/

Translated using Weblate (Hebrew)

Currently translated at 77.5% (568 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/he/

Translated using Weblate (Hebrew)

Currently translated at 84.2% (311 of 369 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/he/

Translated using Weblate (Thai)

Currently translated at 25.0% (29 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/th/

Translated using Weblate (Italian)

Currently translated at 99.1% (115 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/it/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (186 of 186 strings)

Translation: Habitica/Settings
Translate-URL: https://translate.habitica.com/projects/habitica/settings/zh_Hans/

Translated using Weblate (Thai)

Currently translated at 16.1% (29 of 180 strings)

Translation: Habitica/Front
Translate-URL: https://translate.habitica.com/projects/habitica/front/th/

Translated using Weblate (Thai)

Currently translated at 12.0% (14 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/th/

Translated using Weblate (Thai)

Currently translated at 100.0% (23 of 23 strings)

Translation: Habitica/Loginincentives
Translate-URL: https://translate.habitica.com/projects/habitica/loginincentives/th/

Translated using Weblate (Thai)

Currently translated at 71.1% (1701 of 2391 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/th/

Translated using Weblate (Thai)

Currently translated at 2.7% (3 of 111 strings)

Translation: Habitica/Pets
Translate-URL: https://translate.habitica.com/projects/habitica/pets/th/

Translated using Weblate (Thai)

Currently translated at 9.4% (17 of 180 strings)

Translation: Habitica/Front
Translate-URL: https://translate.habitica.com/projects/habitica/front/th/

Translated using Weblate (Thai)

Currently translated at 7.7% (9 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/th/

Translated using Weblate (Thai)

Currently translated at 6.8% (8 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/th/

Translated using Weblate (Thai)

Currently translated at 6.8% (8 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/th/

Translated using Weblate (Filipino)

Currently translated at 47.7% (53 of 111 strings)

Translation: Habitica/Pets
Translate-URL: https://translate.habitica.com/projects/habitica/pets/fil/

Translated using Weblate (Filipino)

Currently translated at 100.0% (180 of 180 strings)

Translation: Habitica/Front
Translate-URL: https://translate.habitica.com/projects/habitica/front/fil/

Translated using Weblate (Indonesian)

Currently translated at 80.5% (166 of 206 strings)

Translation: Habitica/Limited
Translate-URL: https://translate.habitica.com/projects/habitica/limited/id/

Translated using Weblate (Indonesian)

Currently translated at 66.0% (37 of 56 strings)

Translation: Habitica/Faq
Translate-URL: https://translate.habitica.com/projects/habitica/faq/id/

Translated using Weblate (Indonesian)

Currently translated at 100.0% (116 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/id/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (732 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (368 of 368 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/pt_BR/

Translated using Weblate (Turkish)

Currently translated at 53.8% (111 of 206 strings)

Translation: Habitica/Limited
Translate-URL: https://translate.habitica.com/projects/habitica/limited/tr/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (732 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/pt_BR/

Translated using Weblate (Filipino)

Currently translated at 95.5% (172 of 180 strings)

Translation: Habitica/Front
Translate-URL: https://translate.habitica.com/projects/habitica/front/fil/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (134 of 134 strings)

Translation: Habitica/Tasks
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/zh_Hans/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (627 of 627 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/zh_Hans/

Translated using Weblate (Filipino)

Currently translated at 94.4% (170 of 180 strings)

Translation: Habitica/Front
Translate-URL: https://translate.habitica.com/projects/habitica/front/fil/

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (47 of 47 strings)

Translation: Habitica/Contrib
Translate-URL: https://translate.habitica.com/projects/habitica/contrib/uk/

Translated using Weblate (Indonesian)

Currently translated at 97.4% (113 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/id/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (732 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/pt_BR/

Translated using Weblate (Japanese)

Currently translated at 100.0% (374 of 374 strings)

Translation: Habitica/Groups
Translate-URL: https://translate.habitica.com/projects/habitica/groups/ja/

Translated using Weblate (Swedish)

Currently translated at 86.4% (633 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/sv/

Translated using Weblate (Japanese)

Currently translated at 100.0% (732 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/ja/

Translated using Weblate (Swedish)

Currently translated at 96.2% (355 of 369 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (116 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/sv/

Translated using Weblate (Spanish (Latin America))

Currently translated at 100.0% (374 of 374 strings)

Translation: Habitica/Groups
Translate-URL: https://translate.habitica.com/projects/habitica/groups/es_419/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (2391 of 2391 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (732 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/pt_BR/

Translated using Weblate (Indonesian)

Currently translated at 62.0% (72 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/id/

Translated using Weblate (Indonesian)

Currently translated at 31.0% (36 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/id/

Translated using Weblate (Indonesian)

Currently translated at 31.0% (36 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/id/

Translated using Weblate (Indonesian)

Currently translated at 29.3% (34 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/id/

Translated using Weblate (Indonesian)

Currently translated at 29.3% (34 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/id/

Translated using Weblate (Indonesian)

Currently translated at 28.4% (33 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/id/

Translated using Weblate (Indonesian)

Currently translated at 28.4% (33 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/id/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (2391 of 2391 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/pt_BR/

Translated using Weblate (Filipino)

Currently translated at 88.8% (160 of 180 strings)

Translation: Habitica/Front
Translate-URL: https://translate.habitica.com/projects/habitica/front/fil/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (374 of 374 strings)

Translation: Habitica/Groups
Translate-URL: https://translate.habitica.com/projects/habitica/groups/zh_Hans/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (374 of 374 strings)

Translation: Habitica/Groups
Translate-URL: https://translate.habitica.com/projects/habitica/groups/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (732 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/pt_BR/

Translated using Weblate (Russian)

Currently translated at 100.0% (369 of 369 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/ru/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (627 of 627 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/zh_Hans/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (732 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/pt_BR/

Translated using Weblate (Ukrainian)

Currently translated at 84.6% (531 of 627 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/uk/

Translated using Weblate (Japanese)

Currently translated at 100.0% (374 of 374 strings)

Translation: Habitica/Groups
Translate-URL: https://translate.habitica.com/projects/habitica/groups/ja/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (732 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/pt_BR/

Translated using Weblate (Russian)

Currently translated at 100.0% (732 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/ru/

Translated using Weblate (Japanese)

Currently translated at 99.7% (730 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/ja/

Translated using Weblate (Japanese)

Currently translated at 100.0% (627 of 627 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ja/

Translated using Weblate (Russian)

Currently translated at 100.0% (732 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/ru/

Translated using Weblate (Ukrainian)

Currently translated at 82.9% (520 of 627 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/uk/

Translated using Weblate (Spanish (Latin America))

Currently translated at 100.0% (2391 of 2391 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/es_419/

Translated using Weblate (Spanish (Latin America))

Currently translated at 100.0% (102 of 102 strings)

Translation: Habitica/Challenge
Translate-URL: https://translate.habitica.com/projects/habitica/challenge/es_419/

Translated using Weblate (Spanish (Latin America))

Currently translated at 100.0% (627 of 627 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/es_419/

Translated using Weblate (Spanish (Latin America))

Currently translated at 100.0% (116 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/es_419/

Translated using Weblate (Ukrainian)

Currently translated at 82.1% (515 of 627 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/uk/

Translated using Weblate (Filipino)

Currently translated at 86.1% (155 of 180 strings)

Translation: Habitica/Front
Translate-URL: https://translate.habitica.com/projects/habitica/front/fil/

Translated using Weblate (Russian)

Currently translated at 100.0% (180 of 180 strings)

Translation: Habitica/Front
Translate-URL: https://translate.habitica.com/projects/habitica/front/ru/

Translated using Weblate (German)

Currently translated at 100.0% (732 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/de/

Translated using Weblate (Ukrainian)

Currently translated at 81.9% (514 of 627 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/uk/

Translated using Weblate (Filipino)

Currently translated at 69.4% (125 of 180 strings)

Translation: Habitica/Front
Translate-URL: https://translate.habitica.com/projects/habitica/front/fil/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (732 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/pt_BR/

Translated using Weblate (Chinese (Traditional))

Currently translated at 89.1% (2132 of 2391 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/zh_Hant/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (2391 of 2391 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/pt_BR/

Translated using Weblate (Portuguese)

Currently translated at 72.9% (1745 of 2391 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/pt/

Translated using Weblate (French)

Currently translated at 100.0% (2391 of 2391 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/fr/

Translated using Weblate (German)

Currently translated at 99.6% (2383 of 2391 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/de/

Translated using Weblate (French)

Currently translated at 100.0% (627 of 627 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/fr/

Translated using Weblate (Korean)

Currently translated at 31.6% (57 of 180 strings)

Translation: Habitica/Front
Translate-URL: https://translate.habitica.com/projects/habitica/front/ko/

Translated using Weblate (Filipino)

Currently translated at 58.3% (105 of 180 strings)

Translation: Habitica/Front
Translate-URL: https://translate.habitica.com/projects/habitica/front/fil/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (2391 of 2391 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/pt_BR/

Translated using Weblate (Dutch)

Currently translated at 99.2% (622 of 627 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/nl/

Translated using Weblate (Korean)

Currently translated at 31.1% (56 of 180 strings)

Translation: Habitica/Front
Translate-URL: https://translate.habitica.com/projects/habitica/front/ko/

Translated using Weblate (Filipino)

Currently translated at 37.7% (68 of 180 strings)

Translation: Habitica/Front
Translate-URL: https://translate.habitica.com/projects/habitica/front/fil/

Translated using Weblate (Finnish)

Currently translated at 70.6% (443 of 627 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/fi/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (732 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (732 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/pt_BR/

Translated using Weblate (Japanese)

Currently translated at 100.0% (2391 of 2391 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/ja/

Translated using Weblate (Swedish)

Currently translated at 98.0% (100 of 102 strings)

Translation: Habitica/Challenge
Translate-URL: https://translate.habitica.com/projects/habitica/challenge/sv/

Translated using Weblate (Swedish)

Currently translated at 98.0% (100 of 102 strings)

Translation: Habitica/Challenge
Translate-URL: https://translate.habitica.com/projects/habitica/challenge/sv/

Translated using Weblate (Ukrainian)

Currently translated at 81.4% (511 of 627 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/uk/

Translated using Weblate (Portuguese)

Currently translated at 94.8% (110 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/pt/

Translated using Weblate (Swedish)

Currently translated at 97.0% (99 of 102 strings)

Translation: Habitica/Challenge
Translate-URL: https://translate.habitica.com/projects/habitica/challenge/sv/

Translated using Weblate (Swedish)

Currently translated at 97.0% (99 of 102 strings)

Translation: Habitica/Challenge
Translate-URL: https://translate.habitica.com/projects/habitica/challenge/sv/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (732 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/pt_BR/

Translated using Weblate (Japanese)

Currently translated at 99.9% (2389 of 2391 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/ja/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (732 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (732 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (732 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (732 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/pt_BR/

Translated using Weblate (Filipino)

Currently translated at 36.6% (66 of 180 strings)

Translation: Habitica/Front
Translate-URL: https://translate.habitica.com/projects/habitica/front/fil/

Translated using Weblate (Japanese)

Currently translated at 100.0% (203 of 203 strings)

Translation: Habitica/Generic
Translate-URL: https://translate.habitica.com/projects/habitica/generic/ja/

Translated using Weblate (Irish)

Currently translated at 94.8% (110 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/ga/

Translated using Weblate (Irish)

Currently translated at 94.8% (110 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/ga/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (732 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/pt_BR/

Translated using Weblate (German)

Currently translated at 100.0% (732 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/de/

Translated using Weblate (French)

Currently translated at 100.0% (627 of 627 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/fr/

Translated using Weblate (German)

Currently translated at 100.0% (188 of 188 strings)

Translation: Habitica/Subscriber
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/de/

Translated using Weblate (German)

Currently translated at 100.0% (206 of 206 strings)

Translation: Habitica/Limited
Translate-URL: https://translate.habitica.com/projects/habitica/limited/de/

Translated using Weblate (Japanese)

Currently translated at 99.8% (2387 of 2391 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/ja/

Translated using Weblate (German)

Currently translated at 99.1% (2371 of 2391 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/de/

Translated using Weblate (Filipino)

Currently translated at 27.7% (50 of 180 strings)

Translation: Habitica/Front
Translate-URL: https://translate.habitica.com/projects/habitica/front/fil/

Translated using Weblate (Hebrew)

Currently translated at 88.8% (119 of 134 strings)

Translation: Habitica/Tasks
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/he/

Translated using Weblate (Italian)

Currently translated at 100.0% (2391 of 2391 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/it/

Translated using Weblate (Hebrew)

Currently translated at 40.7% (22 of 54 strings)

Translation: Habitica/Defaulttasks
Translate-URL: https://translate.habitica.com/projects/habitica/defaulttasks/he/

Translated using Weblate (Romanian)

Currently translated at 97.5% (360 of 369 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/ro/

Translated using Weblate (Italian)

Currently translated at 100.0% (627 of 627 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/it/

Translated using Weblate (Italian)

Currently translated at 100.0% (627 of 627 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/it/

Translated using Weblate (Italian)

Currently translated at 100.0% (2391 of 2391 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/it/

Translated using Weblate (Italian)

Currently translated at 100.0% (2391 of 2391 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/it/

Translated using Weblate (Italian)

Currently translated at 100.0% (2391 of 2391 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/it/

Translated using Weblate (Italian)

Currently translated at 100.0% (2391 of 2391 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/it/

Translated using Weblate (Chinese (Traditional))

Currently translated at 100.0% (95 of 95 strings)

Translation: Habitica/Quests
Translate-URL: https://translate.habitica.com/projects/habitica/quests/zh_Hant/

Translated using Weblate (Chinese (Traditional))

Currently translated at 100.0% (206 of 206 strings)

Translation: Habitica/Limited
Translate-URL: https://translate.habitica.com/projects/habitica/limited/zh_Hant/

Translated using Weblate (Chinese (Traditional))

Currently translated at 95.6% (700 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/zh_Hant/

Translated using Weblate (Spanish (Latin America))

Currently translated at 100.0% (732 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/es_419/

Translated using Weblate (Chinese (Traditional))

Currently translated at 89.4% (85 of 95 strings)

Translation: Habitica/Quests
Translate-URL: https://translate.habitica.com/projects/habitica/quests/zh_Hant/

Translated using Weblate (Chinese (Traditional))

Currently translated at 100.0% (374 of 374 strings)

Translation: Habitica/Groups
Translate-URL: https://translate.habitica.com/projects/habitica/groups/zh_Hant/

Translated using Weblate (Japanese)

Currently translated at 99.6% (2383 of 2391 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/ja/

Translated using Weblate (Filipino)

Currently translated at 26.6% (48 of 180 strings)

Translation: Habitica/Front
Translate-URL: https://translate.habitica.com/projects/habitica/front/fil/

Translated using Weblate (Spanish (Latin America))

Currently translated at 100.0% (732 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/es_419/

Translated using Weblate (Spanish (Latin America))

Currently translated at 100.0% (2391 of 2391 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/es_419/

Translated using Weblate (Spanish (Latin America))

Currently translated at 100.0% (627 of 627 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/es_419/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (627 of 627 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/zh_Hans/

Translated using Weblate (Japanese)

Currently translated at 100.0% (188 of 188 strings)

Translation: Habitica/Subscriber
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/ja/

Translated using Weblate (Chinese (Traditional))

Currently translated at 84.2% (80 of 95 strings)

Translation: Habitica/Quests
Translate-URL: https://translate.habitica.com/projects/habitica/quests/zh_Hant/

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (95 of 95 strings)

Translation: Habitica/Quests
Translate-URL: https://translate.habitica.com/projects/habitica/quests/uk/

Translated using Weblate (Japanese)

Currently translated at 100.0% (206 of 206 strings)

Translation: Habitica/Limited
Translate-URL: https://translate.habitica.com/projects/habitica/limited/ja/

Translated using Weblate (Chinese (Traditional))

Currently translated at 97.8% (366 of 374 strings)

Translation: Habitica/Groups
Translate-URL: https://translate.habitica.com/projects/habitica/groups/zh_Hant/

Translated using Weblate (German)

Currently translated at 98.3% (2352 of 2391 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/de/

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (54 of 54 strings)

Translation: Habitica/Defaulttasks
Translate-URL: https://translate.habitica.com/projects/habitica/defaulttasks/uk/

Translated using Weblate (German)

Currently translated at 100.0% (369 of 369 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/de/

Translated using Weblate (Japanese)

Currently translated at 100.0% (627 of 627 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ja/

Translated using Weblate (German)

Currently translated at 100.0% (627 of 627 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/de/

Translated using Weblate (Filipino)

Currently translated at 25.5% (46 of 180 strings)

Translation: Habitica/Front
Translate-URL: https://translate.habitica.com/projects/habitica/front/fil/

Translated using Weblate (Russian)

Currently translated at 100.0% (374 of 374 strings)

Translation: Habitica/Groups
Translate-URL: https://translate.habitica.com/projects/habitica/groups/ru/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 99.8% (2387 of 2391 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 99.8% (2387 of 2391 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (732 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (732 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (732 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/pt_BR/

Translated using Weblate (Japanese)

Currently translated at 99.3% (623 of 627 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ja/

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (95 of 95 strings)

Translation: Habitica/Quests
Translate-URL: https://translate.habitica.com/projects/habitica/quests/uk/

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (134 of 134 strings)

Translation: Habitica/Tasks
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/uk/

Translated using Weblate (Spanish (Latin America))

Currently translated at 100.0% (134 of 134 strings)

Translation: Habitica/Tasks
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/es_419/

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (95 of 95 strings)

Translation: Habitica/Quests
Translate-URL: https://translate.habitica.com/projects/habitica/quests/uk/

Translated using Weblate (Spanish (Latin America))

Currently translated at 100.0% (131 of 131 strings)

Translation: Habitica/Npc
Translate-URL: https://translate.habitica.com/projects/habitica/npc/es_419/

Translated using Weblate (Spanish (Latin America))

Currently translated at 100.0% (2391 of 2391 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/es_419/

Translated using Weblate (Spanish (Latin America))

Currently translated at 100.0% (122 of 122 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/es_419/

Translated using Weblate (Spanish (Latin America))

Currently translated at 100.0% (188 of 188 strings)

Translation: Habitica/Character
Translate-URL: https://translate.habitica.com/projects/habitica/character/es_419/

Translated using Weblate (Spanish (Latin America))

Currently translated at 100.0% (116 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/es_419/

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (188 of 188 strings)

Translation: Habitica/Character
Translate-URL: https://translate.habitica.com/projects/habitica/character/uk/

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (116 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/uk/

Translated using Weblate (Filipino)

Currently translated at 100.0% (627 of 627 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/fil/

Translated using Weblate (Spanish (Latin America))

Currently translated at 100.0% (732 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/es_419/

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (134 of 134 strings)

Translation: Habitica/Tasks
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/uk/

Translated using Weblate (Chinese (Traditional))

Currently translated at 100.0% (187 of 187 strings)

Translation: Habitica/Subscriber
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/zh_Hant/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (188 of 188 strings)

Translation: Habitica/Subscriber
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/zh_Hans/

Translated using Weblate (Russian)

Currently translated at 100.0% (188 of 188 strings)

Translation: Habitica/Subscriber
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/ru/

Translated using Weblate (Portuguese)

Currently translated at 69.1% (130 of 188 strings)

Translation: Habitica/Subscriber
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/pt/

Translated using Weblate (Spanish (Latin America))

Currently translated at 100.0% (2391 of 2391 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/es_419/

Translated using Weblate (Spanish (Latin America))

Currently translated at 100.0% (2391 of 2391 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/es_419/

Translated using Weblate (Spanish (Latin America))

Currently translated at 100.0% (627 of 627 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/es_419/

Translated using Weblate (Chinese (Traditional))

Currently translated at 97.5% (365 of 374 strings)

Translation: Habitica/Groups
Translate-URL: https://translate.habitica.com/projects/habitica/groups/zh_Hant/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (2391 of 2391 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/zh_Hans/

Translated using Weblate (Russian)

Currently translated at 100.0% (2391 of 2391 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/ru/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 99.7% (2386 of 2391 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/pt_BR/

Translated using Weblate (Portuguese)

Currently translated at 72.8% (1741 of 2391 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/pt/

Translated using Weblate (Chinese (Traditional))

Currently translated at 100.0% (627 of 627 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/zh_Hant/

Translated using Weblate (Chinese (Simplified))

Currently translated at 99.2% (622 of 627 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/zh_Hans/

Translated using Weblate (Russian)

Currently translated at 100.0% (627 of 627 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ru/

Translated using Weblate (Portuguese)

Currently translated at 93.1% (584 of 627 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/pt/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (627 of 627 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/pt_BR/
2021-07-29 17:28:26 +02:00
Ilenia
5830672a68 fixed overpurchase warning for potions with overlapping names (#13386) 2021-07-28 21:34:04 -05:00
Sabe Jones
9fc05821c1 fix(sprites): background icon, hairstyle 19 positioning 2021-07-26 15:58:24 -05:00
Sabe Jones
1c53287700 fix(script): move speedbump to better avoid tripping concurrency limits 2021-07-14 21:32:23 +00:00
Sabe Jones
3757480a8d fix(script): catch Apple auth users 2021-07-14 21:12:26 +00:00
Sabe Jones
65582834a2 Merge branch 'release' into develop 2021-07-12 15:58:04 -05:00
Sabe Jones
6766c577c9 4.199.1 2021-07-12 15:57:35 -05:00
Sabe Jones
66be468065 feat(event): set start time for Splashy Skins 2021-07-12 15:57:25 -05:00
Melior
e8fd66f522 Translated using Weblate (Chinese (Traditional))
Currently translated at 98.3% (184 of 187 strings)

Translation: Habitica/Subscriber
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/zh_Hant/

Translated using Weblate (Chinese (Traditional))

Currently translated at 97.3% (182 of 187 strings)

Translation: Habitica/Subscriber
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/zh_Hant/

Translated using Weblate (Chinese (Traditional))

Currently translated at 95.4% (357 of 374 strings)

Translation: Habitica/Groups
Translate-URL: https://translate.habitica.com/projects/habitica/groups/zh_Hant/

Translated using Weblate (Chinese (Traditional))

Currently translated at 100.0% (368 of 368 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/zh_Hant/

Merge branch 'origin/develop' into Weblate.

Translated using Weblate (Chinese (Traditional))

Currently translated at 95.7% (179 of 187 strings)

Translation: Habitica/Subscriber
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/zh_Hant/

Translated using Weblate (Chinese (Traditional))

Currently translated at 99.7% (367 of 368 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/zh_Hant/

Translated using Weblate (Chinese (Traditional))

Currently translated at 95.1% (178 of 187 strings)

Translation: Habitica/Subscriber
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/zh_Hant/

Translated using Weblate (Russian)

Currently translated at 100.0% (95 of 95 strings)

Translation: Habitica/Quests
Translate-URL: https://translate.habitica.com/projects/habitica/quests/ru/

Translated using Weblate (Russian)

Currently translated at 100.0% (2383 of 2383 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/ru/

Translated using Weblate (Chinese (Traditional))

Currently translated at 91.9% (172 of 187 strings)

Translation: Habitica/Subscriber
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/zh_Hant/

Translated using Weblate (Russian)

Currently translated at 100.0% (95 of 95 strings)

Translation: Habitica/Quests
Translate-URL: https://translate.habitica.com/projects/habitica/quests/ru/

Translated using Weblate (Chinese (Traditional))

Currently translated at 90.9% (170 of 187 strings)

Translation: Habitica/Subscriber
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/zh_Hant/

Translated using Weblate (Russian)

Currently translated at 100.0% (95 of 95 strings)

Translation: Habitica/Quests
Translate-URL: https://translate.habitica.com/projects/habitica/quests/ru/

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (102 of 102 strings)

Translation: Habitica/Challenge
Translate-URL: https://translate.habitica.com/projects/habitica/challenge/uk/

Translated using Weblate (Ukrainian)

Currently translated at 80.8% (501 of 620 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/uk/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (187 of 187 strings)

Translation: Habitica/Subscriber
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/pt_BR/

Translated using Weblate (Russian)

Currently translated at 100.0% (2383 of 2383 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/ru/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (2383 of 2383 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/pt_BR/

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (15 of 15 strings)

Translation: Habitica/Death
Translate-URL: https://translate.habitica.com/projects/habitica/death/uk/

Translated using Weblate (Slovak)

Currently translated at 100.0% (15 of 15 strings)

Translation: Habitica/Death
Translate-URL: https://translate.habitica.com/projects/habitica/death/sk/

Translated using Weblate (Russian)

Currently translated at 100.0% (732 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/ru/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (732 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/pt_BR/

Translated using Weblate (Ukrainian)

Currently translated at 78.5% (487 of 620 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/uk/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 99.8% (731 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 99.8% (731 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (95 of 95 strings)

Translation: Habitica/Quests
Translate-URL: https://translate.habitica.com/projects/habitica/quests/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (131 of 131 strings)

Translation: Habitica/Npc
Translate-URL: https://translate.habitica.com/projects/habitica/npc/pt_BR/

Translated using Weblate (Ukrainian)

Currently translated at 70.6% (438 of 620 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/uk/

Translated using Weblate (Ukrainian)

Currently translated at 70.6% (438 of 620 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/uk/

Translated using Weblate (Ukrainian)

Currently translated at 68.2% (423 of 620 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/uk/

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (15 of 15 strings)

Translation: Habitica/Death
Translate-URL: https://translate.habitica.com/projects/habitica/death/uk/

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (116 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/uk/

Translated using Weblate (Korean)

Currently translated at 90.1% (559 of 620 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ko/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 99.8% (731 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/pt_BR/

Translated using Weblate (Finnish)

Currently translated at 89.2% (50 of 56 strings)

Translation: Habitica/Faq
Translate-URL: https://translate.habitica.com/projects/habitica/faq/fi/

Translated using Weblate (Filipino)

Currently translated at 38.7% (43 of 111 strings)

Translation: Habitica/Pets
Translate-URL: https://translate.habitica.com/projects/habitica/pets/fil/

Translated using Weblate (Finnish)

Currently translated at 80.3% (45 of 56 strings)

Translation: Habitica/Faq
Translate-URL: https://translate.habitica.com/projects/habitica/faq/fi/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 99.4% (186 of 187 strings)

Translation: Habitica/Subscriber
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/pt_BR/

Translated using Weblate (Italian)

Currently translated at 100.0% (187 of 187 strings)

Translation: Habitica/Subscriber
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/it/

Translated using Weblate (Italian)

Currently translated at 100.0% (206 of 206 strings)

Translation: Habitica/Limited
Translate-URL: https://translate.habitica.com/projects/habitica/limited/it/

Translated using Weblate (Japanese)

Currently translated at 99.9% (2381 of 2383 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/ja/

Translated using Weblate (Italian)

Currently translated at 100.0% (2383 of 2383 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/it/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 99.8% (731 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (102 of 102 strings)

Translation: Habitica/Challenge
Translate-URL: https://translate.habitica.com/projects/habitica/challenge/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (2383 of 2383 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (111 of 111 strings)

Translation: Habitica/Pets
Translate-URL: https://translate.habitica.com/projects/habitica/pets/pt_BR/

Translated using Weblate (Romanian)

Currently translated at 84.4% (174 of 206 strings)

Translation: Habitica/Limited
Translate-URL: https://translate.habitica.com/projects/habitica/limited/ro/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (206 of 206 strings)

Translation: Habitica/Limited
Translate-URL: https://translate.habitica.com/projects/habitica/limited/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 99.7% (2378 of 2383 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/pt_BR/

Translated using Weblate (Italian)

Currently translated at 98.8% (2355 of 2383 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/it/

Translated using Weblate (Italian)

Currently translated at 100.0% (732 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/it/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (368 of 368 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/pt_BR/

Translated using Weblate (Italian)

Currently translated at 100.0% (369 of 369 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/it/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (116 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (116 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (116 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (116 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (368 of 368 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (116 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (123 of 123 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (116 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/pt_BR/

Translated using Weblate (French)

Currently translated at 100.0% (374 of 374 strings)

Translation: Habitica/Groups
Translate-URL: https://translate.habitica.com/projects/habitica/groups/fr/

Translated using Weblate (Portuguese)

Currently translated at 90.0% (100 of 111 strings)

Translation: Habitica/Pets
Translate-URL: https://translate.habitica.com/projects/habitica/pets/pt/

Translated using Weblate (Italian)

Currently translated at 98.7% (2353 of 2383 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/it/

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (368 of 368 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/uk/

Translated using Weblate (Ukrainian)

Currently translated at 77.7% (569 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/uk/

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (188 of 188 strings)

Translation: Habitica/Character
Translate-URL: https://translate.habitica.com/projects/habitica/character/uk/

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (116 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/uk/

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (116 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/uk/

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (116 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/uk/

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (116 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/uk/

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (116 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/uk/

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (116 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/uk/

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (116 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/uk/

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (116 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/uk/

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (116 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/uk/

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (116 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/uk/

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (116 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/uk/

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (116 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/uk/

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (188 of 188 strings)

Translation: Habitica/Character
Translate-URL: https://translate.habitica.com/projects/habitica/character/uk/

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (186 of 186 strings)

Translation: Habitica/Settings
Translate-URL: https://translate.habitica.com/projects/habitica/settings/uk/

Translated using Weblate (Spanish (Latin America))

Currently translated at 100.0% (2383 of 2383 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/es_419/

Translated using Weblate (Spanish (Latin America))

Currently translated at 100.0% (732 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/es_419/

Translated using Weblate (Spanish (Latin America))

Currently translated at 100.0% (187 of 187 strings)

Translation: Habitica/Subscriber
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/es_419/

Translated using Weblate (Spanish (Latin America))

Currently translated at 100.0% (206 of 206 strings)

Translation: Habitica/Limited
Translate-URL: https://translate.habitica.com/projects/habitica/limited/es_419/

Translated using Weblate (Spanish (Latin America))

Currently translated at 99.5% (2373 of 2383 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/es_419/

Translated using Weblate (Spanish (Latin America))

Currently translated at 100.0% (369 of 369 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/es_419/

Translated using Weblate (Slovak)

Currently translated at 91.4% (342 of 374 strings)

Translation: Habitica/Groups
Translate-URL: https://translate.habitica.com/projects/habitica/groups/sk/

Translated using Weblate (Slovak)

Currently translated at 90.1% (337 of 374 strings)

Translation: Habitica/Groups
Translate-URL: https://translate.habitica.com/projects/habitica/groups/sk/

Translated using Weblate (Slovak)

Currently translated at 100.0% (203 of 203 strings)

Translation: Habitica/Generic
Translate-URL: https://translate.habitica.com/projects/habitica/generic/sk/

Translated using Weblate (Slovak)

Currently translated at 78.5% (44 of 56 strings)

Translation: Habitica/Faq
Translate-URL: https://translate.habitica.com/projects/habitica/faq/sk/

Translated using Weblate (Slovak)

Currently translated at 100.0% (188 of 188 strings)

Translation: Habitica/Character
Translate-URL: https://translate.habitica.com/projects/habitica/character/sk/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (111 of 111 strings)

Translation: Habitica/Pets
Translate-URL: https://translate.habitica.com/projects/habitica/pets/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (134 of 134 strings)

Translation: Habitica/Tasks
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (95 of 95 strings)

Translation: Habitica/Quests
Translate-URL: https://translate.habitica.com/projects/habitica/quests/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (134 of 134 strings)

Translation: Habitica/Tasks
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/pt_BR/

Translated using Weblate (Slovak)

Currently translated at 73.2% (41 of 56 strings)

Translation: Habitica/Faq
Translate-URL: https://translate.habitica.com/projects/habitica/faq/sk/

Translated using Weblate (Slovak)

Currently translated at 64.2% (36 of 56 strings)

Translation: Habitica/Faq
Translate-URL: https://translate.habitica.com/projects/habitica/faq/sk/

Translated using Weblate (Slovak)

Currently translated at 100.0% (134 of 134 strings)

Translation: Habitica/Tasks
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/sk/

Translated using Weblate (Filipino)

Currently translated at 100.0% (188 of 188 strings)

Translation: Habitica/Character
Translate-URL: https://translate.habitica.com/projects/habitica/character/fil/

Translated using Weblate (Japanese)

Currently translated at 99.7% (730 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/ja/

Translated using Weblate (Chinese (Traditional))

Currently translated at 90.3% (169 of 187 strings)

Translation: Habitica/Subscriber
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/zh_Hant/

Translated using Weblate (Chinese (Traditional))

Currently translated at 89.3% (167 of 187 strings)

Translation: Habitica/Subscriber
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/zh_Hant/

Translated using Weblate (Filipino)

Currently translated at 100.0% (187 of 187 strings)

Translation: Habitica/Subscriber
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/fil/

Translated using Weblate (Filipino)

Currently translated at 100.0% (369 of 369 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/fil/

Translated using Weblate (Dutch)

Currently translated at 90.5% (86 of 95 strings)

Translation: Habitica/Quests
Translate-URL: https://translate.habitica.com/projects/habitica/quests/nl/

Translated using Weblate (Chinese (Traditional))

Currently translated at 97.7% (128 of 131 strings)

Translation: Habitica/Npc
Translate-URL: https://translate.habitica.com/projects/habitica/npc/zh_Hant/

Translated using Weblate (Chinese (Traditional))

Currently translated at 100.0% (61 of 61 strings)

Translation: Habitica/Messages
Translate-URL: https://translate.habitica.com/projects/habitica/messages/zh_Hant/

Translated using Weblate (Chinese (Traditional))

Currently translated at 85.4% (176 of 206 strings)

Translation: Habitica/Limited
Translate-URL: https://translate.habitica.com/projects/habitica/limited/zh_Hant/

Translated using Weblate (Dutch)

Currently translated at 100.0% (206 of 206 strings)

Translation: Habitica/Limited
Translate-URL: https://translate.habitica.com/projects/habitica/limited/nl/

Translated using Weblate (Chinese (Traditional))

Currently translated at 95.1% (356 of 374 strings)

Translation: Habitica/Groups
Translate-URL: https://translate.habitica.com/projects/habitica/groups/zh_Hant/

Translated using Weblate (Chinese (Traditional))

Currently translated at 100.0% (8 of 8 strings)

Translation: Habitica/Inventory
Translate-URL: https://translate.habitica.com/projects/habitica/inventory/zh_Hant/

Translated using Weblate (Portuguese)

Currently translated at 73.0% (1740 of 2383 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/pt/

Translated using Weblate (Portuguese)

Currently translated at 99.4% (367 of 369 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/pt/

Translated using Weblate (Dutch)

Currently translated at 100.0% (369 of 369 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/nl/

Translated using Weblate (Japanese)

Currently translated at 100.0% (369 of 369 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/ja/

Translated using Weblate (Korean)

Currently translated at 30.0% (54 of 180 strings)

Translation: Habitica/Front
Translate-URL: https://translate.habitica.com/projects/habitica/front/ko/

Translated using Weblate (Chinese (Traditional))

Currently translated at 82.1% (78 of 95 strings)

Translation: Habitica/Quests
Translate-URL: https://translate.habitica.com/projects/habitica/quests/zh_Hant/

Translated using Weblate (French)

Currently translated at 100.0% (187 of 187 strings)

Translation: Habitica/Subscriber
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/fr/

Translated using Weblate (Japanese)

Currently translated at 100.0% (13 of 13 strings)

Translation: Habitica/Rebirth
Translate-URL: https://translate.habitica.com/projects/habitica/rebirth/ja/

Translated using Weblate (French)

Currently translated at 100.0% (206 of 206 strings)

Translation: Habitica/Limited
Translate-URL: https://translate.habitica.com/projects/habitica/limited/fr/

Translated using Weblate (French)

Currently translated at 100.0% (2383 of 2383 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/fr/

Translated using Weblate (Japanese)

Currently translated at 100.0% (203 of 203 strings)

Translation: Habitica/Generic
Translate-URL: https://translate.habitica.com/projects/habitica/generic/ja/

Translated using Weblate (French)

Currently translated at 100.0% (732 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/fr/

Translated using Weblate (French)

Currently translated at 100.0% (369 of 369 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/fr/

Translated using Weblate (Japanese)

Currently translated at 100.0% (188 of 188 strings)

Translation: Habitica/Character
Translate-URL: https://translate.habitica.com/projects/habitica/character/ja/

Translated using Weblate (Filipino)

Currently translated at 90.3% (169 of 187 strings)

Translation: Habitica/Subscriber
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/fil/

Translated using Weblate (Russian)

Currently translated at 100.0% (187 of 187 strings)

Translation: Habitica/Subscriber
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/ru/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (206 of 206 strings)

Translation: Habitica/Limited
Translate-URL: https://translate.habitica.com/projects/habitica/limited/zh_Hans/

Translated using Weblate (Japanese)

Currently translated at 99.5% (205 of 206 strings)

Translation: Habitica/Limited
Translate-URL: https://translate.habitica.com/projects/habitica/limited/ja/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (2383 of 2383 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/zh_Hans/

Translated using Weblate (Russian)

Currently translated at 100.0% (2383 of 2383 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/ru/

Translated using Weblate (Japanese)

Currently translated at 99.8% (2379 of 2383 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/ja/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (732 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/zh_Hans/

Translated using Weblate (Russian)

Currently translated at 100.0% (732 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/ru/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (369 of 369 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/zh_Hans/

Translated using Weblate (Russian)

Currently translated at 100.0% (369 of 369 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/ru/

Translated using Weblate (Ukrainian)

Currently translated at 68.0% (422 of 620 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/uk/

Translated using Weblate (Ukrainian)

Currently translated at 94.0% (175 of 186 strings)

Translation: Habitica/Settings
Translate-URL: https://translate.habitica.com/projects/habitica/settings/uk/

Translated using Weblate (Korean)

Currently translated at 29.4% (53 of 180 strings)

Translation: Habitica/Front
Translate-URL: https://translate.habitica.com/projects/habitica/front/ko/

Translated using Weblate (English)

Currently translated at 88.7% (332 of 374 strings)

Translation: Habitica/Groups
Translate-URL: https://translate.habitica.com/projects/habitica/groups/en@lolcat/

Translated using Weblate (English)

Currently translated at 100.0% (369 of 369 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/en@lolcat/

Translated using Weblate (English (Pirate))

Currently translated at 100.0% (369 of 369 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/en@pirate/
2021-07-06 23:01:11 +02:00
Sabe Jones
5f908d72f7 4.199.0 2021-07-06 15:17:25 -05:00
Sabe Jones
b81903b241 chore(sprites): compile 2021-07-06 15:17:19 -05:00
Sabe Jones
ee7fa99172 feat(content): Armoire and Backgrounds 2021-07 2021-07-06 15:17:12 -05:00
Sabe Jones
248d55daa7 4.198.2 2021-07-02 14:52:57 -05:00
Sabe Jones
9e9a301f04 chore(analytics): open the task firehose 2021-07-02 14:52:45 -05:00
Sabe Jones
63c780759a 4.198.1 2021-07-01 16:00:13 -05:00
Sabe Jones
534450c4d5 fix(countdowns): more-than-a-month edge case 2021-07-01 16:00:00 -05:00
Sabe Jones
4607f1afd6 Merge branch 'develop' into release 2021-07-01 15:50:18 -05:00
Sabe Jones
793d2f40c3 fix(strings): bad token 2021-06-29 15:45:33 -05:00
Sabe Jones
d07a29abc9 fix(strings): bad token 2021-06-29 15:45:12 -05:00
Melior
b5a3641f17 Merge branch 'origin/develop' into Weblate. 2021-06-29 21:53:07 +02:00
Sabe Jones
c61d4ca023 Merge branch 'release' into develop 2021-06-29 14:52:27 -05:00
Sabe Jones
d5284da7e3 4.198.0 2021-06-29 14:51:28 -05:00
Sabe Jones
5fa6e51b10 chore(sprites): compile 2021-06-29 14:51:17 -05:00
Sabe Jones
faa37bb3e8 feat(content): subscriber items July 2021 2021-06-29 14:51:04 -05:00
Melior
65e62b48ae Translated using Weblate (Ukrainian)
Currently translated at 67.9% (127 of 187 strings)

Translation: Habitica/Subscriber
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/uk/

Translated using Weblate (Ukrainian)

Currently translated at 92.2% (107 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/uk/

Translated using Weblate (Russian)

Currently translated at 100.0% (202 of 202 strings)

Translation: Habitica/Limited
Translate-URL: https://translate.habitica.com/projects/habitica/limited/ru/

Translated using Weblate (Ukrainian)

Currently translated at 91.3% (106 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/uk/

Translated using Weblate (Ukrainian)

Currently translated at 90.5% (105 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/uk/

Translated using Weblate (Korean)

Currently translated at 28.8% (52 of 180 strings)

Translation: Habitica/Front
Translate-URL: https://translate.habitica.com/projects/habitica/front/ko/

Translated using Weblate (Chinese (Traditional))

Currently translated at 100.0% (620 of 620 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/zh_Hant/

Translated using Weblate (Hebrew)

Currently translated at 88.1% (164 of 186 strings)

Translation: Habitica/Settings
Translate-URL: https://translate.habitica.com/projects/habitica/settings/he/

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (61 of 61 strings)

Translation: Habitica/Messages
Translate-URL: https://translate.habitica.com/projects/habitica/messages/uk/

Translated using Weblate (Ukrainian)

Currently translated at 87.5% (7 of 8 strings)

Translation: Habitica/Inventory
Translate-URL: https://translate.habitica.com/projects/habitica/inventory/uk/

Translated using Weblate (German)

Currently translated at 100.0% (2351 of 2351 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/de/

Translated using Weblate (Hebrew)

Currently translated at 62.9% (73 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/he/

Translated using Weblate (Hebrew)

Currently translated at 95.7% (180 of 188 strings)

Translation: Habitica/Character
Translate-URL: https://translate.habitica.com/projects/habitica/character/he/

Translated using Weblate (Hebrew)

Currently translated at 14.6% (17 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/he/

Translated using Weblate (Hebrew)

Currently translated at 13.7% (16 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/he/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (620 of 620 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (368 of 368 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (368 of 368 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (368 of 368 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/pt_BR/

Translated using Weblate (Ukrainian)

Currently translated at 90.0% (100 of 111 strings)

Translation: Habitica/Pets
Translate-URL: https://translate.habitica.com/projects/habitica/pets/uk/

Translated using Weblate (Ukrainian)

Currently translated at 85.2% (52 of 61 strings)

Translation: Habitica/Messages
Translate-URL: https://translate.habitica.com/projects/habitica/messages/uk/

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (368 of 368 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/uk/

Translated using Weblate (Filipino)

Currently translated at 79.6% (149 of 187 strings)

Translation: Habitica/Subscriber
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/fil/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (368 of 368 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (2351 of 2351 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (187 of 187 strings)

Translation: Habitica/Subscriber
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (620 of 620 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (2351 of 2351 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/pt_BR/

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (188 of 188 strings)

Translation: Habitica/Character
Translate-URL: https://translate.habitica.com/projects/habitica/character/uk/

Translated using Weblate (Ukrainian)

Currently translated at 73.4% (1727 of 2351 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/uk/

Translated using Weblate (Ukrainian)

Currently translated at 99.7% (367 of 368 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/uk/

Translated using Weblate (Ukrainian)

Currently translated at 73.0% (1718 of 2351 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/uk/

Translated using Weblate (Ukrainian)

Currently translated at 72.9% (1714 of 2351 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/uk/

Translated using Weblate (Ukrainian)

Currently translated at 72.8% (1713 of 2351 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/uk/

Translated using Weblate (Ukrainian)

Currently translated at 72.8% (1712 of 2351 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/uk/

Translated using Weblate (Ukrainian)

Currently translated at 72.6% (1709 of 2351 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/uk/

Translated using Weblate (Ukrainian)

Currently translated at 72.6% (1707 of 2351 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/uk/

Translated using Weblate (Ukrainian)

Currently translated at 72.5% (1706 of 2351 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/uk/

Translated using Weblate (Russian)

Currently translated at 99.9% (2350 of 2351 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/ru/

Translated using Weblate (Korean)

Currently translated at 28.3% (51 of 180 strings)

Translation: Habitica/Front
Translate-URL: https://translate.habitica.com/projects/habitica/front/ko/

Translated using Weblate (Portuguese)

Currently translated at 94.0% (583 of 620 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/pt/

Translated using Weblate (Slovak)

Currently translated at 99.2% (133 of 134 strings)

Translation: Habitica/Tasks
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/sk/

Translated using Weblate (Dutch)

Currently translated at 100.0% (374 of 374 strings)

Translation: Habitica/Groups
Translate-URL: https://translate.habitica.com/projects/habitica/groups/nl/

Translated using Weblate (Slovak)

Currently translated at 100.0% (54 of 54 strings)

Translation: Habitica/Defaulttasks
Translate-URL: https://translate.habitica.com/projects/habitica/defaulttasks/sk/

Translated using Weblate (Slovak)

Currently translated at 96.1% (354 of 368 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/sk/

Translated using Weblate (Slovak)

Currently translated at 100.0% (188 of 188 strings)

Translation: Habitica/Character
Translate-URL: https://translate.habitica.com/projects/habitica/character/sk/

Translated using Weblate (Dutch)

Currently translated at 100.0% (620 of 620 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/nl/

Translated using Weblate (Slovak)

Currently translated at 62.9% (73 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/sk/

Translated using Weblate (Korean)

Currently translated at 72.6% (69 of 95 strings)

Translation: Habitica/Quests
Translate-URL: https://translate.habitica.com/projects/habitica/quests/ko/

Translated using Weblate (Swedish)

Currently translated at 100.0% (116 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/sv/

Translated using Weblate (Swedish)

Currently translated at 95.6% (111 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/sv/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (111 of 111 strings)

Translation: Habitica/Pets
Translate-URL: https://translate.habitica.com/projects/habitica/pets/pt_BR/

Translated using Weblate (Korean)

Currently translated at 71.5% (68 of 95 strings)

Translation: Habitica/Quests
Translate-URL: https://translate.habitica.com/projects/habitica/quests/ko/

Translated using Weblate (Chinese (Traditional))

Currently translated at 100.0% (56 of 56 strings)

Translation: Habitica/Spells
Translate-URL: https://translate.habitica.com/projects/habitica/spells/zh_Hant/

Translated using Weblate (Chinese (Traditional))

Currently translated at 96.4% (54 of 56 strings)

Translation: Habitica/Faq
Translate-URL: https://translate.habitica.com/projects/habitica/faq/zh_Hant/

Translated using Weblate (Chinese (Traditional))

Currently translated at 99.4% (366 of 368 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/zh_Hant/

Translated using Weblate (Chinese (Traditional))

Currently translated at 100.0% (620 of 620 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/zh_Hant/

Translated using Weblate (Swedish)

Currently translated at 94.8% (110 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/sv/

Translated using Weblate (Swedish)

Currently translated at 90.5% (105 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/sv/

Translated using Weblate (Swedish)

Currently translated at 90.5% (105 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/sv/

Translated using Weblate (Swedish)

Currently translated at 82.7% (96 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/sv/

Translated using Weblate (Swedish)

Currently translated at 82.7% (96 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/sv/

Translated using Weblate (Filipino)

Currently translated at 100.0% (56 of 56 strings)

Translation: Habitica/Faq
Translate-URL: https://translate.habitica.com/projects/habitica/faq/fil/

Translated using Weblate (Filipino)

Currently translated at 100.0% (188 of 188 strings)

Translation: Habitica/Character
Translate-URL: https://translate.habitica.com/projects/habitica/character/fil/

Translated using Weblate (Filipino)

Currently translated at 67.9% (127 of 187 strings)

Translation: Habitica/Subscriber
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/fil/

Translated using Weblate (Filipino)

Currently translated at 100.0% (202 of 202 strings)

Translation: Habitica/Limited
Translate-URL: https://translate.habitica.com/projects/habitica/limited/fil/

Translated using Weblate (Swedish)

Currently translated at 80.1% (93 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/sv/

Translated using Weblate (Swedish)

Currently translated at 80.1% (93 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/sv/

Translated using Weblate (Swedish)

Currently translated at 79.3% (92 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/sv/

Translated using Weblate (Swedish)

Currently translated at 79.3% (92 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/sv/

Translated using Weblate (Swedish)

Currently translated at 78.4% (91 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/sv/

Translated using Weblate (Swedish)

Currently translated at 78.4% (91 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/sv/

Translated using Weblate (Swedish)

Currently translated at 77.5% (90 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/sv/

Translated using Weblate (Swedish)

Currently translated at 77.5% (90 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/sv/

Translated using Weblate (Swedish)

Currently translated at 76.7% (89 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/sv/

Translated using Weblate (Swedish)

Currently translated at 76.7% (89 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/sv/

Translated using Weblate (Swedish)

Currently translated at 75.8% (88 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/sv/

Translated using Weblate (Swedish)

Currently translated at 75.8% (88 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/sv/

Translated using Weblate (Swedish)

Currently translated at 75.0% (87 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/sv/

Translated using Weblate (Swedish)

Currently translated at 75.0% (87 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/sv/

Translated using Weblate (Swedish)

Currently translated at 74.1% (86 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/sv/

Translated using Weblate (Swedish)

Currently translated at 74.1% (86 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/sv/

Translated using Weblate (German)

Currently translated at 100.0% (187 of 187 strings)

Translation: Habitica/Subscriber
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/de/

Translated using Weblate (Swedish)

Currently translated at 73.6% (70 of 95 strings)

Translation: Habitica/Quests
Translate-URL: https://translate.habitica.com/projects/habitica/quests/sv/

Translated using Weblate (German)

Currently translated at 100.0% (95 of 95 strings)

Translation: Habitica/Quests
Translate-URL: https://translate.habitica.com/projects/habitica/quests/de/

Translated using Weblate (Swedish)

Currently translated at 90.9% (101 of 111 strings)

Translation: Habitica/Pets
Translate-URL: https://translate.habitica.com/projects/habitica/pets/sv/

Translated using Weblate (German)

Currently translated at 100.0% (374 of 374 strings)

Translation: Habitica/Groups
Translate-URL: https://translate.habitica.com/projects/habitica/groups/de/

Translated using Weblate (German)

Currently translated at 100.0% (2351 of 2351 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/de/

Translated using Weblate (German)

Currently translated at 100.0% (2351 of 2351 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/de/

Translated using Weblate (Swedish)

Currently translated at 86.4% (633 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/sv/

Translated using Weblate (German)

Currently translated at 100.0% (732 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/de/

Translated using Weblate (Swedish)

Currently translated at 96.4% (355 of 368 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/sv/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (368 of 368 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/pt_BR/

Translated using Weblate (German)

Currently translated at 100.0% (620 of 620 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/de/

Translated using Weblate (German)

Currently translated at 100.0% (620 of 620 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/de/

Translated using Weblate (Swedish)

Currently translated at 71.5% (83 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/sv/

Translated using Weblate (German)

Currently translated at 100.0% (116 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/de/

Translated using Weblate (Swedish)

Currently translated at 71.5% (83 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/sv/

Translated using Weblate (Swedish)

Currently translated at 71.5% (83 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/sv/

Translated using Weblate (German)

Currently translated at 99.8% (619 of 620 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/de/

Translated using Weblate (German)

Currently translated at 88.4% (84 of 95 strings)

Translation: Habitica/Quests
Translate-URL: https://translate.habitica.com/projects/habitica/quests/de/

Translated using Weblate (German)

Currently translated at 88.4% (84 of 95 strings)

Translation: Habitica/Quests
Translate-URL: https://translate.habitica.com/projects/habitica/quests/de/

Translated using Weblate (German)

Currently translated at 86.3% (82 of 95 strings)

Translation: Habitica/Quests
Translate-URL: https://translate.habitica.com/projects/habitica/quests/de/

Translated using Weblate (German)

Currently translated at 83.1% (79 of 95 strings)

Translation: Habitica/Quests
Translate-URL: https://translate.habitica.com/projects/habitica/quests/de/

Translated using Weblate (German)

Currently translated at 97.9% (2303 of 2351 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/de/

Translated using Weblate (Hungarian)

Currently translated at 96.6% (174 of 180 strings)

Translation: Habitica/Front
Translate-URL: https://translate.habitica.com/projects/habitica/front/hu/

Translated using Weblate (Croatian)

Currently translated at 12.0% (14 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/hr/

Translated using Weblate (Finnish)

Currently translated at 70.6% (438 of 620 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/fi/

Translated using Weblate (Filipino)

Currently translated at 86.6% (175 of 202 strings)

Translation: Habitica/Limited
Translate-URL: https://translate.habitica.com/projects/habitica/limited/fil/

Translated using Weblate (Swedish)

Currently translated at 73.6% (70 of 95 strings)

Translation: Habitica/Quests
Translate-URL: https://translate.habitica.com/projects/habitica/quests/sv/

Translated using Weblate (Swedish)

Currently translated at 84.6% (11 of 13 strings)

Translation: Habitica/Rebirth
Translate-URL: https://translate.habitica.com/projects/habitica/rebirth/sv/

Translated using Weblate (Swedish)

Currently translated at 86.2% (113 of 131 strings)

Translation: Habitica/Npc
Translate-URL: https://translate.habitica.com/projects/habitica/npc/sv/

Translated using Weblate (Swedish)

Currently translated at 85.2% (52 of 61 strings)

Translation: Habitica/Messages
Translate-URL: https://translate.habitica.com/projects/habitica/messages/sv/

Translated using Weblate (Swedish)

Currently translated at 78.1% (1838 of 2351 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/sv/

Translated using Weblate (English (Pirate))

Currently translated at 99.4% (2338 of 2351 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/en@pirate/

Translated using Weblate (Swedish)

Currently translated at 100.0% (203 of 203 strings)

Translation: Habitica/Generic
Translate-URL: https://translate.habitica.com/projects/habitica/generic/sv/

Translated using Weblate (Swedish)

Currently translated at 73.2% (41 of 56 strings)

Translation: Habitica/Faq
Translate-URL: https://translate.habitica.com/projects/habitica/faq/sv/

Translated using Weblate (Swedish)

Currently translated at 96.4% (355 of 368 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (188 of 188 strings)

Translation: Habitica/Character
Translate-URL: https://translate.habitica.com/projects/habitica/character/sv/

Translated using Weblate (Filipino)

Currently translated at 25.0% (45 of 180 strings)

Translation: Habitica/Front
Translate-URL: https://translate.habitica.com/projects/habitica/front/fil/

Translated using Weblate (Filipino)

Currently translated at 100.0% (56 of 56 strings)

Translation: Habitica/Faq
Translate-URL: https://translate.habitica.com/projects/habitica/faq/fil/

Translated using Weblate (Ukrainian)

Currently translated at 64.7% (121 of 187 strings)

Translation: Habitica/Subscriber
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/uk/

Translated using Weblate (Ukrainian)

Currently translated at 94.6% (53 of 56 strings)

Translation: Habitica/Spells
Translate-URL: https://translate.habitica.com/projects/habitica/spells/uk/

Translated using Weblate (Ukrainian)

Currently translated at 89.1% (99 of 111 strings)

Translation: Habitica/Pets
Translate-URL: https://translate.habitica.com/projects/habitica/pets/uk/

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (23 of 23 strings)

Translation: Habitica/Loginincentives
Translate-URL: https://translate.habitica.com/projects/habitica/loginincentives/uk/

Translated using Weblate (Ukrainian)

Currently translated at 98.8% (178 of 180 strings)

Translation: Habitica/Front
Translate-URL: https://translate.habitica.com/projects/habitica/front/uk/

Translated using Weblate (Ukrainian)

Currently translated at 77.7% (569 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/uk/

Translated using Weblate (Russian)

Currently translated at 100.0% (620 of 620 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ru/

Translated using Weblate (English (Pirate))

Currently translated at 100.0% (620 of 620 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/en@pirate/

Translated using Weblate (Ukrainian)

Currently translated at 93.0% (173 of 186 strings)

Translation: Habitica/Settings
Translate-URL: https://translate.habitica.com/projects/habitica/settings/uk/

Translated using Weblate (Russian)

Currently translated at 100.0% (620 of 620 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ru/

Translated using Weblate (Japanese)

Currently translated at 100.0% (732 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/ja/

Translated using Weblate (Ukrainian)

Currently translated at 67.9% (421 of 620 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/uk/

Translated using Weblate (Ukrainian)

Currently translated at 67.9% (421 of 620 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/uk/

Translated using Weblate (Korean)

Currently translated at 27.2% (49 of 180 strings)

Translation: Habitica/Front
Translate-URL: https://translate.habitica.com/projects/habitica/front/ko/

Translated using Weblate (Finnish)

Currently translated at 76.7% (43 of 56 strings)

Translation: Habitica/Faq
Translate-URL: https://translate.habitica.com/projects/habitica/faq/fi/

Translated using Weblate (Romanian)

Currently translated at 87.7% (164 of 187 strings)

Translation: Habitica/Subscriber
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/ro/

Translated using Weblate (Japanese)

Currently translated at 100.0% (95 of 95 strings)

Translation: Habitica/Quests
Translate-URL: https://translate.habitica.com/projects/habitica/quests/ja/

Translated using Weblate (Filipino)

Currently translated at 100.0% (130 of 130 strings)

Translation: Habitica/Npc
Translate-URL: https://translate.habitica.com/projects/habitica/npc/fil/

Translated using Weblate (Filipino)

Currently translated at 98.2% (55 of 56 strings)

Translation: Habitica/Faq
Translate-URL: https://translate.habitica.com/projects/habitica/faq/fil/

Translated using Weblate (Filipino)

Currently translated at 100.0% (188 of 188 strings)

Translation: Habitica/Character
Translate-URL: https://translate.habitica.com/projects/habitica/character/fil/

Translated using Weblate (Filipino)

Currently translated at 67.9% (127 of 187 strings)

Translation: Habitica/Subscriber
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/fil/

Translated using Weblate (Korean)

Currently translated at 70.5% (67 of 95 strings)

Translation: Habitica/Quests
Translate-URL: https://translate.habitica.com/projects/habitica/quests/ko/

Translated using Weblate (Filipino)

Currently translated at 100.0% (8 of 8 strings)

Translation: Habitica/Inventory
Translate-URL: https://translate.habitica.com/projects/habitica/inventory/fil/

Translated using Weblate (Filipino)

Currently translated at 72.2% (1699 of 2351 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/fil/

Translated using Weblate (Portuguese)

Currently translated at 97.7% (131 of 134 strings)

Translation: Habitica/Tasks
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/pt/

Translated using Weblate (Portuguese)

Currently translated at 68.9% (129 of 187 strings)

Translation: Habitica/Subscriber
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/pt/

Translated using Weblate (Spanish)

Currently translated at 100.0% (187 of 187 strings)

Translation: Habitica/Subscriber
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/es/

Translated using Weblate (Portuguese)

Currently translated at 94.6% (53 of 56 strings)

Translation: Habitica/Spells
Translate-URL: https://translate.habitica.com/projects/habitica/spells/pt/

Translated using Weblate (Spanish)

Currently translated at 100.0% (95 of 95 strings)

Translation: Habitica/Quests
Translate-URL: https://translate.habitica.com/projects/habitica/quests/es/

Translated using Weblate (Portuguese)

Currently translated at 90.0% (100 of 111 strings)

Translation: Habitica/Pets
Translate-URL: https://translate.habitica.com/projects/habitica/pets/pt/

Translated using Weblate (Portuguese)

Currently translated at 93.1% (122 of 131 strings)

Translation: Habitica/Npc
Translate-URL: https://translate.habitica.com/projects/habitica/npc/pt/

Translated using Weblate (Portuguese)

Currently translated at 90.1% (55 of 61 strings)

Translation: Habitica/Messages
Translate-URL: https://translate.habitica.com/projects/habitica/messages/pt/

Translated using Weblate (Portuguese)

Currently translated at 93.8% (351 of 374 strings)

Translation: Habitica/Groups
Translate-URL: https://translate.habitica.com/projects/habitica/groups/pt/

Translated using Weblate (Spanish)

Currently translated at 100.0% (374 of 374 strings)

Translation: Habitica/Groups
Translate-URL: https://translate.habitica.com/projects/habitica/groups/es/

Translated using Weblate (Portuguese)

Currently translated at 73.9% (1739 of 2351 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/pt/

Translated using Weblate (Spanish)

Currently translated at 88.5% (2082 of 2351 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/es/

Translated using Weblate (Portuguese)

Currently translated at 97.5% (198 of 203 strings)

Translation: Habitica/Generic
Translate-URL: https://translate.habitica.com/projects/habitica/generic/pt/

Translated using Weblate (Hebrew)

Currently translated at 97.0% (197 of 203 strings)

Translation: Habitica/Generic
Translate-URL: https://translate.habitica.com/projects/habitica/generic/he/

Translated using Weblate (Spanish)

Currently translated at 100.0% (203 of 203 strings)

Translation: Habitica/Generic
Translate-URL: https://translate.habitica.com/projects/habitica/generic/es/

Translated using Weblate (Portuguese)

Currently translated at 98.8% (178 of 180 strings)

Translation: Habitica/Front
Translate-URL: https://translate.habitica.com/projects/habitica/front/pt/

Translated using Weblate (Spanish)

Currently translated at 98.6% (722 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/es/

Translated using Weblate (Portuguese)

Currently translated at 99.4% (366 of 368 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/pt/

Translated using Weblate (Portuguese)

Currently translated at 100.0% (188 of 188 strings)

Translation: Habitica/Character
Translate-URL: https://translate.habitica.com/projects/habitica/character/pt/

Translated using Weblate (Portuguese)

Currently translated at 98.0% (100 of 102 strings)

Translation: Habitica/Challenge
Translate-URL: https://translate.habitica.com/projects/habitica/challenge/pt/

Translated using Weblate (Spanish)

Currently translated at 100.0% (620 of 620 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/es/

Translated using Weblate (Spanish)

Currently translated at 100.0% (620 of 620 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/es/

Translated using Weblate (Portuguese)

Currently translated at 93.9% (109 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/pt/

Translated using Weblate (Hebrew)

Currently translated at 10.3% (12 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/he/

Translated using Weblate (Portuguese)

Currently translated at 90.8% (169 of 186 strings)

Translation: Habitica/Settings
Translate-URL: https://translate.habitica.com/projects/habitica/settings/pt/

Translated using Weblate (Spanish)

Currently translated at 88.5% (2081 of 2351 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/es/

Translated using Weblate (Spanish)

Currently translated at 88.5% (2081 of 2351 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/es/

Translated using Weblate (Spanish)

Currently translated at 100.0% (187 of 187 strings)

Translation: Habitica/Subscriber
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/es/

Translated using Weblate (Spanish)

Currently translated at 98.4% (721 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/es/

Translated using Weblate (Spanish)

Currently translated at 98.7% (612 of 620 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/es/

Translated using Weblate (Spanish)

Currently translated at 98.7% (612 of 620 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/es/

Translated using Weblate (Swedish)

Currently translated at 90.2% (121 of 134 strings)

Translation: Habitica/Tasks
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/sv/

Translated using Weblate (Swedish)

Currently translated at 79.1% (148 of 187 strings)

Translation: Habitica/Subscriber
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/sv/

Translated using Weblate (Swedish)

Currently translated at 72.6% (69 of 95 strings)

Translation: Habitica/Quests
Translate-URL: https://translate.habitica.com/projects/habitica/quests/sv/

Translated using Weblate (Swedish)

Currently translated at 90.0% (100 of 111 strings)

Translation: Habitica/Pets
Translate-URL: https://translate.habitica.com/projects/habitica/pets/sv/

Translated using Weblate (Swedish)

Currently translated at 85.2% (52 of 61 strings)

Translation: Habitica/Messages
Translate-URL: https://translate.habitica.com/projects/habitica/messages/sv/

Translated using Weblate (Swedish)

Currently translated at 88.7% (332 of 374 strings)

Translation: Habitica/Groups
Translate-URL: https://translate.habitica.com/projects/habitica/groups/sv/

Translated using Weblate (Swedish)

Currently translated at 78.1% (1838 of 2351 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (203 of 203 strings)

Translation: Habitica/Generic
Translate-URL: https://translate.habitica.com/projects/habitica/generic/sv/

Translated using Weblate (Swedish)

Currently translated at 73.2% (41 of 56 strings)

Translation: Habitica/Faq
Translate-URL: https://translate.habitica.com/projects/habitica/faq/sv/

Translated using Weblate (Swedish)

Currently translated at 86.4% (633 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/sv/

Translated using Weblate (Swedish)

Currently translated at 98.3% (120 of 122 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (188 of 188 strings)

Translation: Habitica/Character
Translate-URL: https://translate.habitica.com/projects/habitica/character/sv/

Translated using Weblate (Swedish)

Currently translated at 97.0% (99 of 102 strings)

Translation: Habitica/Challenge
Translate-URL: https://translate.habitica.com/projects/habitica/challenge/sv/

Translated using Weblate (Swedish)

Currently translated at 71.5% (83 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/sv/

Translated using Weblate (Swedish)

Currently translated at 89.7% (167 of 186 strings)

Translation: Habitica/Settings
Translate-URL: https://translate.habitica.com/projects/habitica/settings/sv/

Translated using Weblate (Finnish)

Currently translated at 75.0% (42 of 56 strings)

Translation: Habitica/Faq
Translate-URL: https://translate.habitica.com/projects/habitica/faq/fi/

Translated using Weblate (Finnish)

Currently translated at 73.2% (1723 of 2351 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/fi/

Translated using Weblate (Swedish)

Currently translated at 90.2% (121 of 134 strings)

Translation: Habitica/Tasks
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/sv/

Translated using Weblate (Portuguese)

Currently translated at 97.7% (131 of 134 strings)

Translation: Habitica/Tasks
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/pt/

Translated using Weblate (Swedish)

Currently translated at 79.1% (148 of 187 strings)

Translation: Habitica/Subscriber
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/sv/

Translated using Weblate (Portuguese)

Currently translated at 68.4% (128 of 187 strings)

Translation: Habitica/Subscriber
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/pt/

Translated using Weblate (Spanish)

Currently translated at 100.0% (187 of 187 strings)

Translation: Habitica/Subscriber
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/es/

Translated using Weblate (Swedish)

Currently translated at 72.6% (69 of 95 strings)

Translation: Habitica/Quests
Translate-URL: https://translate.habitica.com/projects/habitica/quests/sv/

Translated using Weblate (Portuguese)

Currently translated at 100.0% (95 of 95 strings)

Translation: Habitica/Quests
Translate-URL: https://translate.habitica.com/projects/habitica/quests/pt/

Translated using Weblate (Swedish)

Currently translated at 84.6% (11 of 13 strings)

Translation: Habitica/Rebirth
Translate-URL: https://translate.habitica.com/projects/habitica/rebirth/sv/

Translated using Weblate (Portuguese)

Currently translated at 92.3% (12 of 13 strings)

Translation: Habitica/Rebirth
Translate-URL: https://translate.habitica.com/projects/habitica/rebirth/pt/

Translated using Weblate (Swedish)

Currently translated at 90.0% (100 of 111 strings)

Translation: Habitica/Pets
Translate-URL: https://translate.habitica.com/projects/habitica/pets/sv/

Translated using Weblate (Portuguese)

Currently translated at 90.0% (100 of 111 strings)

Translation: Habitica/Pets
Translate-URL: https://translate.habitica.com/projects/habitica/pets/pt/

Translated using Weblate (Swedish)

Currently translated at 86.2% (113 of 131 strings)

Translation: Habitica/Npc
Translate-URL: https://translate.habitica.com/projects/habitica/npc/sv/

Translated using Weblate (Portuguese)

Currently translated at 93.1% (122 of 131 strings)

Translation: Habitica/Npc
Translate-URL: https://translate.habitica.com/projects/habitica/npc/pt/

Translated using Weblate (Spanish)

Currently translated at 100.0% (131 of 131 strings)

Translation: Habitica/Npc
Translate-URL: https://translate.habitica.com/projects/habitica/npc/es/

Translated using Weblate (Portuguese)

Currently translated at 100.0% (2 of 2 strings)

Translation: Habitica/Noscript
Translate-URL: https://translate.habitica.com/projects/habitica/noscript/pt/

Translated using Weblate (Portuguese)

Currently translated at 90.1% (55 of 61 strings)

Translation: Habitica/Messages
Translate-URL: https://translate.habitica.com/projects/habitica/messages/pt/

Translated using Weblate (Swedish)

Currently translated at 79.1% (159 of 201 strings)

Translation: Habitica/Limited
Translate-URL: https://translate.habitica.com/projects/habitica/limited/sv/

Translated using Weblate (Portuguese)

Currently translated at 83.1% (168 of 202 strings)

Translation: Habitica/Limited
Translate-URL: https://translate.habitica.com/projects/habitica/limited/pt/

Translated using Weblate (Portuguese)

Currently translated at 93.3% (349 of 374 strings)

Translation: Habitica/Groups
Translate-URL: https://translate.habitica.com/projects/habitica/groups/pt/

Translated using Weblate (Swedish)

Currently translated at 100.0% (8 of 8 strings)

Translation: Habitica/Inventory
Translate-URL: https://translate.habitica.com/projects/habitica/inventory/sv/

Translated using Weblate (Swedish)

Currently translated at 78.1% (1838 of 2351 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/sv/

Translated using Weblate (Spanish)

Currently translated at 88.3% (2077 of 2351 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/es/

Translated using Weblate (Swedish)

Currently translated at 100.0% (203 of 203 strings)

Translation: Habitica/Generic
Translate-URL: https://translate.habitica.com/projects/habitica/generic/sv/

Translated using Weblate (Swedish)

Currently translated at 73.2% (41 of 56 strings)

Translation: Habitica/Faq
Translate-URL: https://translate.habitica.com/projects/habitica/faq/sv/

Translated using Weblate (Spanish)

Currently translated at 98.3% (720 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/es/

Translated using Weblate (Portuguese)

Currently translated at 99.1% (365 of 368 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/pt/

Translated using Weblate (Portuguese)

Currently translated at 100.0% (47 of 47 strings)

Translation: Habitica/Contrib
Translate-URL: https://translate.habitica.com/projects/habitica/contrib/pt/

Translated using Weblate (Swedish)

Currently translated at 100.0% (188 of 188 strings)

Translation: Habitica/Character
Translate-URL: https://translate.habitica.com/projects/habitica/character/sv/

Translated using Weblate (Portuguese)

Currently translated at 97.0% (99 of 102 strings)

Translation: Habitica/Challenge
Translate-URL: https://translate.habitica.com/projects/habitica/challenge/pt/

Translated using Weblate (Swedish)

Currently translated at 71.5% (83 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/sv/

Translated using Weblate (Spanish)

Currently translated at 100.0% (116 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/es/

Translated using Weblate (Spanish)

Currently translated at 100.0% (116 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/es/

Translated using Weblate (Spanish)

Currently translated at 100.0% (186 of 186 strings)

Translation: Habitica/Settings
Translate-URL: https://translate.habitica.com/projects/habitica/settings/es/

Translated using Weblate (Spanish)

Currently translated at 100.0% (186 of 186 strings)

Translation: Habitica/Settings
Translate-URL: https://translate.habitica.com/projects/habitica/settings/es/

Translated using Weblate (Spanish)

Currently translated at 97.3% (181 of 186 strings)

Translation: Habitica/Settings
Translate-URL: https://translate.habitica.com/projects/habitica/settings/es/

Translated using Weblate (Filipino)

Currently translated at 63.1% (118 of 187 strings)

Translation: Habitica/Subscriber
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/fil/

Translated using Weblate (Korean)

Currently translated at 59.9% (121 of 202 strings)

Translation: Habitica/Limited
Translate-URL: https://translate.habitica.com/projects/habitica/limited/ko/

Translated using Weblate (Chinese (Traditional))

Currently translated at 97.9% (607 of 620 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/zh_Hant/

Translated using Weblate (Spanish)

Currently translated at 88.3% (2077 of 2351 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/es/

Translated using Weblate (Portuguese)

Currently translated at 94.0% (583 of 620 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/pt/

Translated using Weblate (Portuguese)

Currently translated at 90.8% (169 of 186 strings)

Translation: Habitica/Settings
Translate-URL: https://translate.habitica.com/projects/habitica/settings/pt/

Translated using Weblate (Portuguese)

Currently translated at 97.0% (130 of 134 strings)

Translation: Habitica/Tasks
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/pt/

Translated using Weblate (Portuguese)

Currently translated at 65.8% (133 of 202 strings)

Translation: Habitica/Limited
Translate-URL: https://translate.habitica.com/projects/habitica/limited/pt/

Translated using Weblate (Portuguese)

Currently translated at 93.9% (109 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/pt/

Translated using Weblate (Filipino)

Currently translated at 23.3% (42 of 180 strings)

Translation: Habitica/Front
Translate-URL: https://translate.habitica.com/projects/habitica/front/fil/

Translated using Weblate (Finnish)

Currently translated at 23.8% (43 of 180 strings)

Translation: Habitica/Front
Translate-URL: https://translate.habitica.com/projects/habitica/front/fi/

Translated using Weblate (Finnish)

Currently translated at 100.0% (8 of 8 strings)

Translation: Habitica/Inventory
Translate-URL: https://translate.habitica.com/projects/habitica/inventory/fi/

Translated using Weblate (Portuguese)

Currently translated at 88.8% (119 of 134 strings)

Translation: Habitica/Tasks
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/pt/

Translated using Weblate (Portuguese)

Currently translated at 63.1% (118 of 187 strings)

Translation: Habitica/Subscriber
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/pt/

Translated using Weblate (Portuguese)

Currently translated at 90.0% (100 of 111 strings)

Translation: Habitica/Pets
Translate-URL: https://translate.habitica.com/projects/habitica/pets/pt/

Translated using Weblate (Portuguese)

Currently translated at 90.1% (55 of 61 strings)

Translation: Habitica/Messages
Translate-URL: https://translate.habitica.com/projects/habitica/messages/pt/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (202 of 202 strings)

Translation: Habitica/Limited
Translate-URL: https://translate.habitica.com/projects/habitica/limited/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (2351 of 2351 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/pt_BR/

Translated using Weblate (French)

Currently translated at 100.0% (2351 of 2351 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/fr/

Translated using Weblate (Spanish)

Currently translated at 88.3% (2077 of 2351 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/es/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (203 of 203 strings)

Translation: Habitica/Generic
Translate-URL: https://translate.habitica.com/projects/habitica/generic/pt_BR/

Translated using Weblate (Portuguese)

Currently translated at 97.5% (198 of 203 strings)

Translation: Habitica/Generic
Translate-URL: https://translate.habitica.com/projects/habitica/generic/pt/

Translated using Weblate (Portuguese)

Currently translated at 98.3% (177 of 180 strings)

Translation: Habitica/Front
Translate-URL: https://translate.habitica.com/projects/habitica/front/pt/

Translated using Weblate (Portuguese)

Currently translated at 99.1% (365 of 368 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/pt/

Translated using Weblate (Chinese (Traditional))

Currently translated at 100.0% (188 of 188 strings)

Translation: Habitica/Character
Translate-URL: https://translate.habitica.com/projects/habitica/character/zh_Hant/

Translated using Weblate (Portuguese)

Currently translated at 100.0% (188 of 188 strings)

Translation: Habitica/Character
Translate-URL: https://translate.habitica.com/projects/habitica/character/pt/

Translated using Weblate (Chinese (Traditional))

Currently translated at 100.0% (102 of 102 strings)

Translation: Habitica/Challenge
Translate-URL: https://translate.habitica.com/projects/habitica/challenge/zh_Hant/

Translated using Weblate (Chinese (Traditional))

Currently translated at 96.1% (596 of 620 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/zh_Hant/

Translated using Weblate (Portuguese)

Currently translated at 93.1% (108 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/pt/

Translated using Weblate (Portuguese)

Currently translated at 89.7% (167 of 186 strings)

Translation: Habitica/Settings
Translate-URL: https://translate.habitica.com/projects/habitica/settings/pt/

Translated using Weblate (Filipino)

Currently translated at 15.5% (28 of 180 strings)

Translation: Habitica/Front
Translate-URL: https://translate.habitica.com/projects/habitica/front/fil/

Translated using Weblate (Finnish)

Currently translated at 67.2% (78 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/fi/

Translated using Weblate (Finnish)

Currently translated at 100.0% (8 of 8 strings)

Translation: Habitica/Inventory
Translate-URL: https://translate.habitica.com/projects/habitica/inventory/fi/

Translated using Weblate (Finnish)

Currently translated at 73.2% (1722 of 2351 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/fi/

Translated using Weblate (Swedish)

Currently translated at 90.0% (100 of 111 strings)

Translation: Habitica/Pets
Translate-URL: https://translate.habitica.com/projects/habitica/pets/sv/

Translated using Weblate (Swedish)

Currently translated at 78.1% (1838 of 2351 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/sv/

Translated using Weblate (French)

Currently translated at 99.6% (2343 of 2351 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/fr/

Translated using Weblate (Russian)

Currently translated at 100.0% (732 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/ru/

Translated using Weblate (Chinese (Traditional))

Currently translated at 100.0% (116 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/zh_Hant/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (116 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/zh_Hans/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (620 of 620 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (2351 of 2351 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (2351 of 2351 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (2351 of 2351 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (2351 of 2351 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (131 of 131 strings)

Translation: Habitica/Npc
Translate-URL: https://translate.habitica.com/projects/habitica/npc/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (131 of 131 strings)

Translation: Habitica/Npc
Translate-URL: https://translate.habitica.com/projects/habitica/npc/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (374 of 374 strings)

Translation: Habitica/Groups
Translate-URL: https://translate.habitica.com/projects/habitica/groups/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (374 of 374 strings)

Translation: Habitica/Groups
Translate-URL: https://translate.habitica.com/projects/habitica/groups/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (131 of 131 strings)

Translation: Habitica/Npc
Translate-URL: https://translate.habitica.com/projects/habitica/npc/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (56 of 56 strings)

Translation: Habitica/Spells
Translate-URL: https://translate.habitica.com/projects/habitica/spells/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (56 of 56 strings)

Translation: Habitica/Spells
Translate-URL: https://translate.habitica.com/projects/habitica/spells/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (56 of 56 strings)

Translation: Habitica/Spells
Translate-URL: https://translate.habitica.com/projects/habitica/spells/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (56 of 56 strings)

Translation: Habitica/Spells
Translate-URL: https://translate.habitica.com/projects/habitica/spells/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (56 of 56 strings)

Translation: Habitica/Spells
Translate-URL: https://translate.habitica.com/projects/habitica/spells/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (131 of 131 strings)

Translation: Habitica/Npc
Translate-URL: https://translate.habitica.com/projects/habitica/npc/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (368 of 368 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (368 of 368 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/pt_BR/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (116 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/zh_Hans/

Translated using Weblate (Portuguese)

Currently translated at 91.3% (106 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/pt/

Translated using Weblate (Swedish)

Currently translated at 79.1% (148 of 187 strings)

Translation: Habitica/Subscriber
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/sv/

Translated using Weblate (Swedish)

Currently translated at 90.0% (100 of 111 strings)

Translation: Habitica/Pets
Translate-URL: https://translate.habitica.com/projects/habitica/pets/sv/

Translated using Weblate (Swedish)

Currently translated at 86.2% (113 of 131 strings)

Translation: Habitica/Npc
Translate-URL: https://translate.habitica.com/projects/habitica/npc/sv/

Translated using Weblate (Swedish)

Currently translated at 85.2% (52 of 61 strings)

Translation: Habitica/Messages
Translate-URL: https://translate.habitica.com/projects/habitica/messages/sv/

Translated using Weblate (Swedish)

Currently translated at 79.1% (159 of 201 strings)

Translation: Habitica/Limited
Translate-URL: https://translate.habitica.com/projects/habitica/limited/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (23 of 23 strings)

Translation: Habitica/Loginincentives
Translate-URL: https://translate.habitica.com/projects/habitica/loginincentives/sv/

Translated using Weblate (Swedish)

Currently translated at 78.1% (1838 of 2351 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/sv/

Translated using Weblate (Swedish)

Currently translated at 73.2% (41 of 56 strings)

Translation: Habitica/Faq
Translate-URL: https://translate.habitica.com/projects/habitica/faq/sv/

Translated using Weblate (Swedish)

Currently translated at 85.9% (629 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/sv/

Translated using Weblate (Swedish)

Currently translated at 96.4% (355 of 368 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (188 of 188 strings)

Translation: Habitica/Character
Translate-URL: https://translate.habitica.com/projects/habitica/character/sv/

Translated using Weblate (Swedish)

Currently translated at 87.9% (545 of 620 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/sv/

Translated using Weblate (Swedish)

Currently translated at 71.5% (83 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/sv/

Translated using Weblate (Arabic)

Currently translated at 100.0% (116 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/ar/

Translated using Weblate (Portuguese)

Currently translated at 94.6% (53 of 56 strings)

Translation: Habitica/Spells
Translate-URL: https://translate.habitica.com/projects/habitica/spells/pt/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (2351 of 2351 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (732 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/pt_BR/

Translated using Weblate (Arabic)

Currently translated at 100.0% (116 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/ar/

Translated using Weblate (Arabic)

Currently translated at 100.0% (116 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/ar/

Translated using Weblate (Filipino)

Currently translated at 0.5% (1 of 180 strings)

Translation: Habitica/Front
Translate-URL: https://translate.habitica.com/projects/habitica/front/fil/

Translated using Weblate (Filipino)

Currently translated at 100.0% (620 of 620 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/fil/

Translated using Weblate (Finnish)

Currently translated at 45.6% (53 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/fi/

Translated using Weblate (Filipino)

Currently translated at 100.0% (368 of 368 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/fil/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (56 of 56 strings)

Translation: Habitica/Spells
Translate-URL: https://translate.habitica.com/projects/habitica/spells/pt_BR/

Translated using Weblate (Portuguese)

Currently translated at 94.6% (53 of 56 strings)

Translation: Habitica/Spells
Translate-URL: https://translate.habitica.com/projects/habitica/spells/pt/

Translated using Weblate (English (United Kingdom))

Currently translated at 98.2% (55 of 56 strings)

Translation: Habitica/Spells
Translate-URL: https://translate.habitica.com/projects/habitica/spells/en_GB/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (95 of 95 strings)

Translation: Habitica/Quests
Translate-URL: https://translate.habitica.com/projects/habitica/quests/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (131 of 131 strings)

Translation: Habitica/Npc
Translate-URL: https://translate.habitica.com/projects/habitica/npc/pt_BR/

Translated using Weblate (Swedish)

Currently translated at 78.1% (1838 of 2351 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/sv/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 99.9% (2350 of 2351 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 99.9% (2350 of 2351 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/pt_BR/

Translated using Weblate (Japanese)

Currently translated at 100.0% (2351 of 2351 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/ja/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (368 of 368 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/pt_BR/

Translated using Weblate (Swedish)

Currently translated at 66.3% (77 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/sv/

Translated using Weblate (Swedish)

Currently translated at 66.3% (77 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/sv/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (134 of 134 strings)

Translation: Habitica/Tasks
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/pt_BR/

Translated using Weblate (Filipino)

Currently translated at 93.7% (581 of 620 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/fil/

Translated using Weblate (Swedish)

Currently translated at 79.1% (148 of 187 strings)

Translation: Habitica/Subscriber
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/sv/

Translated using Weblate (Swedish)

Currently translated at 87.9% (545 of 620 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/sv/

Translated using Weblate (Swedish)

Currently translated at 66.3% (77 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/sv/

Translated using Weblate (Korean)

Currently translated at 26.6% (48 of 180 strings)

Translation: Habitica/Front
Translate-URL: https://translate.habitica.com/projects/habitica/front/ko/

Translated using Weblate (French)

Currently translated at 100.0% (95 of 95 strings)

Translation: Habitica/Quests
Translate-URL: https://translate.habitica.com/projects/habitica/quests/fr/

Translated using Weblate (Polish)

Currently translated at 90.5% (86 of 95 strings)

Translation: Habitica/Quests
Translate-URL: https://translate.habitica.com/projects/habitica/quests/pl/

Translated using Weblate (Polish)

Currently translated at 97.7% (128 of 131 strings)

Translation: Habitica/Npc
Translate-URL: https://translate.habitica.com/projects/habitica/npc/pl/

Translated using Weblate (Japanese)

Currently translated at 99.7% (2345 of 2351 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/ja/

Translated using Weblate (Polish)

Currently translated at 97.4% (113 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/pl/

Translated using Weblate (Polish)

Currently translated at 97.4% (113 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/pl/

Translated using Weblate (Bosnian)

Currently translated at 63.8% (115 of 180 strings)

Translation: Habitica/Front
Translate-URL: https://translate.habitica.com/projects/habitica/front/bs/

Translated using Weblate (Filipino)

Currently translated at 80.8% (501 of 620 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/fil/

Translated using Weblate (Bosnian)

Currently translated at 16.6% (30 of 180 strings)

Translation: Habitica/Front
Translate-URL: https://translate.habitica.com/projects/habitica/front/bs/

Translated using Weblate (Filipino)

Currently translated at 77.4% (480 of 620 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/fil/

Translated using Weblate (Japanese)

Currently translated at 99.5% (2341 of 2351 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/ja/

Translated using Weblate (Korean)

Currently translated at 100.0% (8 of 8 strings)

Translation: Habitica/Inventory
Translate-URL: https://translate.habitica.com/projects/habitica/inventory/ko/

Translated using Weblate (French)

Currently translated at 100.0% (187 of 187 strings)

Translation: Habitica/Subscriber
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/fr/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (95 of 95 strings)

Translation: Habitica/Quests
Translate-URL: https://translate.habitica.com/projects/habitica/quests/pt_BR/

Translated using Weblate (French)

Currently translated at 100.0% (131 of 131 strings)

Translation: Habitica/Npc
Translate-URL: https://translate.habitica.com/projects/habitica/npc/fr/

Translated using Weblate (Spanish (Latin America))

Currently translated at 100.0% (2 of 2 strings)

Translation: Habitica/Noscript
Translate-URL: https://translate.habitica.com/projects/habitica/noscript/es_419/

Translated using Weblate (Japanese)

Currently translated at 100.0% (374 of 374 strings)

Translation: Habitica/Groups
Translate-URL: https://translate.habitica.com/projects/habitica/groups/ja/

Translated using Weblate (French)

Currently translated at 100.0% (374 of 374 strings)

Translation: Habitica/Groups
Translate-URL: https://translate.habitica.com/projects/habitica/groups/fr/

Translated using Weblate (Japanese)

Currently translated at 99.4% (2337 of 2351 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/ja/

Translated using Weblate (French)

Currently translated at 100.0% (620 of 620 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/fr/

Translated using Weblate (Korean)

Currently translated at 90.0% (558 of 620 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ko/

Translated using Weblate (Filipino)

Currently translated at 70.0% (434 of 620 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/fil/

Translated using Weblate (Filipino)

Currently translated at 100.0% (116 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/fil/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 98.9% (94 of 95 strings)

Translation: Habitica/Quests
Translate-URL: https://translate.habitica.com/projects/habitica/quests/pt_BR/

Translated using Weblate (Galician)

Currently translated at 66.6% (36 of 54 strings)

Translation: Habitica/Defaulttasks
Translate-URL: https://translate.habitica.com/projects/habitica/defaulttasks/gl/

Translated using Weblate (Galician)

Currently translated at 85.3% (314 of 368 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/gl/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 98.9% (94 of 95 strings)

Translation: Habitica/Quests
Translate-URL: https://translate.habitica.com/projects/habitica/quests/pt_BR/

Translated using Weblate (Filipino)

Currently translated at 100.0% (56 of 56 strings)

Translation: Habitica/Faq
Translate-URL: https://translate.habitica.com/projects/habitica/faq/fil/

Translated using Weblate (Filipino)

Currently translated at 100.0% (134 of 134 strings)

Translation: Habitica/Tasks
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/fil/

Translated using Weblate (Filipino)

Currently translated at 34.4% (40 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/fil/

Translated using Weblate (Filipino)

Currently translated at 100.0% (369 of 369 strings)

Translation: Habitica/Groups
Translate-URL: https://translate.habitica.com/projects/habitica/groups/fil/

Translated using Weblate (Japanese)

Currently translated at 98.9% (94 of 95 strings)

Translation: Habitica/Quests
Translate-URL: https://translate.habitica.com/projects/habitica/quests/ja/

Translated using Weblate (Filipino)

Currently translated at 17.2% (20 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/fil/

Translated using Weblate (Filipino)

Currently translated at 17.2% (20 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/fil/

Translated using Weblate (Filipino)

Currently translated at 12.0% (14 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/fil/

Translated using Weblate (Filipino)

Currently translated at 91.0% (51 of 56 strings)

Translation: Habitica/Faq
Translate-URL: https://translate.habitica.com/projects/habitica/faq/fil/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (187 of 187 strings)

Translation: Habitica/Subscriber
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/zh_Hans/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (95 of 95 strings)

Translation: Habitica/Quests
Translate-URL: https://translate.habitica.com/projects/habitica/quests/zh_Hans/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 97.8% (93 of 95 strings)

Translation: Habitica/Quests
Translate-URL: https://translate.habitica.com/projects/habitica/quests/pt_BR/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (131 of 131 strings)

Translation: Habitica/Npc
Translate-URL: https://translate.habitica.com/projects/habitica/npc/zh_Hans/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (202 of 202 strings)

Translation: Habitica/Limited
Translate-URL: https://translate.habitica.com/projects/habitica/limited/pt_BR/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (374 of 374 strings)

Translation: Habitica/Groups
Translate-URL: https://translate.habitica.com/projects/habitica/groups/zh_Hans/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (2351 of 2351 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/zh_Hans/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (620 of 620 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/zh_Hans/

Translated using Weblate (Russian)

Currently translated at 100.0% (620 of 620 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ru/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (368 of 368 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (368 of 368 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 97.8% (93 of 95 strings)

Translation: Habitica/Quests
Translate-URL: https://translate.habitica.com/projects/habitica/quests/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (202 of 202 strings)

Translation: Habitica/Limited
Translate-URL: https://translate.habitica.com/projects/habitica/limited/pt_BR/

Translated using Weblate (Italian)

Currently translated at 100.0% (187 of 187 strings)

Translation: Habitica/Subscriber
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/it/

Translated using Weblate (Russian)

Currently translated at 100.0% (95 of 95 strings)

Translation: Habitica/Quests
Translate-URL: https://translate.habitica.com/projects/habitica/quests/ru/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 97.8% (93 of 95 strings)

Translation: Habitica/Quests
Translate-URL: https://translate.habitica.com/projects/habitica/quests/pt_BR/

Translated using Weblate (Japanese)

Currently translated at 85.2% (81 of 95 strings)

Translation: Habitica/Quests
Translate-URL: https://translate.habitica.com/projects/habitica/quests/ja/

Translated using Weblate (Italian)

Currently translated at 100.0% (95 of 95 strings)

Translation: Habitica/Quests
Translate-URL: https://translate.habitica.com/projects/habitica/quests/it/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (131 of 131 strings)

Translation: Habitica/Npc
Translate-URL: https://translate.habitica.com/projects/habitica/npc/pt_BR/

Translated using Weblate (Italian)

Currently translated at 100.0% (131 of 131 strings)

Translation: Habitica/Npc
Translate-URL: https://translate.habitica.com/projects/habitica/npc/it/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (374 of 374 strings)

Translation: Habitica/Groups
Translate-URL: https://translate.habitica.com/projects/habitica/groups/pt_BR/

Translated using Weblate (Italian)

Currently translated at 100.0% (374 of 374 strings)

Translation: Habitica/Groups
Translate-URL: https://translate.habitica.com/projects/habitica/groups/it/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 99.9% (2349 of 2351 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/pt_BR/

Translated using Weblate (Italian)

Currently translated at 100.0% (2351 of 2351 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/it/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (368 of 368 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (620 of 620 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/pt_BR/

Translated using Weblate (Japanese)

Currently translated at 100.0% (620 of 620 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ja/

Translated using Weblate (Italian)

Currently translated at 100.0% (620 of 620 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/it/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (368 of 368 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (187 of 187 strings)

Translation: Habitica/Subscriber
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/pt_BR/

Translated using Weblate (Russian)

Currently translated at 97.8% (93 of 95 strings)

Translation: Habitica/Quests
Translate-URL: https://translate.habitica.com/projects/habitica/quests/ru/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (202 of 202 strings)

Translation: Habitica/Limited
Translate-URL: https://translate.habitica.com/projects/habitica/limited/pt_BR/

Translated using Weblate (Russian)

Currently translated at 100.0% (2351 of 2351 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/ru/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 99.8% (2347 of 2351 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (203 of 203 strings)

Translation: Habitica/Generic
Translate-URL: https://translate.habitica.com/projects/habitica/generic/pt_BR/

Translated using Weblate (Portuguese)

Currently translated at 96.5% (196 of 203 strings)

Translation: Habitica/Generic
Translate-URL: https://translate.habitica.com/projects/habitica/generic/pt/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (368 of 368 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 83.1% (79 of 95 strings)

Translation: Habitica/Quests
Translate-URL: https://translate.habitica.com/projects/habitica/quests/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (368 of 368 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 82.1% (78 of 95 strings)

Translation: Habitica/Quests
Translate-URL: https://translate.habitica.com/projects/habitica/quests/pt_BR/

Translated using Weblate (German)

Currently translated at 100.0% (131 of 131 strings)

Translation: Habitica/Npc
Translate-URL: https://translate.habitica.com/projects/habitica/npc/de/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 99.1% (371 of 374 strings)

Translation: Habitica/Groups
Translate-URL: https://translate.habitica.com/projects/habitica/groups/pt_BR/

Translated using Weblate (German)

Currently translated at 99.4% (372 of 374 strings)

Translation: Habitica/Groups
Translate-URL: https://translate.habitica.com/projects/habitica/groups/de/

Translated using Weblate (German)

Currently translated at 97.9% (2302 of 2351 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/de/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (368 of 368 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/pt_BR/

Translated using Weblate (German)

Currently translated at 99.3% (616 of 620 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/de/

Translated using Weblate (Filipino)

Currently translated at 100.0% (130 of 130 strings)

Translation: Habitica/Npc
Translate-URL: https://translate.habitica.com/projects/habitica/npc/fil/

Translated using Weblate (Filipino)

Currently translated at 78.5% (44 of 56 strings)

Translation: Habitica/Faq
Translate-URL: https://translate.habitica.com/projects/habitica/faq/fil/

Translated using Weblate (Filipino)

Currently translated at 100.0% (186 of 186 strings)

Translation: Habitica/Settings
Translate-URL: https://translate.habitica.com/projects/habitica/settings/fil/

Translated using Weblate (Russian)

Currently translated at 100.0% (187 of 187 strings)

Translation: Habitica/Subscriber
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/ru/

Translated using Weblate (Japanese)

Currently translated at 100.0% (187 of 187 strings)

Translation: Habitica/Subscriber
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/ja/

Translated using Weblate (Russian)

Currently translated at 96.8% (92 of 95 strings)

Translation: Habitica/Quests
Translate-URL: https://translate.habitica.com/projects/habitica/quests/ru/

Translated using Weblate (Japanese)

Currently translated at 100.0% (131 of 131 strings)

Translation: Habitica/Npc
Translate-URL: https://translate.habitica.com/projects/habitica/npc/ja/

Translated using Weblate (Russian)

Currently translated at 100.0% (374 of 374 strings)

Translation: Habitica/Groups
Translate-URL: https://translate.habitica.com/projects/habitica/groups/ru/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 97.5% (365 of 374 strings)

Translation: Habitica/Groups
Translate-URL: https://translate.habitica.com/projects/habitica/groups/pt_BR/

Translated using Weblate (Russian)

Currently translated at 99.6% (2343 of 2351 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/ru/

Translated using Weblate (Russian)

Currently translated at 100.0% (620 of 620 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ru/

Translated using Weblate (Japanese)

Currently translated at 99.6% (618 of 620 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ja/

Translated using Weblate (Korean)

Currently translated at 89.8% (557 of 620 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ko/

Translated using Weblate (Spanish (Latin America))

Currently translated at 100.0% (95 of 95 strings)

Translation: Habitica/Quests
Translate-URL: https://translate.habitica.com/projects/habitica/quests/es_419/

Translated using Weblate (Spanish (Latin America))

Currently translated at 100.0% (2351 of 2351 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/es_419/

Translated using Weblate (Spanish (Latin America))

Currently translated at 100.0% (187 of 187 strings)

Translation: Habitica/Subscriber
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/es_419/

Translated using Weblate (Spanish (Latin America))

Currently translated at 100.0% (131 of 131 strings)

Translation: Habitica/Npc
Translate-URL: https://translate.habitica.com/projects/habitica/npc/es_419/

Translated using Weblate (Spanish (Latin America))

Currently translated at 100.0% (374 of 374 strings)

Translation: Habitica/Groups
Translate-URL: https://translate.habitica.com/projects/habitica/groups/es_419/

Translated using Weblate (Spanish (Latin America))

Currently translated at 99.4% (2338 of 2351 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/es_419/

Translated using Weblate (Spanish (Latin America))

Currently translated at 100.0% (620 of 620 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/es_419/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 99.7% (2345 of 2351 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/pt_BR/

Translated using Weblate (Italian)

Currently translated at 100.0% (732 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/it/

Translated using Weblate (Italian)

Currently translated at 99.5% (617 of 620 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/it/
2021-06-29 17:37:44 +02:00
Sabe Jones
037d6d9ee4 Merge branch 'release' into develop 2021-06-25 07:49:22 -05:00
Sabe Jones
8fe4ad09ed 4.197.2 2021-06-24 13:15:38 -05:00
Sabe Jones
a65d05d3a7 fix(items): missing event data for two gear bits 2021-06-24 13:15:21 -05:00
Sabe Jones
97b3db9b94 Merge branch 'release' into develop 2021-06-22 19:18:42 -05:00
Sabe Jones
dc54707e1b 4.197.1 2021-06-22 19:18:27 -05:00
Sabe Jones
288f556ff9 fix(event): put start time on potions 2021-06-22 19:18:21 -05:00
Sabe Jones
212691508a Merge branch 'release' into develop 2021-06-22 19:01:02 -05:00
Sabe Jones
ce1d0a6b0d 4.197.0 2021-06-22 18:49:50 -05:00
Sabe Jones
fcc2f149f6 chore(sprites): compile 2021-06-22 18:49:40 -05:00
Sabe Jones
1a57f7df00 feat(event): Summer Splash 2021 2021-06-22 18:49:32 -05:00
Sabe Jones
32ba02df28 Merge branch 'release' into develop 2021-06-09 08:26:20 -05:00
Sabe Jones
350e5cf4c5 4.196.1 2021-06-09 08:25:07 -05:00
Sabe Jones
a89c7d2957 feat(content): enable quest bundle
also fix some date display and a Vue error
2021-06-09 08:24:50 -05:00
Melior
07b9cc533b Merge branch 'origin/develop' into Weblate. 2021-06-03 22:49:21 +02:00
Melior
73710b2ae4 Translated using Weblate (Russian)
Currently translated at 100.0% (127 of 127 strings)

Translation: Habitica/Npc
Translate-URL: https://translate.habitica.com/projects/habitica/npc/ru/

Translated using Weblate (Filipino)

Currently translated at 11.7% (13 of 111 strings)

Translation: Habitica/Pets
Translate-URL: https://translate.habitica.com/projects/habitica/pets/fil/

Translated using Weblate (Filipino)

Currently translated at 100.0% (56 of 56 strings)

Translation: Habitica/Spells
Translate-URL: https://translate.habitica.com/projects/habitica/spells/fil/

Translated using Weblate (Filipino)

Currently translated at 92.3% (120 of 130 strings)

Translation: Habitica/Npc
Translate-URL: https://translate.habitica.com/projects/habitica/npc/fil/

Translated using Weblate (Filipino)

Currently translated at 76.7% (43 of 56 strings)

Translation: Habitica/Faq
Translate-URL: https://translate.habitica.com/projects/habitica/faq/fil/

Translated using Weblate (Filipino)

Currently translated at 100.0% (188 of 188 strings)

Translation: Habitica/Character
Translate-URL: https://translate.habitica.com/projects/habitica/character/fil/

Translated using Weblate (Filipino)

Currently translated at 100.0% (102 of 102 strings)

Translation: Habitica/Challenge
Translate-URL: https://translate.habitica.com/projects/habitica/challenge/fil/

Translated using Weblate (Filipino)

Currently translated at 85.1% (623 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/fil/

Translated using Weblate (Filipino)

Currently translated at 100.0% (85 of 85 strings)

Translation: Habitica/Quests
Translate-URL: https://translate.habitica.com/projects/habitica/quests/fil/

Translated using Weblate (Filipino)

Currently translated at 100.0% (8 of 8 strings)

Translation: Habitica/Overview
Translate-URL: https://translate.habitica.com/projects/habitica/overview/fil/

Translated using Weblate (Filipino)

Currently translated at 100.0% (61 of 61 strings)

Translation: Habitica/Messages
Translate-URL: https://translate.habitica.com/projects/habitica/messages/fil/

Translated using Weblate (Filipino)

Currently translated at 100.0% (8 of 8 strings)

Translation: Habitica/Inventory
Translate-URL: https://translate.habitica.com/projects/habitica/inventory/fil/

Translated using Weblate (Filipino)

Currently translated at 93.4% (345 of 369 strings)

Translation: Habitica/Groups
Translate-URL: https://translate.habitica.com/projects/habitica/groups/fil/

Translated using Weblate (Filipino)

Currently translated at 100.0% (122 of 122 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/fil/

Translated using Weblate (Filipino)

Currently translated at 93.0% (173 of 186 strings)

Translation: Habitica/Settings
Translate-URL: https://translate.habitica.com/projects/habitica/settings/fil/

Translated using Weblate (Russian)

Currently translated at 100.0% (202 of 202 strings)

Translation: Habitica/Limited
Translate-URL: https://translate.habitica.com/projects/habitica/limited/ru/

Translated using Weblate (Russian)

Currently translated at 100.0% (116 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/ru/

Translated using Weblate (Russian)

Currently translated at 100.0% (116 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/ru/

Translated using Weblate (Russian)

Currently translated at 96.5% (112 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/ru/

Translated using Weblate (English (Pirate))

Currently translated at 100.0% (116 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/en@pirate/

Translated using Weblate (English (Pirate))

Currently translated at 100.0% (116 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/en@pirate/

Translated using Weblate (French)

Currently translated at 100.0% (732 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/fr/

Translated using Weblate (French)

Currently translated at 100.0% (116 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/fr/

Translated using Weblate (Filipino)

Currently translated at 92.3% (120 of 130 strings)

Translation: Habitica/Npc
Translate-URL: https://translate.habitica.com/projects/habitica/npc/fil/

Translated using Weblate (Filipino)

Currently translated at 75.0% (42 of 56 strings)

Translation: Habitica/Faq
Translate-URL: https://translate.habitica.com/projects/habitica/faq/fil/

Translated using Weblate (Filipino)

Currently translated at 98.8% (84 of 85 strings)

Translation: Habitica/Quests
Translate-URL: https://translate.habitica.com/projects/habitica/quests/fil/

Translated using Weblate (Filipino)

Currently translated at 87.5% (7 of 8 strings)

Translation: Habitica/Overview
Translate-URL: https://translate.habitica.com/projects/habitica/overview/fil/

Translated using Weblate (Arabic)

Currently translated at 61.2% (71 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/ar/

Translated using Weblate (Filipino)

Currently translated at 75.0% (6 of 8 strings)

Translation: Habitica/Inventory
Translate-URL: https://translate.habitica.com/projects/habitica/inventory/fil/

Translated using Weblate (Filipino)

Currently translated at 100.0% (54 of 54 strings)

Translation: Habitica/Defaulttasks
Translate-URL: https://translate.habitica.com/projects/habitica/defaulttasks/fil/

Translated using Weblate (Polish)

Currently translated at 74.7% (1746 of 2335 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/pl/

Translated using Weblate (Polish)

Currently translated at 94.8% (110 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/pl/

Translated using Weblate (Arabic)

Currently translated at 46.5% (54 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/ar/

Translated using Weblate (Arabic)

Currently translated at 45.6% (53 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/ar/

Translated using Weblate (English)

Currently translated at 100.0% (56 of 56 strings)

Translation: Habitica/Faq
Translate-URL: https://translate.habitica.com/projects/habitica/faq/en@lolcat/

Translated using Weblate (English)

Currently translated at 100.0% (188 of 188 strings)

Translation: Habitica/Character
Translate-URL: https://translate.habitica.com/projects/habitica/character/en@lolcat/

Translated using Weblate (Korean)

Currently translated at 88.7% (103 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/ko/

Translated using Weblate (Filipino)

Currently translated at 100.0% (203 of 203 strings)

Translation: Habitica/Generic
Translate-URL: https://translate.habitica.com/projects/habitica/generic/fil/

Translated using Weblate (English)

Currently translated at 100.0% (368 of 368 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/en@lolcat/

Translated using Weblate (Japanese)

Currently translated at 100.0% (732 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/ja/

Translated using Weblate (German)

Currently translated at 100.0% (116 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/de/

Translated using Weblate (English)

Currently translated at 22.2% (40 of 180 strings)

Translation: Habitica/Front
Translate-URL: https://translate.habitica.com/projects/habitica/front/en@lolcat/

Translated using Weblate (English)

Currently translated at 93.8% (122 of 130 strings)

Translation: Habitica/Npc
Translate-URL: https://translate.habitica.com/projects/habitica/npc/en@lolcat/

Translated using Weblate (English)

Currently translated at 100.0% (15 of 15 strings)

Translation: Habitica/Death
Translate-URL: https://translate.habitica.com/projects/habitica/death/en@lolcat/

Translated using Weblate (English)

Currently translated at 100.0% (122 of 122 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/en@lolcat/

Translated using Weblate (Spanish)

Currently translated at 100.0% (368 of 368 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/es/

Translated using Weblate (English (Pirate))

Currently translated at 97.4% (113 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/en@pirate/

Translated using Weblate (English)

Currently translated at 54.9% (61 of 111 strings)

Translation: Habitica/Pets
Translate-URL: https://translate.habitica.com/projects/habitica/pets/en@lolcat/

Translated using Weblate (Spanish)

Currently translated at 88.7% (2073 of 2335 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/es/

Translated using Weblate (Arabic)

Currently translated at 33.6% (39 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/ar/

Translated using Weblate (Arabic)

Currently translated at 33.6% (39 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/ar/

Translated using Weblate (Danish)

Currently translated at 100.0% (130 of 130 strings)

Translation: Habitica/Npc
Translate-URL: https://translate.habitica.com/projects/habitica/npc/da/

Translated using Weblate (Danish)

Currently translated at 100.0% (61 of 61 strings)

Translation: Habitica/Messages
Translate-URL: https://translate.habitica.com/projects/habitica/messages/da/

Translated using Weblate (Danish)

Currently translated at 100.0% (8 of 8 strings)

Translation: Habitica/Inventory
Translate-URL: https://translate.habitica.com/projects/habitica/inventory/da/

Translated using Weblate (Danish)

Currently translated at 78.5% (1834 of 2335 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/da/

Translated using Weblate (Danish)

Currently translated at 100.0% (203 of 203 strings)

Translation: Habitica/Generic
Translate-URL: https://translate.habitica.com/projects/habitica/generic/da/

Translated using Weblate (Danish)

Currently translated at 99.7% (367 of 368 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/da/

Translated using Weblate (Danish)

Currently translated at 80.5% (494 of 613 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/da/

Translated using Weblate (Danish)

Currently translated at 100.0% (116 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/da/

Translated using Weblate (Danish)

Currently translated at 54.3% (63 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/da/

Translated using Weblate (Danish)

Currently translated at 54.3% (63 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/da/

Translated using Weblate (Arabic)

Currently translated at 17.2% (20 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/ar/

Translated using Weblate (Arabic)

Currently translated at 17.2% (20 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/ar/

Translated using Weblate (Arabic)

Currently translated at 14.6% (17 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/ar/

Translated using Weblate (Arabic)

Currently translated at 14.6% (17 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/ar/

Translated using Weblate (Arabic)

Currently translated at 13.7% (16 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/ar/

Translated using Weblate (Arabic)

Currently translated at 13.7% (16 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/ar/

Translated using Weblate (Korean)

Currently translated at 90.7% (556 of 613 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ko/

Translated using Weblate (Spanish)

Currently translated at 100.0% (186 of 186 strings)

Translation: Habitica/Subscriber
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/es/

Translated using Weblate (Spanish (Latin America))

Currently translated at 100.0% (116 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/es_419/

Translated using Weblate (Spanish)

Currently translated at 100.0% (188 of 188 strings)

Translation: Habitica/Character
Translate-URL: https://translate.habitica.com/projects/habitica/character/es/

Translated using Weblate (Danish)

Currently translated at 78.0% (1822 of 2335 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/da/

Translated using Weblate (Danish)

Currently translated at 100.0% (188 of 188 strings)

Translation: Habitica/Character
Translate-URL: https://translate.habitica.com/projects/habitica/character/da/

Translated using Weblate (Danish)

Currently translated at 100.0% (102 of 102 strings)

Translation: Habitica/Challenge
Translate-URL: https://translate.habitica.com/projects/habitica/challenge/da/

Translated using Weblate (Danish)

Currently translated at 100.0% (186 of 186 strings)

Translation: Habitica/Settings
Translate-URL: https://translate.habitica.com/projects/habitica/settings/da/

Translated using Weblate (Danish)

Currently translated at 100.0% (56 of 56 strings)

Translation: Habitica/Spells
Translate-URL: https://translate.habitica.com/projects/habitica/spells/da/

Translated using Weblate (Danish)

Currently translated at 100.0% (13 of 13 strings)

Translation: Habitica/Rebirth
Translate-URL: https://translate.habitica.com/projects/habitica/rebirth/da/

Translated using Weblate (Danish)

Currently translated at 100.0% (85 of 85 strings)

Translation: Habitica/Quests
Translate-URL: https://translate.habitica.com/projects/habitica/quests/da/

Translated using Weblate (Danish)

Currently translated at 100.0% (85 of 85 strings)

Translation: Habitica/Quests
Translate-URL: https://translate.habitica.com/projects/habitica/quests/da/

Translated using Weblate (Danish)

Currently translated at 100.0% (111 of 111 strings)

Translation: Habitica/Pets
Translate-URL: https://translate.habitica.com/projects/habitica/pets/da/

Translated using Weblate (Danish)

Currently translated at 100.0% (111 of 111 strings)

Translation: Habitica/Pets
Translate-URL: https://translate.habitica.com/projects/habitica/pets/da/

Translated using Weblate (Danish)

Currently translated at 83.7% (613 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/da/

Translated using Weblate (Danish)

Currently translated at 100.0% (122 of 122 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/da/

Translated using Weblate (Danish)

Currently translated at 99.4% (366 of 368 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/da/

Translated using Weblate (Danish)

Currently translated at 95.6% (178 of 186 strings)

Translation: Habitica/Settings
Translate-URL: https://translate.habitica.com/projects/habitica/settings/da/

Translated using Weblate (Croatian)

Currently translated at 64.2% (36 of 56 strings)

Translation: Habitica/Faq
Translate-URL: https://translate.habitica.com/projects/habitica/faq/hr/

Translated using Weblate (Bosnian)

Currently translated at 100.0% (85 of 85 strings)

Translation: Habitica/Quests
Translate-URL: https://translate.habitica.com/projects/habitica/quests/bs/

Translated using Weblate (Bosnian)

Currently translated at 100.0% (61 of 61 strings)

Translation: Habitica/Messages
Translate-URL: https://translate.habitica.com/projects/habitica/messages/bs/

Translated using Weblate (Korean)

Currently translated at 59.4% (120 of 202 strings)

Translation: Habitica/Limited
Translate-URL: https://translate.habitica.com/projects/habitica/limited/ko/

Translated using Weblate (Korean)

Currently translated at 87.5% (7 of 8 strings)

Translation: Habitica/Inventory
Translate-URL: https://translate.habitica.com/projects/habitica/inventory/ko/

Translated using Weblate (Bosnian)

Currently translated at 100.0% (47 of 47 strings)

Translation: Habitica/Contrib
Translate-URL: https://translate.habitica.com/projects/habitica/contrib/bs/

Translated using Weblate (Ukrainian)

Currently translated at 87.5% (7 of 8 strings)

Translation: Habitica/Overview
Translate-URL: https://translate.habitica.com/projects/habitica/overview/uk/

Translated using Weblate (Polish)

Currently translated at 100.0% (56 of 56 strings)

Translation: Habitica/Faq
Translate-URL: https://translate.habitica.com/projects/habitica/faq/pl/

Translated using Weblate (Danish)

Currently translated at 98.2% (55 of 56 strings)

Translation: Habitica/Faq
Translate-URL: https://translate.habitica.com/projects/habitica/faq/da/

Translated using Weblate (Czech)

Currently translated at 82.1% (46 of 56 strings)

Translation: Habitica/Faq
Translate-URL: https://translate.habitica.com/projects/habitica/faq/cs/

Translated using Weblate (Italian)

Currently translated at 100.0% (116 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/it/

Translated using Weblate (Japanese)

Currently translated at 100.0% (116 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/ja/

Translated using Weblate (Chinese (Hong Kong))

Currently translated at 88.7% (103 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/zh_Hant_HK/

Translated using Weblate (Hungarian)

Currently translated at 92.5% (124 of 134 strings)

Translation: Habitica/Tasks
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/hu/

Translated using Weblate (Hungarian)

Currently translated at 100.0% (56 of 56 strings)

Translation: Habitica/Spells
Translate-URL: https://translate.habitica.com/projects/habitica/spells/hu/

Translated using Weblate (Danish)

Currently translated at 83.7% (613 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/da/

Translated using Weblate (Hungarian)

Currently translated at 100.0% (188 of 188 strings)

Translation: Habitica/Character
Translate-URL: https://translate.habitica.com/projects/habitica/character/hu/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (116 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/zh_Hans/

Translated using Weblate (Dutch)

Currently translated at 100.0% (116 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/nl/

Translated using Weblate (Hungarian)

Currently translated at 100.0% (186 of 186 strings)

Translation: Habitica/Settings
Translate-URL: https://translate.habitica.com/projects/habitica/settings/hu/

Translated using Weblate (Danish)

Currently translated at 98.1% (109 of 111 strings)

Translation: Habitica/Pets
Translate-URL: https://translate.habitica.com/projects/habitica/pets/da/

Translated using Weblate (Danish)

Currently translated at 98.0% (199 of 203 strings)

Translation: Habitica/Generic
Translate-URL: https://translate.habitica.com/projects/habitica/generic/da/

Translated using Weblate (Danish)

Currently translated at 98.2% (55 of 56 strings)

Translation: Habitica/Faq
Translate-URL: https://translate.habitica.com/projects/habitica/faq/da/

Translated using Weblate (Danish)

Currently translated at 78.2% (573 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/da/

Translated using Weblate (Danish)

Currently translated at 98.0% (100 of 102 strings)

Translation: Habitica/Challenge
Translate-URL: https://translate.habitica.com/projects/habitica/challenge/da/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (116 of 116 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/pt_BR/

Translated using Weblate (Danish)

Currently translated at 88.1% (164 of 186 strings)

Translation: Habitica/Settings
Translate-URL: https://translate.habitica.com/projects/habitica/settings/da/
2021-06-03 22:48:56 +02:00
Sabe Jones
38e58de30c 4.196.0 2021-06-03 15:47:28 -05:00
Sabe Jones
8f8ecbb4dd chore(sprites): compile 2021-06-03 15:46:12 -05:00
Sabe Jones
73d9e118d1 feat(content): Armoire items and backgrounds 2021-06 2021-06-03 15:46:04 -05:00
Sabe Jones
207516d66a Merge branch 'develop' into release 2021-06-03 15:02:09 -05:00
dependabot[bot]
bc730a0d59 build(deps): bump @vue/cli-service in /website/client (#13267)
Bumps [@vue/cli-service](https://github.com/vuejs/vue-cli/tree/HEAD/packages/@vue/cli-service) from 4.5.12 to 4.5.13.
- [Release notes](https://github.com/vuejs/vue-cli/releases)
- [Changelog](https://github.com/vuejs/vue-cli/blob/dev/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vue-cli/commits/v4.5.13/packages/@vue/cli-service)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-28 17:24:03 -05:00
dependabot[bot]
2d67bd9eaf build(deps): bump glob from 7.1.6 to 7.1.7 (#13266)
Bumps [glob](https://github.com/isaacs/node-glob) from 7.1.6 to 7.1.7.
- [Release notes](https://github.com/isaacs/node-glob/releases)
- [Changelog](https://github.com/isaacs/node-glob/blob/master/changelog.md)
- [Commits](https://github.com/isaacs/node-glob/compare/v7.1.6...v7.1.7)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-28 17:06:01 -05:00
dependabot[bot]
634a13bdcf build(deps): bump @vue/cli-plugin-router in /website/client (#13269)
Bumps [@vue/cli-plugin-router](https://github.com/vuejs/vue-cli/tree/HEAD/packages/@vue/cli-plugin-router) from 4.5.12 to 4.5.13.
- [Release notes](https://github.com/vuejs/vue-cli/releases)
- [Changelog](https://github.com/vuejs/vue-cli/blob/dev/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vue-cli/commits/v4.5.13/packages/@vue/cli-plugin-router)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-28 17:02:56 -05:00
PitiTheGrey
1037510c9d Add 'questOwner' to the return data of a 'questActivity' webhook. (#13277)
* Update webhook.js

Add `questOwner: group.quest.leader,` to webhook.js

* Update POST-groups_groupId_quests_invite.test.js

Test if questOwner contains the correct data

* Update POST-groups_groupId_quests_invite.test.js

* Update webhooks.test.js
2021-05-28 16:59:14 -05:00
Liza
9e655d70d2 Fix "Not Participating" filter checkbox on Discover Challenges screen, Fixes #13025 (#13183)
* change 'role' options and filters to 'membership'

* added membership filtering function to discover challenges

* fix accidental deletion

* complete removal of roles from challenge filters

* abstract challenge "participating" filtering into mixin

* selecting "participating" and "not participating" shows all challenges
2021-05-28 16:57:03 -05:00
dependabot[bot]
f097077009 build(deps): bump amplitude-js from 8.2.1 to 8.3.0 in /website/client (#13304)
Bumps [amplitude-js](https://github.com/amplitude/amplitude-javascript) from 8.2.1 to 8.3.0.
- [Release notes](https://github.com/amplitude/amplitude-javascript/releases)
- [Changelog](https://github.com/amplitude/Amplitude-JavaScript/blob/main/CHANGELOG.md)
- [Commits](https://github.com/amplitude/amplitude-javascript/compare/v8.2.1...v8.3.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-28 16:49:55 -05:00
dependabot[bot]
aa2806dc61 build(deps): bump @vue/cli-plugin-babel in /website/client (#13263)
Bumps [@vue/cli-plugin-babel](https://github.com/vuejs/vue-cli/tree/HEAD/packages/@vue/cli-plugin-babel) from 4.5.12 to 4.5.13.
- [Release notes](https://github.com/vuejs/vue-cli/releases)
- [Changelog](https://github.com/vuejs/vue-cli/blob/dev/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vue-cli/commits/v4.5.13/packages/@vue/cli-plugin-babel)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-28 16:48:09 -05:00
dependabot[bot]
3cb53862e3 build(deps): bump amplitude from 5.1.5 to 5.1.6 (#13281)
Bumps [amplitude](https://github.com/geoffdutton/amplitude) from 5.1.5 to 5.1.6.
- [Release notes](https://github.com/geoffdutton/amplitude/releases)
- [Changelog](https://github.com/geoffdutton/amplitude/blob/master/CHANGELOG.md)
- [Commits](https://github.com/geoffdutton/amplitude/compare/v5.1.5...v5.1.6)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-28 16:47:57 -05:00
Helcostr
3a5f68420f Proper reset autocomplete - Fixes #13254 (#13257)
* fix resetting searchResults (utlzng cancel mthd)
oh so that's why the cancel method exists...

* reduce code footprint (cancel mthd)
2021-05-28 16:44:01 -05:00
dependabot[bot]
94064a3649 build(deps): bump handlebars from 4.7.6 to 4.7.7 (#13253)
Bumps [handlebars](https://github.com/wycats/handlebars.js) from 4.7.6 to 4.7.7.
- [Release notes](https://github.com/wycats/handlebars.js/releases)
- [Changelog](https://github.com/handlebars-lang/handlebars.js/blob/master/release-notes.md)
- [Commits](https://github.com/wycats/handlebars.js/compare/v4.7.6...v4.7.7)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-28 16:41:05 -05:00
dependabot[bot]
2c87c3c604 build(deps): bump stripe from 8.145.0 to 8.150.0 (#13303)
Bumps [stripe](https://github.com/stripe/stripe-node) from 8.145.0 to 8.150.0.
- [Release notes](https://github.com/stripe/stripe-node/releases)
- [Changelog](https://github.com/stripe/stripe-node/blob/master/CHANGELOG.md)
- [Commits](https://github.com/stripe/stripe-node/compare/v8.145.0...v8.150.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-28 16:37:45 -05:00
dependabot[bot]
742bd57705 build(deps): bump @babel/preset-env from 7.14.1 to 7.14.4 (#13302)
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.14.1 to 7.14.4.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.14.4/packages/babel-preset-env)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-28 16:37:33 -05:00
Helcostr
967cd1f47f Fix toLocalString language key - Fixes #13255 (#13295)
* Finish localizeNumber ctch null
- Incomplete null catch: accidentally called string replace on an array
- Call lang resolution on array just incase service is passing valid lang array
(linting hasn't been checked)

* Got my local linter working
2021-05-28 16:37:02 -05:00
dependabot[bot]
5b4cf5d158 build(deps): bump mongoose from 5.12.7 to 5.12.10 (#13292)
Bumps [mongoose](https://github.com/Automattic/mongoose) from 5.12.7 to 5.12.10.
- [Release notes](https://github.com/Automattic/mongoose/releases)
- [Changelog](https://github.com/Automattic/mongoose/blob/master/History.md)
- [Commits](https://github.com/Automattic/mongoose/compare/5.12.7...5.12.10)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-28 16:29:37 -05:00
dependabot[bot]
1599010be5 build(deps): bump rate-limiter-flexible from 2.2.1 to 2.2.2 (#13264)
Bumps [rate-limiter-flexible](https://github.com/animir/node-rate-limiter-flexible) from 2.2.1 to 2.2.2.
- [Release notes](https://github.com/animir/node-rate-limiter-flexible/releases)
- [Commits](https://github.com/animir/node-rate-limiter-flexible/commits)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-28 16:21:31 -05:00
dependabot[bot]
3c37bc18a3 build(deps): bump gulp.spritesmith from 6.11.0 to 6.12.1 (#13265)
Bumps [gulp.spritesmith](https://github.com/twolfson/gulp.spritesmith) from 6.11.0 to 6.12.1.
- [Release notes](https://github.com/twolfson/gulp.spritesmith/releases)
- [Changelog](https://github.com/twolfson/gulp.spritesmith/blob/master/CHANGELOG.md)
- [Commits](https://github.com/twolfson/gulp.spritesmith/compare/6.11.0...6.12.1)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-28 16:21:03 -05:00
dependabot[bot]
f02d9a1133 build(deps): bump core-js from 3.11.1 to 3.12.1 in /website/client (#13268)
Bumps [core-js](https://github.com/zloirock/core-js/tree/HEAD/packages/core-js) from 3.11.1 to 3.12.1.
- [Release notes](https://github.com/zloirock/core-js/releases)
- [Changelog](https://github.com/zloirock/core-js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/zloirock/core-js/commits/v3.12.1/packages/core-js)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-28 16:20:08 -05:00
dependabot[bot]
2cae9cebe4 build(deps): bump @vue/cli-plugin-eslint in /website/client (#13270)
Bumps [@vue/cli-plugin-eslint](https://github.com/vuejs/vue-cli/tree/HEAD/packages/@vue/cli-plugin-eslint) from 4.5.12 to 4.5.13.
- [Release notes](https://github.com/vuejs/vue-cli/releases)
- [Changelog](https://github.com/vuejs/vue-cli/blob/dev/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vue-cli/commits/v4.5.13/packages/@vue/cli-plugin-eslint)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-28 16:19:40 -05:00
dependabot[bot]
d8a8da11e1 build(deps): bump @vue/cli-plugin-unit-mocha in /website/client (#13271)
Bumps [@vue/cli-plugin-unit-mocha](https://github.com/vuejs/vue-cli/tree/HEAD/packages/@vue/cli-plugin-unit-mocha) from 4.5.12 to 4.5.13.
- [Release notes](https://github.com/vuejs/vue-cli/releases)
- [Changelog](https://github.com/vuejs/vue-cli/blob/dev/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vue-cli/commits/v4.5.13/packages/@vue/cli-plugin-unit-mocha)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-28 16:19:24 -05:00
dependabot[bot]
d5de11327e build(deps): bump hosted-git-info from 2.8.8 to 2.8.9 (#13272)
Bumps [hosted-git-info](https://github.com/npm/hosted-git-info) from 2.8.8 to 2.8.9.
- [Release notes](https://github.com/npm/hosted-git-info/releases)
- [Changelog](https://github.com/npm/hosted-git-info/blob/v2.8.9/CHANGELOG.md)
- [Commits](https://github.com/npm/hosted-git-info/compare/v2.8.8...v2.8.9)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-28 16:19:02 -05:00
dependabot[bot]
d54f2a89b7 build(deps): bump hosted-git-info from 2.8.4 to 2.8.9 in /website/client (#13273)
Bumps [hosted-git-info](https://github.com/npm/hosted-git-info) from 2.8.4 to 2.8.9.
- [Release notes](https://github.com/npm/hosted-git-info/releases)
- [Changelog](https://github.com/npm/hosted-git-info/blob/v2.8.9/CHANGELOG.md)
- [Commits](https://github.com/npm/hosted-git-info/compare/v2.8.4...v2.8.9)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-28 16:18:47 -05:00
dependabot[bot]
12edc6d421 build(deps): bump short-uuid from 4.1.0 to 4.2.0 (#13283)
Bumps [short-uuid](https://github.com/oculus42/short-uuid) from 4.1.0 to 4.2.0.
- [Release notes](https://github.com/oculus42/short-uuid/releases)
- [Changelog](https://github.com/oculus42/short-uuid/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/oculus42/short-uuid/compare/v4.1.0...v4.2.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-28 16:16:46 -05:00
dependabot[bot]
c321b5e8d1 build(deps-dev): bump @babel/plugin-proposal-optional-chaining (#13284)
Bumps [@babel/plugin-proposal-optional-chaining](https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-proposal-optional-chaining) from 7.13.12 to 7.14.2.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.14.2/packages/babel-plugin-proposal-optional-chaining)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-28 16:16:33 -05:00
dependabot[bot]
259343e4cd build(deps): bump @babel/core from 7.13.16 to 7.14.3 (#13285)
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.13.16 to 7.14.3.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.14.3/packages/babel-core)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-28 16:15:49 -05:00
dependabot[bot]
466268e1fb build(deps): bump apidoc from 0.27.1 to 0.28.1 (#13291)
Bumps [apidoc](https://github.com/apidoc/apidoc) from 0.27.1 to 0.28.1.
- [Release notes](https://github.com/apidoc/apidoc/releases)
- [Changelog](https://github.com/apidoc/apidoc/blob/master/CHANGELOG.md)
- [Commits](https://github.com/apidoc/apidoc/commits/0.28.1)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-28 16:14:51 -05:00
dependabot[bot]
706e90fc1c build(deps): bump sass from 1.32.12 to 1.34.0 in /website/client (#13293)
Bumps [sass](https://github.com/sass/dart-sass) from 1.32.12 to 1.34.0.
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.32.12...1.34.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-28 16:13:53 -05:00
dependabot[bot]
f27d217e80 build(deps): bump browserslist from 4.16.0 to 4.16.6 (#13298)
Bumps [browserslist](https://github.com/browserslist/browserslist) from 4.16.0 to 4.16.6.
- [Release notes](https://github.com/browserslist/browserslist/releases)
- [Changelog](https://github.com/browserslist/browserslist/blob/main/CHANGELOG.md)
- [Commits](https://github.com/browserslist/browserslist/compare/4.16.0...4.16.6)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-28 16:12:40 -05:00
dependabot[bot]
8548abf5dc build(deps): bump dns-packet from 1.3.1 to 1.3.4 in /website/client (#13301)
Bumps [dns-packet](https://github.com/mafintosh/dns-packet) from 1.3.1 to 1.3.4.
- [Release notes](https://github.com/mafintosh/dns-packet/releases)
- [Changelog](https://github.com/mafintosh/dns-packet/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mafintosh/dns-packet/compare/v1.3.1...v1.3.4)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-28 16:12:26 -05:00
negue
a8b58815b4 Update Party / Group Sidebar / Quest states (#12793)
* move groups/sidebar to groupSidebar.vue

* lint files

* extract group/party sidebar to rightSidebar.vue

* wip stories with example data

* update stories - wip sidebar re-styling

* message party / group leader + move items to the menu

* update paddings /place for quest section

* invite to party / guild

* update labels (* Party / Guild )

* guild-background to group-background

* correct menu order + missing a label based on the group type

* no quest - styles / layout applied

* quest owner / not started - styles applied   + extracted questActions from questDetailsModal.vue to a mixin

* no challenge style

* hover with underlines

* quest-pending area layout / margins

* "Collection Quest/Quest Owner Participating" Styling Done

* group sidebar menu with icons / background

* remove most participate button styles

* fix quest-invite panel

* move "Start Quest" + add "Leave Quest"

* Not Participating + Boss + Rage Quests restyling

* party quest changes - invitedToQuest + button styles + no-items style + view details

* fix icons + rage value + colors

* fix duplicate key

* hide items label if 0 items found + hide pending damage if there is none + sidebar section margin + fix percent calculation 0 => 0%

* combine quest abandon / cancel to one call + hide begin if quest has already started + close modal if quest was canceled

* remove unused translate string

* allow leaving an accepted but inactive quest + disable leave when user is quest leader

* update "are you sure" questions - remove "doubleSureAbort" - add "sureLeaveInactive"

* sidebar margins + menu icon color

* refactored css rules

* improve some styles

* fix button spacing

* fix dropmenu with icon hover

* hide leave quest for leaders + fix quest buttons spacing

* add pending items label

* remove "X items found" label

* first round of fixes

* last v-once

* Update Quest Dialogs (#13112)

* new quest rewards panel + extract questPopover and itemWithLabel

* WIP: questInfo still not applying the row-height..

* split up start-quest-modal into select and detail modal - also rename the current quest-details to be the group-quest-details modal

* remove start-quest-modal from modal-scss

* update package-lock

* WIP before using the quest sidebar branch as a base

* move quest detail actions to the "new" details dialog

* quest details layout for owner / participant

* fix quest rewards - open details modal from sidebar

* apply quest-details dialog styles to the buyQuestModal one

* fix quest reward icons / popover / texts

* WIP back to quest selection

* fix lint

* merge selectQuestModal.vue with questDetailModal.vue + UI for the select quest

* fix margins / layout / labels

* fix quest detail + wip invitationListModal.vue / participantListModal.vue

* fix questmodal user label centered

* fix centered reward items + grouping items and adding a count-badge

* sort quests by AZ or quantity

* invitations modal

* remove console.info

* complete participantListModal.vue + extracted getClassName

* missed a file for getClassName extraction

* fix invitations

* select the actual quest on details

* fix margins on invite to party / start quest buttons

* replace buyQuestModal close button and title

* fix recursion due to the same name

* missing import

* sort quantity by highest first

* fix "Can't find a Quest to start" styles

* fix "your balance" padding

* fix quest collections / drop items

* fix member details in participants list

* fix quest info

* remove nullable because the build doesn't like it (on this file..)

* add questCompleted to the stories + fix getDropName

* replace quest-rewards in questCompleted.vue

* fix questCompleted.vue style

* delete obsolete components

* add missing spritesheets to storebook

* requested pr changes

* refactored fetchMember

* revert optional chaining

* fix merge conflicts

* fix rightSidebar hover colors - $scss var to css var

* overflow auto instead of scroll

* prevent wrapping of quest collections

* rollback to multi line quest items

* use min-width for the quest popover
2021-05-28 16:11:43 -05:00
Melior
33e7a378f7 Merge branch 'origin/develop' into Weblate. 2021-05-25 21:40:20 +02:00
Sabe Jones
9da2385391 Merge branch 'release' into develop 2021-05-25 14:38:47 -05:00
Melior
ff6fa14753 Translated using Weblate (Korean)
Currently translated at 90.5% (555 of 613 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ko/

Translated using Weblate (Spanish (Latin America))

Currently translated at 100.0% (2335 of 2335 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/es_419/

Translated using Weblate (Spanish (Latin America))

Currently translated at 100.0% (2335 of 2335 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/es_419/

Translated using Weblate (Spanish (Latin America))

Currently translated at 100.0% (188 of 188 strings)

Translation: Habitica/Character
Translate-URL: https://translate.habitica.com/projects/habitica/character/es_419/

Translated using Weblate (Danish)

Currently translated at 95.0% (58 of 61 strings)

Translation: Habitica/Messages
Translate-URL: https://translate.habitica.com/projects/habitica/messages/da/

Translated using Weblate (Danish)

Currently translated at 87.5% (7 of 8 strings)

Translation: Habitica/Inventory
Translate-URL: https://translate.habitica.com/projects/habitica/inventory/da/

Translated using Weblate (Danish)

Currently translated at 75.5% (1764 of 2335 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/da/

Translated using Weblate (Danish)

Currently translated at 96.4% (54 of 56 strings)

Translation: Habitica/Faq
Translate-URL: https://translate.habitica.com/projects/habitica/faq/da/

Translated using Weblate (Galician)

Currently translated at 16.3% (18 of 110 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/gl/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (732 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (732 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/pt_BR/

Translated using Weblate (Galician)

Currently translated at 100.0% (102 of 102 strings)

Translation: Habitica/Challenge
Translate-URL: https://translate.habitica.com/projects/habitica/challenge/gl/

Translated using Weblate (Spanish)

Currently translated at 100.0% (102 of 102 strings)

Translation: Habitica/Challenge
Translate-URL: https://translate.habitica.com/projects/habitica/challenge/es/

Translated using Weblate (Swedish)

Currently translated at 96.4% (355 of 368 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/sv/

Translated using Weblate (Korean)

Currently translated at 90.3% (554 of 613 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ko/

Translated using Weblate (French)

Currently translated at 98.9% (724 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/fr/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (2335 of 2335 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (2335 of 2335 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/pt_BR/

Translated using Weblate (Italian)

Currently translated at 100.0% (732 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/it/

Translated using Weblate (Italian)

Currently translated at 100.0% (368 of 368 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/it/

Translated using Weblate (Greek)

Currently translated at 71.6% (439 of 613 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/el/

Translated using Weblate (Spanish)

Currently translated at 100.0% (130 of 130 strings)

Translation: Habitica/Npc
Translate-URL: https://translate.habitica.com/projects/habitica/npc/es/

Translated using Weblate (Spanish)

Currently translated at 100.0% (202 of 202 strings)

Translation: Habitica/Limited
Translate-URL: https://translate.habitica.com/projects/habitica/limited/es/

Translated using Weblate (Spanish)

Currently translated at 88.5% (2067 of 2335 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/es/

Translated using Weblate (Spanish)

Currently translated at 98.3% (720 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/es/

Translated using Weblate (Spanish)

Currently translated at 99.3% (609 of 613 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/es/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (732 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/zh_Hans/

Translated using Weblate (Spanish)

Currently translated at 88.3% (2064 of 2335 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/es/

Translated using Weblate (Spanish)

Currently translated at 88.3% (2064 of 2335 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/es/

Translated using Weblate (Spanish)

Currently translated at 99.1% (608 of 613 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/es/

Translated using Weblate (Spanish)

Currently translated at 100.0% (56 of 56 strings)

Translation: Habitica/Spells
Translate-URL: https://translate.habitica.com/projects/habitica/spells/es/

Translated using Weblate (Spanish (Latin America))

Currently translated at 100.0% (130 of 130 strings)

Translation: Habitica/Npc
Translate-URL: https://translate.habitica.com/projects/habitica/npc/es_419/

Translated using Weblate (Spanish (Latin America))

Currently translated at 100.0% (368 of 368 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/es_419/

Translated using Weblate (Spanish)

Currently translated at 100.0% (202 of 202 strings)

Translation: Habitica/Limited
Translate-URL: https://translate.habitica.com/projects/habitica/limited/es/

Translated using Weblate (Dutch)

Currently translated at 100.0% (2335 of 2335 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/nl/

Translated using Weblate (English (United Kingdom))

Currently translated at 97.7% (599 of 613 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/en_GB/

Translated using Weblate (Spanish)

Currently translated at 100.0% (110 of 110 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/es/

Translated using Weblate (Swedish)

Currently translated at 85.9% (629 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/sv/

Translated using Weblate (Japanese)

Currently translated at 100.0% (732 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/ja/

Translated using Weblate (Swedish)

Currently translated at 67.2% (74 of 110 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/sv/

Translated using Weblate (Chinese (Traditional))

Currently translated at 94.6% (53 of 56 strings)

Translation: Habitica/Faq
Translate-URL: https://translate.habitica.com/projects/habitica/faq/zh_Hant/

Translated using Weblate (Chinese (Traditional))

Currently translated at 96.4% (591 of 613 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/zh_Hant/

Translated using Weblate (Chinese (Traditional))

Currently translated at 100.0% (186 of 186 strings)

Translation: Habitica/Settings
Translate-URL: https://translate.habitica.com/projects/habitica/settings/zh_Hant/

Translated using Weblate (Galician)

Currently translated at 79.2% (88 of 111 strings)

Translation: Habitica/Pets
Translate-URL: https://translate.habitica.com/projects/habitica/pets/gl/

Translated using Weblate (Spanish)

Currently translated at 100.0% (111 of 111 strings)

Translation: Habitica/Pets
Translate-URL: https://translate.habitica.com/projects/habitica/pets/es/

Translated using Weblate (Chinese (Traditional))

Currently translated at 92.9% (570 of 613 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/zh_Hant/

Translated using Weblate (Spanish)

Currently translated at 99.0% (109 of 110 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/es/

Translated using Weblate (Galician)

Currently translated at 60.3% (67 of 111 strings)

Translation: Habitica/Pets
Translate-URL: https://translate.habitica.com/projects/habitica/pets/gl/

Translated using Weblate (Galician)

Currently translated at 59.4% (66 of 111 strings)

Translation: Habitica/Pets
Translate-URL: https://translate.habitica.com/projects/habitica/pets/gl/

Translated using Weblate (Galician)

Currently translated at 64.8% (35 of 54 strings)

Translation: Habitica/Defaulttasks
Translate-URL: https://translate.habitica.com/projects/habitica/defaulttasks/gl/

Translated using Weblate (Galician)

Currently translated at 84.2% (310 of 368 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/gl/

Translated using Weblate (Spanish)

Currently translated at 100.0% (111 of 111 strings)

Translation: Habitica/Pets
Translate-URL: https://translate.habitica.com/projects/habitica/pets/es/

Translated using Weblate (Dutch)

Currently translated at 99.7% (2329 of 2335 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/nl/

Translated using Weblate (Korean)

Currently translated at 26.1% (47 of 180 strings)

Translation: Habitica/Front
Translate-URL: https://translate.habitica.com/projects/habitica/front/ko/

Translated using Weblate (Korean)

Currently translated at 90.2% (553 of 613 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ko/

Translated using Weblate (Korean)

Currently translated at 25.0% (45 of 180 strings)

Translation: Habitica/Front
Translate-URL: https://translate.habitica.com/projects/habitica/front/ko/

Translated using Weblate (French)

Currently translated at 100.0% (368 of 368 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/fr/

Translated using Weblate (Spanish (Latin America))

Currently translated at 99.2% (129 of 130 strings)

Translation: Habitica/Npc
Translate-URL: https://translate.habitica.com/projects/habitica/npc/es_419/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (85 of 85 strings)

Translation: Habitica/Quests
Translate-URL: https://translate.habitica.com/projects/habitica/quests/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (2335 of 2335 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/pt_BR/

Translated using Weblate (Swedish)

Currently translated at 85.7% (628 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/sv/

Translated using Weblate (Swedish)

Currently translated at 96.4% (355 of 368 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/sv/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (2335 of 2335 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (2335 of 2335 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/pt_BR/

Translated using Weblate (Spanish (Latin America))

Currently translated at 100.0% (732 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/es_419/

Translated using Weblate (Spanish (Latin America))

Currently translated at 99.2% (129 of 130 strings)

Translation: Habitica/Npc
Translate-URL: https://translate.habitica.com/projects/habitica/npc/es_419/

Translated using Weblate (Spanish (Latin America))

Currently translated at 99.0% (725 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/es_419/

Translated using Weblate (Spanish (Latin America))

Currently translated at 100.0% (202 of 202 strings)

Translation: Habitica/Limited
Translate-URL: https://translate.habitica.com/projects/habitica/limited/es_419/

Translated using Weblate (Spanish (Latin America))

Currently translated at 99.4% (366 of 368 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/es_419/

Translated using Weblate (German)

Currently translated at 98.4% (2299 of 2335 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/de/

Translated using Weblate (German)

Currently translated at 98.4% (2299 of 2335 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/de/

Translated using Weblate (Russian)

Currently translated at 100.0% (180 of 180 strings)

Translation: Habitica/Front
Translate-URL: https://translate.habitica.com/projects/habitica/front/ru/

Translated using Weblate (Russian)

Currently translated at 100.0% (732 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/ru/

Translated using Weblate (Japanese)

Currently translated at 100.0% (732 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/ja/

Translated using Weblate (German)

Currently translated at 100.0% (732 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/de/

Translated using Weblate (Japanese)

Currently translated at 100.0% (368 of 368 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/ja/

Translated using Weblate (German)

Currently translated at 100.0% (368 of 368 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/de/

Translated using Weblate (German)

Currently translated at 100.0% (188 of 188 strings)

Translation: Habitica/Character
Translate-URL: https://translate.habitica.com/projects/habitica/character/de/

Translated using Weblate (German)

Currently translated at 100.0% (613 of 613 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/de/

Translated using Weblate (German)

Currently translated at 98.4% (2298 of 2335 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/de/

Translated using Weblate (German)

Currently translated at 98.4% (2298 of 2335 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/de/

Translated using Weblate (German)

Currently translated at 98.4% (2298 of 2335 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/de/

Translated using Weblate (German)

Currently translated at 98.4% (2298 of 2335 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/de/

Translated using Weblate (German)

Currently translated at 98.3% (2297 of 2335 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/de/

Translated using Weblate (German)

Currently translated at 100.0% (188 of 188 strings)

Translation: Habitica/Character
Translate-URL: https://translate.habitica.com/projects/habitica/character/de/

Translated using Weblate (German)

Currently translated at 100.0% (56 of 56 strings)

Translation: Habitica/Spells
Translate-URL: https://translate.habitica.com/projects/habitica/spells/de/

Translated using Weblate (Russian)

Currently translated at 100.0% (186 of 186 strings)

Translation: Habitica/Settings
Translate-URL: https://translate.habitica.com/projects/habitica/settings/ru/

Translated using Weblate (German)

Currently translated at 100.0% (186 of 186 strings)

Translation: Habitica/Settings
Translate-URL: https://translate.habitica.com/projects/habitica/settings/de/

Translated using Weblate (German)

Currently translated at 99.4% (185 of 186 strings)

Translation: Habitica/Settings
Translate-URL: https://translate.habitica.com/projects/habitica/settings/de/

Translated using Weblate (German)

Currently translated at 99.4% (185 of 186 strings)

Translation: Habitica/Settings
Translate-URL: https://translate.habitica.com/projects/habitica/settings/de/

Translated using Weblate (Korean)

Currently translated at 84.1% (516 of 613 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ko/

Translated using Weblate (German)

Currently translated at 98.2% (2295 of 2335 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/de/

Translated using Weblate (German)

Currently translated at 99.1% (726 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/de/

Translated using Weblate (German)

Currently translated at 97.8% (182 of 186 strings)

Translation: Habitica/Settings
Translate-URL: https://translate.habitica.com/projects/habitica/settings/de/

Translated using Weblate (German)

Currently translated at 97.3% (181 of 186 strings)

Translation: Habitica/Settings
Translate-URL: https://translate.habitica.com/projects/habitica/settings/de/

Translated using Weblate (Spanish (Latin America))

Currently translated at 100.0% (186 of 186 strings)

Translation: Habitica/Subscriber
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/es_419/

Translated using Weblate (Italian)

Currently translated at 100.0% (130 of 130 strings)

Translation: Habitica/Npc
Translate-URL: https://translate.habitica.com/projects/habitica/npc/it/

Translated using Weblate (Spanish (Latin America))

Currently translated at 100.0% (203 of 203 strings)

Translation: Habitica/Generic
Translate-URL: https://translate.habitica.com/projects/habitica/generic/es_419/

Translated using Weblate (Russian)

Currently translated at 100.0% (2335 of 2335 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/ru/

Translated using Weblate (German)

Currently translated at 97.2% (2271 of 2335 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/de/

Translated using Weblate (Russian)

Currently translated at 100.0% (732 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/ru/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (732 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/pt_BR/

Translated using Weblate (German)

Currently translated at 99.8% (612 of 613 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/de/

Translated using Weblate (Russian)

Currently translated at 100.0% (732 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/ru/

Translated using Weblate (Dutch)

Currently translated at 100.0% (368 of 368 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/nl/

Translated using Weblate (Russian)

Currently translated at 100.0% (732 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/ru/

Translated using Weblate (Russian)

Currently translated at 100.0% (368 of 368 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/ru/

Translated using Weblate (English (Pirate))

Currently translated at 100.0% (85 of 85 strings)

Translation: Habitica/Quests
Translate-URL: https://translate.habitica.com/projects/habitica/quests/en@pirate/

Translated using Weblate (English (Pirate))

Currently translated at 100.0% (130 of 130 strings)

Translation: Habitica/Npc
Translate-URL: https://translate.habitica.com/projects/habitica/npc/en@pirate/

Translated using Weblate (English (Pirate))

Currently translated at 100.0% (368 of 368 strings)

Translation: Habitica/Groups
Translate-URL: https://translate.habitica.com/projects/habitica/groups/en@pirate/

Translated using Weblate (English (Pirate))

Currently translated at 100.0% (203 of 203 strings)

Translation: Habitica/Generic
Translate-URL: https://translate.habitica.com/projects/habitica/generic/en@pirate/

Translated using Weblate (English (Pirate))

Currently translated at 100.0% (56 of 56 strings)

Translation: Habitica/Faq
Translate-URL: https://translate.habitica.com/projects/habitica/faq/en@pirate/

Translated using Weblate (Russian)

Currently translated at 99.0% (725 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/ru/

Translated using Weblate (English (Pirate))

Currently translated at 100.0% (123 of 123 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/en@pirate/

Translated using Weblate (English (Pirate))

Currently translated at 100.0% (102 of 102 strings)

Translation: Habitica/Challenge
Translate-URL: https://translate.habitica.com/projects/habitica/challenge/en@pirate/

Translated using Weblate (English (Pirate))

Currently translated at 100.0% (181 of 181 strings)

Translation: Habitica/Settings
Translate-URL: https://translate.habitica.com/projects/habitica/settings/en@pirate/

Translated using Weblate (English (Pirate))

Currently translated at 100.0% (111 of 111 strings)

Translation: Habitica/Pets
Translate-URL: https://translate.habitica.com/projects/habitica/pets/en@pirate/

Translated using Weblate (English (Pirate))

Currently translated at 100.0% (61 of 61 strings)

Translation: Habitica/Messages
Translate-URL: https://translate.habitica.com/projects/habitica/messages/en@pirate/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (732 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/pt_BR/

Translated using Weblate (English (Pirate))

Currently translated at 100.0% (732 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/en@pirate/

Translated using Weblate (English (Pirate))

Currently translated at 100.0% (368 of 368 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/en@pirate/

Translated using Weblate (Arabic)

Currently translated at 0.5% (1 of 180 strings)

Translation: Habitica/Front
Translate-URL: https://translate.habitica.com/projects/habitica/front/ar/

Translated using Weblate (Chinese (Simplified))

Currently translated at 99.5% (729 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/zh_Hans/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 99.5% (729 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 99.5% (729 of 732 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/pt_BR/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (368 of 368 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/zh_Hans/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (368 of 368 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/pt_BR/
2021-05-25 21:28:07 +02:00
Sabe Jones
6d57ab668f Merge branch 'release' into develop 2021-05-19 14:28:17 -05:00
Melior
eb199cb32b Merge branch 'origin/develop' into Weblate. 2021-05-18 22:24:21 +02:00
Sabe Jones
b6829fbf53 Merge branch 'release' into develop 2021-05-18 15:21:21 -05:00
Helcostr
10e18a2051 Fix toLocalString language key - Fixes #13255 (#13258)
* Fix toLocalString language key
* We use underscore, they use dash
* Strip beyond @ symbol to allow custom languages
* Catch null (hinted in #13255)

* Use empty array instead of empty string

Documentation says to pass `undefined` or an array. 
An empty string is not supported upon closer inspection.
Recommended not to pass `undefined` as it might cause weird quirks.
People recommend using empty array.

* Add number l10n to another area
_Originally posted by @citrusella in https://github.com/HabitRPG/habitica/issues/9470#issuecomment-842279146_
2021-05-18 11:55:21 -05:00
Melior
61c70122bf Translated using Weblate (Korean)
Currently translated at 84.0% (515 of 613 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ko/

Translated using Weblate (Swedish)

Currently translated at 90.2% (121 of 134 strings)

Translation: Habitica/Tasks
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/sv/

Translated using Weblate (Korean)

Currently translated at 22.2% (40 of 180 strings)

Translation: Habitica/Front
Translate-URL: https://translate.habitica.com/projects/habitica/front/ko/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (85 of 85 strings)

Translation: Habitica/Quests
Translate-URL: https://translate.habitica.com/projects/habitica/quests/pt_BR/

Translated using Weblate (Spanish (Latin America))

Currently translated at 100.0% (724 of 724 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/es_419/

Translated using Weblate (Spanish (Latin America))

Currently translated at 100.0% (130 of 130 strings)

Translation: Habitica/Npc
Translate-URL: https://translate.habitica.com/projects/habitica/npc/es_419/

Translated using Weblate (Spanish (Latin America))

Currently translated at 100.0% (2335 of 2335 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/es_419/

Translated using Weblate (Dutch)

Currently translated at 99.7% (2328 of 2335 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/nl/

Translated using Weblate (English (Pirate))

Currently translated at 100.0% (56 of 56 strings)

Translation: Habitica/Spells
Translate-URL: https://translate.habitica.com/projects/habitica/spells/en@pirate/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (85 of 85 strings)

Translation: Habitica/Quests
Translate-URL: https://translate.habitica.com/projects/habitica/quests/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (85 of 85 strings)

Translation: Habitica/Quests
Translate-URL: https://translate.habitica.com/projects/habitica/quests/pt_BR/

Translated using Weblate (English (Pirate))

Currently translated at 100.0% (130 of 130 strings)

Translation: Habitica/Npc
Translate-URL: https://translate.habitica.com/projects/habitica/npc/en@pirate/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (368 of 368 strings)

Translation: Habitica/Groups
Translate-URL: https://translate.habitica.com/projects/habitica/groups/pt_BR/

Translated using Weblate (English (Pirate))

Currently translated at 100.0% (368 of 368 strings)

Translation: Habitica/Groups
Translate-URL: https://translate.habitica.com/projects/habitica/groups/en@pirate/

Translated using Weblate (Dutch)

Currently translated at 99.5% (2325 of 2335 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/nl/

Translated using Weblate (French)

Currently translated at 100.0% (2335 of 2335 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/fr/

Translated using Weblate (English (Pirate))

Currently translated at 100.0% (2335 of 2335 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/en@pirate/

Translated using Weblate (French)

Currently translated at 100.0% (724 of 724 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/fr/

Translated using Weblate (English (Pirate))

Currently translated at 100.0% (724 of 724 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/en@pirate/

Translated using Weblate (English (Pirate))

Currently translated at 100.0% (367 of 367 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/en@pirate/

Translated using Weblate (English (Pirate))

Currently translated at 100.0% (110 of 110 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/en@pirate/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (85 of 85 strings)

Translation: Habitica/Quests
Translate-URL: https://translate.habitica.com/projects/habitica/quests/pt_BR/

Translated using Weblate (Korean)

Currently translated at 21.6% (39 of 180 strings)

Translation: Habitica/Front
Translate-URL: https://translate.habitica.com/projects/habitica/front/ko/

Translated using Weblate (Chinese (Traditional))

Currently translated at 87.5% (7 of 8 strings)

Translation: Habitica/Inventory
Translate-URL: https://translate.habitica.com/projects/habitica/inventory/zh_Hant/

Translated using Weblate (Chinese (Traditional))

Currently translated at 91.2% (2131 of 2335 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/zh_Hant/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (2335 of 2335 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/zh_Hans/

Translated using Weblate (Chinese (Traditional))

Currently translated at 96.8% (701 of 724 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/zh_Hant/

Translated using Weblate (Chinese (Traditional))

Currently translated at 98.0% (360 of 367 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/zh_Hant/

Translated using Weblate (Chinese (Traditional))

Currently translated at 100.0% (110 of 110 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/zh_Hant/

Translated using Weblate (Chinese (Traditional))

Currently translated at 96.8% (701 of 724 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/zh_Hant/

Translated using Weblate (Korean)

Currently translated at 21.1% (38 of 180 strings)

Translation: Habitica/Front
Translate-URL: https://translate.habitica.com/projects/habitica/front/ko/

Translated using Weblate (Russian)

Currently translated at 99.5% (2324 of 2335 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/ru/

Translated using Weblate (Russian)

Currently translated at 99.5% (2324 of 2335 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/ru/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (2335 of 2335 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/pt_BR/

Translated using Weblate (Dutch)

Currently translated at 99.3% (2319 of 2335 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/nl/

Translated using Weblate (Japanese)

Currently translated at 100.0% (2335 of 2335 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/ja/

Translated using Weblate (Dutch)

Currently translated at 99.3% (2319 of 2335 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/nl/

Translated using Weblate (Italian)

Currently translated at 100.0% (2335 of 2335 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/it/

Translated using Weblate (Swedish)

Currently translated at 86.1% (624 of 724 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/sv/
2021-05-18 18:44:51 +02:00
Melior
2fad6cbdbb Merge branch 'origin/develop' into Weblate. 2021-05-13 22:14:52 +02:00
Sabe Jones
9f17c3eac4 Merge branch 'release' into develop 2021-05-13 15:09:38 -05:00
Melior
577d63b09d Translated using Weblate (Korean)
Currently translated at 20.5% (37 of 180 strings)

Translation: Habitica/Front
Translate-URL: https://translate.habitica.com/projects/habitica/front/ko/

Translated using Weblate (Swedish)

Currently translated at 90.2% (121 of 134 strings)

Translation: Habitica/Tasks
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/sv/

Translated using Weblate (English (Pirate))

Currently translated at 100.0% (186 of 186 strings)

Translation: Habitica/Subscriber
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/en@pirate/

Translated using Weblate (French)

Currently translated at 100.0% (56 of 56 strings)

Translation: Habitica/Spells
Translate-URL: https://translate.habitica.com/projects/habitica/spells/fr/

Translated using Weblate (French)

Currently translated at 100.0% (85 of 85 strings)

Translation: Habitica/Quests
Translate-URL: https://translate.habitica.com/projects/habitica/quests/fr/

Translated using Weblate (English (Pirate))

Currently translated at 100.0% (111 of 111 strings)

Translation: Habitica/Pets
Translate-URL: https://translate.habitica.com/projects/habitica/pets/en@pirate/

Translated using Weblate (English (Pirate))

Currently translated at 100.0% (61 of 61 strings)

Translation: Habitica/Messages
Translate-URL: https://translate.habitica.com/projects/habitica/messages/en@pirate/

Translated using Weblate (French)

Currently translated at 100.0% (202 of 202 strings)

Translation: Habitica/Limited
Translate-URL: https://translate.habitica.com/projects/habitica/limited/fr/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 99.7% (2330 of 2335 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/pt_BR/

Translated using Weblate (French)

Currently translated at 100.0% (2335 of 2335 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/fr/

Translated using Weblate (French)

Currently translated at 100.0% (724 of 724 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/fr/

Translated using Weblate (English (Pirate))

Currently translated at 100.0% (724 of 724 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/en@pirate/

Translated using Weblate (French)

Currently translated at 100.0% (122 of 122 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/fr/

Translated using Weblate (Swedish)

Currently translated at 100.0% (188 of 188 strings)

Translation: Habitica/Character
Translate-URL: https://translate.habitica.com/projects/habitica/character/sv/

Translated using Weblate (English (Pirate))

Currently translated at 100.0% (367 of 367 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/en@pirate/

Translated using Weblate (French)

Currently translated at 100.0% (188 of 188 strings)

Translation: Habitica/Character
Translate-URL: https://translate.habitica.com/projects/habitica/character/fr/

Translated using Weblate (French)

Currently translated at 100.0% (613 of 613 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/fr/

Translated using Weblate (French)

Currently translated at 100.0% (186 of 186 strings)

Translation: Habitica/Settings
Translate-URL: https://translate.habitica.com/projects/habitica/settings/fr/

Translated using Weblate (English (Pirate))

Currently translated at 100.0% (181 of 181 strings)

Translation: Habitica/Settings
Translate-URL: https://translate.habitica.com/projects/habitica/settings/en@pirate/

Translated using Weblate (French)

Currently translated at 100.0% (724 of 724 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/fr/

Translated using Weblate (Korean)

Currently translated at 20.0% (36 of 180 strings)

Translation: Habitica/Front
Translate-URL: https://translate.habitica.com/projects/habitica/front/ko/

Translated using Weblate (Serbian)

Currently translated at 68.5% (420 of 613 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/sr/

Translated using Weblate (Serbian)

Currently translated at 30.9% (34 of 110 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/sr/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (202 of 202 strings)

Translation: Habitica/Limited
Translate-URL: https://translate.habitica.com/projects/habitica/limited/pt_BR/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (2335 of 2335 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/zh_Hans/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (613 of 613 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/zh_Hans/

Translated using Weblate (Dutch)

Currently translated at 100.0% (613 of 613 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/nl/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (186 of 186 strings)

Translation: Habitica/Settings
Translate-URL: https://translate.habitica.com/projects/habitica/settings/zh_Hans/
2021-05-13 20:09:13 +02:00
Melior
05a944fbde Merge branch 'origin/develop' into Weblate. 2021-05-11 23:10:57 +02:00
Sabe Jones
91ed73293b Merge branch 'release' into develop 2021-05-11 16:08:28 -05:00
Melior
d2c66a201b Translated using Weblate (Korean)
Currently translated at 19.4% (35 of 180 strings)

Translation: Habitica/Front
Translate-URL: https://translate.habitica.com/projects/habitica/front/ko/

Translated using Weblate (Spanish (Latin America))

Currently translated at 100.0% (613 of 613 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/es_419/

Translated using Weblate (Spanish (Latin America))

Currently translated at 100.0% (186 of 186 strings)

Translation: Habitica/Settings
Translate-URL: https://translate.habitica.com/projects/habitica/settings/es_419/

Translated using Weblate (Dutch)

Currently translated at 99.0% (607 of 613 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/nl/

Translated using Weblate (Korean)

Currently translated at 18.8% (34 of 180 strings)

Translation: Habitica/Front
Translate-URL: https://translate.habitica.com/projects/habitica/front/ko/

Translated using Weblate (Swedish)

Currently translated at 90.5% (77 of 85 strings)

Translation: Habitica/Quests
Translate-URL: https://translate.habitica.com/projects/habitica/quests/sv/

Translated using Weblate (Swedish)

Currently translated at 86.9% (113 of 130 strings)

Translation: Habitica/Npc
Translate-URL: https://translate.habitica.com/projects/habitica/npc/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (2 of 2 strings)

Translation: Habitica/Noscript
Translate-URL: https://translate.habitica.com/projects/habitica/noscript/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (8 of 8 strings)

Translation: Habitica/Inventory
Translate-URL: https://translate.habitica.com/projects/habitica/inventory/sv/

Translated using Weblate (Swedish)

Currently translated at 79.1% (1849 of 2335 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (203 of 203 strings)

Translation: Habitica/Generic
Translate-URL: https://translate.habitica.com/projects/habitica/generic/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (188 of 188 strings)

Translation: Habitica/Character
Translate-URL: https://translate.habitica.com/projects/habitica/character/sv/

Translated using Weblate (Swedish)

Currently translated at 88.0% (540 of 613 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/sv/

Translated using Weblate (Dutch)

Currently translated at 100.0% (186 of 186 strings)

Translation: Habitica/Settings
Translate-URL: https://translate.habitica.com/projects/habitica/settings/nl/

Translated using Weblate (Swedish)

Currently translated at 87.5% (7 of 8 strings)

Translation: Habitica/Inventory
Translate-URL: https://translate.habitica.com/projects/habitica/inventory/sv/

Translated using Weblate (Swedish)

Currently translated at 87.5% (7 of 8 strings)

Translation: Habitica/Inventory
Translate-URL: https://translate.habitica.com/projects/habitica/inventory/sv/

Translated using Weblate (Swedish)

Currently translated at 88.0% (118 of 134 strings)

Translation: Habitica/Tasks
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/sv/

Translated using Weblate (Swedish)

Currently translated at 79.0% (147 of 186 strings)

Translation: Habitica/Subscriber
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/sv/

Translated using Weblate (Romanian)

Currently translated at 87.6% (163 of 186 strings)

Translation: Habitica/Subscriber
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/ro/

Translated using Weblate (Swedish)

Currently translated at 94.6% (53 of 56 strings)

Translation: Habitica/Spells
Translate-URL: https://translate.habitica.com/projects/habitica/spells/sv/

Translated using Weblate (Dutch)

Currently translated at 100.0% (56 of 56 strings)

Translation: Habitica/Spells
Translate-URL: https://translate.habitica.com/projects/habitica/spells/nl/

Translated using Weblate (Swedish)

Currently translated at 90.0% (100 of 111 strings)

Translation: Habitica/Pets
Translate-URL: https://translate.habitica.com/projects/habitica/pets/sv/

Translated using Weblate (Swedish)

Currently translated at 86.9% (113 of 130 strings)

Translation: Habitica/Npc
Translate-URL: https://translate.habitica.com/projects/habitica/npc/sv/

Translated using Weblate (Swedish)

Currently translated at 85.2% (52 of 61 strings)

Translation: Habitica/Messages
Translate-URL: https://translate.habitica.com/projects/habitica/messages/sv/

Translated using Weblate (Swedish)

Currently translated at 79.1% (159 of 201 strings)

Translation: Habitica/Limited
Translate-URL: https://translate.habitica.com/projects/habitica/limited/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (23 of 23 strings)

Translation: Habitica/Loginincentives
Translate-URL: https://translate.habitica.com/projects/habitica/loginincentives/sv/

Translated using Weblate (Swedish)

Currently translated at 62.5% (5 of 8 strings)

Translation: Habitica/Inventory
Translate-URL: https://translate.habitica.com/projects/habitica/inventory/sv/

Translated using Weblate (Swedish)

Currently translated at 78.9% (1844 of 2335 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/sv/

Translated using Weblate (Swedish)

Currently translated at 73.2% (41 of 56 strings)

Translation: Habitica/Faq
Translate-URL: https://translate.habitica.com/projects/habitica/faq/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (15 of 15 strings)

Translation: Habitica/Death
Translate-URL: https://translate.habitica.com/projects/habitica/death/sv/

Translated using Weblate (Swedish)

Currently translated at 86.1% (624 of 724 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/sv/

Translated using Weblate (Romanian)

Currently translated at 95.8% (694 of 724 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/ro/

Translated using Weblate (Swedish)

Currently translated at 96.4% (354 of 367 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/sv/

Translated using Weblate (Swedish)

Currently translated at 99.4% (187 of 188 strings)

Translation: Habitica/Character
Translate-URL: https://translate.habitica.com/projects/habitica/character/sv/

Translated using Weblate (Swedish)

Currently translated at 66.3% (73 of 110 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/sv/

Translated using Weblate (Japanese)

Currently translated at 100.0% (186 of 186 strings)

Translation: Habitica/Settings
Translate-URL: https://translate.habitica.com/projects/habitica/settings/ja/

Translated using Weblate (Romanian)

Currently translated at 95.8% (694 of 724 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/ro/

Translated using Weblate (Swedish)

Currently translated at 79.0% (147 of 186 strings)

Translation: Habitica/Subscriber
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/sv/

Translated using Weblate (Romanian)

Currently translated at 100.0% (85 of 85 strings)

Translation: Habitica/Quests
Translate-URL: https://translate.habitica.com/projects/habitica/quests/ro/

Translated using Weblate (Romanian)

Currently translated at 100.0% (111 of 111 strings)

Translation: Habitica/Pets
Translate-URL: https://translate.habitica.com/projects/habitica/pets/ro/

Translated using Weblate (Romanian)

Currently translated at 100.0% (130 of 130 strings)

Translation: Habitica/Npc
Translate-URL: https://translate.habitica.com/projects/habitica/npc/ro/

Translated using Weblate (Romanian)

Currently translated at 85.6% (173 of 202 strings)

Translation: Habitica/Limited
Translate-URL: https://translate.habitica.com/projects/habitica/limited/ro/

Translated using Weblate (Romanian)

Currently translated at 95.3% (352 of 369 strings)

Translation: Habitica/Groups
Translate-URL: https://translate.habitica.com/projects/habitica/groups/ro/

Translated using Weblate (Swedish)

Currently translated at 78.9% (1844 of 2335 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/sv/

Translated using Weblate (Russian)

Currently translated at 100.0% (2335 of 2335 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/ru/

Translated using Weblate (Romanian)

Currently translated at 100.0% (180 of 180 strings)

Translation: Habitica/Front
Translate-URL: https://translate.habitica.com/projects/habitica/front/ro/

Translated using Weblate (Romanian)

Currently translated at 100.0% (56 of 56 strings)

Translation: Habitica/Faq
Translate-URL: https://translate.habitica.com/projects/habitica/faq/ro/

Translated using Weblate (Romanian)

Currently translated at 95.8% (694 of 724 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/ro/

Translated using Weblate (Japanese)

Currently translated at 100.0% (724 of 724 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/ja/

Translated using Weblate (Romanian)

Currently translated at 100.0% (122 of 122 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/ro/

Translated using Weblate (Romanian)

Currently translated at 72.7% (80 of 110 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/ro/

Translated using Weblate (Korean)

Currently translated at 83.8% (514 of 613 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ko/

Translated using Weblate (Korean)

Currently translated at 83.5% (512 of 613 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ko/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 99.7% (2330 of 2335 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/pt_BR/

Translated using Weblate (English (Pirate))

Currently translated at 100.0% (181 of 181 strings)

Translation: Habitica/Front
Translate-URL: https://translate.habitica.com/projects/habitica/front/en@pirate/

Translated using Weblate (Romanian)

Currently translated at 75.0% (42 of 56 strings)

Translation: Habitica/Faq
Translate-URL: https://translate.habitica.com/projects/habitica/faq/ro/

Translated using Weblate (English (Pirate))

Currently translated at 100.0% (47 of 47 strings)

Translation: Habitica/Contrib
Translate-URL: https://translate.habitica.com/projects/habitica/contrib/en@pirate/

Translated using Weblate (Japanese)

Currently translated at 100.0% (613 of 613 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ja/

Translated using Weblate (Romanian)

Currently translated at 100.0% (134 of 134 strings)

Translation: Habitica/Tasks
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/ro/

Translated using Weblate (Romanian)

Currently translated at 100.0% (56 of 56 strings)

Translation: Habitica/Spells
Translate-URL: https://translate.habitica.com/projects/habitica/spells/ro/

Translated using Weblate (Japanese)

Currently translated at 100.0% (8 of 8 strings)

Translation: Habitica/Overview
Translate-URL: https://translate.habitica.com/projects/habitica/overview/ja/

Translated using Weblate (Romanian)

Currently translated at 100.0% (61 of 61 strings)

Translation: Habitica/Messages
Translate-URL: https://translate.habitica.com/projects/habitica/messages/ro/

Translated using Weblate (Romanian)

Currently translated at 100.0% (8 of 8 strings)

Translation: Habitica/Inventory
Translate-URL: https://translate.habitica.com/projects/habitica/inventory/ro/

Translated using Weblate (Swedish)

Currently translated at 78.8% (1841 of 2335 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/sv/

Translated using Weblate (Japanese)

Currently translated at 100.0% (203 of 203 strings)

Translation: Habitica/Generic
Translate-URL: https://translate.habitica.com/projects/habitica/generic/ja/

Translated using Weblate (Romanian)

Currently translated at 75.0% (42 of 56 strings)

Translation: Habitica/Faq
Translate-URL: https://translate.habitica.com/projects/habitica/faq/ro/

Translated using Weblate (Romanian)

Currently translated at 99.1% (121 of 122 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/ro/

Translated using Weblate (Romanian)

Currently translated at 100.0% (47 of 47 strings)

Translation: Habitica/Contrib
Translate-URL: https://translate.habitica.com/projects/habitica/contrib/ro/

Translated using Weblate (Romanian)

Currently translated at 100.0% (188 of 188 strings)

Translation: Habitica/Character
Translate-URL: https://translate.habitica.com/projects/habitica/character/ro/

Translated using Weblate (Romanian)

Currently translated at 100.0% (188 of 188 strings)

Translation: Habitica/Character
Translate-URL: https://translate.habitica.com/projects/habitica/character/ro/

Translated using Weblate (Romanian)

Currently translated at 100.0% (102 of 102 strings)

Translation: Habitica/Challenge
Translate-URL: https://translate.habitica.com/projects/habitica/challenge/ro/

Translated using Weblate (Swedish)

Currently translated at 87.1% (534 of 613 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/sv/

Translated using Weblate (Romanian)

Currently translated at 100.0% (186 of 186 strings)

Translation: Habitica/Settings
Translate-URL: https://translate.habitica.com/projects/habitica/settings/ro/

Translated using Weblate (Japanese)

Currently translated at 97.8% (182 of 186 strings)

Translation: Habitica/Settings
Translate-URL: https://translate.habitica.com/projects/habitica/settings/ja/

Translated using Weblate (Romanian)

Currently translated at 100.0% (47 of 47 strings)

Translation: Habitica/Contrib
Translate-URL: https://translate.habitica.com/projects/habitica/contrib/ro/

Translated using Weblate (Romanian)

Currently translated at 100.0% (47 of 47 strings)

Translation: Habitica/Contrib
Translate-URL: https://translate.habitica.com/projects/habitica/contrib/ro/

Translated using Weblate (Japanese)

Currently translated at 100.0% (2335 of 2335 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/ja/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 99.7% (2329 of 2335 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/pt_BR/

Translated using Weblate (Japanese)

Currently translated at 99.8% (2332 of 2335 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/ja/

Translated using Weblate (Korean)

Currently translated at 17.7% (32 of 180 strings)

Translation: Habitica/Front
Translate-URL: https://translate.habitica.com/projects/habitica/front/ko/
2021-05-11 22:57:47 +02:00
10466 changed files with 102224 additions and 87556 deletions

View File

@@ -8,10 +8,10 @@ website/client/
website/common/transpiled-babel/
dist/
dist-client/
apidoc_build/
apidoc/html/
content_cache/
i18n_cache/
node_modules/
# Old migrations, disabled
migrations/archive/*
migrations/archive/*

View File

@@ -4,7 +4,7 @@
# Pull Request
[Please see these instructions for adding a pull request](http://habitica.fandom.com/wiki/Using_Your_Local_Install_to_Modify_Habitica%27s_Website_and_API)
[Please see these instructions for adding a pull request](https://habitica.fandom.com/wiki/Using_Your_Local_Install_to_Modify_Habitica's_Website_and_API)
# Requesting a feature
@@ -12,4 +12,4 @@ Habitica uses [this Google form](https://docs.google.com/forms/d/e/1FAIpQLScPhrw
# Contributing Code
See [Contributing to Habitica](http://habitica.fandom.com/wiki/Contributing_to_Habitica#Coders_.28Web_.26_Mobile.29)
See [Contributing to Habitica](https://habitica.fandom.com/wiki/Contributing_to_Habitica#Coders_.28Web_.26_Mobile.29)

View File

@@ -1,20 +1,19 @@
[//]: # (Before logging this issue, please post to the Report a Bug guild from the Habitica website's Help menu. Most bugs can be handled quickly there. If a GitHub issue is needed, you will be advised of that by a moderator or staff member -- a player with a dark blue or purple name. It is recommended that you don't create a new issue unless advised to.)
[//]: # (Before logging this issue, please contact site administrators from "Report a Bug" in the Habitica website's Help menu. If a GitHub issue is needed, staff will let you know and will most likely log one on your behalf. It is recommended that you don't create a new issue unless advised to.)
[//]: # (Bugs in the mobile apps can also be reported there.)
[//]: # (Bugs in the mobile apps can be reported via Menu > About > Support.)
[//]: # (If you have a feature request, use "Help > Request a Feature", not GitHub or the Report a Bug guild.)
[//]: # (If you have a feature request, use "Help > Request a Feature", not GitHub.)
[//]: # (For more guidelines see https://github.com/HabitRPG/habitica/issues/2760)
[//]: # (Fill out relevant information - UUID is found from the Habitia website at User Icon > Settings > API)
[//]: # (Fill out relevant information - UUID is found from the Habitica website at User Icon > Settings > API)
### General Info
* UUID:
* Browser:
* OS:
* UUID:
* Browser:
* OS:
### Description
[//]: # (Describe bug in detail here. Include screenshots if helpful.)
#### Console Errors
[//]: # (Include any JavaScript console errors here.)

View File

@@ -1,4 +1,4 @@
[//]: # (Note: See http://habitica.fandom.com/wiki/Using_Your_Local_Install_to_Modify_Habitica%27s_Website_and_API for more info)
[//]: # (Note: See https://habitica.fandom.com/wiki/Using_Your_Local_Install_to_Modify_Habitica%27s_Website_and_API for more info)
[//]: # (Put Issue # here, if applicable. This will automatically close the issue if your PR is merged in)
Fixes put_#_and_issue_number_here
@@ -11,4 +11,4 @@ Fixes put_#_and_issue_number_here
[//]: # (Put User ID in here - found on the Habitica website at User Icon > Settings > API)
----
UUID:
UUID:

View File

@@ -219,4 +219,25 @@ jobs:
CI: true
NODE_ENV: test
- run: npm run test:unit
working-directory: ./website/client
working-directory: ./website/client
production-build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [14.x]
steps:
- uses: actions/checkout@v1
with:
fetch-depth: 1
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- run: cp config.json.example config.json
- name: npm install
run: |
npm install
env:
CI: true
NODE_ENV: production

2
.gitignore vendored
View File

@@ -5,7 +5,7 @@ website/common/transpiled-babel/
node_modules
content_cache
i18n_cache
apidoc_build
apidoc/html
*.swp
.idea*
config.json

3
.gitmodules vendored Normal file
View File

@@ -0,0 +1,3 @@
[submodule "habitica-images"]
path = habitica-images
url = https://github.com/HabitRPG/habitica-images

7
.slugignore Normal file
View File

@@ -0,0 +1,7 @@
# Files not included in deployments to Heroku, to save on file size.
/habitica-images
/test
/migrations
/scripts
/database_reports

View File

@@ -4,11 +4,11 @@ Habitica ![Build Status](https://github.com/HabitRPG/habitica/workflows/Test/bad
[Habitica](https://habitica.com) is an open source habit building program which treats your life like a Role Playing Game. Level up as you succeed, lose HP as you fail, earn money to buy weapons and armor.
**We need more programmers!** Your assistance will be greatly appreciated. The wiki pages below and the additional pages they link to will tell you how to get started on contributing code and where you can go to seek further help or ask questions:
* [Guidance for Blacksmiths](http://habitica.fandom.com/wiki/Guidance_for_Blacksmiths) - an introduction to the technologies used and how the software is organized.
* [Setting up Habitica Locally](http://habitica.fandom.com/wiki/Setting_up_Habitica_Locally) - how to set up a local install of Habitica for development and testing on various platforms.
* [Guidance for Blacksmiths](https://habitica.fandom.com/wiki/Guidance_for_Blacksmiths) - an introduction to the technologies used and how the software is organized.
* [Setting up Habitica Locally](https://habitica.fandom.com/wiki/Setting_up_Habitica_Locally) - how to set up a local install of Habitica for development and testing on various platforms.
Habitica's code is licensed as described at https://github.com/HabitRPG/habitica/blob/develop/LICENSE
**Found a bug?** Please report it in the [Report a Bug guild](https://habitica.com/groups/guild/a29da26b-37de-4a71-b0c6-48e72a900dac) rather than creating an issue (an admin will advise you if a new issue is necessary; usually it is not).
**Found a bug?** Please report it to [admin email](mailto:admin@habitica.com) rather than creating an issue (an admin will advise you if a new issue is necessary; usually it is not).
**Have any questions about Habitica or its community?** See the links in the [habitica.com](https://habitica.com) website's Help menu or drop in to [Guilds > Tavern Chat](https://habitica.com/groups/tavern) to ask questions or chat socially!

View File

@@ -2,6 +2,7 @@
"name": "Habitica V3 API Documentation",
"title": "Habitica",
"url": "https://habitica.com",
"sampleUrl": null,
"header": {
"title": "Introduction",
"filename": "apidoc/header.md"

View File

@@ -3,6 +3,3 @@
This webpage includes the documentation for version 3 of the [Habitica](https://habitica.com) API.
If you're developing a 3rd party tool that uses the Habitica API you should read the [Guidance for Comrades](https://habitica.fandom.com/wiki/Guidance_for_Comrades) and in particular the section called [Rules for Third-Party Tools](https://habitica.fandom.com/wiki/Guidance_for_Comrades#Rules_for_Third-Party_Tools) which includes suggestions on how to best use the API and the rules to follow when interacting with it.
# Attention: Sample forms are non-functional
The sample forms were enabled [due to a change in the apidoc package](https://github.com/apidoc/apidoc/pull/915) and do not function, they will be disabled in a future release.

View File

@@ -2,8 +2,9 @@ import gulp from 'gulp';
import clean from 'rimraf';
import apidoc from 'apidoc';
const APIDOC_DEST_PATH = './apidoc_build';
const APIDOC_DEST_PATH = './apidoc/html';
const APIDOC_SRC_PATH = './website/server';
const APIDOC_CONFIG_PATH = './apidoc/apidoc.json';
gulp.task('apidoc:clean', done => {
clean(APIDOC_DEST_PATH, done);
});
@@ -12,6 +13,7 @@ gulp.task('apidoc', gulp.series('apidoc:clean', done => {
const result = apidoc.createDoc({
src: APIDOC_SRC_PATH,
dest: APIDOC_DEST_PATH,
config: APIDOC_CONFIG_PATH,
});
if (result === false) {

View File

@@ -1,16 +1,8 @@
import gulp from 'gulp';
import imagemin from 'gulp-imagemin';
import spritesmith from 'gulp.spritesmith';
import clean from 'rimraf';
import sizeOf from 'image-size';
import mergeStream from 'merge-stream';
import { basename } from 'path';
import { sync } from 'glob';
import { each } from 'lodash';
import vinylBuffer from 'vinyl-buffer';
// https://github.com/Ensighten/grunt-spritesmith/issues/67#issuecomment-34786248
const MAX_SPRITESHEET_SIZE = 1024 * 1024 * 3;
const IMG_DIST_PATH = 'website/client/src/assets/images/sprites/';
const CSS_DIST_PATH = 'website/client/src/assets/css/sprites/';
@@ -20,49 +12,6 @@ function checkForSpecialTreatment (name) {
return name.match(regex) || name === 'head_0';
}
function calculateImgDimensions (img, addPadding) {
let dims = sizeOf(img);
const requiresSpecialTreatment = checkForSpecialTreatment(img);
if (requiresSpecialTreatment) {
const newWidth = dims.width < 90 ? 90 : dims.width;
const newHeight = dims.height < 90 ? 90 : dims.height;
dims = {
width: newWidth,
height: newHeight,
};
}
let padding = 0;
if (addPadding) {
padding = dims.width * 8 + dims.height * 8;
}
if (!dims.width || !dims.height) console.error('MISSING DIMENSIONS:', dims); // eslint-disable-line no-console
const totalPixelSize = dims.width * dims.height + padding;
return totalPixelSize;
}
function calculateSpritesheetsSrcIndicies (src) {
let totalPixels = 0;
const slices = [0];
each(src, (img, index) => {
const imageSize = calculateImgDimensions(img, true);
totalPixels += imageSize;
if (totalPixels > MAX_SPRITESHEET_SIZE) {
slices.push(index - 1);
totalPixels = imageSize;
}
});
return slices;
}
function cssVarMap (sprite) {
// For hair, skins, beards, etc. we want to output a '.customize-options.WHATEVER' class,
// which works as a 60x60 image pointing at the proper part of the 90x90 sprite.
@@ -71,94 +20,56 @@ function cssVarMap (sprite) {
if (requiresSpecialTreatment) {
sprite.custom = {
px: {
offsetX: `-${sprite.x + 25}px`,
offsetY: `-${sprite.y + 15}px`,
offsetX: '-25px',
offsetY: '-15px',
width: '60px',
height: '60px',
},
};
}
if (sprite.name.indexOf('shirt') !== -1) sprite.custom.px.offsetY = `-${sprite.y + 35}px`; // even more for shirts
// even more for shirts
if (sprite.name.indexOf('shirt') !== -1) {
sprite.custom.px.offsetX = '-29px';
sprite.custom.px.offsetY = '-42px';
}
if (sprite.name.indexOf('hair_base') !== -1) {
const styleArray = sprite.name.split('_').slice(2, 3);
if (Number(styleArray[0]) > 14) sprite.custom.px.offsetY = `-${sprite.y}px`; // don't crop updos
if (Number(styleArray[0]) > 14) {
sprite.custom.px.offsetY = '0'; // don't crop updos
}
}
}
function createSpritesStream (name, src) {
const spritesheetSliceIndicies = calculateSpritesheetsSrcIndicies(src);
const stream = mergeStream();
each(spritesheetSliceIndicies, (start, index) => {
const slicedSrc = src.slice(start, spritesheetSliceIndicies[index + 1]);
const spriteData = gulp.src(src)
.pipe(spritesmith({
imgName: `spritesmith-${name}.png`,
cssName: `spritesmith-${name}.css`,
algorithm: 'binary-tree',
padding: 1,
cssTemplate: 'website/raw_sprites/css/css.template.handlebars',
cssVarMap,
}));
const spriteData = gulp.src(slicedSrc)
.pipe(spritesmith({
imgName: `spritesmith-${name}-${index}.png`,
cssName: `spritesmith-${name}-${index}.css`,
algorithm: 'binary-tree',
padding: 1,
cssTemplate: 'website/raw_sprites/css/css.template.handlebars',
cssVarMap,
}));
const cssStream = spriteData.css
.pipe(gulp.dest(CSS_DIST_PATH));
const imgStream = spriteData.img
.pipe(vinylBuffer())
.pipe(imagemin())
.pipe(gulp.dest(IMG_DIST_PATH));
const cssStream = spriteData.css
.pipe(gulp.dest(CSS_DIST_PATH));
stream.add(imgStream);
stream.add(cssStream);
});
stream.add(cssStream);
return stream;
}
gulp.task('sprites:main', () => {
const mainSrc = sync('website/raw_sprites/spritesmith/**/*.png');
const mainSrc = sync('habitica-images/**/*.png');
return createSpritesStream('main', mainSrc);
});
gulp.task('sprites:largeSprites', () => {
const largeSrc = sync('website/raw_sprites/spritesmith_large/**/*.png');
return createSpritesStream('largeSprites', largeSrc);
});
gulp.task('sprites:clean', done => {
clean(`${IMG_DIST_PATH}spritesmith*,${CSS_DIST_PATH}spritesmith*}`, done);
});
gulp.task('sprites:checkCompiledDimensions', gulp.series('sprites:main', 'sprites:largeSprites', done => {
console.log('Verifiying that images do not exceed max dimensions'); // eslint-disable-line no-console
let numberOfSheetsThatAreTooBig = 0;
const distSpritesheets = sync(`${IMG_DIST_PATH}*.png`);
each(distSpritesheets, img => {
const spriteSize = calculateImgDimensions(img);
if (spriteSize > MAX_SPRITESHEET_SIZE) {
numberOfSheetsThatAreTooBig += 1;
const name = basename(img, '.png');
console.error(`WARNING: ${name} might be too big - ${spriteSize} > ${MAX_SPRITESHEET_SIZE}`); // eslint-disable-line no-console
}
});
if (numberOfSheetsThatAreTooBig > 0) {
// https://github.com/HabitRPG/habitica/pull/6683#issuecomment-185462180
console.error( // eslint-disable-line no-console
`${numberOfSheetsThatAreTooBig} sheets might too big for mobile Safari to be able to handle
them, but there is a margin of error in these calculations so it is probably okay. Mention
this to an admin so they can test a staging site on mobile Safari after your PR is merged.`,
);
} else {
console.log('All images are within the correct dimensions'); // eslint-disable-line no-console
}
done();
}));
gulp.task('sprites:compile', gulp.series('sprites:clean', 'sprites:checkCompiledDimensions', done => done()));
gulp.task('sprites:compile', gulp.series('sprites:clean', 'sprites:main', done => done()));

1
habitica-images Submodule

Submodule habitica-images added at 05c7c19fa5

View File

@@ -0,0 +1,138 @@
/* eslint-disable no-console */
const MIGRATION_NAME = '20210824_pet_group_achievements';
import { model as User } from '../../../website/server/models/user';
const progressCount = 1000;
let count = 0;
async function updateUser (user) {
count++;
const set = {
migration: MIGRATION_NAME,
};
if (user && user.items && user.items.pets) {
const pets = user.items.pets;
if (pets['FlyingPig-Base']
&& pets['FlyingPig-CottonCandyBlue']
&& pets['FlyingPig-CottonCandyPink']
&& pets['FlyingPig-Desert']
&& pets['FlyingPig-Golden']
&& pets['FlyingPig-Red']
&& pets['FlyingPig-Shade']
&& pets['FlyingPig-Skeleton']
&& pets['FlyingPig-White']
&& pets['FlyingPig-Zombie']
&& pets['Ferret-Base']
&& pets['Ferret-CottonCandyBlue']
&& pets['Ferret-CottonCandyPink']
&& pets['Ferret-Desert']
&& pets['Ferret-Golden']
&& pets['Ferret-Red']
&& pets['Ferret-Shade']
&& pets['Ferret-Skeleton']
&& pets['Ferret-White']
&& pets['Ferret-Zombie']
&& pets['GuineaPig-Base']
&& pets['GuineaPig-CottonCandyBlue']
&& pets['GuineaPig-CottonCandyPink']
&& pets['GuineaPig-Desert']
&& pets['GuineaPig-Golden']
&& pets['GuineaPig-Red']
&& pets['GuineaPig-Shade']
&& pets['GuineaPig-Skeleton']
&& pets['GuineaPig-White']
&& pets['GuineaPig-Zombie']
&& pets['Rooster-Base']
&& pets['Rooster-CottonCandyBlue']
&& pets['Rooster-CottonCandyPink']
&& pets['Rooster-Desert']
&& pets['Rooster-Golden']
&& pets['Rooster-Red']
&& pets['Rooster-Shade']
&& pets['Rooster-Skeleton']
&& pets['Rooster-White']
&& pets['Rooster-Zombie']
&& pets['Rat-Base']
&& pets['Rat-CottonCandyBlue']
&& pets['Rat-CottonCandyPink']
&& pets['Rat-Desert']
&& pets['Rat-Golden']
&& pets['Rat-Red']
&& pets['Rat-Shade']
&& pets['Rat-Skeleton']
&& pets['Rat-White']
&& pets['Rat-Zombie']
&& pets['Bunny-Base']
&& pets['Bunny-CottonCandyBlue']
&& pets['Bunny-CottonCandyPink']
&& pets['Bunny-Desert']
&& pets['Bunny-Golden']
&& pets['Bunny-Red']
&& pets['Bunny-Shade']
&& pets['Bunny-Skeleton']
&& pets['Bunny-White']
&& pets['Bunny-Zombie']
&& pets['Horse-Base']
&& pets['Horse-CottonCandyBlue']
&& pets['Horse-CottonCandyPink']
&& pets['Horse-Desert']
&& pets['Horse-Golden']
&& pets['Horse-Red']
&& pets['Horse-Shade']
&& pets['Horse-Skeleton']
&& pets['Horse-White']
&& pets['Horse-Zombie']
&& pets['Cow-Base']
&& pets['Cow-CottonCandyBlue']
&& pets['Cow-CottonCandyPink']
&& pets['Cow-Desert']
&& pets['Cow-Golden']
&& pets['Cow-Red']
&& pets['Cow-Shade']
&& pets['Cow-Skeleton']
&& pets['Cow-White']
&& pets['Cow-Zombie']) {
set['achievements.domesticated'] = true;
}
}
if (count % progressCount === 0) console.warn(`${count} ${user._id}`);
return await User.update({ _id: user._id }, { $set: set }).exec();
}
export default async function processUsers () {
let query = {
// migration: { $ne: MIGRATION_NAME },
'auth.timestamps.loggedin': { $gt: new Date('2021-08-01') },
};
const fields = {
_id: 1,
items: 1,
};
while (true) { // eslint-disable-line no-constant-condition
const users = await User // eslint-disable-line no-await-in-loop
.find(query)
.limit(250)
.sort({_id: 1})
.select(fields)
.lean()
.exec();
if (users.length === 0) {
console.warn('All appropriate users found and modified.');
console.warn(`\n${count} users processed\n`);
break;
} else {
query._id = {
$gt: users[users.length - 1]._id,
};
}
await Promise.all(users.map(updateUser)); // eslint-disable-line no-await-in-loop
}
};

View File

@@ -0,0 +1,82 @@
/* eslint-disable no-console */
const MIGRATION_NAME = '20211021_pet_color_achievements';
import { model as User } from '../../../website/server/models/user';
const progressCount = 1000;
let count = 0;
async function updateUser (user) {
count++;
const set = {
migration: MIGRATION_NAME,
};
if (user && user.items && user.items.pets) {
const pets = user.items.pets;
if (pets['Wolf-Shade'] > 0
&& pets['TigerCub-Shade'] > 0
&& pets['PandaCub-Shade'] > 0
&& pets['LionCub-Shade'] > 0
&& pets['Fox-Shade'] > 0
&& pets['FlyingPig-Shade'] > 0
&& pets['Dragon-Shade'] > 0
&& pets['Cactus-Shade'] > 0
&& pets['BearCub-Shade'] > 0) {
set['achievements.shadyCustomer'] = true;
}
}
if (user && user.items && user.items.mounts) {
const mounts = user.items.mounts;
if (mounts['Wolf-Shade']
&& mounts['TigerCub-Shade']
&& mounts['PandaCub-Shade']
&& mounts['LionCub-Shade']
&& mounts['Fox-Shade']
&& mounts['FlyingPig-Shade']
&& mounts['Dragon-Shade']
&& mounts['Cactus-Shade']
&& mounts['BearCub-Shade'] ) {
set['achievements.shadeOfItAll'] = true;
}
}
if (count % progressCount === 0) console.warn(`${count} ${user._id}`);
return await User.update({ _id: user._id }, { $set: set }).exec();
}
export default async function processUsers () {
let query = {
migration: { $ne: MIGRATION_NAME },
'auth.timestamps.loggedin': { $gt: new Date('2021-10-01') },
};
const fields = {
_id: 1,
items: 1,
};
while (true) { // eslint-disable-line no-constant-condition
const users = await User // eslint-disable-line no-await-in-loop
.find(query)
.limit(250)
.sort({_id: 1})
.select(fields)
.lean()
.exec();
if (users.length === 0) {
console.warn('All appropriate users found and modified.');
console.warn(`\n${count} users processed\n`);
break;
} else {
query._id = {
$gt: users[users.length - 1]._id,
};
}
await Promise.all(users.map(updateUser)); // eslint-disable-line no-await-in-loop
}
};

View File

@@ -0,0 +1,86 @@
/*
* Award Habitoween ladder items to participants in this month's Habitoween festivities
*/
/* eslint-disable no-console */
const MIGRATION_NAME = '20211028_habitoween_ladder'; // Update when running in future years
import { model as User } from '../../../website/server/models/user';
const progressCount = 1000;
let count = 0;
async function updateUser (user) {
count++;
const set = {};
const inc = {
'items.food.Candy_Skeleton': 1,
'items.food.Candy_Base': 1,
'items.food.Candy_CottonCandyBlue': 1,
'items.food.Candy_CottonCandyPink': 1,
'items.food.Candy_Shade': 1,
'items.food.Candy_White': 1,
'items.food.Candy_Golden': 1,
'items.food.Candy_Zombie': 1,
'items.food.Candy_Desert': 1,
'items.food.Candy_Red': 1,
};
set.migration = MIGRATION_NAME;
if (user && user.items && user.items.pets && user.items.pets['JackOLantern-RoyalPurple']) {
set['items.mounts.JackOLantern-RoyalPurple'] = true;
} else if (user && user.items && user.items.mounts && user.items.mounts['JackOLantern-Glow']) {
set['items.pets.JackOLantern-RoyalPurple'] = 5;
} else if (user && user.items && user.items.pets && user.items.pets['JackOLantern-Glow']) {
set['items.mounts.JackOLantern-Glow'] = true;
} else if (user && user.items && user.items.mounts && user.items.mounts['JackOLantern-Ghost']) {
set['items.pets.JackOLantern-Glow'] = 5;
} else if (user && user.items && user.items.pets && user.items.pets['JackOLantern-Ghost']) {
set['items.mounts.JackOLantern-Ghost'] = true;
} else if (user && user.items && user.items.mounts && user.items.mounts['JackOLantern-Base']) {
set['items.pets.JackOLantern-Ghost'] = 5;
} else if (user && user.items && user.items.pets && user.items.pets['JackOLantern-Base']) {
set['items.mounts.JackOLantern-Base'] = true;
} else {
set['items.pets.JackOLantern-Base'] = 5;
}
if (count % progressCount === 0) console.warn(`${count} ${user._id}`);
return await User.update({_id: user._id}, {$inc: inc, $set: set}).exec();
}
export default async function processUsers () {
let query = {
migration: {$ne: MIGRATION_NAME},
'auth.timestamps.loggedin': {$gt: new Date('2021-10-01')},
};
const fields = {
_id: 1,
items: 1,
};
while (true) { // eslint-disable-line no-constant-condition
const users = await User // eslint-disable-line no-await-in-loop
.find(query)
.limit(250)
.sort({_id: 1})
.select(fields)
.lean()
.exec();
if (users.length === 0) {
console.warn('All appropriate users found and modified.');
console.warn(`\n${count} users processed\n`);
break;
} else {
query._id = {
$gt: users[users.length - 1],
};
}
await Promise.all(users.map(updateUser)); // eslint-disable-line no-await-in-loop
}
};

View File

@@ -0,0 +1,126 @@
/* eslint-disable no-console */
const MIGRATION_NAME = '20211124_harvest_feast';
import { v4 as uuid } from 'uuid';
import { model as User } from '../../../website/server/models/user';
const progressCount = 1000;
let count = 0;
async function updateUser (user) {
count++;
const set = {};
let inc;
let push;
set.migration = MIGRATION_NAME;
if (typeof user.items.gear.owned.head_special_turkeyHelmGilded !== 'undefined') {
inc = {
'items.food.Pie_Base': 1,
'items.food.Pie_CottonCandyBlue': 1,
'items.food.Pie_CottonCandyPink': 1,
'items.food.Pie_Desert': 1,
'items.food.Pie_Golden': 1,
'items.food.Pie_Red': 1,
'items.food.Pie_Shade': 1,
'items.food.Pie_Skeleton': 1,
'items.food.Pie_Zombie': 1,
'items.food.Pie_White': 1,
}
} else if (typeof user.items.gear.owned.armor_special_turkeyArmorBase !== 'undefined') {
set['items.gear.owned.head_special_turkeyHelmGilded'] = false;
set['items.gear.owned.armor_special_turkeyArmorGilded'] = false;
set['items.gear.owned.back_special_turkeyTailGilded'] = false;
push = [
{
type: 'marketGear',
path: 'gear.flat.head_special_turkeyHelmGilded',
_id: uuid(),
},
{
type: 'marketGear',
path: 'gear.flat.armor_special_turkeyArmorGilded',
_id: uuid(),
},
{
type: 'marketGear',
path: 'gear.flat.back_special_turkeyTailGilded',
_id: uuid(),
},
];
} else if (user.items && user.items.mounts && user.items.mounts['Turkey-Gilded']) {
set['items.gear.owned.head_special_turkeyHelmBase'] = false;
set['items.gear.owned.armor_special_turkeyArmorBase'] = false;
set['items.gear.owned.back_special_turkeyTailBase'] = false;
push = [
{
type: 'marketGear',
path: 'gear.flat.head_special_turkeyHelmBase',
_id: uuid(),
},
{
type: 'marketGear',
path: 'gear.flat.armor_special_turkeyArmorBase',
_id: uuid(),
},
{
type: 'marketGear',
path: 'gear.flat.back_special_turkeyTailBase',
_id: uuid(),
},
];
} else if (user.items && user.items.pets && user.items.pets['Turkey-Gilded']) {
set['items.mounts.Turkey-Gilded'] = true;
} else if (user.items && user.items.mounts && user.items.mounts['Turkey-Base']) {
set['items.pets.Turkey-Gilded'] = 5;
} else if (user.items && user.items.pets && user.items.pets['Turkey-Base']) {
set['items.mounts.Turkey-Base'] = true;
} else {
set['items.pets.Turkey-Base'] = 5;
}
if (count % progressCount === 0) console.warn(`${count} ${user._id}`);
if (inc) {
return await User.update({_id: user._id}, {$inc: inc, $set: set}).exec();
} else if (push) {
return await User.update({_id: user._id}, {$set: set, $push: {pinnedItems: {$each: push}}}).exec();
} else {
return await User.update({_id: user._id}, {$set: set}).exec();
}
}
export default async function processUsers () {
let query = {
migration: {$ne: MIGRATION_NAME},
'auth.timestamps.loggedin': {$gt: new Date('2021-11-01')},
};
const fields = {
_id: 1,
items: 1,
};
while (true) { // eslint-disable-line no-constant-condition
const users = await User // eslint-disable-line no-await-in-loop
.find(query)
.limit(250)
.sort({_id: 1})
.select(fields)
.lean()
.exec();
if (users.length === 0) {
console.warn('All appropriate users found and modified.');
console.warn(`\n${count} users processed\n`);
break;
} else {
query._id = {
$gt: users[users.length - 1],
};
}
await Promise.all(users.map(updateUser)); // eslint-disable-line no-await-in-loop
}
};

View File

@@ -0,0 +1,135 @@
/* eslint-disable no-console */
const MIGRATION_NAME = '20211230_nye';
import { model as User } from '../../../website/server/models/user';
import { v4 as uuid } from 'uuid';
const progressCount = 1000;
let count = 0;
async function updateUser (user) {
count++;
const set = { migration: MIGRATION_NAME };
let push;
if (typeof user.items.gear.owned.head_special_nye2020 !== 'undefined') {
set['items.gear.owned.head_special_nye2021'] = false;
push = [
{
type: 'marketGear',
path: 'gear.flat.head_special_nye2021',
_id: uuid(),
},
];
} else if (typeof user.items.gear.owned.head_special_nye2019 !== 'undefined') {
set['items.gear.owned.head_special_nye2020'] = false;
push = [
{
type: 'marketGear',
path: 'gear.flat.head_special_nye2020',
_id: uuid(),
},
];
} else if (typeof user.items.gear.owned.head_special_nye2018 !== 'undefined') {
set['items.gear.owned.head_special_nye2019'] = false;
push = [
{
type: 'marketGear',
path: 'gear.flat.head_special_nye2019',
_id: uuid(),
},
];
} else if (typeof user.items.gear.owned.head_special_nye2017 !== 'undefined') {
set['items.gear.owned.head_special_nye2018'] = false;
push = [
{
type: 'marketGear',
path: 'gear.flat.head_special_nye2018',
_id: uuid(),
},
];
} else if (typeof user.items.gear.owned.head_special_nye2016 !== 'undefined') {
set['items.gear.owned.head_special_nye2017'] = false;
push = [
{
type: 'marketGear',
path: 'gear.flat.head_special_nye2017',
_id: uuid(),
},
];
} else if (typeof user.items.gear.owned.head_special_nye2015 !== 'undefined') {
set['items.gear.owned.head_special_nye2016'] = false;
push = [
{
type: 'marketGear',
path: 'gear.flat.head_special_nye2016',
_id: uuid(),
},
];
} else if (typeof user.items.gear.owned.head_special_nye2014 !== 'undefined') {
set['items.gear.owned.head_special_nye2015'] = false;
push = [
{
type: 'marketGear',
path: 'gear.flat.head_special_nye2015',
_id: uuid(),
},
];
} else if (typeof user.items.gear.owned.head_special_nye !== 'undefined') {
set['items.gear.owned.head_special_nye2014'] = false;
push = [
{
type: 'marketGear',
path: 'gear.flat.head_special_nye2014',
_id: uuid(),
},
];
} else {
set['items.gear.owned.head_special_nye'] = false;
push = [
{
type: 'marketGear',
path: 'gear.flat.head_special_nye',
_id: uuid(),
},
];
}
if (count % progressCount === 0) console.warn(`${count} ${user._id}`);
return await User.update({_id: user._id}, {$set: set, $push: {pinnedItems: {$each: push}}}).exec();
}
export default async function processUsers () {
let query = {
'auth.timestamps.loggedin': {$gt: new Date('2021-12-01')},
migration: {$ne: MIGRATION_NAME},
};
const fields = {
_id: 1,
items: 1,
};
while (true) { // eslint-disable-line no-constant-condition
const users = await User // eslint-disable-line no-await-in-loop
.find(query)
.limit(250)
.sort({_id: 1})
.select(fields)
.lean()
.exec();
if (users.length === 0) {
console.warn('All appropriate users found and modified.');
console.warn(`\n${count} users processed\n`);
break;
} else {
query._id = {
$gt: users[users.length - 1],
};
}
await Promise.all(users.map(updateUser)); // eslint-disable-line no-await-in-loop
}
};

View File

@@ -0,0 +1,97 @@
/* eslint-disable no-console */
const MIGRATION_NAME = '20220131_habit_birthday';
import { v4 as uuid } from 'uuid';
import { model as User } from '../../../website/server/models/user';
const progressCount = 1000;
let count = 0;
async function updateUser (user) {
count++;
const inc = {
'items.food.Cake_Skeleton': 1,
'items.food.Cake_Base': 1,
'items.food.Cake_CottonCandyBlue': 1,
'items.food.Cake_CottonCandyPink': 1,
'items.food.Cake_Shade': 1,
'items.food.Cake_White': 1,
'items.food.Cake_Golden': 1,
'items.food.Cake_Zombie': 1,
'items.food.Cake_Desert': 1,
'items.food.Cake_Red': 1,
'achievements.habitBirthdays': 1,
};
const set = {};
let push;
set.migration = MIGRATION_NAME;
if (typeof user.items.gear.owned.armor_special_birthday2021 !== 'undefined') {
set['items.gear.owned.armor_special_birthday2022'] = false;
push = {pinnedItems: {type: 'marketGear', path: 'gear.flat.armor_special_birthday2022', _id: uuid()}};
} else if (typeof user.items.gear.owned.armor_special_birthday2020 !== 'undefined') {
set['items.gear.owned.armor_special_birthday2021'] = false;
push = {pinnedItems: {type: 'marketGear', path: 'gear.flat.armor_special_birthday2021', _id: uuid()}};
} else if (typeof user.items.gear.owned.armor_special_birthday2019 !== 'undefined') {
set['items.gear.owned.armor_special_birthday2020'] = false;
push = {pinnedItems: {type: 'marketGear', path: 'gear.flat.armor_special_birthday2020', _id: uuid()}};
} else if (typeof user.items.gear.owned.armor_special_birthday2018 !== 'undefined') {
set['items.gear.owned.armor_special_birthday2019'] = false;
push = {pinnedItems: {type: 'marketGear', path: 'gear.flat.armor_special_birthday2019', _id: uuid()}};
} else if (typeof user.items.gear.owned.armor_special_birthday2017 !== 'undefined') {
set['items.gear.owned.armor_special_birthday2018'] = false;
push = {pinnedItems: {type: 'marketGear', path: 'gear.flat.armor_special_birthday2018', _id: uuid()}};
} else if (typeof user.items.gear.owned.armor_special_birthday2016 !== 'undefined') {
set['items.gear.owned.armor_special_birthday2017'] = false;
push = {pinnedItems: {type: 'marketGear', path: 'gear.flat.armor_special_birthday2017', _id: uuid()}};
} else if (typeof user.items.gear.owned.armor_special_birthday2015 !== 'undefined') {
set['items.gear.owned.armor_special_birthday2016'] = false;
push = {pinnedItems: {type: 'marketGear', path: 'gear.flat.armor_special_birthday2016', _id: uuid()}};
} else if (typeof user.items.gear.owned.armor_special_birthday !== 'undefined') {
set['items.gear.owned.armor_special_birthday2015'] = false;
push = {pinnedItems: {type: 'marketGear', path: 'gear.flat.armor_special_birthday2015', _id: uuid()}};
} else {
set['items.gear.owned.armor_special_birthday'] = false;
push = {pinnedItems: {type: 'marketGear', path: 'gear.flat.armor_special_birthday', _id: uuid()}};
}
if (count % progressCount === 0) console.warn(`${count} ${user._id}`);
return await User.update({_id: user._id}, {$inc: inc, $set: set, $push: push}).exec();
}
export default async function processUsers () {
let query = {
migration: {$ne: MIGRATION_NAME},
'auth.timestamps.loggedin': {$gt: new Date('2022-01-01')},
};
const fields = {
_id: 1,
items: 1,
};
while (true) { // eslint-disable-line no-constant-condition
const users = await User // eslint-disable-line no-await-in-loop
.find(query)
.limit(250)
.sort({_id: 1})
.select(fields)
.lean()
.exec();
if (users.length === 0) {
console.warn('All appropriate users found and modified.');
console.warn(`\n${count} users processed\n`);
break;
} else {
query._id = {
$gt: users[users.length - 1],
};
}
await Promise.all(users.map(updateUser)); // eslint-disable-line no-await-in-loop
}
};

View File

@@ -0,0 +1,178 @@
/* eslint-disable no-console */
const MIGRATION_NAME = '20220201_pet_group_achievements';
import { model as User } from '../../../website/server/models/user';
const progressCount = 1000;
let count = 0;
async function updateUser (user) {
count++;
const set = {
migration: MIGRATION_NAME,
};
if (user && user.items && user.items.pets) {
const pets = user.items.pets;
if (pets['FlyingPig-Base']
&& pets['FlyingPig-CottonCandyBlue']
&& pets['FlyingPig-CottonCandyPink']
&& pets['FlyingPig-Desert']
&& pets['FlyingPig-Golden']
&& pets['FlyingPig-Red']
&& pets['FlyingPig-Shade']
&& pets['FlyingPig-Skeleton']
&& pets['FlyingPig-White']
&& pets['FlyingPig-Zombie']
&& pets['Snake-Base']
&& pets['Snake-CottonCandyBlue']
&& pets['Snake-CottonCandyPink']
&& pets['Snake-Desert']
&& pets['Snake-Golden']
&& pets['Snake-Red']
&& pets['Snake-Shade']
&& pets['Snake-Skeleton']
&& pets['Snake-White']
&& pets['Snake-Zombie']
&& pets['Sheep-Base']
&& pets['Sheep-CottonCandyBlue']
&& pets['Sheep-CottonCandyPink']
&& pets['Sheep-Desert']
&& pets['Sheep-Golden']
&& pets['Sheep-Red']
&& pets['Sheep-Shade']
&& pets['Sheep-Skeleton']
&& pets['Sheep-White']
&& pets['Sheep-Zombie']
&& pets['Rooster-Base']
&& pets['Rooster-CottonCandyBlue']
&& pets['Rooster-CottonCandyPink']
&& pets['Rooster-Desert']
&& pets['Rooster-Golden']
&& pets['Rooster-Red']
&& pets['Rooster-Shade']
&& pets['Rooster-Skeleton']
&& pets['Rooster-White']
&& pets['Rooster-Zombie']
&& pets['Rat-Base']
&& pets['Rat-CottonCandyBlue']
&& pets['Rat-CottonCandyPink']
&& pets['Rat-Desert']
&& pets['Rat-Golden']
&& pets['Rat-Red']
&& pets['Rat-Shade']
&& pets['Rat-Skeleton']
&& pets['Rat-White']
&& pets['Rat-Zombie']
&& pets['Bunny-Base']
&& pets['Bunny-CottonCandyBlue']
&& pets['Bunny-CottonCandyPink']
&& pets['Bunny-Desert']
&& pets['Bunny-Golden']
&& pets['Bunny-Red']
&& pets['Bunny-Shade']
&& pets['Bunny-Skeleton']
&& pets['Bunny-White']
&& pets['Bunny-Zombie']
&& pets['Horse-Base']
&& pets['Horse-CottonCandyBlue']
&& pets['Horse-CottonCandyPink']
&& pets['Horse-Desert']
&& pets['Horse-Golden']
&& pets['Horse-Red']
&& pets['Horse-Shade']
&& pets['Horse-Skeleton']
&& pets['Horse-White']
&& pets['Horse-Zombie']
&& pets['Cow-Base']
&& pets['Cow-CottonCandyBlue']
&& pets['Cow-CottonCandyPink']
&& pets['Cow-Desert']
&& pets['Cow-Golden']
&& pets['Cow-Red']
&& pets['Cow-Shade']
&& pets['Cow-Skeleton']
&& pets['Cow-White']
&& pets['Cow-Zombie']
&& pets['Monkey-Base']
&& pets['Monkey-CottonCandyBlue']
&& pets['Monkey-CottonCandyPink']
&& pets['Monkey-Desert']
&& pets['Monkey-Golden']
&& pets['Monkey-Red']
&& pets['Monkey-Shade']
&& pets['Monkey-Skeleton']
&& pets['Monkey-White']
&& pets['Monkey-Zombie']
&& pets['Wolf-Base']
&& pets['Wolf-CottonCandyBlue']
&& pets['Wolf-CottonCandyPink']
&& pets['Wolf-Desert']
&& pets['Wolf-Golden']
&& pets['Wolf-Red']
&& pets['Wolf-Shade']
&& pets['Wolf-Skeleton']
&& pets['Wolf-White']
&& pets['Wolf-Zombie']
&& pets['Tiger-Base']
&& pets['Tiger-CottonCandyBlue']
&& pets['Tiger-CottonCandyPink']
&& pets['Tiger-Desert']
&& pets['Tiger-Golden']
&& pets['Tiger-Red']
&& pets['Tiger-Shade']
&& pets['Tiger-Skeleton']
&& pets['Tiger-White']
&& pets['Tiger-Zombie']
&& pets['Dragon-Base']
&& pets['Dragon-CottonCandyBlue']
&& pets['Dragon-CottonCandyPink']
&& pets['Dragon-Desert']
&& pets['Dragon-Golden']
&& pets['Dragon-Red']
&& pets['Dragon-Shade']
&& pets['Dragon-Skeleton']
&& pets['Dragon-White']
&& pets['Dragon-Zombie']) {
set['achievements.zodiacZookeeper'] = true;
}
}
if (count % progressCount === 0) console.warn(`${count} ${user._id}`);
return await User.update({ _id: user._id }, { $set: set }).exec();
}
export default async function processUsers () {
let query = {
// migration: { $ne: MIGRATION_NAME },
'auth.timestamps.loggedin': { $gt: new Date('2021-08-01') },
};
const fields = {
_id: 1,
items: 1,
};
while (true) { // eslint-disable-line no-constant-condition
const users = await User // eslint-disable-line no-await-in-loop
.find(query)
.limit(250)
.sort({_id: 1})
.select(fields)
.lean()
.exec();
if (users.length === 0) {
console.warn('All appropriate users found and modified.');
console.warn(`\n${count} users processed\n`);
break;
} else {
query._id = {
$gt: users[users.length - 1]._id,
};
}
await Promise.all(users.map(updateUser)); // eslint-disable-line no-await-in-loop
}
};

View File

@@ -0,0 +1,138 @@
/* eslint-disable no-console */
const MIGRATION_NAME = '20220309_pet_group_achievements';
import { model as User } from '../../../website/server/models/user';
const progressCount = 1000;
let count = 0;
async function updateUser (user) {
count++;
const set = {
migration: MIGRATION_NAME,
};
if (user && user.items && user.items.pets) {
const pets = user.items.pets;
if (pets['FlyingPig-Base']
&& pets['FlyingPig-CottonCandyBlue']
&& pets['FlyingPig-CottonCandyPink']
&& pets['FlyingPig-Desert']
&& pets['FlyingPig-Golden']
&& pets['FlyingPig-Red']
&& pets['FlyingPig-Shade']
&& pets['FlyingPig-Skeleton']
&& pets['FlyingPig-White']
&& pets['FlyingPig-Zombie']
&& pets['Owl-Base']
&& pets['Owl-CottonCandyBlue']
&& pets['Owl-CottonCandyPink']
&& pets['Owl-Desert']
&& pets['Owl-Golden']
&& pets['Owl-Red']
&& pets['Owl-Shade']
&& pets['Owl-Skeleton']
&& pets['Owl-White']
&& pets['Owl-Zombie']
&& pets['Parrot-Base']
&& pets['Parrot-CottonCandyBlue']
&& pets['Parrot-CottonCandyPink']
&& pets['Parrot-Desert']
&& pets['Parrot-Golden']
&& pets['Parrot-Red']
&& pets['Parrot-Shade']
&& pets['Parrot-Skeleton']
&& pets['Parrot-White']
&& pets['Parrot-Zombie']
&& pets['Rooster-Base']
&& pets['Rooster-CottonCandyBlue']
&& pets['Rooster-CottonCandyPink']
&& pets['Rooster-Desert']
&& pets['Rooster-Golden']
&& pets['Rooster-Red']
&& pets['Rooster-Shade']
&& pets['Rooster-Skeleton']
&& pets['Rooster-White']
&& pets['Rooster-Zombie']
&& pets['Pterodactyl-Base']
&& pets['Pterodactyl-CottonCandyBlue']
&& pets['Pterodactyl-CottonCandyPink']
&& pets['Pterodactyl-Desert']
&& pets['Pterodactyl-Golden']
&& pets['Pterodactyl-Red']
&& pets['Pterodactyl-Shade']
&& pets['Pterodactyl-Skeleton']
&& pets['Pterodactyl-White']
&& pets['Pterodactyl-Zombie']
&& pets['Gryphon-Base']
&& pets['Gryphon-CottonCandyBlue']
&& pets['Gryphon-CottonCandyPink']
&& pets['Gryphon-Desert']
&& pets['Gryphon-Golden']
&& pets['Gryphon-Red']
&& pets['Gryphon-Shade']
&& pets['Gryphon-Skeleton']
&& pets['Gryphon-White']
&& pets['Gryphon-Zombie']
&& pets['Falcon-Base']
&& pets['Falcon-CottonCandyBlue']
&& pets['Falcon-CottonCandyPink']
&& pets['Falcon-Desert']
&& pets['Falcon-Golden']
&& pets['Falcon-Red']
&& pets['Falcon-Shade']
&& pets['Falcon-Skeleton']
&& pets['Falcon-White']
&& pets['Falcon-Zombie']
&& pets['Peacock-Base']
&& pets['Peacock-CottonCandyBlue']
&& pets['Peacock-CottonCandyPink']
&& pets['Peacock-Desert']
&& pets['Peacock-Golden']
&& pets['Peacock-Red']
&& pets['Peacock-Shade']
&& pets['Peacock-Skeleton']
&& pets['Peacock-White']
&& pets['Peacock-Zombie']) {
set['achievements.birdsOfAFeather'] = true;
}
}
if (count % progressCount === 0) console.warn(`${count} ${user._id}`);
return await User.update({ _id: user._id }, { $set: set }).exec();
}
export default async function processUsers () {
let query = {
// migration: { $ne: MIGRATION_NAME },
'auth.timestamps.loggedin': { $gt: new Date('2021-08-01') },
};
const fields = {
_id: 1,
items: 1,
};
while (true) { // eslint-disable-line no-constant-condition
const users = await User // eslint-disable-line no-await-in-loop
.find(query)
.limit(250)
.sort({_id: 1})
.select(fields)
.lean()
.exec();
if (users.length === 0) {
console.warn('All appropriate users found and modified.');
console.warn(`\n${count} users processed\n`);
break;
} else {
query._id = {
$gt: users[users.length - 1]._id,
};
}
await Promise.all(users.map(updateUser)); // eslint-disable-line no-await-in-loop
}
};

View File

@@ -3,13 +3,13 @@ import { v4 as uuid } from 'uuid';
import { model as User } from '../../website/server/models/user';
const MIGRATION_NAME = '20210314_pi_day';
const MIGRATION_NAME = '20220314_pi_day';
const progressCount = 1000;
let count = 0;
async function updateUser (user) {
count *= 1;
count += 1;
const inc = {
'items.food.Pie_Skeleton': 1,
@@ -54,7 +54,7 @@ async function updateUser (user) {
export default async function processUsers () {
const query = {
migration: { $ne: MIGRATION_NAME },
'auth.timestamps.loggedin': { $gt: new Date('2021-02-15') },
'auth.timestamps.loggedin': { $gt: new Date('2022-02-15') },
};
const fields = {

4327
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,80 +1,80 @@
{
"name": "habitica",
"description": "A habit tracker app which treats your goals like a Role Playing Game.",
"version": "4.195.0",
"version": "4.229.1",
"main": "./website/server/index.js",
"dependencies": {
"@babel/core": "^7.13.16",
"@babel/preset-env": "^7.14.1",
"@babel/register": "^7.13.16",
"@google-cloud/trace-agent": "^5.1.3",
"@parse/node-apn": "^4.1.1",
"@slack/webhook": "^6.0.0",
"accepts": "^1.3.5",
"amazon-payments": "^0.2.8",
"amplitude": "^5.1.5",
"apidoc": "^0.27.1",
"@babel/core": "^7.17.9",
"@babel/preset-env": "^7.16.11",
"@babel/register": "^7.17.7",
"@google-cloud/trace-agent": "^5.1.6",
"@parse/node-apn": "^5.1.3",
"@slack/webhook": "^6.1.0",
"accepts": "^1.3.8",
"amazon-payments": "^0.2.9",
"amplitude": "^6.0.0",
"apidoc": "^0.51.1",
"apple-auth": "^1.0.7",
"bcrypt": "^5.0.1",
"body-parser": "^1.18.3",
"body-parser": "^1.20.0",
"bootstrap": "^4.6.0",
"compression": "^1.7.4",
"cookie-session": "^1.4.0",
"cookie-session": "^2.0.0",
"coupon-code": "^0.4.5",
"csv-stringify": "^5.6.2",
"csv-stringify": "^5.6.5",
"cwait": "^1.1.1",
"domain-middleware": "~0.1.0",
"eslint": "^6.8.0",
"eslint-config-habitrpg": "^6.2.0",
"eslint-plugin-mocha": "^5.0.0",
"express": "^4.16.3",
"express-basic-auth": "^1.1.5",
"express": "^4.17.3",
"express-basic-auth": "^1.2.1",
"express-validator": "^5.2.0",
"glob": "^7.1.6",
"got": "^11.8.2",
"glob": "^7.2.0",
"got": "^11.8.3",
"gulp": "^4.0.0",
"gulp-babel": "^8.0.0",
"gulp-imagemin": "^7.1.0",
"gulp-nodemon": "^2.5.0",
"gulp.spritesmith": "^6.9.0",
"gulp.spritesmith": "^6.12.1",
"habitica-markdown": "^3.0.0",
"helmet": "^4.6.0",
"image-size": "^1.0.0",
"image-size": "^1.0.1",
"in-app-purchase": "^1.11.3",
"js2xmlparser": "^4.0.1",
"js2xmlparser": "^4.0.2",
"jsonwebtoken": "^8.5.1",
"jwks-rsa": "^2.0.3",
"jwks-rsa": "^2.0.5",
"lodash": "^4.17.21",
"merge-stream": "^2.0.0",
"method-override": "^3.0.0",
"moment": "^2.29.1",
"moment": "^2.29.3",
"moment-recur": "^1.0.7",
"mongoose": "^5.12.7",
"mongoose": "^5.13.7",
"morgan": "^1.10.0",
"nconf": "^0.11.2",
"node-gcm": "^1.0.4",
"nconf": "^0.12.0",
"node-gcm": "^1.0.5",
"on-headers": "^1.0.2",
"passport": "^0.4.1",
"passport": "^0.5.0",
"passport-facebook": "^3.0.0",
"passport-google-oauth2": "^0.2.0",
"passport-google-oauth20": "2.0.0",
"paypal-rest-sdk": "^1.8.1",
"pp-ipn": "^1.1.0",
"ps-tree": "^1.0.0",
"rate-limiter-flexible": "^2.2.1",
"rate-limiter-flexible": "^2.3.6",
"redis": "^3.1.2",
"regenerator-runtime": "^0.13.7",
"regenerator-runtime": "^0.13.9",
"remove-markdown": "^0.3.0",
"rimraf": "^3.0.2",
"short-uuid": "^4.1.0",
"stripe": "^8.145.0",
"superagent": "^6.1.0",
"universal-analytics": "^0.4.23",
"short-uuid": "^4.2.0",
"stripe": "^8.219.0",
"superagent": "^7.1.2",
"universal-analytics": "^0.5.3",
"useragent": "^2.1.9",
"uuid": "^8.3.2",
"validator": "^13.6.0",
"validator": "^13.7.0",
"vinyl-buffer": "^1.0.1",
"winston": "^3.3.3",
"winston": "^3.7.2",
"winston-loggly-bulk": "^3.2.1",
"xml2js": "^0.4.23"
},
@@ -106,24 +106,24 @@
"start": "gulp nodemon",
"debug": "gulp nodemon --inspect",
"mongo:dev": "run-rs -v 4.2.8 -l ubuntu1804 --keep --dbpath mongodb-data --number 1 --quiet",
"postinstall": "gulp build && cd website/client && npm install",
"postinstall": "git config --global url.\"https://\".insteadOf git:// && gulp build && cd website/client && npm install",
"apidoc": "gulp apidoc"
},
"devDependencies": {
"axios": "^0.21.1",
"chai": "^4.3.4",
"axios": "^0.26.1",
"chai": "^4.3.6",
"chai-as-promised": "^7.1.1",
"chai-moment": "^0.1.0",
"chalk": "^4.1.1",
"chalk": "^4.1.2",
"cross-spawn": "^7.0.3",
"expect.js": "^0.3.1",
"istanbul": "^1.1.0-alpha.1",
"mocha": "^5.1.1",
"monk": "^7.3.4",
"require-again": "^2.0.0",
"run-rs": "^0.7.4",
"sinon": "^10.0.0",
"sinon-chai": "^3.6.0",
"run-rs": "^0.7.6",
"sinon": "^13.0.2",
"sinon-chai": "^3.7.0",
"sinon-stub-promise": "^4.0.0"
},
"optionalDependencies": {}

View File

@@ -31,7 +31,6 @@ async function deleteAmplitudeData (userId, email) {
console.log(`${userId} (${email}) Amplitude response: ${response.status} ${response.statusText}`);
}
}
await new Promise(resolve => setTimeout(resolve, 1000));
}
async function deleteHabiticaData (user, email) {
@@ -41,7 +40,7 @@ async function deleteHabiticaData (user, email) {
'auth.local.passwordHashMethod': 'bcrypt',
};
if (!user.auth.local.email) set['auth.local.email'] = `${user._id}@example.com`;
await User.update(
await User.updateOne(
{ _id: user._id },
{ $set: set },
);
@@ -83,6 +82,7 @@ async function processEmailAddress (email) {
$or: [
{ 'auth.facebook.emails.value': email },
{ 'auth.google.emails.value': email },
{ 'auth.apple.emails.value': email },
],
},
{ _id: 1, apiToken: 1, auth: 1 },
@@ -96,6 +96,7 @@ async function processEmailAddress (email) {
return console.log(`No users found with email address ${email}`);
}
await new Promise(resolve => setTimeout(resolve, 1000));
return Promise.all(users.map(user => (async () => {
await deleteAmplitudeData(user._id, email); // eslint-disable-line no-await-in-loop
await deleteHabiticaData(user, email); // eslint-disable-line no-await-in-loop

View File

@@ -1 +1 @@
For information about writing and running tests, see [Using Your Local Install to Modify Habitica's Website and API](http://habitica.fandom.com/wiki/Using_Your_Local_Install_to_Modify_Habitica%27s_Website_and_API).
For information about writing and running tests, see [Using Your Local Install to Modify Habitica's Website and API](https://habitica.fandom.com/wiki/Using_Your_Local_Install_to_Modify_Habitica's_Website_and_API).

View File

@@ -0,0 +1,57 @@
/* eslint-disable global-require */
import nconf from 'nconf';
import { generateUser } from '../../../helpers/api-unit.helper';
import * as emailLib from '../../../../website/server/libs/email';
import { bugReportLogic } from '../../../../website/server/libs/bug-report';
describe('bug-report', () => {
beforeEach(() => {
sandbox.stub(emailLib, 'sendTxn').returns(Promise.resolve());
const nconfGetStub = sandbox.stub(nconf, 'get');
nconfGetStub.withArgs('ADMIN_EMAIL').returns('true');
});
afterEach(() => {
sandbox.restore();
});
it('sends a mail using sendTxn', async () => {
const userId = '2b58daeb-bc50-4a83-b5d3-4ac52c7c0608';
const userMail = 'me@me.com';
const userMessage = 'The power is over 9000, please fix it';
const userAgent = 'The UserAgent with a bunch of weird browser engine levels';
const user = generateUser({
_id: userId,
});
const result = await bugReportLogic(
user, userMail, userMessage, userAgent,
);
expect(emailLib.sendTxn).to.be.called;
expect(result).to.deep.equal({
sendMailResult: undefined,
emailData: {
BROWSER_UA: userAgent,
REPORT_MSG: userMessage,
USER_CLASS: 'warrior',
USER_CONSECUTIVE_MONTHS: 0,
USER_COSTUME: 'false',
USER_CUSTOMER_ID: undefined,
USER_CUSTOM_DAY: 0,
USER_DAILIES_PAUSED: 'false',
USER_EMAIL: userMail,
USER_HOURGLASSES: 0,
USER_ID: userId,
USER_LEVEL: 1,
USER_OFFSET_MONTHS: 0,
USER_PAYMENT_PLATFORM: undefined,
USER_SUBSCRIPTION: undefined,
USER_TIMEZONE_OFFSET: 0,
USER_USERNAME: undefined,
},
});
});
});

File diff suppressed because it is too large Load Diff

View File

@@ -148,9 +148,18 @@ describe('emails', () => {
});
});
describe('sendTxnEmail', () => {
describe('sendTxn', () => {
let sendTxn = null;
beforeEach(() => {
sandbox.stub(got, 'post').returns(defer().promise);
const nconfGetStub = sandbox.stub(nconf, 'get');
nconfGetStub.withArgs('IS_PROD').returns(true);
nconfGetStub.withArgs('BASE_URL').returns('BASE_URL');
const attachEmail = requireAgain(pathToEmailLib);
sendTxn = attachEmail.sendTxn;
});
afterEach(() => {
@@ -158,16 +167,14 @@ describe('emails', () => {
});
it('can send a txn email to one recipient', () => {
sandbox.stub(nconf, 'get').withArgs('IS_PROD').returns(true);
const attachEmail = requireAgain(pathToEmailLib);
const sendTxnEmail = attachEmail.sendTxn;
const emailType = 'an email type';
const mailingInfo = {
name: 'my name',
email: 'my@email',
};
sendTxnEmail(mailingInfo, emailType);
sendTxn(mailingInfo, emailType);
expect(got.post).to.be.called;
expect(got.post).to.be.calledWith('undefined/job', sinon.match({
json: {
data: {
@@ -179,27 +186,77 @@ describe('emails', () => {
});
it('does not send email if address is missing', () => {
sandbox.stub(nconf, 'get').withArgs('IS_PROD').returns(true);
const attachEmail = requireAgain(pathToEmailLib);
const sendTxnEmail = attachEmail.sendTxn;
const emailType = 'an email type';
const mailingInfo = {
name: 'my name',
// email: 'my@email',
};
sendTxnEmail(mailingInfo, emailType);
sendTxn(mailingInfo, emailType);
expect(got.post).not.to.be.called;
});
it('throws error when mail target is only a string', () => {
const emailType = 'an email type';
const mailingInfo = 'my email';
expect(sendTxn(mailingInfo, emailType)).to.throw;
});
it('throws error when mail target has no _id or email', () => {
const emailType = 'an email type';
const mailingInfo = {
};
expect(sendTxn(mailingInfo, emailType)).to.throw;
});
it('throws error when variables not an array', () => {
const emailType = 'an email type';
const mailingInfo = {
name: 'my name',
email: 'my@email',
};
const variables = {};
expect(sendTxn(mailingInfo, emailType, variables)).to.throw;
});
it('throws error when variables array not contain name/content', () => {
const emailType = 'an email type';
const mailingInfo = {
name: 'my name',
email: 'my@email',
};
const variables = [
{
},
];
expect(sendTxn(mailingInfo, emailType, variables)).to.throw;
});
it('throws no error when variables array contain name but no content', () => {
const emailType = 'an email type';
const mailingInfo = {
name: 'my name',
email: 'my@email',
};
const variables = [
{
name: 'MY_VAR',
},
];
expect(sendTxn(mailingInfo, emailType, variables)).to.not.throw;
});
it('uses getUserInfo in case of user data', () => {
sandbox.stub(nconf, 'get').withArgs('IS_PROD').returns(true);
const attachEmail = requireAgain(pathToEmailLib);
const sendTxnEmail = attachEmail.sendTxn;
const emailType = 'an email type';
const mailingInfo = getUser();
sendTxnEmail(mailingInfo, emailType);
sendTxn(mailingInfo, emailType);
expect(got.post).to.be.called;
expect(got.post).to.be.calledWith('undefined/job', sinon.match({
json: {
data: {
@@ -211,17 +268,15 @@ describe('emails', () => {
});
it('sends email with some default variables', () => {
sandbox.stub(nconf, 'get').withArgs('IS_PROD').returns(true);
const attachEmail = requireAgain(pathToEmailLib);
const sendTxnEmail = attachEmail.sendTxn;
const emailType = 'an email type';
const mailingInfo = {
name: 'my name',
email: 'my@email',
};
const variables = [1, 2, 3];
const variables = [];
sendTxnEmail(mailingInfo, emailType, variables);
sendTxn(mailingInfo, emailType, variables);
expect(got.post).to.be.called;
expect(got.post).to.be.calledWith('undefined/job', sinon.match({
json: {
data: {

View File

@@ -256,7 +256,7 @@ describe('Google Payments', () => {
expirationDate,
});
iapGetPurchaseDataStub = sinon.stub(iap, 'getPurchaseData')
.returns([{ expirationDate: expirationDate.toDate() }]);
.returns([{ expirationDate: expirationDate.toDate(), autoRenewing: false }]);
iapIsValidatedStub = sinon.stub(iap, 'isValidated')
.returns(true);
@@ -325,5 +325,26 @@ describe('Google Payments', () => {
headers,
});
});
it('should not cancel a user subscription with autorenew', async () => {
iap.getPurchaseData.restore();
iapGetPurchaseDataStub = sinon.stub(iap, 'getPurchaseData')
.returns([{ autoRenewing: true }]);
await googlePayments.cancelSubscribe(user, headers);
expect(iapSetupStub).to.be.calledOnce;
expect(iapValidateStub).to.be.calledOnce;
expect(iapValidateStub).to.be.calledWith(iap.GOOGLE, {
data: receipt,
signature,
});
expect(iapIsValidatedStub).to.be.calledOnce;
expect(iapIsValidatedStub).to.be.calledWith({
expirationDate,
});
expect(iapGetPurchaseDataStub).to.be.calledOnce;
expect(paymentCancelSubscriptionSpy).to.not.be.called;
});
});
});

View File

@@ -247,11 +247,11 @@ describe('payments/index', () => {
context('No Active Promotion', () => {
beforeEach(() => {
sinon.stub(worldState, 'getCurrentEvent').returns(null);
sinon.stub(worldState, 'getCurrentEventList').returns([]);
});
afterEach(() => {
worldState.getCurrentEvent.restore();
worldState.getCurrentEventList.restore();
});
it('sends a private message about the gift', async () => {
@@ -268,14 +268,14 @@ describe('payments/index', () => {
context('Active Promotion', () => {
beforeEach(() => {
sinon.stub(worldState, 'getCurrentEvent').returns({
sinon.stub(worldState, 'getCurrentEventList').returns([{
...common.content.events.winter2021Promo,
event: 'winter2021',
});
}]);
});
afterEach(() => {
worldState.getCurrentEvent.restore();
worldState.getCurrentEventList.restore();
});
it('creates a gift subscription for purchaser and recipient if none exist', async () => {

View File

@@ -656,9 +656,11 @@ describe('webhooks', () => {
id: 'group-id',
name: 'some group',
otherData: 'foo',
quest: {},
},
quest: {
key: 'some-key',
questOwner: 'user-id',
},
};
});

View File

@@ -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();
@@ -294,89 +310,32 @@ describe('cron middleware', () => {
});
});
context('Drop Cap A/B Test', async () => {
it('enrolls web users', async () => {
user.lastCron = moment(new Date()).subtract({ days: 2 });
await user.save();
req.headers['x-client'] = 'habitica-web';
it('cron should not run more than once', async () => {
user.lastCron = moment(new Date()).subtract({ days: 2 });
await user.save();
await new Promise((resolve, reject) => {
cronMiddleware(req, res, async err => {
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);
user = await User.findById(user._id).exec();
expect(user._ABtests.dropCapNotif).to.be.a.string;
return resolve();
});
});
});
}, 400);
}),
]);
it('enables the new notification for 50% of users', async () => {
sandbox.stub(Math, 'random').returns(0.5);
user.lastCron = moment(new Date()).subtract({ days: 2 });
await user.save();
req.headers['x-client'] = 'habitica-web';
await new Promise((resolve, reject) => {
cronMiddleware(req, res, async err => {
if (err) return reject(err);
user = await User.findById(user._id).exec();
expect(user._ABtests.dropCapNotif).to.be.equal('drop-cap-notif-enabled');
return resolve();
});
});
});
it('disables the new notification for 50% of users', async () => {
sandbox.stub(Math, 'random').returns(0.51);
user.lastCron = moment(new Date()).subtract({ days: 2 });
await user.save();
req.headers['x-client'] = 'habitica-web';
await new Promise((resolve, reject) => {
cronMiddleware(req, res, async err => {
if (err) return reject(err);
user = await User.findById(user._id).exec();
expect(user._ABtests.dropCapNotif).to.be.equal('drop-cap-notif-disabled');
return resolve();
});
});
});
it('does not affect subscribers', async () => {
sandbox.stub(Math, 'random').returns(0.2);
user.lastCron = moment(new Date()).subtract({ days: 2 });
await user.save();
req.headers['x-client'] = 'habitica-web';
sandbox.stub(User.prototype, 'isSubscribed').returns(true);
await new Promise((resolve, reject) => {
cronMiddleware(req, res, async err => {
if (err) return reject(err);
user = await User.findById(user._id).exec();
expect(user._ABtests.dropCapNotif).to.not.exist;
return resolve();
});
});
});
it('does not affect mobile users', async () => {
user.lastCron = moment(new Date()).subtract({ days: 2 });
await user.save();
req.headers['x-client'] = 'habitica-ios';
await new Promise((resolve, reject) => {
cronMiddleware(req, res, async err => {
if (err) return reject(err);
user = await User.findById(user._id).exec();
expect(user._ABtests.dropCapNotif).to.not.exist;
return resolve();
});
});
});
expect(cronLib.cron).to.be.calledOnce;
});
});

View File

@@ -488,20 +488,6 @@ describe('Group Model', () => {
expect(party.quest.progress.collect.soapBars).to.eq(5);
});
it('does not drop an item if not need when on a collection quest', async () => {
party.quest.key = 'dilatoryDistress1';
party.quest.active = false;
await party.startQuest(questLeader);
party.quest.progress.collect.fireCoral = 20;
await party.save();
await Group.processQuestProgress(participatingMember, progress);
party = await Group.findOne({ _id: party._id });
expect(party.quest.progress.collect.fireCoral).to.eq(20);
});
it('sends a chat message about progress', async () => {
await Group.processQuestProgress(participatingMember, progress);
@@ -538,8 +524,8 @@ describe('Group Model', () => {
});
});
describe('collection quests with multiple items', () => {
it('sends a chat message if no progress is made on quest with multiple items', async () => {
describe('collection quests with multiple item types', () => {
it('sends a chat message if no progress is made', async () => {
progress.collectedItems = 0;
party.quest.key = 'dilatoryDistress1';
party.quest.active = false;
@@ -609,6 +595,28 @@ describe('Group Model', () => {
});
});
it('does not drop items when an item type becomes full', async () => {
progress.collectedItems = 20;
party.quest.key = 'dilatoryDistress1';
party.quest.active = false;
await party.startQuest(questLeader);
party.quest.progress.collect.fireCoral = 19;
await party.save();
await Group.processQuestProgress(participatingMember, progress);
party = await Group.findOne({ _id: party._id });
// There is a very small chance (~1 in 500K) that blueFins will
// be 19 or 20 due to randomness and not any bug. In these cases, this
// test doesn't actually verify anything, but it's rare enough that it
// shouldn't be a problem, and to make it deterministic would require
// stubbing out methods in implementation-specific ways.
expect(party.quest.progress.collect.fireCoral).to.be.within(19, 20);
expect(party.quest.progress.collect.blueFins).to.be.within(19, 20);
});
it('sends message about victory', async () => {
progress.collectedItems = 500;

View File

@@ -592,20 +592,6 @@ describe('User Model', () => {
});
context('pre-save hook', () => {
it('enrolls users that signup through web in the Drop Cap AB test', async () => {
let user = new User();
user.registeredThrough = 'habitica-web';
user = await user.save();
expect(user._ABtests.dropCapNotif).to.exist;
});
it('does not enroll users that signup through modal in the Drop Cap AB test', async () => {
let user = new User();
user.registeredThrough = 'habitica-ios';
user = await user.save();
expect(user._ABtests.dropCapNotif).to.not.exist;
});
it('marks the last news post as read for new users', async () => {
const lastNewsPost = { _id: '1' };
sandbox.stub(NewsPost, 'lastNewsPost').returns(lastNewsPost);
@@ -825,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');

View File

@@ -74,7 +74,6 @@ describe('PUT /challenges/:challengeId', () => {
expect(res.memberCount).to.equal(2);
expect(res.tasksOrder).not.to.equal('new order');
expect(res.official).to.equal(false);
expect(res.shortName).not.to.equal('new short name');
expect(res.leader).to.eql({
_id: user._id,

View File

@@ -7,7 +7,7 @@ import {
} from '../../../../helpers/api-integration/v3';
const INVITES_LIMIT = 100;
const PARTY_LIMIT_MEMBERS = 30;
const PARTY_LIMIT_MEMBERS = 29;
const MAX_EMAIL_INVITES_BY_USER = 200;
describe('Post /groups/:groupId/invite', () => {
@@ -650,7 +650,7 @@ describe('Post /groups/:groupId/invite', () => {
.to.eventually.be.rejected.and.eql({
code: 400,
error: 'BadRequest',
message: t('partyExceedsMembersLimit', { maxMembersParty: PARTY_LIMIT_MEMBERS }),
message: t('partyExceedsMembersLimit', { maxMembersParty: PARTY_LIMIT_MEMBERS + 1 }),
});
}).timeout(10000);
});

View File

@@ -263,6 +263,7 @@ describe('POST /groups/:groupId/quests/invite/:questKey', () => {
expect(body.group.id).to.eql(questingGroup.id);
expect(body.group.name).to.eql(questingGroup.name);
expect(body.quest.key).to.eql(PET_QUEST);
expect(body.quest.questOwner).to.eql(questingGroup.leader._id);
});
});
});

View File

@@ -61,15 +61,6 @@ describe('POST /groups/:groupId/quests/leave', () => {
});
});
it('returns an error when quest is not active', async () => {
await expect(partyMembers[0].post(`/groups/${questingGroup._id}/quests/leave`))
.to.eventually.be.rejected.and.eql({
code: 404,
error: 'NotFound',
message: t('noActiveQuestToLeave'),
});
});
it('returns an error when quest leader attempts to leave', async () => {
await leader.post(`/groups/${questingGroup._id}/quests/invite/${PET_QUEST}`);
await partyMembers[0].post(`/groups/${questingGroup._id}/quests/accept`);
@@ -97,18 +88,14 @@ describe('POST /groups/:groupId/quests/leave', () => {
});
});
it('leaves a quest', async () => {
await leader.post(`/groups/${questingGroup._id}/quests/invite/${PET_QUEST}`);
await partyMembers[0].post(`/groups/${questingGroup._id}/quests/accept`);
await partyMembers[1].post(`/groups/${questingGroup._id}/quests/accept`);
const leaveResult = await partyMembers[0].post(`/groups/${questingGroup._id}/quests/leave`);
async function letPartyMemberLeaveAndCheckChanges (partyMember) {
const leaveResult = await partyMember.post(`/groups/${questingGroup._id}/quests/leave`);
await Promise.all([
partyMembers[0].sync(),
partyMember.sync(),
questingGroup.sync(),
]);
expect(partyMembers[0].party.quest).to.eql({
expect(partyMember.party.quest).to.eql({
key: null,
progress: {
up: 0,
@@ -120,6 +107,29 @@ describe('POST /groups/:groupId/quests/leave', () => {
RSVPNeeded: false,
});
expect(questingGroup.quest).to.deep.equal(leaveResult);
expect(questingGroup.quest.members[partyMembers[0]._id]).to.be.false;
expect(questingGroup.quest.members[partyMember._id]).to.be.false;
}
it('leaves an active quest', async () => {
await leader.post(`/groups/${questingGroup._id}/quests/invite/${PET_QUEST}`);
await partyMembers[0].post(`/groups/${questingGroup._id}/quests/accept`);
await partyMembers[1].post(`/groups/${questingGroup._id}/quests/accept`);
await questingGroup.sync();
expect(questingGroup.quest.active).to.eql(true);
await letPartyMemberLeaveAndCheckChanges(partyMembers[0]);
});
it('leaves an inactive quest ', async () => {
await leader.post(`/groups/${questingGroup._id}/quests/invite/${PET_QUEST}`);
await partyMembers[0].post(`/groups/${questingGroup._id}/quests/accept`);
await questingGroup.sync();
expect(questingGroup.quest.active).to.eql(false);
await letPartyMemberLeaveAndCheckChanges(partyMembers[0]);
});
});

View File

@@ -14,7 +14,7 @@ describe('GET /shops/backgrounds', () => {
const shop = await user.get('/shops/backgrounds');
expect(shop.identifier).to.equal('backgroundShop');
expect(shop.text).to.eql(t('backgroundShop'));
expect(shop.notes).to.eql(t('backgroundShopText'));
expect(shop.notes).to.eql(t('backgroundShop'));
expect(shop.imageName).to.equal('background_shop');
expect(shop.sets).to.be.an('array');

View File

@@ -31,7 +31,7 @@ describe('DELETE /tasks/:id', () => {
await expect(user.get(`/tasks/${task._id}`)).to.eventually.be.rejected.and.eql({
code: 404,
error: 'NotFound',
message: t('taskNotFound'),
message: t('messageTaskNotFound'),
});
});
@@ -41,7 +41,7 @@ describe('DELETE /tasks/:id', () => {
await expect(user.get(`/tasks/${task._id}`)).to.eventually.be.rejected.and.eql({
code: 404,
error: 'NotFound',
message: t('taskNotFound'),
message: t('messageTaskNotFound'),
});
});
});
@@ -123,7 +123,7 @@ describe('DELETE /tasks/:id', () => {
await expect(user.del('/tasks/550e8400-e29b-41d4-a716-446655440000')).to.eventually.be.rejected.and.eql({
code: 404,
error: 'NotFound',
message: t('taskNotFound'),
message: t('messageTaskNotFound'),
});
});
@@ -137,7 +137,7 @@ describe('DELETE /tasks/:id', () => {
await expect(user.del(`/tasks/${anotherUsersTask._id}`)).to.eventually.be.rejected.and.eql({
code: 404,
error: 'NotFound',
message: t('taskNotFound'),
message: t('messageTaskNotFound'),
});
});

View File

@@ -47,7 +47,7 @@ describe('GET /tasks/:taskId', () => {
await expect(user.get(`/tasks/${generateUUID()}`)).to.eventually.be.rejected.and.eql({
code: 404,
error: 'NotFound',
message: t('taskNotFound'),
message: t('messageTaskNotFound'),
});
});
@@ -68,7 +68,7 @@ describe('GET /tasks/:taskId', () => {
await expect(anotherUser.get(`/tasks/${task._id}`)).to.eventually.be.rejected.and.eql({
code: 404,
error: 'NotFound',
message: t('taskNotFound'),
message: t('messageTaskNotFound'),
});
});
});

View File

@@ -21,7 +21,7 @@ describe('GET /tasks/:id', () => {
await expect(user.get(`/tasks/${dummyId}`)).to.eventually.be.rejected.and.eql({
code: 404,
error: 'NotFound',
message: t('taskNotFound'),
message: t('messageTaskNotFound'),
});
});
});
@@ -63,7 +63,7 @@ describe('GET /tasks/:id', () => {
await expect(anotherUser.get(`/tasks/${task._id}`)).to.eventually.be.rejected.and.eql({
code: 404,
error: 'NotFound',
message: t('taskNotFound'),
message: t('messageTaskNotFound'),
});
});
});
@@ -118,7 +118,7 @@ describe('GET /tasks/:id', () => {
await expect(user.get(`/tasks/${task._id}`)).to.eventually.be.rejected.and.eql({
code: 404,
error: 'NotFound',
message: t('taskNotFound'),
message: t('messageTaskNotFound'),
});
});
});
@@ -163,7 +163,7 @@ describe('GET /tasks/:id', () => {
await expect(user.get(`/tasks/${task._id}`)).to.eventually.be.rejected.and.eql({
code: 404,
error: 'NotFound',
message: t('taskNotFound'),
message: t('messageTaskNotFound'),
});
});
});

View File

@@ -23,7 +23,7 @@ describe('POST /tasks/:taskId/move/to/:position', () => {
await expect(user.post(`/tasks/${generateUUID()}/move/to/1`)).to.eventually.be.rejected.and.eql({
code: 404,
error: 'NotFound',
message: t('taskNotFound'),
message: t('messageTaskNotFound'),
});
});

View File

@@ -80,7 +80,7 @@ describe('POST /tasks/unlink-all/:challengeId', () => {
await expect(user.get(`/tasks/${daily._id}`)).to.eventually.be.rejected.and.eql({
code: 404,
error: 'NotFound',
message: t('taskNotFound'),
message: t('messageTaskNotFound'),
});
});

View File

@@ -65,7 +65,7 @@ describe('POST /tasks/unlink-one/:taskId', () => {
.to.eventually.be.rejected.and.eql({
code: 404,
error: 'NotFound',
message: t('taskNotFound'),
message: t('messageTaskNotFound'),
});
});

View File

@@ -22,7 +22,7 @@ describe('DELETE /tasks/:taskId/checklist/:itemId', () => {
await expect(user.del(`/tasks/${generateUUID()}/checklist/${generateUUID()}`)).to.eventually.be.rejected.and.eql({
code: 404,
error: 'NotFound',
message: t('taskNotFound'),
message: t('messageTaskNotFound'),
});
});

View File

@@ -31,7 +31,7 @@ describe('DELETE /tasks/:id', () => {
await expect(user.del(`/tasks/${generateUUID()}`)).to.eventually.be.rejected.and.eql({
code: 404,
error: 'NotFound',
message: t('taskNotFound'),
message: t('messageTaskNotFound'),
});
});
@@ -51,7 +51,7 @@ describe('DELETE /tasks/:id', () => {
await expect(user.get(`/tasks/${task._id}`)).to.eventually.be.rejected.and.eql({
code: 404,
error: 'NotFound',
message: t('taskNotFound'),
message: t('messageTaskNotFound'),
});
});
@@ -93,7 +93,7 @@ describe('DELETE /tasks/:id', () => {
await expect(anotherUser.get(`/tasks/${task._id}`)).to.eventually.be.rejected.and.eql({
code: 404,
error: 'NotFound',
message: t('taskNotFound'),
message: t('messageTaskNotFound'),
});
});
@@ -111,7 +111,7 @@ describe('DELETE /tasks/:id', () => {
await expect(anotherUser.get(`/tasks/${anotherUsersNewChallengeTaskID}`)).to.eventually.be.rejected.and.eql({
code: 404,
error: 'NotFound',
message: t('taskNotFound'),
message: t('messageTaskNotFound'),
});
});
});

View File

@@ -24,7 +24,7 @@ describe('POST /tasks/:taskId/checklist/', () => {
})).to.eventually.be.rejected.and.eql({
code: 404,
error: 'NotFound',
message: t('taskNotFound'),
message: t('messageTaskNotFound'),
});
});

View File

@@ -37,7 +37,7 @@ describe('PUT /tasks/:id', () => {
})).to.eventually.be.rejected.and.eql({
code: 404,
error: 'NotFound',
message: t('taskNotFound'),
message: t('messageTaskNotFound'),
});
});

View File

@@ -137,7 +137,7 @@ describe('PUT /tasks/:taskId/checklist/:itemId', () => {
await expect(user.put(`/tasks/${generateUUID()}/checklist/${generateUUID()}`)).to.eventually.be.rejected.and.eql({
code: 404,
error: 'NotFound',
message: t('taskNotFound'),
message: t('messageTaskNotFound'),
});
});

View File

@@ -70,7 +70,7 @@ describe('DELETE /tasks/:taskId/checklist/:itemId', () => {
await expect(user.del(`/tasks/${generateUUID()}/checklist/${generateUUID()}`)).to.eventually.be.rejected.and.eql({
code: 404,
error: 'NotFound',
message: t('taskNotFound'),
message: t('messageTaskNotFound'),
});
});

View File

@@ -88,7 +88,7 @@ describe('POST /tasks/:taskId/checklist/', () => {
})).to.eventually.be.rejected.and.eql({
code: 404,
error: 'NotFound',
message: t('taskNotFound'),
message: t('messageTaskNotFound'),
});
});
});

View File

@@ -80,7 +80,7 @@ describe('POST /tasks/:taskId/checklist/:itemId/score', () => {
await expect(user.post(`/tasks/${generateUUID()}/checklist/${generateUUID()}/score`)).to.eventually.be.rejected.and.eql({
code: 404,
error: 'NotFound',
message: t('taskNotFound'),
message: t('messageTaskNotFound'),
});
});

View File

@@ -88,7 +88,7 @@ describe('PUT /tasks/:taskId/checklist/:itemId', () => {
await expect(user.put(`/tasks/${generateUUID()}/checklist/${generateUUID()}`)).to.eventually.be.rejected.and.eql({
code: 404,
error: 'NotFound',
message: t('taskNotFound'),
message: t('messageTaskNotFound'),
});
});

View File

@@ -45,7 +45,7 @@ describe('Groups DELETE /tasks/:id', () => {
.to.eventually.be.rejected.and.eql({
code: 404,
error: 'NotFound',
message: t('taskNotFound'),
message: t('messageTaskNotFound'),
});
});
@@ -60,7 +60,7 @@ describe('Groups DELETE /tasks/:id', () => {
.to.eventually.be.rejected.and.eql({
code: 404,
error: 'NotFound',
message: t('taskNotFound'),
message: t('messageTaskNotFound'),
});
});

View File

@@ -38,7 +38,7 @@ describe('POST /tasks/:id/approve/:userId', () => {
.to.eventually.be.rejected.and.to.eql({
code: 404,
error: 'NotFound',
message: t('taskNotFound'),
message: t('messageTaskNotFound'),
});
});

View File

@@ -38,7 +38,7 @@ describe('POST /tasks/:id/needs-work/:userId', () => {
.to.eventually.be.rejected.and.to.eql({
code: 404,
error: 'NotFound',
message: t('taskNotFound'),
message: t('messageTaskNotFound'),
});
});

View File

@@ -42,7 +42,7 @@ describe('POST /tasks/:taskId/assign/:memberId', () => {
.to.eventually.be.rejected.and.eql({
code: 404,
error: 'NotFound',
message: t('taskNotFound'),
message: t('messageTaskNotFound'),
});
});

View File

@@ -44,7 +44,7 @@ describe('POST /tasks/:taskId/unassign/:memberId', () => {
.to.eventually.be.rejected.and.eql({
code: 404,
error: 'NotFound',
message: t('taskNotFound'),
message: t('messageTaskNotFound'),
});
});

View File

@@ -65,7 +65,7 @@ describe('DELETE group /tasks/:taskId/checklist/:itemId', () => {
await expect(user.del(`/tasks/${generateUUID()}/checklist/${generateUUID()}`)).to.eventually.be.rejected.and.eql({
code: 404,
error: 'NotFound',
message: t('taskNotFound'),
message: t('messageTaskNotFound'),
});
});

View File

@@ -80,7 +80,7 @@ describe('POST group /tasks/:taskId/checklist/', () => {
})).to.eventually.be.rejected.and.eql({
code: 404,
error: 'NotFound',
message: t('taskNotFound'),
message: t('messageTaskNotFound'),
});
});
});

View File

@@ -74,7 +74,7 @@ describe('PUT group /tasks/:taskId/checklist/:itemId', () => {
await expect(user.put(`/tasks/${generateUUID()}/checklist/${generateUUID()}`)).to.eventually.be.rejected.and.eql({
code: 404,
error: 'NotFound',
message: t('taskNotFound'),
message: t('messageTaskNotFound'),
});
});

View File

@@ -116,7 +116,7 @@ describe('POST /user/class/cast/:spellId', () => {
.to.eventually.be.rejected.and.eql({
code: 404,
error: 'NotFound',
message: t('taskNotFound'),
message: t('messageTaskNotFound'),
});
});

View File

@@ -27,7 +27,7 @@ describe('POST /user/reset', () => {
await expect(user.get(`/tasks/${task._id}`)).to.eventually.be.rejected.and.eql({
code: 404,
error: 'NotFound',
message: t('taskNotFound'),
message: t('messageTaskNotFound'),
});
expect(user.tasksOrder.habits).to.be.empty;
@@ -45,7 +45,7 @@ describe('POST /user/reset', () => {
await expect(user.get(`/tasks/${task._id}`)).to.eventually.be.rejected.and.eql({
code: 404,
error: 'NotFound',
message: t('taskNotFound'),
message: t('messageTaskNotFound'),
});
expect(user.tasksOrder.dailys).to.be.empty;
@@ -63,7 +63,7 @@ describe('POST /user/reset', () => {
await expect(user.get(`/tasks/${task._id}`)).to.eventually.be.rejected.and.eql({
code: 404,
error: 'NotFound',
message: t('taskNotFound'),
message: t('messageTaskNotFound'),
});
expect(user.tasksOrder.todos).to.be.empty;
@@ -81,7 +81,7 @@ describe('POST /user/reset', () => {
await expect(user.get(`/tasks/${task._id}`)).to.eventually.be.rejected.and.eql({
code: 404,
error: 'NotFound',
message: t('taskNotFound'),
message: t('messageTaskNotFound'),
});
expect(user.tasksOrder.rewards).to.be.empty;

View File

@@ -1,3 +1,4 @@
import { v4 as generateUUID } from 'uuid';
import {
generateUser,
requester,
@@ -9,15 +10,18 @@ describe('GET /user/auth/apple', () => {
let api;
let user;
const appleEndpoint = '/user/auth/apple';
before(async () => {
const expectedResult = { id: 'appleId', name: 'an apple user' };
sandbox.stub(appleAuth, 'appleProfile').returns(Promise.resolve(expectedResult));
});
let randomAppleId = '123456';
beforeEach(async () => {
api = requester();
user = await generateUser();
randomAppleId = generateUUID();
const expectedResult = { id: randomAppleId, name: 'an apple user' };
sandbox.stub(appleAuth, 'appleProfile').returns(Promise.resolve(expectedResult));
});
afterEach(async () => {
appleAuth.appleProfile.restore();
});
it('registers a new user', async () => {
@@ -26,7 +30,7 @@ describe('GET /user/auth/apple', () => {
expect(response.apiToken).to.exist;
expect(response.id).to.exist;
expect(response.newUser).to.be.true;
await expect(getProperty('users', response.id, 'auth.apple.id')).to.eventually.equal('appleId');
await expect(getProperty('users', response.id, 'auth.apple.id')).to.eventually.equal(randomAppleId);
await expect(getProperty('users', response.id, 'profile.name')).to.eventually.equal('an apple user');
});

View File

@@ -1,4 +1,5 @@
import passport from 'passport';
import { v4 as generateUUID } from 'uuid';
import {
generateUser,
requester,
@@ -10,14 +11,15 @@ describe('POST /user/auth/social', () => {
let api;
let user;
const endpoint = '/user/auth/social';
const randomAccessToken = '123456';
const facebookId = 'facebookId';
const googleId = 'googleId';
let randomAccessToken = '123456';
let randomFacebookId = 'facebookId';
let randomGoogleId = 'googleId';
let network = 'NoNetwork';
beforeEach(async () => {
api = requester();
user = await generateUser();
randomAccessToken = generateUUID();
});
it('fails if network is not supported', async () => {
@@ -32,12 +34,23 @@ describe('POST /user/auth/social', () => {
});
describe('facebook', () => {
before(async () => {
const expectedResult = { id: facebookId, displayName: 'a facebook user' };
beforeEach(async () => {
randomFacebookId = generateUUID();
const expectedResult = {
id: randomFacebookId,
displayName: 'a facebook user',
emails: [
{ value: `${user.auth.local.username}+facebook@example.com` },
],
};
sandbox.stub(passport._strategies.facebook, 'userProfile').yields(null, expectedResult);
network = 'facebook';
});
afterEach(async () => {
passport._strategies.facebook.userProfile.restore();
});
it('registers a new user', async () => {
const response = await api.post(endpoint, {
authResponse: { access_token: randomAccessToken }, // eslint-disable-line camelcase
@@ -51,7 +64,8 @@ describe('POST /user/auth/social', () => {
await expect(getProperty('users', response.id, 'profile.name')).to.eventually.equal('a facebook user');
await expect(getProperty('users', response.id, 'auth.local.lowerCaseUsername')).to.exist;
await expect(getProperty('users', response.id, 'auth.facebook.id')).to.eventually.equal(facebookId);
await expect(getProperty('users', response.id, 'auth.local.email')).to.eventually.equal(`${user.auth.local.username}+facebook@example.com`);
await expect(getProperty('users', response.id, 'auth.facebook.id')).to.eventually.equal(randomFacebookId);
});
it('logs an existing user in', async () => {
@@ -68,6 +82,57 @@ describe('POST /user/auth/social', () => {
expect(response.apiToken).to.eql(registerResponse.apiToken);
expect(response.id).to.eql(registerResponse.id);
expect(response.newUser).to.be.false;
expect(registerResponse.newUser).to.be.true;
});
it('logs an existing user in if they have local auth with matching email', async () => {
passport._strategies.facebook.userProfile.restore();
const expectedResult = {
id: randomFacebookId,
displayName: 'a facebook user',
emails: [
{ value: user.auth.local.email },
],
};
sandbox.stub(passport._strategies.facebook, 'userProfile').yields(null, expectedResult);
const response = await api.post(endpoint, {
authResponse: { access_token: randomAccessToken }, // eslint-disable-line camelcase
network,
});
expect(response.apiToken).to.eql(user.apiToken);
expect(response.id).to.eql(user._id);
expect(response.newUser).to.be.false;
});
it('logs an existing user into their social account if they have local auth with matching email', async () => {
const registerResponse = await api.post(endpoint, {
authResponse: { access_token: randomAccessToken }, // eslint-disable-line camelcase
network,
});
expect(registerResponse.newUser).to.be.true;
// This is important for existing accounts before the new social handling
passport._strategies.facebook.userProfile.restore();
const expectedResult = {
id: randomFacebookId,
displayName: 'a facebook user',
emails: [
{ value: user.auth.local.email },
],
};
sandbox.stub(passport._strategies.facebook, 'userProfile').yields(null, expectedResult);
const response = await api.post(endpoint, {
authResponse: { access_token: randomAccessToken }, // eslint-disable-line camelcase
network,
});
expect(response.apiToken).to.eql(registerResponse.apiToken);
expect(response.id).to.eql(registerResponse.id);
expect(response.apiToken).not.to.eql(user.apiToken);
expect(response.id).not.to.eql(user._id);
expect(response.newUser).to.be.false;
});
it('add social auth to an existing user', async () => {
@@ -76,11 +141,28 @@ describe('POST /user/auth/social', () => {
network,
});
expect(response.apiToken).to.exist;
expect(response.id).to.exist;
expect(response.apiToken).to.eql(user.apiToken);
expect(response.id).to.eql(user._id);
expect(response.newUser).to.be.false;
});
it('does not log into other account if social auth already exists', async () => {
const registerResponse = await api.post(endpoint, {
authResponse: { access_token: randomAccessToken }, // eslint-disable-line camelcase
network,
});
expect(registerResponse.newUser).to.be.true;
await expect(user.post(endpoint, {
authResponse: { access_token: randomAccessToken }, // eslint-disable-line camelcase
network,
})).to.eventually.be.rejected.and.eql({
code: 401,
error: 'NotAuthorized',
message: t('socialAlreadyExists'),
});
});
xit('enrolls a new user in an A/B test', async () => {
await api.post(endpoint, {
authResponse: { access_token: randomAccessToken }, // eslint-disable-line camelcase
@@ -92,12 +174,23 @@ describe('POST /user/auth/social', () => {
});
describe('google', () => {
before(async () => {
const expectedResult = { id: googleId, displayName: 'a google user' };
beforeEach(async () => {
randomGoogleId = generateUUID();
const expectedResult = {
id: randomGoogleId,
displayName: 'a google user',
emails: [
{ value: `${user.auth.local.username}+google@example.com` },
],
};
sandbox.stub(passport._strategies.google, 'userProfile').yields(null, expectedResult);
network = 'google';
});
afterEach(async () => {
passport._strategies.google.userProfile.restore();
});
it('registers a new user', async () => {
const response = await api.post(endpoint, {
authResponse: { access_token: randomAccessToken }, // eslint-disable-line camelcase
@@ -107,7 +200,8 @@ describe('POST /user/auth/social', () => {
expect(response.apiToken).to.exist;
expect(response.id).to.exist;
expect(response.newUser).to.be.true;
await expect(getProperty('users', response.id, 'auth.google.id')).to.eventually.equal(googleId);
await expect(getProperty('users', response.id, 'auth.google.id')).to.eventually.equal(randomGoogleId);
await expect(getProperty('users', response.id, 'auth.local.email')).to.eventually.equal(`${user.auth.local.username}+google@example.com`);
await expect(getProperty('users', response.id, 'profile.name')).to.eventually.equal('a google user');
});
@@ -125,6 +219,57 @@ describe('POST /user/auth/social', () => {
expect(response.apiToken).to.eql(registerResponse.apiToken);
expect(response.id).to.eql(registerResponse.id);
expect(response.newUser).to.be.false;
expect(registerResponse.newUser).to.be.true;
});
it('logs an existing user in if they have local auth with matching email', async () => {
passport._strategies.google.userProfile.restore();
const expectedResult = {
id: randomGoogleId,
displayName: 'a google user',
emails: [
{ value: user.auth.local.email },
],
};
sandbox.stub(passport._strategies.google, 'userProfile').yields(null, expectedResult);
const response = await api.post(endpoint, {
authResponse: { access_token: randomAccessToken }, // eslint-disable-line camelcase
network,
});
expect(response.apiToken).to.eql(user.apiToken);
expect(response.id).to.eql(user._id);
expect(response.newUser).to.be.false;
});
it('logs an existing user into their social account if they have local auth with matching email', async () => {
const registerResponse = await api.post(endpoint, {
authResponse: { access_token: randomAccessToken }, // eslint-disable-line camelcase
network,
});
expect(registerResponse.newUser).to.be.true;
// This is important for existing accounts before the new social handling
passport._strategies.google.userProfile.restore();
const expectedResult = {
id: randomGoogleId,
displayName: 'a google user',
emails: [
{ value: user.auth.local.email },
],
};
sandbox.stub(passport._strategies.google, 'userProfile').yields(null, expectedResult);
const response = await api.post(endpoint, {
authResponse: { access_token: randomAccessToken }, // eslint-disable-line camelcase
network,
});
expect(response.apiToken).to.eql(registerResponse.apiToken);
expect(response.id).to.eql(registerResponse.id);
expect(response.apiToken).not.to.eql(user.apiToken);
expect(response.id).not.to.eql(user._id);
expect(response.newUser).to.be.false;
});
it('add social auth to an existing user', async () => {
@@ -133,11 +278,28 @@ describe('POST /user/auth/social', () => {
network,
});
expect(response.apiToken).to.exist;
expect(response.id).to.exist;
expect(response.apiToken).to.eql(user.apiToken);
expect(response.id).to.eql(user._id);
expect(response.newUser).to.be.false;
});
it('does not log into other account if social auth already exists', async () => {
const registerResponse = await api.post(endpoint, {
authResponse: { access_token: randomAccessToken }, // eslint-disable-line camelcase
network,
});
expect(registerResponse.newUser).to.be.true;
await expect(user.post(endpoint, {
authResponse: { access_token: randomAccessToken }, // eslint-disable-line camelcase
network,
})).to.eventually.be.rejected.and.eql({
code: 401,
error: 'NotAuthorized',
message: t('socialAlreadyExists'),
});
});
xit('enrolls a new user in an A/B test', async () => {
await api.post(endpoint, {
authResponse: { access_token: randomAccessToken }, // eslint-disable-line camelcase

View File

@@ -0,0 +1,49 @@
import {
generateUser,
} from '../../helpers/api-integration/v4';
describe('POST /bug-report', () => {
let user;
beforeEach(async () => {
user = await generateUser();
});
it('returns an error when message is not added', async () => {
await expect(user.post('/bug-report', {
message: '',
}))
.to.eventually.be.rejected.and.to.eql({
code: 400,
error: 'BadRequest',
// seems it is not possible to get the real error message
message: 'Invalid request parameters.',
});
});
it('returns an error when email is not added', async () => {
await expect(user.post('/bug-report', {
message: 'message',
email: '',
}))
.to.eventually.be.rejected.and.to.eql({
code: 400,
error: 'BadRequest',
// seems it is not possible to get the real error message
message: 'Invalid request parameters.',
});
});
it('returns an error when email is not valid', async () => {
await expect(user.post('/bug-report', {
message: 'message',
email: 'notamail',
}))
.to.eventually.be.rejected.and.to.eql({
code: 400,
error: 'BadRequest',
// seems it is not possible to get the real error message
message: 'Invalid request parameters.',
});
});
});

View File

@@ -0,0 +1,38 @@
import {
generateUser,
translate as t,
} from '../../../helpers/api-integration/v4';
describe('GET /members/:memberId/purchase-history', () => {
let user;
before(async () => {
user = await generateUser({
contributor: { admin: true },
});
});
it('validates req.params.memberId', async () => {
await expect(user.get('/members/invalidUUID/purchase-history')).to.eventually.be.rejected.and.eql({
code: 400,
error: 'BadRequest',
message: t('invalidReqParams'),
});
});
it('returns error if user is not admin', async () => {
const member = await generateUser();
const nonAdmin = await generateUser();
await expect(nonAdmin.get(`/members/${member._id}/purchase-history`)).to.eventually.be.rejected.and.eql({
code: 401,
error: 'NotAuthorized',
message: t('noAdminAccess'),
});
});
it('returns purchase history based on given user', async () => {
const member = await generateUser();
const response = await user.get(`/members/${member._id}/purchase-history`);
expect(response.length).to.equal(0);
});
});

View File

@@ -101,7 +101,7 @@ describe('POST /user/class/cast/:spellId', () => {
.to.eventually.be.rejected.and.eql({
code: 404,
error: 'NotFound',
message: t('taskNotFound'),
message: t('messageTaskNotFound'),
});
});

View File

@@ -27,7 +27,7 @@ describe('POST /user/reset', () => {
await expect(user.get(`/tasks/${task._id}`)).to.eventually.be.rejected.and.eql({
code: 404,
error: 'NotFound',
message: t('taskNotFound'),
message: t('messageTaskNotFound'),
});
expect(user.tasksOrder.habits).to.be.empty;
@@ -45,7 +45,7 @@ describe('POST /user/reset', () => {
await expect(user.get(`/tasks/${task._id}`)).to.eventually.be.rejected.and.eql({
code: 404,
error: 'NotFound',
message: t('taskNotFound'),
message: t('messageTaskNotFound'),
});
expect(user.tasksOrder.dailys).to.be.empty;
@@ -63,7 +63,7 @@ describe('POST /user/reset', () => {
await expect(user.get(`/tasks/${task._id}`)).to.eventually.be.rejected.and.eql({
code: 404,
error: 'NotFound',
message: t('taskNotFound'),
message: t('messageTaskNotFound'),
});
expect(user.tasksOrder.todos).to.be.empty;
@@ -81,7 +81,7 @@ describe('POST /user/reset', () => {
await expect(user.get(`/tasks/${task._id}`)).to.eventually.be.rejected.and.eql({
code: 404,
error: 'NotFound',
message: t('taskNotFound'),
message: t('messageTaskNotFound'),
});
expect(user.tasksOrder.rewards).to.be.empty;

View File

@@ -1,5 +1,4 @@
import randomDrop from '../../../website/common/script/fns/randomDrop';
import i18n from '../../../website/common/script/i18n';
import {
generateUser,
generateTodo,
@@ -145,148 +144,5 @@ describe('common.fns.randomDrop', () => {
expect(acceptableDrops).to.contain(user._tmp.drop.key); // always Desert
});
});
context('drop cap notification', () => {
let analytics;
const req = {};
let isSubscribedStub;
beforeEach(() => {
user.addNotification = () => {};
sandbox.stub(user, 'addNotification');
user.isSubscribed = () => {};
isSubscribedStub = sandbox.stub(user, 'isSubscribed');
isSubscribedStub.returns(false);
analytics = { track () {} };
sandbox.stub(analytics, 'track');
});
it('sends a notification if A/B test is enabled when drop cap is reached', () => {
user._ABtests.dropCapNotif = 'drop-cap-notif-enabled';
predictableRandom.returns(0.1);
// Max Drop Count is 5
expect(user.items.lastDrop.count).to.equal(0);
randomDrop(user, { task, predictableRandom }, req, analytics);
randomDrop(user, { task, predictableRandom }, req, analytics);
randomDrop(user, { task, predictableRandom }, req, analytics);
randomDrop(user, { task, predictableRandom }, req, analytics);
randomDrop(user, { task, predictableRandom }, req, analytics);
expect(user.items.lastDrop.count).to.equal(5);
expect(user.addNotification).to.be.calledOnce;
expect(user.addNotification).to.be.calledWith('DROP_CAP_REACHED', {
message: i18n.t('dropCapReached'),
items: 5,
});
});
it('does not send a notification if user is enrolled in disabled A/B test group', () => {
user._ABtests.dropCapNotif = 'drop-cap-notif-disabled';
predictableRandom.returns(0.1);
// Max Drop Count is 5
expect(user.items.lastDrop.count).to.equal(0);
randomDrop(user, { task, predictableRandom }, req, analytics);
randomDrop(user, { task, predictableRandom }, req, analytics);
randomDrop(user, { task, predictableRandom }, req, analytics);
randomDrop(user, { task, predictableRandom }, req, analytics);
randomDrop(user, { task, predictableRandom }, req, analytics);
expect(user.items.lastDrop.count).to.equal(5);
expect(user.addNotification).to.not.be.called;
});
it('does not send a notification if user is enrolled in disabled A/B test group', () => {
user._ABtests.dropCapNotif = 'drop-cap-notif-not-enrolled';
predictableRandom.returns(0.1);
// Max Drop Count is 5
expect(user.items.lastDrop.count).to.equal(0);
randomDrop(user, { task, predictableRandom }, req, analytics);
randomDrop(user, { task, predictableRandom }, req, analytics);
randomDrop(user, { task, predictableRandom }, req, analytics);
randomDrop(user, { task, predictableRandom }, req, analytics);
randomDrop(user, { task, predictableRandom }, req, analytics);
expect(user.items.lastDrop.count).to.equal(5);
expect(user.addNotification).to.not.be.called;
});
it('does not send a notification if drop cap is not reached', () => {
user._ABtests.dropCapNotif = 'drop-cap-notif-enabled';
predictableRandom.returns(0.1);
// Max Drop Count is 5
expect(user.items.lastDrop.count).to.equal(0);
randomDrop(user, { task, predictableRandom }, req, analytics);
randomDrop(user, { task, predictableRandom }, req, analytics);
randomDrop(user, { task, predictableRandom }, req, analytics);
randomDrop(user, { task, predictableRandom }, req, analytics);
expect(user.items.lastDrop.count).to.equal(4);
expect(user.addNotification).to.not.be.called;
});
it('does not send a notification if user is subscribed', () => {
user._ABtests.dropCapNotif = 'drop-cap-notif-enabled';
predictableRandom.returns(0.1);
isSubscribedStub.returns(true);
// Max Drop Count is 5
expect(user.items.lastDrop.count).to.equal(0);
randomDrop(user, { task, predictableRandom }, req, analytics);
randomDrop(user, { task, predictableRandom }, req, analytics);
randomDrop(user, { task, predictableRandom }, req, analytics);
randomDrop(user, { task, predictableRandom }, req, analytics);
randomDrop(user, { task, predictableRandom }, req, analytics);
expect(user.items.lastDrop.count).to.equal(5);
expect(user.addNotification).to.not.be.called;
});
it('tracks drop cap reached event for enrolled users (notification enabled)', () => {
user._ABtests.dropCapNotif = 'drop-cap-notif-enabled';
predictableRandom.returns(0.1);
isSubscribedStub.returns(true);
// Max Drop Count is 5
expect(user.items.lastDrop.count).to.equal(0);
randomDrop(user, { task, predictableRandom }, req, analytics);
randomDrop(user, { task, predictableRandom }, req, analytics);
randomDrop(user, { task, predictableRandom }, req, analytics);
randomDrop(user, { task, predictableRandom }, req, analytics);
randomDrop(user, { task, predictableRandom }, req, analytics);
expect(user.items.lastDrop.count).to.equal(5);
expect(analytics.track).to.be.calledWith('drop cap reached');
});
it('tracks drop cap reached event for enrolled users (notification disabled)', () => {
user._ABtests.dropCapNotif = 'drop-cap-notif-disabled';
predictableRandom.returns(0.1);
isSubscribedStub.returns(true);
// Max Drop Count is 5
expect(user.items.lastDrop.count).to.equal(0);
randomDrop(user, { task, predictableRandom }, req, analytics);
randomDrop(user, { task, predictableRandom }, req, analytics);
randomDrop(user, { task, predictableRandom }, req, analytics);
randomDrop(user, { task, predictableRandom }, req, analytics);
randomDrop(user, { task, predictableRandom }, req, analytics);
expect(user.items.lastDrop.count).to.equal(5);
expect(analytics.track).to.be.calledWith('drop cap reached');
});
it('does not track drop cap reached event for users not enrolled in A/B test', () => {
user._ABtests.dropCapNotif = 'drop-cap-notif-not-enrolled';
predictableRandom.returns(0.1);
isSubscribedStub.returns(true);
// Max Drop Count is 5
expect(user.items.lastDrop.count).to.equal(0);
randomDrop(user, { task, predictableRandom }, req, analytics);
randomDrop(user, { task, predictableRandom }, req, analytics);
randomDrop(user, { task, predictableRandom }, req, analytics);
randomDrop(user, { task, predictableRandom }, req, analytics);
randomDrop(user, { task, predictableRandom }, req, analytics);
expect(user.items.lastDrop.count).to.equal(5);
expect(analytics.track).to.not.be.calledWith('drop cap reached');
});
});
});
});

View File

@@ -1,6 +1,6 @@
import moment from 'moment';
import { startOfDay, daysSince } from '../../../website/common/script/cron';
import { startOfDay, daysSince, getPlanContext } from '../../../website/common/script/cron';
function localMoment (timeString, utcOffset) {
return moment(timeString).utcOffset(utcOffset, true);
@@ -181,4 +181,63 @@ describe('cron utility functions', () => {
expect(result).to.equal(0);
});
});
describe('getPlanContext', () => {
const now = new Date(2022, 5, 1);
function baseUserData (count, offset, planId) {
return {
purchased: {
plan: {
consecutive: {
count,
offset,
gemCapExtra: 25,
trinkets: 19,
},
quantity: 1,
extraMonths: 0,
gemsBought: 0,
owner: '116b4133-8fb7-43f2-b0de-706621a8c9d8',
nextBillingDate: null,
nextPaymentProcessing: null,
planId,
customerId: 'group-plan',
dateUpdated: '2022-05-10T03:00:00.144+01:00',
paymentMethod: 'Group Plan',
dateTerminated: null,
lastBillingDate: null,
dateCreated: '2017-02-10T19:00:00.355+01:00',
},
},
};
}
it('offset 0, next date in 3 months', () => {
const user = baseUserData(60, 0, 'group_plan_auto');
const planContext = getPlanContext(user, now);
expect(planContext.nextHourglassDate)
.to.be.sameMoment('2022-08-10T02:00:00.144Z');
});
it('offset 1, next date in 1 months', () => {
const user = baseUserData(60, 1, 'group_plan_auto');
const planContext = getPlanContext(user, now);
expect(planContext.nextHourglassDate)
.to.be.sameMoment('2022-06-10T02:00:00.144Z');
});
it('offset 2, next date in 2 months - with any plan', () => {
const user = baseUserData(60, 2, 'basic_3mo');
const planContext = getPlanContext(user, now);
expect(planContext.nextHourglassDate)
.to.be.sameMoment('2022-07-10T02:00:00.144Z');
});
});
});

View File

@@ -40,28 +40,27 @@ describe('shared.ops.buy', () => {
analytics.track.restore();
});
it('returns error when key is not provided', done => {
it('returns error when key is not provided', async () => {
try {
buy(user);
await buy(user);
} catch (err) {
expect(err).to.be.an.instanceof(BadRequest);
expect(err.message).to.equal(errorMessage('missingKeyParam'));
done();
}
});
it('recovers 15 hp', () => {
it('recovers 15 hp', async () => {
user.stats.hp = 30;
buy(user, { params: { key: 'potion' } }, analytics);
await buy(user, { params: { key: 'potion' } }, analytics);
expect(user.stats.hp).to.eql(45);
expect(analytics.track).to.be.calledOnce;
});
it('adds equipment to inventory', () => {
it('adds equipment to inventory', async () => {
user.stats.gp = 31;
buy(user, { params: { key: 'armor_warrior_1' } });
await buy(user, { params: { key: 'armor_warrior_1' } });
expect(user.items.gear.owned).to.eql({
weapon_warrior_0: true,
@@ -90,10 +89,10 @@ describe('shared.ops.buy', () => {
});
});
it('buys Steampunk Accessories Set', () => {
it('buys Steampunk Accessories Set', async () => {
user.purchased.plan.consecutive.trinkets = 1;
buy(user, {
await buy(user, {
params: {
key: '301404',
},
@@ -108,10 +107,10 @@ describe('shared.ops.buy', () => {
expect(user.items.gear.owned).to.have.property('eyewear_mystery_301404', true);
});
it('buys a Quest scroll', () => {
it('buys a Quest scroll', async () => {
user.stats.gp = 205;
buy(user, {
await buy(user, {
params: {
key: 'dilatoryDistress1',
},
@@ -122,11 +121,11 @@ describe('shared.ops.buy', () => {
expect(user.stats.gp).to.equal(5);
});
it('buys a special item', () => {
it('buys a special item', async () => {
user.stats.gp = 11;
const item = content.special.thankyou;
const [data, message] = buy(user, {
const [data, message] = await buy(user, {
params: {
key: 'thankyou',
},
@@ -144,15 +143,15 @@ describe('shared.ops.buy', () => {
}));
});
it('allows for bulk purchases', () => {
it('allows for bulk purchases', async () => {
user.stats.hp = 30;
buy(user, { params: { key: 'potion' }, quantity: 2 });
await buy(user, { params: { key: 'potion' }, quantity: 2 });
expect(user.stats.hp).to.eql(50);
});
it('errors if user supplies a non-numeric quantity', done => {
it('errors if user supplies a non-numeric quantity', async () => {
try {
buy(user, {
await buy(user, {
params: {
key: 'dilatoryDistress1',
},
@@ -162,13 +161,12 @@ describe('shared.ops.buy', () => {
} catch (err) {
expect(err).to.be.an.instanceof(BadRequest);
expect(err.message).to.equal(errorMessage('invalidQuantity'));
done();
}
});
it('errors if user supplies a negative quantity', done => {
it('errors if user supplies a negative quantity', async () => {
try {
buy(user, {
await buy(user, {
params: {
key: 'dilatoryDistress1',
},
@@ -178,13 +176,12 @@ describe('shared.ops.buy', () => {
} catch (err) {
expect(err).to.be.an.instanceof(BadRequest);
expect(err.message).to.equal(errorMessage('invalidQuantity'));
done();
}
});
it('errors if user supplies a decimal quantity', done => {
it('errors if user supplies a decimal quantity', async () => {
try {
buy(user, {
await buy(user, {
params: {
key: 'dilatoryDistress1',
},
@@ -194,7 +191,6 @@ describe('shared.ops.buy', () => {
} catch (err) {
expect(err).to.be.an.instanceof(BadRequest);
expect(err.message).to.equal(errorMessage('invalidQuantity'));
done();
}
});
});

View File

@@ -33,7 +33,7 @@ describe('shared.ops.buyArmoire', () => {
const YIELD_EXP = 0.9;
const analytics = { track () {} };
function buyArmoire (_user, _req, _analytics) {
async function buyArmoire (_user, _req, _analytics) {
const buyOp = new BuyArmoireOperation(_user, _req, _analytics);
return buyOp.purchase();
@@ -61,11 +61,11 @@ describe('shared.ops.buyArmoire', () => {
});
context('failure conditions', () => {
it('does not open if user does not have enough gold', done => {
it('does not open if user does not have enough gold', async () => {
user.stats.gp = 50;
try {
buyArmoire(user);
await buyArmoire(user);
} catch (err) {
expect(err).to.be.an.instanceof(NotAuthorized);
expect(err.message).to.equal(i18n.t('messageNotEnoughGold'));
@@ -74,17 +74,16 @@ describe('shared.ops.buyArmoire', () => {
});
expect(user.items.food).to.be.empty;
expect(user.stats.exp).to.eql(0);
done();
}
});
});
context('non-gear awards', () => {
it('gives Experience', () => {
it('gives Experience', async () => {
const previousExp = user.stats.exp;
randomValFns.trueRandom.returns(YIELD_EXP);
buyArmoire(user);
await buyArmoire(user);
expect(user.items.gear.owned).to.eql({ weapon_warrior_0: true });
expect(user.items.food).to.be.empty;
@@ -92,12 +91,12 @@ describe('shared.ops.buyArmoire', () => {
expect(user.stats.gp).to.equal(100);
});
it('gives food', () => {
it('gives food', async () => {
const previousExp = user.stats.exp;
randomValFns.trueRandom.returns(YIELD_FOOD);
buyArmoire(user);
await buyArmoire(user);
expect(user.items.gear.owned).to.eql({ weapon_warrior_0: true });
expect(user.items.food).to.not.be.empty;
@@ -105,12 +104,12 @@ describe('shared.ops.buyArmoire', () => {
expect(user.stats.gp).to.equal(100);
});
it('does not give equipment if all equipment has been found', () => {
it('does not give equipment if all equipment has been found', async () => {
randomValFns.trueRandom.returns(YIELD_EQUIPMENT);
user.items.gear.owned = getFullArmoire();
user.stats.gp = 150;
buyArmoire(user);
await buyArmoire(user);
expect(user.items.gear.owned).to.eql(getFullArmoire());
const armoireCount = count.remainingGearInSet(user.items.gear.owned, 'armoire');
@@ -122,13 +121,13 @@ describe('shared.ops.buyArmoire', () => {
});
context('gear awards', () => {
it('always drops equipment the first time', () => {
it('always drops equipment the first time', async () => {
delete user.flags.armoireOpened;
randomValFns.trueRandom.returns(YIELD_EXP);
expect(_.size(user.items.gear.owned)).to.equal(1);
buyArmoire(user);
await buyArmoire(user);
expect(_.size(user.items.gear.owned)).to.equal(2);
@@ -140,7 +139,7 @@ describe('shared.ops.buyArmoire', () => {
expect(user.stats.gp).to.equal(100);
});
it('gives more equipment', () => {
it('gives more equipment', async () => {
randomValFns.trueRandom.returns(YIELD_EQUIPMENT);
user.items.gear.owned = {
weapon_warrior_0: true,
@@ -150,7 +149,7 @@ describe('shared.ops.buyArmoire', () => {
expect(_.size(user.items.gear.owned)).to.equal(2);
buyArmoire(user, {}, analytics);
await buyArmoire(user, {}, analytics);
expect(_.size(user.items.gear.owned)).to.equal(3);

View File

@@ -11,7 +11,7 @@ import i18n from '../../../../website/common/script/i18n';
import { BuyGemOperation } from '../../../../website/common/script/ops/buy/buyGem';
import planGemLimits from '../../../../website/common/script/libs/planGemLimits';
function buyGem (user, req, analytics) {
async function buyGem (user, req, analytics) {
const buyOp = new BuyGemOperation(user, req, analytics);
return buyOp.purchase();
@@ -44,8 +44,8 @@ describe('shared.ops.buyGem', () => {
});
context('Gems', () => {
it('purchases gems', () => {
const [, message] = buyGem(user, { params: { type: 'gems', key: 'gem' } }, analytics);
it('purchases gems', async () => {
const [, message] = await buyGem(user, { params: { type: 'gems', key: 'gem' } }, analytics);
expect(message).to.equal(i18n.t('plusGem', { count: 1 }));
expect(user.balance).to.equal(userGemAmount + 0.25);
@@ -54,8 +54,8 @@ describe('shared.ops.buyGem', () => {
expect(analytics.track).to.be.calledOnce;
});
it('purchases gems with a different language than the default', () => {
const [, message] = buyGem(user, { params: { type: 'gems', key: 'gem' }, language: 'de' });
it('purchases gems with a different language than the default', async () => {
const [, message] = await buyGem(user, { params: { type: 'gems', key: 'gem' }, language: 'de' });
expect(message).to.equal(i18n.t('plusGem', { count: 1 }, 'de'));
expect(user.balance).to.equal(userGemAmount + 0.25);
@@ -63,8 +63,8 @@ describe('shared.ops.buyGem', () => {
expect(user.stats.gp).to.equal(goldPoints - planGemLimits.convRate);
});
it('makes bulk purchases of gems', () => {
const [, message] = buyGem(user, {
it('makes bulk purchases of gems', async () => {
const [, message] = await buyGem(user, {
params: { type: 'gems', key: 'gem' },
quantity: 2,
});
@@ -76,63 +76,58 @@ describe('shared.ops.buyGem', () => {
});
context('Failure conditions', () => {
it('returns an error when key is not provided', done => {
it('returns an error when key is not provided', async () => {
try {
buyGem(user, { params: { type: 'gems' } });
await buyGem(user, { params: { type: 'gems' } });
} catch (err) {
expect(err).to.be.an.instanceof(BadRequest);
expect(err.message).to.equal(i18n.t('missingKeyParam'));
done();
}
});
it('prevents unsubscribed user from buying gems', done => {
it('prevents unsubscribed user from buying gems', async () => {
delete user.purchased.plan.customerId;
try {
buyGem(user, { params: { type: 'gems', key: 'gem' } });
await buyGem(user, { params: { type: 'gems', key: 'gem' } });
} catch (err) {
expect(err).to.be.an.instanceof(NotAuthorized);
expect(err.message).to.equal(i18n.t('mustSubscribeToPurchaseGems'));
done();
}
});
it('prevents user with not enough gold from buying gems', done => {
it('prevents user with not enough gold from buying gems', async () => {
user.stats.gp = 15;
try {
buyGem(user, { params: { type: 'gems', key: 'gem' } });
await buyGem(user, { params: { type: 'gems', key: 'gem' } });
} catch (err) {
expect(err).to.be.an.instanceof(NotAuthorized);
expect(err.message).to.equal(i18n.t('messageNotEnoughGold'));
done();
}
});
it('prevents user that have reached the conversion cap from buying gems', done => {
it('prevents user that have reached the conversion cap from buying gems', async () => {
user.stats.gp = goldPoints;
user.purchased.plan.gemsBought = gemsBought;
try {
buyGem(user, { params: { type: 'gems', key: 'gem' } });
await buyGem(user, { params: { type: 'gems', key: 'gem' } });
} catch (err) {
expect(err).to.be.an.instanceof(NotAuthorized);
expect(err.message).to.equal(i18n.t('maxBuyGems', { convCap: planGemLimits.convCap }));
done();
}
});
it('prevents user from buying an invalid quantity', done => {
it('prevents user from buying an invalid quantity', async () => {
user.stats.gp = goldPoints;
user.purchased.plan.gemsBought = gemsBought;
try {
buyGem(user, { params: { type: 'gems', key: 'gem' }, quantity: 'a' });
await buyGem(user, { params: { type: 'gems', key: 'gem' }, quantity: 'a' });
} catch (err) {
expect(err).to.be.an.instanceof(BadRequest);
expect(err.message).to.equal(i18n.t('invalidQuantity'));
done();
}
});
});

View File

@@ -12,7 +12,7 @@ describe('shared.ops.buyHealthPotion', () => {
let user;
const analytics = { track () {} };
function buyHealthPotion (_user, _req, _analytics) {
async function buyHealthPotion (_user, _req, _analytics) {
const buyOp = new BuyHealthPotionOperation(_user, _req, _analytics);
return buyOp.purchase();
@@ -40,83 +40,75 @@ describe('shared.ops.buyHealthPotion', () => {
});
context('Potion', () => {
it('recovers 15 hp', () => {
it('recovers 15 hp', async () => {
user.stats.hp = 30;
buyHealthPotion(user, {}, analytics);
await buyHealthPotion(user, {}, analytics);
expect(user.stats.hp).to.eql(45);
expect(analytics.track).to.be.calledOnce;
});
it('does not increase hp above 50', () => {
it('does not increase hp above 50', async () => {
user.stats.hp = 45;
buyHealthPotion(user);
await buyHealthPotion(user);
expect(user.stats.hp).to.eql(50);
});
it('deducts 25 gp', () => {
it('deducts 25 gp', async () => {
user.stats.hp = 45;
buyHealthPotion(user);
await buyHealthPotion(user);
expect(user.stats.gp).to.eql(175);
});
it('does not purchase if not enough gp', done => {
it('does not purchase if not enough gp', async () => {
user.stats.hp = 45;
user.stats.gp = 5;
try {
buyHealthPotion(user);
await buyHealthPotion(user);
} catch (err) {
expect(err).to.be.an.instanceof(NotAuthorized);
expect(err.message).to.equal(i18n.t('messageNotEnoughGold'));
expect(user.stats.hp).to.eql(45);
expect(user.stats.gp).to.eql(5);
done();
}
});
it('does not purchase if hp is full', done => {
it('does not purchase if hp is full', async () => {
user.stats.hp = 50;
user.stats.gp = 40;
try {
buyHealthPotion(user);
await buyHealthPotion(user);
} catch (err) {
expect(err).to.be.an.instanceof(NotAuthorized);
expect(err.message).to.equal(i18n.t('messageHealthAlreadyMax'));
expect(user.stats.hp).to.eql(50);
expect(user.stats.gp).to.eql(40);
done();
}
});
it('does not allow potion purchases when hp is zero', done => {
it('does not allow potion purchases when hp is zero', async () => {
user.stats.hp = 0;
user.stats.gp = 40;
try {
buyHealthPotion(user);
await buyHealthPotion(user);
} catch (err) {
expect(err).to.be.an.instanceof(NotAuthorized);
expect(err.message).to.equal(i18n.t('messageHealthAlreadyMin'));
expect(user.stats.hp).to.eql(0);
expect(user.stats.gp).to.eql(40);
done();
}
});
it('does not allow potion purchases when hp is negative', done => {
it('does not allow potion purchases when hp is negative', async () => {
user.stats.hp = -8;
user.stats.gp = 40;
try {
buyHealthPotion(user);
await buyHealthPotion(user);
} catch (err) {
expect(err).to.be.an.instanceof(NotAuthorized);
expect(err.message).to.equal(i18n.t('messageHealthAlreadyMin'));
expect(user.stats.hp).to.eql(-8);
expect(user.stats.gp).to.eql(40);
done();
}
});
});

View File

@@ -13,7 +13,7 @@ import {
import i18n from '../../../../website/common/script/i18n';
import errorMessage from '../../../../website/common/script/libs/errorMessage';
function buyGear (user, req, analytics) {
async function buyGear (user, req, analytics) {
const buyOp = new BuyMarketGearOperation(user, req, analytics);
return buyOp.purchase();
@@ -57,10 +57,10 @@ describe('shared.ops.buyMarketGear', () => {
});
context('Gear', () => {
it('adds equipment to inventory', () => {
it('adds equipment to inventory', async () => {
user.stats.gp = 31;
buyGear(user, { params: { key: 'armor_warrior_1' } }, analytics);
await buyGear(user, { params: { key: 'armor_warrior_1' } }, analytics);
expect(user.items.gear.owned).to.eql({
weapon_warrior_0: true,
@@ -90,10 +90,10 @@ describe('shared.ops.buyMarketGear', () => {
expect(analytics.track).to.be.calledOnce;
});
it('adds the onboarding achievement to the user and checks the onboarding status', () => {
it('adds the onboarding achievement to the user and checks the onboarding status', async () => {
user.stats.gp = 31;
buyGear(user, { params: { key: 'armor_warrior_1' } }, analytics);
await buyGear(user, { params: { key: 'armor_warrior_1' } }, analytics);
expect(user.addAchievement).to.be.calledOnce;
expect(user.addAchievement).to.be.calledWith('purchasedEquipment');
@@ -102,36 +102,36 @@ describe('shared.ops.buyMarketGear', () => {
expect(shared.onboarding.checkOnboardingStatus).to.be.calledWith(user);
});
it('does not add the onboarding achievement to the user if it\'s already been awarded', () => {
it('does not add the onboarding achievement to the user if it\'s already been awarded', async () => {
user.stats.gp = 31;
user.achievements.purchasedEquipment = true;
buyGear(user, { params: { key: 'armor_warrior_1' } }, analytics);
await buyGear(user, { params: { key: 'armor_warrior_1' } }, analytics);
expect(user.addAchievement).to.not.be.called;
});
it('deducts gold from user', () => {
it('deducts gold from user', async () => {
user.stats.gp = 31;
buyGear(user, { params: { key: 'armor_warrior_1' } });
await buyGear(user, { params: { key: 'armor_warrior_1' } });
expect(user.stats.gp).to.eql(1);
});
it('auto equips equipment if user has auto-equip preference turned on', () => {
it('auto equips equipment if user has auto-equip preference turned on', async () => {
user.stats.gp = 31;
user.preferences.autoEquip = true;
buyGear(user, { params: { key: 'armor_warrior_1' } });
await buyGear(user, { params: { key: 'armor_warrior_1' } });
expect(user.items.gear.equipped).to.have.property('armor', 'armor_warrior_1');
});
it('updates the pinnedItems to the next item in the set if one exists', () => {
it('updates the pinnedItems to the next item in the set if one exists', async () => {
user.stats.gp = 31;
buyGear(user, { params: { key: 'armor_warrior_1' } });
await buyGear(user, { params: { key: 'armor_warrior_1' } });
expect(user.pinnedItems).to.deep.include({
type: 'marketGear',
@@ -139,155 +139,147 @@ describe('shared.ops.buyMarketGear', () => {
});
});
it('buyGears equipment but does not auto-equip', () => {
it('buyGears equipment but does not auto-equip', async () => {
user.stats.gp = 31;
user.preferences.autoEquip = false;
buyGear(user, { params: { key: 'armor_warrior_1' } });
await buyGear(user, { params: { key: 'armor_warrior_1' } });
expect(user.items.gear.equipped.property).to.not.equal('armor_warrior_1');
});
it('does not buyGear equipment twice', done => {
it('does not buyGear equipment twice', async () => {
user.stats.gp = 62;
buyGear(user, { params: { key: 'armor_warrior_1' } });
await buyGear(user, { params: { key: 'armor_warrior_1' } });
try {
buyGear(user, { params: { key: 'armor_warrior_1' } });
await buyGear(user, { params: { key: 'armor_warrior_1' } });
} catch (err) {
expect(err).to.be.an.instanceof(NotAuthorized);
expect(err.message).to.equal(i18n.t('equipmentAlreadyOwned'));
done();
}
});
it('does not buy equipment of different class', done => {
it('does not buy equipment of different class', async () => {
user.stats.gp = 82;
user.stats.class = 'warrior';
try {
buyGear(user, { params: { key: 'weapon_special_winter2018Rogue' } });
await buyGear(user, { params: { key: 'weapon_special_winter2018Rogue' } });
} catch (err) {
expect(err).to.be.an.instanceof(NotAuthorized);
expect(err.message).to.equal(i18n.t('cannotBuyItem'));
done();
}
});
it('does not buy equipment in bulk', done => {
it('does not buy equipment in bulk', async () => {
user.stats.gp = 82;
try {
buyGear(user, { params: { key: 'armor_warrior_1' }, quantity: 3 });
await buyGear(user, { params: { key: 'armor_warrior_1' }, quantity: 3 });
} catch (err) {
expect(err).to.be.an.instanceof(NotAuthorized);
expect(err.message).to.equal(i18n.t('messageNotAbleToBuyInBulk'));
done();
}
});
// TODO after user.ops.equip is done
xit('removes one-handed weapon and shield if auto-equip is on and a two-hander is bought', () => {
xit('removes one-handed weapon and shield if auto-equip is on and a two-hander is bought', async () => {
user.stats.gp = 100;
user.preferences.autoEquip = true;
buyGear(user, { params: { key: 'shield_warrior_1' } });
await buyGear(user, { params: { key: 'shield_warrior_1' } });
user.ops.equip({ params: { key: 'shield_warrior_1' } });
buyGear(user, { params: { key: 'weapon_warrior_1' } });
await buyGear(user, { params: { key: 'weapon_warrior_1' } });
user.ops.equip({ params: { key: 'weapon_warrior_1' } });
buyGear(user, { params: { key: 'weapon_wizard_1' } });
await buyGear(user, { params: { key: 'weapon_wizard_1' } });
expect(user.items.gear.equipped).to.have.property('shield', 'shield_base_0');
expect(user.items.gear.equipped).to.have.property('weapon', 'weapon_wizard_1');
});
// TODO after user.ops.equip is done
xit('buyGears two-handed equipment but does not automatically remove sword or shield', () => {
xit('buyGears two-handed equipment but does not automatically remove sword or shield', async () => {
user.stats.gp = 100;
user.preferences.autoEquip = false;
buyGear(user, { params: { key: 'shield_warrior_1' } });
await buyGear(user, { params: { key: 'shield_warrior_1' } });
user.ops.equip({ params: { key: 'shield_warrior_1' } });
buyGear(user, { params: { key: 'weapon_warrior_1' } });
await buyGear(user, { params: { key: 'weapon_warrior_1' } });
user.ops.equip({ params: { key: 'weapon_warrior_1' } });
buyGear(user, { params: { key: 'weapon_wizard_1' } });
await buyGear(user, { params: { key: 'weapon_wizard_1' } });
expect(user.items.gear.equipped).to.have.property('shield', 'shield_warrior_1');
expect(user.items.gear.equipped).to.have.property('weapon', 'weapon_warrior_1');
});
it('does not buyGear equipment without enough Gold', done => {
it('does not buyGear equipment without enough Gold', async () => {
user.stats.gp = 20;
try {
buyGear(user, { params: { key: 'armor_warrior_1' } });
await buyGear(user, { params: { key: 'armor_warrior_1' } });
} catch (err) {
expect(err).to.be.an.instanceof(NotAuthorized);
expect(err.message).to.equal(i18n.t('messageNotEnoughGold'));
expect(user.items.gear.owned).to.not.have.property('armor_warrior_1');
done();
}
});
it('returns error when key is not provided', done => {
it('returns error when key is not provided', async () => {
try {
buyGear(user);
await buyGear(user);
} catch (err) {
expect(err).to.be.an.instanceof(BadRequest);
expect(err.message).to.equal(errorMessage('missingKeyParam'));
done();
}
});
it('returns error when item is not found', done => {
it('returns error when item is not found', async () => {
const params = { key: 'armor_warrior_notExisting' };
try {
buyGear(user, { params });
await buyGear(user, { params });
} catch (err) {
expect(err).to.be.an.instanceof(NotFound);
expect(err.message).to.equal(errorMessage('itemNotFound', params));
done();
}
});
it('does not buyGear equipment without the previous equipment', done => {
it('does not buyGear equipment without the previous equipment', async () => {
try {
buyGear(user, { params: { key: 'armor_warrior_2' } });
await buyGear(user, { params: { key: 'armor_warrior_2' } });
} catch (err) {
expect(err).to.be.an.instanceof(NotAuthorized);
expect(err.message).to.equal(i18n.t('previousGearNotOwned'));
done();
}
});
it('does not buyGear equipment if user does not own prior item in sequence', done => {
it('does not buyGear equipment if user does not own prior item in sequence', async () => {
user.stats.gp = 200;
try {
buyGear(user, { params: { key: 'armor_warrior_2' } });
await buyGear(user, { params: { key: 'armor_warrior_2' } });
} catch (err) {
expect(err).to.be.an.instanceof(NotAuthorized);
expect(err.message).to.equal(i18n.t('previousGearNotOwned'));
expect(user.items.gear.owned).to.not.have.property('armor_warrior_2');
done();
}
});
it('does buyGear equipment if item is a numbered special item user qualifies for', () => {
it('does buyGear equipment if item is a numbered special item user qualifies for', async () => {
user.stats.gp = 200;
user.items.gear.owned.head_special_2 = false;
buyGear(user, { params: { key: 'head_special_2' } });
await buyGear(user, { params: { key: 'head_special_2' } });
expect(user.items.gear.owned).to.have.property('head_special_2', true);
});
it('does buyGear equipment if it is an armoire item that an user previously lost', () => {
it('does buyGear equipment if it is an armoire item that an user previously lost', async () => {
user.stats.gp = 200;
user.items.gear.owned.shield_armoire_ramHornShield = false;
buyGear(user, { params: { key: 'shield_armoire_ramHornShield' } });
await buyGear(user, { params: { key: 'shield_armoire_ramHornShield' } });
expect(user.items.gear.owned).to.have.property('shield_armoire_ramHornShield', true);
});

View File

@@ -35,18 +35,17 @@ describe('shared.ops.buyMysterySet', () => {
context('Mystery Sets', () => {
context('failure conditions', () => {
it('does not grant mystery sets without Mystic Hourglasses', done => {
it('does not grant mystery sets without Mystic Hourglasses', async () => {
try {
buyMysterySet(user, { params: { key: '201501' } });
await buyMysterySet(user, { params: { key: '201501' } });
} catch (err) {
expect(err).to.be.an.instanceof(NotAuthorized);
expect(err.message).to.eql(i18n.t('notEnoughHourglasses'));
expect(user.items.gear.owned).to.have.property('weapon_warrior_0', true);
done();
}
});
it('does not grant mystery set that has already been purchased', done => {
it('does not grant mystery set that has already been purchased', async () => {
user.purchased.plan.consecutive.trinkets = 1;
user.items.gear.owned = {
weapon_warrior_0: true,
@@ -57,30 +56,28 @@ describe('shared.ops.buyMysterySet', () => {
};
try {
buyMysterySet(user, { params: { key: '301404' } });
await buyMysterySet(user, { params: { key: '301404' } });
} catch (err) {
expect(err).to.be.an.instanceof(NotFound);
expect(err.message).to.eql(i18n.t('mysterySetNotFound'));
expect(user.purchased.plan.consecutive.trinkets).to.eql(1);
done();
}
});
it('returns error when key is not provided', done => {
it('returns error when key is not provided', async () => {
try {
buyMysterySet(user);
await buyMysterySet(user);
} catch (err) {
expect(err).to.be.an.instanceof(BadRequest);
expect(err.message).to.equal(errorMessage('missingKeyParam'));
done();
}
});
});
context('successful purchases', () => {
it('buys Steampunk Accessories Set', () => {
it('buys Steampunk Accessories Set', async () => {
user.purchased.plan.consecutive.trinkets = 1;
buyMysterySet(user, { params: { key: '301404' } }, analytics);
await buyMysterySet(user, { params: { key: '301404' } }, analytics);
expect(user.purchased.plan.consecutive.trinkets).to.eql(0);
expect(user.items.gear.owned).to.have.property('weapon_warrior_0', true);
@@ -88,14 +85,6 @@ describe('shared.ops.buyMysterySet', () => {
expect(user.items.gear.owned).to.have.property('armor_mystery_301404', true);
expect(user.items.gear.owned).to.have.property('head_mystery_301404', true);
expect(user.items.gear.owned).to.have.property('eyewear_mystery_301404', true);
expect(analytics.track).to.be.calledOnce;
expect(analytics.track).to.be.calledWithMatch('acquire item', {
uuid: user._id,
itemKey: '301404',
itemType: 'Subscriber Gear',
acquireMethod: 'Hourglass',
category: 'behavior',
});
});
});
});

View File

@@ -13,7 +13,7 @@ describe('shared.ops.buyQuestGems', () => {
const goldPoints = 40;
const analytics = { track () {} };
function buyQuest (_user, _req, _analytics) {
async function buyQuest (_user, _req, _analytics) {
const buyOp = new BuyQuestWithGemOperation(_user, _req, _analytics);
return buyOp.purchase();
@@ -44,19 +44,19 @@ describe('shared.ops.buyQuestGems', () => {
user.pinnedItems.push({ type: 'quests', key: 'gryphon' });
});
it('purchases quests', () => {
it('purchases quests', async () => {
const key = 'gryphon';
buyQuest(user, { params: { key } });
await buyQuest(user, { params: { key } });
expect(user.items.quests[key]).to.equal(1);
expect(pinnedGearUtils.removeItemByPath.notCalled).to.equal(true);
});
it('if a user\'s count of a quest scroll is negative, it will be reset to 0 before incrementing when they buy a new one.', () => {
it('if a user\'s count of a quest scroll is negative, it will be reset to 0 before incrementing when they buy a new one.', async () => {
const key = 'dustbunnies';
user.items.quests[key] = -1;
buyQuest(user, { params: { key } });
await buyQuest(user, { params: { key } });
expect(user.items.quests[key]).to.equal(1);
expect(pinnedGearUtils.removeItemByPath.notCalled).to.equal(true);
@@ -73,26 +73,25 @@ describe('shared.ops.buyQuestGems', () => {
user.purchased.plan.customerId = 'customer-id';
});
it('errors when user does not have enough gems', done => {
it('errors when user does not have enough gems', async () => {
user.balance = 1;
const key = 'gryphon';
try {
buyQuest(user, {
await buyQuest(user, {
params: { key },
quantity: 2,
});
} catch (err) {
expect(err).to.be.an.instanceof(NotAuthorized);
expect(err.message).to.equal(i18n.t('notEnoughGems'));
done();
}
});
it('makes bulk purchases of quests', () => {
it('makes bulk purchases of quests', async () => {
const key = 'gryphon';
buyQuest(user, {
await buyQuest(user, {
params: { key },
quantity: 3,
});

View File

@@ -14,7 +14,7 @@ describe('shared.ops.buyQuest', () => {
let user;
const analytics = { track () {} };
function buyQuest (_user, _req, _analytics) {
async function buyQuest (_user, _req, _analytics) {
const buyOp = new BuyQuestWithGoldOperation(_user, _req, _analytics);
return buyOp.purchase();
@@ -29,9 +29,9 @@ describe('shared.ops.buyQuest', () => {
analytics.track.restore();
});
it('buys a Quest scroll', () => {
it('buys a Quest scroll', async () => {
user.stats.gp = 205;
buyQuest(user, {
await buyQuest(user, {
params: {
key: 'dilatoryDistress1',
},
@@ -43,11 +43,11 @@ describe('shared.ops.buyQuest', () => {
expect(analytics.track).to.be.calledOnce;
});
it('if a user\'s count of a quest scroll is negative, it will be reset to 0 before incrementing when they buy a new one.', () => {
it('if a user\'s count of a quest scroll is negative, it will be reset to 0 before incrementing when they buy a new one.', async () => {
user.stats.gp = 205;
const key = 'dilatoryDistress1';
user.items.quests[key] = -1;
buyQuest(user, {
await buyQuest(user, {
params: { key },
}, analytics);
expect(user.items.quests[key]).to.equal(1);
@@ -55,14 +55,14 @@ describe('shared.ops.buyQuest', () => {
expect(analytics.track).to.be.calledOnce;
});
it('buys a Quest scroll with the right quantity if a string is passed for quantity', () => {
it('buys a Quest scroll with the right quantity if a string is passed for quantity', async () => {
user.stats.gp = 1000;
buyQuest(user, {
await buyQuest(user, {
params: {
key: 'dilatoryDistress1',
},
}, analytics);
buyQuest(user, {
await buyQuest(user, {
params: {
key: 'dilatoryDistress1',
},
@@ -74,10 +74,10 @@ describe('shared.ops.buyQuest', () => {
});
});
it('does not buy a Quest scroll when an invalid quantity is passed', done => {
it('does not buy a Quest scroll when an invalid quantity is passed', async () => {
user.stats.gp = 1000;
try {
buyQuest(user, {
await buyQuest(user, {
params: {
key: 'dilatoryDistress1',
},
@@ -88,14 +88,13 @@ describe('shared.ops.buyQuest', () => {
expect(err.message).to.equal(i18n.t('invalidQuantity'));
expect(user.items.quests).to.eql({});
expect(user.stats.gp).to.equal(1000);
done();
}
});
it('does not buy Quests without enough Gold', done => {
it('does not buy Quests without enough Gold', async () => {
user.stats.gp = 1;
try {
buyQuest(user, {
await buyQuest(user, {
params: {
key: 'dilatoryDistress1',
},
@@ -105,14 +104,13 @@ describe('shared.ops.buyQuest', () => {
expect(err.message).to.equal(i18n.t('messageNotEnoughGold'));
expect(user.items.quests).to.eql({});
expect(user.stats.gp).to.equal(1);
done();
}
});
it('does not buy nonexistent Quests', done => {
it('does not buy nonexistent Quests', async () => {
user.stats.gp = 9999;
try {
buyQuest(user, {
await buyQuest(user, {
params: {
key: 'snarfblatter',
},
@@ -122,13 +120,12 @@ describe('shared.ops.buyQuest', () => {
expect(err.message).to.equal(errorMessage('questNotFound', { key: 'snarfblatter' }));
expect(user.items.quests).to.eql({});
expect(user.stats.gp).to.equal(9999);
done();
}
});
it('does not buy the Mystery of the Masterclassers', done => {
it('does not buy the Mystery of the Masterclassers', async () => {
try {
buyQuest(user, {
await buyQuest(user, {
params: {
key: 'lostMasterclasser1',
},
@@ -137,14 +134,13 @@ describe('shared.ops.buyQuest', () => {
expect(err).to.be.an.instanceof(NotAuthorized);
expect(err.message).to.equal(i18n.t('questUnlockLostMasterclasser'));
expect(user.items.quests).to.eql({});
done();
}
});
it('does not buy Gem-premium Quests', done => {
it('does not buy Gem-premium Quests', async () => {
user.stats.gp = 9999;
try {
buyQuest(user, {
await buyQuest(user, {
params: {
key: 'kraken',
},
@@ -154,23 +150,21 @@ describe('shared.ops.buyQuest', () => {
expect(err.message).to.equal(i18n.t('questNotGoldPurchasable', { key: 'kraken' }));
expect(user.items.quests).to.eql({});
expect(user.stats.gp).to.equal(9999);
done();
}
});
it('returns error when key is not provided', done => {
it('returns error when key is not provided', async () => {
try {
buyQuest(user);
await buyQuest(user);
} catch (err) {
expect(err).to.be.an.instanceof(BadRequest);
expect(err.message).to.equal(errorMessage('missingKeyParam'));
done();
}
});
it('does not buy a quest without completing previous quests', done => {
it('does not buy a quest without completing previous quests', async () => {
try {
buyQuest(user, {
await buyQuest(user, {
params: {
key: 'dilatoryDistress3',
},
@@ -179,7 +173,6 @@ describe('shared.ops.buyQuest', () => {
expect(err).to.be.an.instanceof(NotAuthorized);
expect(err.message).to.equal(i18n.t('mustComplete', { quest: 'dilatoryDistress2' }));
expect(user.items.quests).to.eql({});
done();
}
});
});

View File

@@ -15,7 +15,7 @@ describe('shared.ops.buySpecialSpell', () => {
let user;
const analytics = { track () {} };
function buySpecialSpell (_user, _req, _analytics) {
async function buySpecialSpell (_user, _req, _analytics) {
const buyOp = new BuySpellOperation(_user, _req, _analytics);
return buyOp.purchase();
@@ -29,19 +29,18 @@ describe('shared.ops.buySpecialSpell', () => {
analytics.track.restore();
});
it('throws an error if params.key is missing', done => {
it('throws an error if params.key is missing', async () => {
try {
buySpecialSpell(user);
await buySpecialSpell(user);
} catch (err) {
expect(err).to.be.an.instanceof(BadRequest);
expect(err.message).to.equal(errorMessage('missingKeyParam'));
done();
}
});
it('throws an error if the spell doesn\'t exists', done => {
it('throws an error if the spell doesn\'t exists', async () => {
try {
buySpecialSpell(user, {
await buySpecialSpell(user, {
params: {
key: 'notExisting',
},
@@ -49,14 +48,13 @@ describe('shared.ops.buySpecialSpell', () => {
} catch (err) {
expect(err).to.be.an.instanceof(NotFound);
expect(err.message).to.equal(errorMessage('spellNotFound', { spellId: 'notExisting' }));
done();
}
});
it('throws an error if the user doesn\'t have enough gold', done => {
it('throws an error if the user doesn\'t have enough gold', async () => {
user.stats.gp = 1;
try {
buySpecialSpell(user, {
await buySpecialSpell(user, {
params: {
key: 'thankyou',
},
@@ -64,15 +62,14 @@ describe('shared.ops.buySpecialSpell', () => {
} catch (err) {
expect(err).to.be.an.instanceof(NotAuthorized);
expect(err.message).to.equal(i18n.t('messageNotEnoughGold'));
done();
}
});
it('buys an item', () => {
it('buys an item', async () => {
user.stats.gp = 11;
const item = content.special.thankyou;
const [data, message] = buySpecialSpell(user, {
const [data, message] = await buySpecialSpell(user, {
params: {
key: 'thankyou',
},

View File

@@ -15,7 +15,7 @@ describe('common.ops.hourglassPurchase', () => {
let user;
const analytics = { track () {} };
function buyMount (_user, _req, _analytics) {
async function buyMount (_user, _req, _analytics) {
const buyOp = new BuyHourglassMountOperation(_user, _req, _analytics);
return buyOp.purchase();
@@ -31,116 +31,107 @@ describe('common.ops.hourglassPurchase', () => {
});
context('failure conditions', () => {
it('return error when key is not provided', done => {
it('return error when key is not provided', async () => {
try {
hourglassPurchase(user, { params: {} });
await hourglassPurchase(user, { params: {} });
} catch (err) {
expect(err).to.be.an.instanceof(BadRequest);
expect(err.message).to.eql(errorMessage('missingKeyParam'));
done();
}
});
it('returns error when type is not provided', done => {
it('returns error when type is not provided', async () => {
try {
hourglassPurchase(user, { params: { key: 'Base' } });
await hourglassPurchase(user, { params: { key: 'Base' } });
} catch (err) {
expect(err).to.be.an.instanceof(BadRequest);
expect(err.message).to.eql(errorMessage('missingTypeParam'));
done();
}
});
it('returns error when inccorect type is provided', done => {
it('returns error when inccorect type is provided', async () => {
try {
hourglassPurchase(user, { params: { type: 'notAType', key: 'MantisShrimp-Base' } });
await hourglassPurchase(user, { params: { type: 'notAType', key: 'MantisShrimp-Base' } });
} catch (err) {
expect(err).to.be.an.instanceof(NotAuthorized);
expect(err.message).to.eql(i18n.t('typeNotAllowedHourglass', { allowedTypes: _.keys(content.timeTravelStable).toString() }));
done();
}
});
it('does not grant to pets without Mystic Hourglasses', done => {
it('does not grant to pets without Mystic Hourglasses', async () => {
try {
hourglassPurchase(user, { params: { type: 'pets', key: 'MantisShrimp-Base' } });
await hourglassPurchase(user, { params: { type: 'pets', key: 'MantisShrimp-Base' } });
} catch (err) {
expect(err).to.be.an.instanceof(NotAuthorized);
expect(err.message).to.eql(i18n.t('notEnoughHourglasses'));
done();
}
});
it('does not grant to mounts without Mystic Hourglasses', done => {
it('does not grant to mounts without Mystic Hourglasses', async () => {
try {
buyMount(user, { params: { key: 'MantisShrimp-Base' } });
await buyMount(user, { params: { key: 'MantisShrimp-Base' } });
} catch (err) {
expect(err).to.be.an.instanceof(NotAuthorized);
expect(err.message).to.eql(i18n.t('notEnoughHourglasses'));
done();
}
});
it('does not grant pet that is not part of the Time Travel Stable', done => {
it('does not grant pet that is not part of the Time Travel Stable', async () => {
user.purchased.plan.consecutive.trinkets = 1;
try {
hourglassPurchase(user, { params: { type: 'pets', key: 'Wolf-Veteran' } });
await hourglassPurchase(user, { params: { type: 'pets', key: 'Wolf-Veteran' } });
} catch (err) {
expect(err).to.be.an.instanceof(NotAuthorized);
expect(err.message).to.eql(i18n.t('notAllowedHourglass'));
done();
}
});
it('does not grant mount that is not part of the Time Travel Stable', done => {
it('does not grant mount that is not part of the Time Travel Stable', async () => {
user.purchased.plan.consecutive.trinkets = 1;
try {
buyMount(user, { params: { key: 'Orca-Base' } });
await buyMount(user, { params: { key: 'Orca-Base' } });
} catch (err) {
expect(err).to.be.an.instanceof(NotAuthorized);
expect(err.message).to.eql(i18n.t('notAllowedHourglass'));
done();
}
});
it('does not grant pet that has already been purchased', done => {
it('does not grant pet that has already been purchased', async () => {
user.purchased.plan.consecutive.trinkets = 1;
user.items.pets = {
'MantisShrimp-Base': true,
};
try {
hourglassPurchase(user, { params: { type: 'pets', key: 'MantisShrimp-Base' } });
await hourglassPurchase(user, { params: { type: 'pets', key: 'MantisShrimp-Base' } });
} catch (err) {
expect(err).to.be.an.instanceof(NotAuthorized);
expect(err.message).to.eql(i18n.t('petsAlreadyOwned'));
done();
}
});
it('does not grant mount that has already been purchased', done => {
it('does not grant mount that has already been purchased', async () => {
user.purchased.plan.consecutive.trinkets = 1;
user.items.mounts = {
'MantisShrimp-Base': true,
};
try {
buyMount(user, { params: { key: 'MantisShrimp-Base' } });
await buyMount(user, { params: { key: 'MantisShrimp-Base' } });
} catch (err) {
expect(err).to.be.an.instanceof(NotAuthorized);
expect(err.message).to.eql(i18n.t('mountsAlreadyOwned'));
done();
}
});
});
context('successful purchases', () => {
it('buys a pet', () => {
it('buys a pet', async () => {
user.purchased.plan.consecutive.trinkets = 2;
const [, message] = hourglassPurchase(user, { params: { type: 'pets', key: 'MantisShrimp-Base' } }, analytics);
const [, message] = await hourglassPurchase(user, { params: { type: 'pets', key: 'MantisShrimp-Base' } }, analytics);
expect(message).to.eql(i18n.t('hourglassPurchase'));
expect(user.purchased.plan.consecutive.trinkets).to.eql(1);
@@ -148,10 +139,10 @@ describe('common.ops.hourglassPurchase', () => {
expect(analytics.track).to.be.calledOnce;
});
it('buys a mount', () => {
it('buys a mount', async () => {
user.purchased.plan.consecutive.trinkets = 2;
const [, message] = buyMount(user, { params: { key: 'MantisShrimp-Base' } });
const [, message] = await buyMount(user, { params: { key: 'MantisShrimp-Base' } });
expect(message).to.eql(i18n.t('hourglassPurchase'));
expect(user.purchased.plan.consecutive.trinkets).to.eql(1);
expect(user.items.mounts).to.eql({ 'MantisShrimp-Base': true });

View File

@@ -13,7 +13,7 @@ import {
} from '../../../helpers/common.helper';
describe('shared.ops.purchase', () => {
const SEASONAL_FOOD = 'Meat';
const SEASONAL_FOOD = moment().isBefore('2021-11-02T20:00-04:00') ? 'Candy_Base' : 'Meat';
let user;
const goldPoints = 40;
const analytics = { track () {} };
@@ -33,118 +33,108 @@ describe('shared.ops.purchase', () => {
});
context('failure conditions', () => {
it('returns an error when type is not provided', done => {
it('returns an error when type is not provided', async () => {
try {
purchase(user, { params: {} });
await purchase(user, { params: {} });
} catch (err) {
expect(err).to.be.an.instanceof(BadRequest);
expect(err.message).to.equal(i18n.t('typeRequired'));
done();
}
});
it('returns error when unknown type is provided', done => {
it('returns error when unknown type is provided', async () => {
try {
purchase(user, { params: { type: 'randomType', key: 'gem' } });
await purchase(user, { params: { type: 'randomType', key: 'gem' } });
} catch (err) {
expect(err).to.be.an.instanceof(NotFound);
expect(err.message).to.equal(i18n.t('notAccteptedType'));
done();
}
});
it('returns error when user attempts to purchase a piece of gear they own', done => {
it('returns error when user attempts to purchase a piece of gear they own', async () => {
user.items.gear.owned['shield_rogue_1'] = true; // eslint-disable-line dot-notation
try {
purchase(user, { params: { type: 'gear', key: 'shield_rogue_1' } });
await purchase(user, { params: { type: 'gear', key: 'shield_rogue_1' } });
} catch (err) {
expect(err).to.be.an.instanceof(NotAuthorized);
expect(err.message).to.equal(i18n.t('alreadyHave'));
done();
}
});
it('returns error when unknown item is requested', done => {
it('returns error when unknown item is requested', async () => {
try {
purchase(user, { params: { type: 'gear', key: 'randomKey' } });
await purchase(user, { params: { type: 'gear', key: 'randomKey' } });
} catch (err) {
expect(err).to.be.an.instanceof(NotFound);
expect(err.message).to.equal(i18n.t('contentKeyNotFound', { type: 'gear' }));
done();
}
});
it('returns error when user does not have permission to buy an item', done => {
it('returns error when user does not have permission to buy an item', async () => {
try {
purchase(user, { params: { type: 'gear', key: 'eyewear_mystery_301405' } });
await purchase(user, { params: { type: 'gear', key: 'eyewear_mystery_301405' } });
} catch (err) {
expect(err).to.be.an.instanceof(NotAuthorized);
expect(err.message).to.equal(i18n.t('messageNotAvailable'));
done();
}
});
it('returns error when user does not have enough gems to buy an item', done => {
it('returns error when user does not have enough gems to buy an item', async () => {
try {
purchase(user, { params: { type: 'gear', key: 'headAccessory_special_wolfEars' } });
await purchase(user, { params: { type: 'gear', key: 'headAccessory_special_wolfEars' } });
} catch (err) {
expect(err).to.be.an.instanceof(NotAuthorized);
expect(err.message).to.equal(i18n.t('notEnoughGems'));
done();
}
});
it('returns error when item is not found', done => {
it('returns error when item is not found', async () => {
const params = { key: 'notExisting', type: 'food' };
try {
purchase(user, { params });
await purchase(user, { params });
} catch (err) {
expect(err).to.be.an.instanceof(NotFound);
expect(err.message).to.equal(i18n.t('contentKeyNotFound', params));
done();
}
});
it('returns error when user supplies a non-numeric quantity', done => {
it('returns error when user supplies a non-numeric quantity', async () => {
const type = 'eggs';
const key = 'Wolf';
try {
purchase(user, { params: { type, key }, quantity: 'jamboree' }, analytics);
await purchase(user, { params: { type, key }, quantity: 'jamboree' }, analytics);
} catch (err) {
expect(err).to.be.an.instanceof(BadRequest);
expect(err.message).to.equal(i18n.t('invalidQuantity'));
done();
}
});
it('returns error when user supplies a negative quantity', done => {
it('returns error when user supplies a negative quantity', async () => {
const type = 'eggs';
const key = 'Wolf';
user.balance = 10;
try {
purchase(user, { params: { type, key }, quantity: -2 }, analytics);
await purchase(user, { params: { type, key }, quantity: -2 }, analytics);
} catch (err) {
expect(err).to.be.an.instanceof(BadRequest);
expect(err.message).to.equal(i18n.t('invalidQuantity'));
done();
}
});
it('returns error when user supplies a decimal quantity', done => {
it('returns error when user supplies a decimal quantity', async () => {
const type = 'eggs';
const key = 'Wolf';
user.balance = 10;
try {
purchase(user, { params: { type, key }, quantity: 2.9 }, analytics);
await purchase(user, { params: { type, key }, quantity: 2.9 }, analytics);
} catch (err) {
expect(err).to.be.an.instanceof(BadRequest);
expect(err.message).to.equal(i18n.t('invalidQuantity'));
done();
}
});
});
@@ -164,48 +154,48 @@ describe('shared.ops.purchase', () => {
user.pinnedItems.push({ type: 'bundles', key: 'featheredFriends' });
});
it('purchases eggs', () => {
it('purchases eggs', async () => {
const type = 'eggs';
const key = 'Wolf';
purchase(user, { params: { type, key } }, analytics);
await purchase(user, { params: { type, key } }, analytics);
expect(user.items[type][key]).to.equal(1);
expect(pinnedGearUtils.removeItemByPath.notCalled).to.equal(true);
expect(analytics.track).to.be.calledOnce;
});
it('purchases hatchingPotions', () => {
it('purchases hatchingPotions', async () => {
const type = 'hatchingPotions';
const key = 'Base';
purchase(user, { params: { type, key } });
await purchase(user, { params: { type, key } });
expect(user.items[type][key]).to.equal(1);
expect(pinnedGearUtils.removeItemByPath.notCalled).to.equal(true);
});
it('purchases food', () => {
it('purchases food', async () => {
const type = 'food';
const key = SEASONAL_FOOD;
purchase(user, { params: { type, key } });
await purchase(user, { params: { type, key } });
expect(user.items[type][key]).to.equal(1);
expect(pinnedGearUtils.removeItemByPath.notCalled).to.equal(true);
});
it('purchases gear', () => {
it('purchases gear', async () => {
const type = 'gear';
const key = 'headAccessory_special_tigerEars';
purchase(user, { params: { type, key } });
await purchase(user, { params: { type, key } });
expect(user.items.gear.owned[key]).to.be.true;
expect(pinnedGearUtils.removeItemByPath.calledOnce).to.equal(true);
});
it('purchases quest bundles', () => {
it('purchases quest bundles', async () => {
const startingBalance = user.balance;
const clock = sandbox.useFakeTimers(moment('2019-05-20').valueOf());
const type = 'bundles';
@@ -217,7 +207,7 @@ describe('shared.ops.purchase', () => {
'owl',
];
purchase(user, { params: { type, key } });
await purchase(user, { params: { type, key } });
forEach(questList, bundledKey => {
expect(user.items.quests[bundledKey]).to.equal(1);
@@ -240,28 +230,27 @@ describe('shared.ops.purchase', () => {
user.purchased.plan.customerId = 'customer-id';
});
it('errors when user does not have enough gems', done => {
it('errors when user does not have enough gems', async () => {
user.balance = 1;
const type = 'eggs';
const key = 'TigerCub';
try {
purchase(user, {
await purchase(user, {
params: { type, key },
quantity: 2,
});
} catch (err) {
expect(err).to.be.an.instanceof(NotAuthorized);
expect(err.message).to.equal(i18n.t('notEnoughGems'));
done();
}
});
it('makes bulk purchases of eggs', () => {
it('makes bulk purchases of eggs', async () => {
const type = 'eggs';
const key = 'TigerCub';
purchase(user, {
await purchase(user, {
params: { type, key },
quantity: 2,
});

View File

@@ -19,51 +19,48 @@ describe('shared.ops.changeClass', () => {
user.stats.flagSelected = false;
});
it('user is not level 10', done => {
it('user is not level 10', async () => {
user.stats.lvl = 9;
try {
changeClass(user, { query: { class: 'rogue' } });
await await changeClass(user, { query: { class: 'rogue' } });
} catch (err) {
expect(err).to.be.an.instanceof(NotAuthorized);
expect(err.message).to.equal(i18n.t('lvl10ChangeClass'));
done();
}
});
it('req.query.class is an invalid class', done => {
it('req.query.class is an invalid class', async () => {
user.flags.classSelected = false;
user.preferences.disableClasses = false;
try {
changeClass(user, { query: { class: 'cellist' } });
await changeClass(user, { query: { class: 'cellist' } });
} catch (err) {
expect(err).to.be.an.instanceof(BadRequest);
expect(err.message).to.equal(i18n.t('invalidClass'));
done();
}
});
context('req.query.class is a valid class', () => {
it('errors if user.stats.flagSelected is true and user.balance < 0.75', done => {
it('errors if user.stats.flagSelected is true and user.balance < 0.75', async () => {
user.flags.classSelected = true;
user.preferences.disableClasses = false;
user.balance = 0;
try {
changeClass(user, { query: { class: 'rogue' } });
await changeClass(user, { query: { class: 'rogue' } });
} catch (err) {
expect(err).to.be.an.instanceof(NotAuthorized);
expect(err.message).to.equal(i18n.t('notEnoughGems'));
done();
}
});
it('changes class', () => {
it('changes class', async () => {
user.stats.class = 'healer';
user.items.gear.owned.weapon_healer_3 = true;
user.items.gear.equipped.weapon = 'weapon_healer_3';
const [data] = changeClass(user, { query: { class: 'rogue' } });
const [data] = await changeClass(user, { query: { class: 'rogue' } });
expect(data).to.eql({
preferences: user.preferences,
stats: user.stats,
@@ -81,7 +78,7 @@ describe('shared.ops.changeClass', () => {
});
context('req.query.class is missing or user.stats.flagSelected is true', () => {
it('has user.preferences.disableClasses === true', () => {
it('has user.preferences.disableClasses === true', async () => {
user.balance = 1;
user.preferences.disableClasses = true;
user.preferences.autoAllocate = true;
@@ -92,7 +89,7 @@ describe('shared.ops.changeClass', () => {
user.stats.int = 4;
user.flags.classSelected = true;
const [data] = changeClass(user);
const [data] = await changeClass(user);
expect(data).to.eql({
preferences: user.preferences,
stats: user.stats,
@@ -112,18 +109,17 @@ describe('shared.ops.changeClass', () => {
});
context('has user.preferences.disableClasses !== true', () => {
it('and less than 3 gems', done => {
it('and less than 3 gems', async () => {
user.balance = 0.5;
try {
changeClass(user);
await changeClass(user);
} catch (err) {
expect(err).to.be.an.instanceof(NotAuthorized);
expect(err.message).to.equal(i18n.t('notEnoughGems'));
done();
}
});
it('and at least 3 gems', () => {
it('and at least 3 gems', async () => {
user.balance = 1;
user.stats.points = 45;
user.stats.str = 1;
@@ -132,7 +128,7 @@ describe('shared.ops.changeClass', () => {
user.stats.int = 4;
user.flags.classSelected = true;
const [data] = changeClass(user);
const [data] = await changeClass(user);
expect(data).to.eql({
preferences: user.preferences,
stats: user.stats,

View File

@@ -24,60 +24,59 @@ describe('shared.ops.rebirth', () => {
tasks = [generateHabit(), generateDaily(), generateTodo(), generateReward()];
});
it('returns an error when user balance is too low and user is less than max level', done => {
it('returns an error when user balance is too low and user is less than max level', async () => {
user.balance = 0;
try {
rebirth(user);
await rebirth(user);
} catch (err) {
expect(err).to.be.an.instanceof(NotAuthorized);
expect(err.message).to.equal(i18n.t('notEnoughGems'));
done();
}
});
it('rebirths a user with enough gems', () => {
const [, message] = rebirth(user);
it('rebirths a user with enough gems', async () => {
const [, message] = await rebirth(user);
expect(message).to.equal(i18n.t('rebirthComplete'));
});
it('rebirths a user with not enough gems but max level', () => {
it('rebirths a user with not enough gems but max level', async () => {
user.balance = 0;
user.stats.lvl = MAX_LEVEL;
const [, message] = rebirth(user);
const [, message] = await rebirth(user);
expect(message).to.equal(i18n.t('rebirthComplete'));
expect(user.flags.lastFreeRebirth).to.exist;
});
it('rebirths a user with not enough gems but more than max level', () => {
it('rebirths a user with not enough gems but more than max level', async () => {
user.balance = 0;
user.stats.lvl = MAX_LEVEL + 1;
const [, message] = rebirth(user);
const [, message] = await rebirth(user);
expect(message).to.equal(i18n.t('rebirthComplete'));
});
it('rebirths a user using gems if over max level but rebirthed recently', () => {
it('rebirths a user using gems if over max level but rebirthed recently', async () => {
user.stats.lvl = MAX_LEVEL + 1;
user.flags.lastFreeRebirth = new Date();
const [, message] = rebirth(user);
const [, message] = await rebirth(user);
expect(message).to.equal(i18n.t('rebirthComplete'));
expect(user.balance).to.equal(0);
});
it('resets user\'s tasks values except for rewards to 0', () => {
it('resets user\'s tasks values except for rewards to 0', async () => {
tasks[0].value = 1;
tasks[1].value = 1;
tasks[2].value = 1;
tasks[3].value = 1; // Reward
rebirth(user, tasks);
await rebirth(user, tasks);
expect(tasks[0].value).to.equal(0);
expect(tasks[1].value).to.equal(0);
@@ -85,99 +84,99 @@ describe('shared.ops.rebirth', () => {
expect(tasks[3].value).to.equal(1); // Reward
});
it('resets user\'s daily streaks to 0', () => {
it('resets user\'s daily streaks to 0', async () => {
tasks[0].counterDown = 1; // Habit
tasks[0].counterUp = 1; // Habit
tasks[1].streak = 1; // Daily
rebirth(user, tasks);
await rebirth(user, tasks);
expect(tasks[0].counterDown).to.equal(0);
expect(tasks[0].counterUp).to.equal(0);
expect(tasks[1].streak).to.equal(0);
});
it('resets a user\'s buffs', () => {
it('resets a user\'s buffs', async () => {
user.stats.buffs = { test: 'test' };
rebirth(user);
await rebirth(user);
expect(user.stats.buffs).to.be.empty;
});
it('resets a user\'s health points', () => {
it('resets a user\'s health points', async () => {
user.stats.hp = 40;
rebirth(user);
await rebirth(user);
expect(user.stats.hp).to.equal(50);
});
it('resets a user\'s class', () => {
it('resets a user\'s class', async () => {
user.stats.class = 'rouge';
rebirth(user);
await rebirth(user);
expect(user.stats.class).to.equal('warrior');
});
it('resets a user\'s stats', () => {
it('resets a user\'s stats', async () => {
user.stats.class = 'rouge';
_.each(userStats, value => {
user.stats[value] = 10;
});
rebirth(user);
await rebirth(user);
_.each(userStats, value => {
user.stats[value] = 0;
});
});
it('retains a user\'s gear', () => {
it('retains a user\'s gear', async () => {
const prevGearEquipped = user.items.gear.equipped;
const prevGearCostume = user.items.gear.costume;
const prevPrefCostume = user.preferences.costume;
rebirth(user);
await rebirth(user);
expect(user.items.gear.equipped).to.deep.equal(prevGearEquipped);
expect(user.items.gear.costume).to.deep.equal(prevGearCostume);
expect(user.preferences.costume).to.equal(prevPrefCostume);
});
it('retains a user\'s gear owned', () => {
it('retains a user\'s gear owned', async () => {
user.items.gear.owned.weapon_warrior_1 = true; // eslint-disable-line camelcase
const prevGearOwned = user.items.gear.owned;
rebirth(user);
await rebirth(user);
expect(user.items.gear.owned).to.equal(prevGearOwned);
});
it('resets a user\'s current pet', () => {
it('resets a user\'s current pet', async () => {
user.items.pets[animal] = true;
user.items.currentPet = animal;
rebirth(user);
await rebirth(user);
expect(user.items.currentPet).to.be.empty;
});
it('resets a user\'s current mount', () => {
it('resets a user\'s current mount', async () => {
user.items.mounts[animal] = true;
user.items.currentMount = animal;
rebirth(user);
await rebirth(user);
expect(user.items.currentMount).to.be.empty;
});
it('resets a user\'s flags', () => {
it('resets a user\'s flags', async () => {
user.flags.itemsEnabled = true;
user.flags.classSelected = true;
user.flags.rebirthEnabled = true;
user.flags.levelDrops = { test: 'test' };
rebirth(user);
await rebirth(user);
expect(user.flags.itemsEnabled).to.be.false;
expect(user.flags.classSelected).to.be.false;
@@ -185,80 +184,80 @@ describe('shared.ops.rebirth', () => {
expect(user.flags.levelDrops).to.be.empty;
});
it('reset rebirthEnabled even if user has beastMaster', () => {
it('reset rebirthEnabled even if user has beastMaster', async () => {
user.achievements.beastMaster = 1;
user.flags.rebirthEnabled = true;
rebirth(user);
await rebirth(user);
expect(user.flags.rebirthEnabled).to.be.false;
});
it('sets rebirth achievement', () => {
rebirth(user);
it('sets rebirth achievement', async () => {
await rebirth(user);
expect(user.achievements.rebirths).to.equal(1);
expect(user.achievements.rebirthLevel).to.equal(user.stats.lvl);
});
it('increments rebirth achievements', () => {
it('increments rebirth achievements', async () => {
user.stats.lvl = 2;
user.achievements.rebirths = 1;
user.achievements.rebirthLevel = 1;
rebirth(user);
await rebirth(user);
expect(user.achievements.rebirths).to.equal(2);
expect(user.achievements.rebirthLevel).to.equal(2);
});
it('does not increment rebirth achievements when level is lower than previous', () => {
it('does not increment rebirth achievements when level is lower than previous', async () => {
user.stats.lvl = 2;
user.achievements.rebirths = 1;
user.achievements.rebirthLevel = 3;
rebirth(user);
await rebirth(user);
expect(user.achievements.rebirths).to.equal(1);
expect(user.achievements.rebirthLevel).to.equal(3);
});
it('always increments rebirth achievements when level is MAX_LEVEL', () => {
it('always increments rebirth achievements when level is MAX_LEVEL', async () => {
user.stats.lvl = MAX_LEVEL;
user.achievements.rebirths = 1;
// this value is not actually possible (actually capped at MAX_LEVEL) but makes a good test
user.achievements.rebirthLevel = MAX_LEVEL + 1;
rebirth(user);
await rebirth(user);
expect(user.achievements.rebirths).to.equal(2);
expect(user.achievements.rebirthLevel).to.equal(MAX_LEVEL);
});
it('always increments rebirth achievements when level is greater than MAX_LEVEL', () => {
it('always increments rebirth achievements when level is greater than MAX_LEVEL', async () => {
user.stats.lvl = MAX_LEVEL + 1;
user.achievements.rebirths = 1;
// this value is not actually possible (actually capped at MAX_LEVEL) but makes a good test
user.achievements.rebirthLevel = MAX_LEVEL + 2;
rebirth(user);
await rebirth(user);
expect(user.achievements.rebirths).to.equal(2);
expect(user.achievements.rebirthLevel).to.equal(MAX_LEVEL);
});
it('keeps automaticAllocation false', () => {
it('keeps automaticAllocation false', async () => {
user.preferences.automaticAllocation = false;
rebirth(user);
await rebirth(user);
expect(user.preferences.automaticAllocation).to.be.false;
});
it('sets automaticAllocation to false when true', () => {
it('sets automaticAllocation to false when true', async () => {
user.preferences.automaticAllocation = true;
rebirth(user);
await rebirth(user);
expect(user.preferences.automaticAllocation).to.be.false;
});

View File

@@ -23,87 +23,85 @@ describe('shared.ops.releaseMounts', () => {
user.balance = 1;
});
it('returns an error when user balance is too low', done => {
it('returns an error when user balance is too low', async () => {
user.balance = 0;
try {
releaseMounts(user);
await releaseMounts(user);
} catch (err) {
expect(err).to.be.an.instanceof(NotAuthorized);
expect(err.message).to.equal(i18n.t('notEnoughGems'));
done();
}
});
it('returns an error when user does not have all pets', done => {
it('returns an error when user does not have all pets', async () => {
const mountsKeys = Object.keys(user.items.mounts);
delete user.items.mounts[mountsKeys[0]];
try {
releaseMounts(user);
await releaseMounts(user);
} catch (err) {
expect(err).to.be.an.instanceof(NotAuthorized);
expect(err.message).to.equal(i18n.t('notEnoughMounts'));
done();
}
});
it('releases mounts', () => {
const message = releaseMounts(user)[1];
it('releases mounts', async () => {
const result = await releaseMounts(user);
expect(message).to.equal(i18n.t('mountsReleased'));
expect(result[1]).to.equal(i18n.t('mountsReleased'));
expect(user.items.mounts[animal]).to.equal(null);
});
it('removes drop currentMount', () => {
it('removes drop currentMount', async () => {
const mountInfo = content.mountInfo[user.items.currentMount];
expect(mountInfo.type).to.equal('drop');
releaseMounts(user);
await releaseMounts(user);
expect(user.items.currentMount).to.be.empty;
});
it('leaves non-drop mount equipped', () => {
it('leaves non-drop mount equipped', async () => {
const questAnimal = 'Gryphon-Base';
user.items.currentMount = questAnimal;
user.items.mounts[questAnimal] = true;
const mountInfo = content.mountInfo[user.items.currentMount];
expect(mountInfo.type).to.not.equal('drop');
releaseMounts(user);
await releaseMounts(user);
expect(user.items.currentMount).to.equal(questAnimal);
});
it('increases mountMasterCount achievement', () => {
releaseMounts(user);
it('increases mountMasterCount achievement', async () => {
await releaseMounts(user);
expect(user.achievements.mountMasterCount).to.equal(1);
});
it('does not increase mountMasterCount achievement if mount is missing (null)', () => {
it('does not increase mountMasterCount achievement if mount is missing (null)', async () => {
const mountMasterCountBeforeRelease = user.achievements.mountMasterCount;
user.items.mounts[animal] = null;
try {
releaseMounts(user);
await releaseMounts(user);
} catch (e) {
expect(user.achievements.mountMasterCount).to.equal(mountMasterCountBeforeRelease);
}
});
it('does not increase mountMasterCount achievement if mount is missing (undefined)', () => {
it('does not increase mountMasterCount achievement if mount is missing (undefined)', async () => {
const mountMasterCountBeforeRelease = user.achievements.mountMasterCount;
delete user.items.mounts[animal];
try {
releaseMounts(user);
await releaseMounts(user);
} catch (e) {
expect(user.achievements.mountMasterCount).to.equal(mountMasterCountBeforeRelease);
}
});
it('subtracts gems from balance', () => {
releaseMounts(user);
it('subtracts gems from balance', async () => {
await releaseMounts(user);
expect(user.balance).to.equal(0);
});

View File

@@ -23,98 +23,96 @@ describe('shared.ops.releasePets', () => {
user.balance = 1;
});
it('returns an error when user balance is too low', done => {
it('returns an error when user balance is too low', async () => {
user.balance = 0;
try {
releasePets(user);
await releasePets(user);
} catch (err) {
expect(err).to.be.an.instanceof(NotAuthorized);
expect(err.message).to.equal(i18n.t('notEnoughGems'));
done();
}
});
it('returns an error when user does not have all pets', done => {
it('returns an error when user does not have all pets', async () => {
const petKeys = Object.keys(user.items.pets);
delete user.items.pets[petKeys[0]];
try {
releasePets(user);
await releasePets(user);
} catch (err) {
expect(err).to.be.an.instanceof(NotAuthorized);
expect(err.message).to.equal(i18n.t('notEnoughPets'));
done();
}
});
it('releases pets', () => {
const message = releasePets(user)[1];
it('releases pets', async () => {
const message = await releasePets(user)[1];
expect(message).to.equal(i18n.t('petsReleased'));
expect(user.items.pets[animal]).to.equal(0);
});
it('removes drop currentPet', () => {
it('removes drop currentPet', async () => {
const petInfo = content.petInfo[user.items.currentPet];
expect(petInfo.type).to.equal('drop');
releasePets(user);
await releasePets(user);
expect(user.items.currentPet).to.be.empty;
});
it('leaves non-drop pets equipped', () => {
it('leaves non-drop pets equipped', async () => {
const questAnimal = 'Gryphon-Base';
user.items.currentPet = questAnimal;
user.items.pets[questAnimal] = 5;
const petInfo = content.petInfo[user.items.currentPet];
expect(petInfo.type).to.not.equal('drop');
releasePets(user);
await releasePets(user);
expect(user.items.currentPet).to.equal(questAnimal);
});
it('decreases user\'s balance', () => {
releasePets(user);
it('decreases user\'s balance', async () => {
await releasePets(user);
expect(user.balance).to.equal(0);
});
it('incremenets beastMasterCount', () => {
releasePets(user);
it('incremenets beastMasterCount', async () => {
await releasePets(user);
expect(user.achievements.beastMasterCount).to.equal(1);
});
it('does not increment beastMasterCount if any pet is level 0 (released)', () => {
it('does not increment beastMasterCount if any pet is level 0 (released)', async () => {
const beastMasterCountBeforeRelease = user.achievements.beastMasterCount;
user.items.pets[animal] = 0;
try {
releasePets(user);
await releasePets(user);
} catch (e) {
expect(user.achievements.beastMasterCount).to.equal(beastMasterCountBeforeRelease);
}
});
it('does not increment beastMasterCount if any pet is missing (null)', () => {
it('does not increment beastMasterCount if any pet is missing (null)', async () => {
const beastMasterCountBeforeRelease = user.achievements.beastMasterCount;
user.items.pets[animal] = null;
try {
releasePets(user);
await releasePets(user);
} catch (e) {
expect(user.achievements.beastMasterCount).to.equal(beastMasterCountBeforeRelease);
}
});
it('does not increment beastMasterCount if any pet is missing (undefined)', () => {
it('does not increment beastMasterCount if any pet is missing (undefined)', async () => {
const beastMasterCountBeforeRelease = user.achievements.beastMasterCount;
delete user.items.pets[animal];
try {
releasePets(user);
await releasePets(user);
} catch (e) {
expect(user.achievements.beastMasterCount).to.equal(beastMasterCountBeforeRelease);
}

View File

@@ -19,43 +19,42 @@ describe('shared.ops.reroll', () => {
tasks = [generateDaily(), generateReward()];
});
it('returns an error when user balance is too low', done => {
it('returns an error when user balance is too low', async () => {
user.balance = 0;
try {
reroll(user);
await reroll(user);
} catch (err) {
expect(err).to.be.an.instanceof(NotAuthorized);
expect(err.message).to.equal(i18n.t('notEnoughGems'));
done();
}
});
it('rerolls a user with enough gems', () => {
const [, message] = reroll(user);
it('rerolls a user with enough gems', async () => {
const [, message] = await reroll(user);
expect(message).to.equal(i18n.t('fortifyComplete'));
});
it('reduces a user\'s balance', () => {
reroll(user);
it('reduces a user\'s balance', async () => {
await reroll(user);
expect(user.balance).to.equal(0);
});
it('resets a user\'s health points', () => {
it('resets a user\'s health points', async () => {
user.stats.hp = 40;
reroll(user);
await reroll(user);
expect(user.stats.hp).to.equal(50);
});
it('resets user\'s taks values except for rewards to 0', () => {
it('resets user\'s taks values except for rewards to 0', async () => {
tasks[0].value = 1;
tasks[1].value = 1;
reroll(user, tasks);
await reroll(user, tasks);
expect(tasks[0].value).to.equal(0);
expect(tasks[1].value).to.equal(1);

View File

@@ -19,184 +19,173 @@ describe('shared.ops.unlock', () => {
user.balance = usersStartingGems;
});
it('returns an error when path is not provided', done => {
it('returns an error when path is not provided', async () => {
try {
unlock(user);
await unlock(user);
} catch (err) {
expect(err).to.be.an.instanceof(BadRequest);
expect(err.message).to.equal(i18n.t('pathRequired'));
done();
}
});
it('does not unlock lost gear', done => {
it('does not unlock lost gear', async () => {
user.items.gear.owned.headAccessory_special_bearEars = false;
unlock(user, { query: { path: 'items.gear.owned.headAccessory_special_bearEars' } });
await unlock(user, { query: { path: 'items.gear.owned.headAccessory_special_bearEars' } });
expect(user.balance).to.equal(usersStartingGems);
done();
});
it('returns an error when user balance is too low', done => {
it('returns an error when user balance is too low', async () => {
user.balance = 0;
try {
unlock(user, { query: { path: unlockPath } });
await unlock(user, { query: { path: unlockPath } });
} catch (err) {
expect(err).to.be.an.instanceof(NotAuthorized);
expect(err.message).to.equal(i18n.t('notEnoughGems'));
done();
}
});
it('returns an error when user already owns a full set', done => {
it('returns an error when user already owns a full set', async () => {
let expectedBalance;
try {
unlock(user, { query: { path: unlockPath } });
await unlock(user, { query: { path: unlockPath } });
expectedBalance = user.balance;
unlock(user, { query: { path: unlockPath } });
await unlock(user, { query: { path: unlockPath } });
} catch (err) {
expect(err).to.be.an.instanceof(NotAuthorized);
expect(err.message).to.equal(i18n.t('alreadyUnlocked'));
expect(user.balance).to.equal(expectedBalance);
done();
}
});
it('returns an error when user already owns a full set of gear', done => {
it('returns an error when user already owns a full set of gear', async () => {
let expectedBalance;
try {
unlock(user, { query: { path: unlockGearSetPath } });
await unlock(user, { query: { path: unlockGearSetPath } });
expectedBalance = user.balance;
unlock(user, { query: { path: unlockGearSetPath } });
await unlock(user, { query: { path: unlockGearSetPath } });
} catch (err) {
expect(err).to.be.an.instanceof(NotAuthorized);
expect(err.message).to.equal(i18n.t('alreadyUnlocked'));
expect(user.balance).to.equal(expectedBalance);
done();
}
});
it('returns an error if an item does not exists', done => {
it('returns an error if an item does not exists', async () => {
try {
unlock(user, { query: { path: 'background.invalid_background' } });
await unlock(user, { query: { path: 'background.invalid_background' } });
} catch (err) {
expect(err).to.be.an.instanceof(BadRequest);
expect(err.message).to.equal(i18n.t('invalidUnlockSet'));
done();
}
});
it('returns an error if there are items from multiple sets', done => {
it('returns an error if there are items from multiple sets', async () => {
try {
unlock(user, { query: { path: 'shirt.convict,skin.0ff591' } });
await unlock(user, { query: { path: 'shirt.convict,skin.0ff591' } });
} catch (err) {
expect(err).to.be.an.instanceof(BadRequest);
expect(err.message).to.equal(i18n.t('invalidUnlockSet'));
done();
}
});
it('returns an error if gear is not from the animal set', done => {
it('returns an error if gear is not from the animal set', async () => {
try {
unlock(user, { query: { path: 'items.gear.owned.back_mystery_202004' } });
await unlock(user, { query: { path: 'items.gear.owned.back_mystery_202004' } });
} catch (err) {
expect(err).to.be.an.instanceof(BadRequest);
expect(err.message).to.equal(i18n.t('invalidUnlockSet'));
done();
}
});
it('returns an error if the item is free', done => {
it('returns an error if the item is free', async () => {
try {
unlock(user, { query: { path: 'shirt.black' } });
await unlock(user, { query: { path: 'shirt.black' } });
} catch (err) {
expect(err).to.be.an.instanceof(BadRequest);
expect(err.message).to.equal(i18n.t('invalidUnlockSet'));
done();
}
});
it('returns an error if an item does not belong to a set (appearances)', done => {
it('returns an error if an item does not belong to a set (appearances)', async () => {
try {
unlock(user, { query: { path: 'shirt.pink' } });
await unlock(user, { query: { path: 'shirt.pink' } });
} catch (err) {
expect(err).to.be.an.instanceof(BadRequest);
expect(err.message).to.equal(i18n.t('invalidUnlockSet'));
done();
}
});
it('returns an error when user already owns items in a full set and it would be more expensive to buy the entire set', done => {
it('returns an error when user already owns items in a full set and it would be more expensive to buy the entire set', async () => {
try {
// There are 11 shirts in the set, each cost 2 gems, the full set 5 gems
// In order for the full purchase not to be worth, we must own 9
const partialUnlockPaths = unlockPath.split(',');
unlock(user, { query: { path: partialUnlockPaths[0] } });
unlock(user, { query: { path: partialUnlockPaths[1] } });
unlock(user, { query: { path: partialUnlockPaths[2] } });
unlock(user, { query: { path: partialUnlockPaths[3] } });
unlock(user, { query: { path: partialUnlockPaths[4] } });
unlock(user, { query: { path: partialUnlockPaths[5] } });
unlock(user, { query: { path: partialUnlockPaths[6] } });
unlock(user, { query: { path: partialUnlockPaths[7] } });
unlock(user, { query: { path: partialUnlockPaths[8] } });
await unlock(user, { query: { path: partialUnlockPaths[0] } });
await unlock(user, { query: { path: partialUnlockPaths[1] } });
await unlock(user, { query: { path: partialUnlockPaths[2] } });
await unlock(user, { query: { path: partialUnlockPaths[3] } });
await unlock(user, { query: { path: partialUnlockPaths[4] } });
await unlock(user, { query: { path: partialUnlockPaths[5] } });
await unlock(user, { query: { path: partialUnlockPaths[6] } });
await unlock(user, { query: { path: partialUnlockPaths[7] } });
await unlock(user, { query: { path: partialUnlockPaths[8] } });
unlock(user, { query: { path: unlockPath } });
await unlock(user, { query: { path: unlockPath } });
} catch (err) {
expect(err).to.be.an.instanceof(NotAuthorized);
expect(err.message).to.equal(i18n.t('alreadyUnlockedPart'));
done();
}
});
it('does not return an error when user already owns items in a full set and it would not be more expensive to buy the entire set', () => {
it('does not return an error when user already owns items in a full set and it would not be more expensive to buy the entire set', async () => {
// There are 11 shirts in the set, each cost 2 gems, the full set 5 gems
// In order for the full purchase to be worth, we can own already 8
const partialUnlockPaths = unlockPath.split(',');
unlock(user, { query: { path: partialUnlockPaths[0] } });
unlock(user, { query: { path: partialUnlockPaths[1] } });
unlock(user, { query: { path: partialUnlockPaths[2] } });
unlock(user, { query: { path: partialUnlockPaths[3] } });
unlock(user, { query: { path: partialUnlockPaths[4] } });
unlock(user, { query: { path: partialUnlockPaths[5] } });
unlock(user, { query: { path: partialUnlockPaths[6] } });
unlock(user, { query: { path: partialUnlockPaths[7] } });
await unlock(user, { query: { path: partialUnlockPaths[0] } });
await unlock(user, { query: { path: partialUnlockPaths[1] } });
await unlock(user, { query: { path: partialUnlockPaths[2] } });
await unlock(user, { query: { path: partialUnlockPaths[3] } });
await unlock(user, { query: { path: partialUnlockPaths[4] } });
await unlock(user, { query: { path: partialUnlockPaths[5] } });
await unlock(user, { query: { path: partialUnlockPaths[6] } });
await unlock(user, { query: { path: partialUnlockPaths[7] } });
unlock(user, { query: { path: unlockPath } });
await unlock(user, { query: { path: unlockPath } });
});
it('equips an item already owned', () => {
it('equips an item already owned', async () => {
expect(user.purchased.background.giant_florals).to.not.exist;
unlock(user, { query: { path: backgroundUnlockPath } });
await unlock(user, { query: { path: backgroundUnlockPath } });
const afterBalance = user.balance;
const response = unlock(user, { query: { path: backgroundUnlockPath } });
const response = await unlock(user, { query: { path: backgroundUnlockPath } });
expect(user.balance).to.equal(afterBalance); // do not bill twice
expect(response.message).to.not.exist;
expect(user.preferences.background).to.equal('giant_florals');
});
it('un-equips a background already equipped', () => {
it('un-equips a background already equipped', async () => {
expect(user.purchased.background.giant_florals).to.not.exist;
unlock(user, { query: { path: backgroundUnlockPath } }); // unlock
await unlock(user, { query: { path: backgroundUnlockPath } }); // unlock
const afterBalance = user.balance;
unlock(user, { query: { path: backgroundUnlockPath } }); // equip
const response = unlock(user, { query: { path: backgroundUnlockPath } });
await unlock(user, { query: { path: backgroundUnlockPath } }); // equip
const response = await unlock(user, { query: { path: backgroundUnlockPath } });
expect(user.balance).to.equal(afterBalance); // do not bill twice
expect(response.message).to.not.exist;
expect(user.preferences.background).to.equal('');
});
it('unlocks a full set of appearance items', () => {
it('unlocks a full set of appearance items', async () => {
const initialShirts = Object.keys(user.purchased.shirt).length;
const [, message] = unlock(user, { query: { path: unlockPath } });
const [, message] = await unlock(user, { query: { path: unlockPath } });
expect(message).to.equal(i18n.t('unlocked'));
const individualPaths = unlockPath.split(',');
@@ -208,11 +197,11 @@ describe('shared.ops.unlock', () => {
expect(user.balance).to.equal(usersStartingGems - 1.25);
});
it('unlocks a full set of hair items', () => {
it('unlocks a full set of hair items', async () => {
user.purchased.hair.color = {};
const initialHairColors = Object.keys(user.purchased.hair.color).length;
const [, message] = unlock(user, { query: { path: hairUnlockPath } });
const [, message] = await unlock(user, { query: { path: hairUnlockPath } });
expect(message).to.equal(i18n.t('unlocked'));
const individualPaths = hairUnlockPath.split(',');
@@ -224,13 +213,13 @@ describe('shared.ops.unlock', () => {
expect(user.balance).to.equal(usersStartingGems - 1.25);
});
it('unlocks the facial hair set', () => {
it('unlocks the facial hair set', async () => {
user.purchased.hair.mustache = {};
user.purchased.hair.beard = {};
const initialMustache = Object.keys(user.purchased.hair.mustache).length;
const initialBeard = Object.keys(user.purchased.hair.mustache).length;
const [, message] = unlock(user, { query: { path: facialHairUnlockPath } });
const [, message] = await unlock(user, { query: { path: facialHairUnlockPath } });
expect(message).to.equal(i18n.t('unlocked'));
const individualPaths = facialHairUnlockPath.split(',');
@@ -242,9 +231,9 @@ describe('shared.ops.unlock', () => {
expect(user.balance).to.equal(usersStartingGems - 1.25);
});
it('unlocks a full set of gear', () => {
it('unlocks a full set of gear', async () => {
const initialGear = Object.keys(user.items.gear.owned).length;
const [, message] = unlock(user, { query: { path: unlockGearSetPath } });
const [, message] = await unlock(user, { query: { path: unlockGearSetPath } });
expect(message).to.equal(i18n.t('unlocked'));
@@ -257,9 +246,9 @@ describe('shared.ops.unlock', () => {
expect(user.balance).to.equal(usersStartingGems - 1.25);
});
it('unlocks a full set of backgrounds', () => {
it('unlocks a full set of backgrounds', async () => {
const initialBackgrounds = Object.keys(user.purchased.background).length;
const [, message] = unlock(user, { query: { path: backgroundSetUnlockPath } });
const [, message] = await unlock(user, { query: { path: backgroundSetUnlockPath } });
expect(message).to.equal(i18n.t('unlocked'));
const individualPaths = backgroundSetUnlockPath.split(',');
@@ -271,10 +260,10 @@ describe('shared.ops.unlock', () => {
expect(user.balance).to.equal(usersStartingGems - 3.75);
});
it('unlocks an item (appearance)', () => {
it('unlocks an item (appearance)', async () => {
const path = unlockPath.split(',')[0];
const initialShirts = Object.keys(user.purchased.shirt).length;
const [, message] = unlock(user, { query: { path } });
const [, message] = await unlock(user, { query: { path } });
expect(message).to.equal(i18n.t('unlocked'));
expect(Object.keys(user.purchased.shirt).length).to.equal(initialShirts + 1);
@@ -282,12 +271,12 @@ describe('shared.ops.unlock', () => {
expect(user.balance).to.equal(usersStartingGems - 0.5);
});
it('unlocks an item (hair color)', () => {
it('unlocks an item (hair color)', async () => {
user.purchased.hair.color = {};
const path = hairUnlockPath.split(',')[0];
const initialColorHair = Object.keys(user.purchased.hair.color).length;
const [, message] = unlock(user, { query: { path } });
const [, message] = await unlock(user, { query: { path } });
expect(message).to.equal(i18n.t('unlocked'));
expect(Object.keys(user.purchased.hair.color).length).to.equal(initialColorHair + 1);
@@ -295,14 +284,14 @@ describe('shared.ops.unlock', () => {
expect(user.balance).to.equal(usersStartingGems - 0.5);
});
it('unlocks an item (facial hair)', () => {
it('unlocks an item (facial hair)', async () => {
user.purchased.hair.mustache = {};
user.purchased.hair.beard = {};
const path = facialHairUnlockPath.split(',')[0];
const initialMustache = Object.keys(user.purchased.hair.mustache).length;
const initialBeard = Object.keys(user.purchased.hair.beard).length;
const [, message] = unlock(user, { query: { path } });
const [, message] = await unlock(user, { query: { path } });
expect(message).to.equal(i18n.t('unlocked'));
@@ -313,10 +302,10 @@ describe('shared.ops.unlock', () => {
expect(user.balance).to.equal(usersStartingGems - 0.5);
});
it('unlocks an item (gear)', () => {
it('unlocks an item (gear)', async () => {
const path = unlockGearSetPath.split(',')[0];
const initialGear = Object.keys(user.items.gear.owned).length;
const [, message] = unlock(user, { query: { path } });
const [, message] = await unlock(user, { query: { path } });
expect(message).to.equal(i18n.t('unlocked'));
expect(Object.keys(user.items.gear.owned).length).to.equal(initialGear + 1);
@@ -324,9 +313,9 @@ describe('shared.ops.unlock', () => {
expect(user.balance).to.equal(usersStartingGems - 0.5);
});
it('unlocks an item (background)', () => {
it('unlocks an item (background)', async () => {
const initialBackgrounds = Object.keys(user.purchased.background).length;
const [, message] = unlock(user, { query: { path: backgroundUnlockPath } });
const [, message] = await unlock(user, { query: { path: backgroundUnlockPath } });
expect(message).to.equal(i18n.t('unlocked'));
expect(Object.keys(user.purchased.background).length).to.equal(initialBackgrounds + 1);

View File

@@ -13,6 +13,7 @@ module.exports = {
'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off',
// TODO find a way to let eslint understand webpack aliases
'import/no-unresolved': 'off',
'import/extensions': 'off',
'vue/no-v-html': 'off',
'vue/html-self-closing': ['error', {
html: {

View File

@@ -0,0 +1,8 @@
# Storybook Updates
Addon-Knobs has been deprecated inorder to update to the new `addons-controls` we need to:
1. Change to the new export syntax for each story `export const StoryTemplate`
2. And use `StoryTemplate.args` and `StoryTemplate.argTypes` to have the same `knobs` as before
Maybe this can be made story by story and not all at once

View File

@@ -2,53 +2,64 @@
import { configure } from '@storybook/vue';
import './margin.css';
import '../../src/assets/scss/index.scss';
import '../../src/assets/css/sprites.css';
import '../../src/assets/css/sprites/spritesmith-main-0.css';
import '../../src/assets/css/sprites/spritesmith-main-1.css';
import '../../src/assets/css/sprites/spritesmith-main-2.css';
import '../../src/assets/css/sprites/spritesmith-main-3.css';
import '../../src/assets/css/sprites/spritesmith-main-4.css';
import '../../src/assets/css/sprites/spritesmith-main-5.css';
import '../../src/assets/css/sprites/spritesmith-main-6.css';
import '../../src/assets/css/sprites/spritesmith-main-7.css';
import '../../src/assets/css/sprites/spritesmith-main-8.css';
import '../../src/assets/css/sprites/spritesmith-main-9.css';
import '../../src/assets/css/sprites/spritesmith-main-10.css';
import '../../src/assets/css/sprites/spritesmith-main-11.css';
import '../../src/assets/css/sprites/spritesmith-main-12.css';
import '../../src/assets/css/sprites/spritesmith-main-13.css';
import '../../src/assets/css/sprites/spritesmith-main-14.css';
import '../../src/assets/css/sprites/spritesmith-main-15.css';
import '../../src/assets/css/sprites/spritesmith-main-16.css';
import '../../src/assets/css/sprites/spritesmith-main-17.css';
import '../../src/assets/css/sprites/spritesmith-main-18.css';
import '../../src/assets/css/sprites/spritesmith-main-19.css';
import '../../src/assets/css/sprites/spritesmith-main-20.css';
import '../../src/assets/css/sprites/spritesmith-main-21.css';
import '../../src/assets/css/sprites/spritesmith-main-22.css';
import '../../src/assets/css/sprites/spritesmith-main-23.css';
import '../../src/assets/css/sprites/spritesmith-main-24.css';
import '../../src/assets/css/sprites/spritesmith-main-25.css';
import '../../src/assets/css/sprites/spritesmith-main-26.css';
import '../../src/assets/scss/sprites.scss';
import Vue from 'vue';
import BootstrapVue from 'bootstrap-vue';
import StoreModule from '@/libs/store';
import getStore from '@/store';
import '../../src/filters/registerGlobals';
import i18n from '../../../common/script/i18n';
// couldn't inject the languages easily,
// so just a "$t()" string to show that this will be translated
Vue.prototype.$t = function translateString (...args) {
i18n.t = function translateString (...args) {
return `$t(${JSON.stringify(args)})`;
};
Vue.prototype.$t = i18n.t;
Vue.use(BootstrapVue);
Vue.use(StoreModule);
const store = getStore();
store.state.user.data = {
stats: {},
tags: [],
items: {
quests: {
moon1: 3,
},
},
party: {
quest: {
},
},
preferences: {
},
auth: {
local: {
// email: 'example@example.com',
},
facebook: {
emails: [
{
value: 'test@test.de',
},
],
},
},
};
Vue.prototype.$store = store;
const req = require.context('../../src', true, /.stories.js$/);
function loadStories () {
req.keys().forEach(filename => req(filename));
}
configure(loadStories, module);

View File

@@ -3,11 +3,12 @@
display: inline-block;
}
.content {
color: white;
background: grey;
}
.inline-block {
display: inline-block;
}
.component-showcase {
position: absolute;
margin: 20px;
width: calc(100% - 40px);
}

View File

@@ -1,3 +1,6 @@
import { v4 as generateUUID } from 'uuid';
import getters from '@/store/getters';
export const userStyles = {
contributor: {
admin: true,
@@ -72,4 +75,33 @@ export const userStyles = {
maxHealth: 50,
maxMP: 158,
},
profile: {
name: 'user',
},
_id: generateUUID(),
flags: {
classSelected: true,
},
};
export function mockStore ({
userData,
...state
}) {
return {
getters,
dispatch: () => {
},
watch: () => {
},
state: {
user: {
data: {
...userData,
},
},
...state,
},
};
}

File diff suppressed because it is too large Load Diff

View File

@@ -13,56 +13,57 @@
"storybook:serve": "vue-cli-service storybook:serve -p 6006 -c config/storybook"
},
"dependencies": {
"@storybook/addon-actions": "^6.2.9",
"@storybook/addon-knobs": "^6.2.9",
"@storybook/addon-links": "^6.2.9",
"@storybook/addon-notes": "^5.3.21",
"@storybook/vue": "^6.2.9",
"@vue/cli-plugin-babel": "^4.5.12",
"@vue/cli-plugin-eslint": "^4.5.12",
"@vue/cli-plugin-router": "^4.5.12",
"@vue/cli-plugin-unit-mocha": "^4.5.12",
"@vue/cli-service": "^4.5.12",
"@storybook/addon-actions": "6.4.19",
"@storybook/addon-knobs": "6.2.9",
"@storybook/addon-links": "6.4.18",
"@storybook/addon-notes": "5.3.21",
"@storybook/addons": "6.4.19",
"@storybook/vue": "6.3.13",
"@vue/cli-plugin-babel": "^4.5.15",
"@vue/cli-plugin-eslint": "^4.5.15",
"@vue/cli-plugin-router": "^4.5.15",
"@vue/cli-plugin-unit-mocha": "^4.5.15",
"@vue/cli-service": "^4.5.15",
"@vue/test-utils": "1.0.0-beta.29",
"amplitude-js": "^8.2.1",
"axios": "^0.21.1",
"amplitude-js": "^8.17.0",
"axios": "^0.25.0",
"axios-progress-bar": "^1.2.0",
"babel-eslint": "^10.1.0",
"bootstrap": "^4.6.0",
"bootstrap-vue": "^2.21.2",
"chai": "^4.3.4",
"core-js": "^3.11.1",
"chai": "^4.3.6",
"core-js": "^3.21.0",
"eslint": "^6.8.0",
"eslint-config-habitrpg": "^6.2.0",
"eslint-plugin-mocha": "^5.3.0",
"eslint-plugin-vue": "^6.2.2",
"habitica-markdown": "^3.0.0",
"hellojs": "^1.19.3",
"hellojs": "^1.19.5",
"inspectpack": "^4.7.1",
"intro.js": "^3.4.0",
"intro.js": "^5.0.0",
"jquery": "^3.6.0",
"lodash": "^4.17.21",
"moment": "^2.29.1",
"nconf": "^0.11.2",
"sass": "^1.32.12",
"nconf": "^0.11.3",
"sass": "^1.34.0",
"sass-loader": "^8.0.2",
"smartbanner.js": "^1.16.0",
"smartbanner.js": "^1.17.0",
"svg-inline-loader": "^0.8.2",
"svg-url-loader": "^7.1.1",
"svgo": "^1.3.2",
"svgo-loader": "^2.2.1",
"uuid": "^8.3.2",
"validator": "^13.6.0",
"vue": "^2.6.12",
"vue-cli-plugin-storybook": "^2.0.0",
"validator": "^13.7.0",
"vue": "^2.6.14",
"vue-cli-plugin-storybook": "2.1.0",
"vue-mugen-scroll": "^0.2.6",
"vue-router": "^3.5.1",
"vue-template-compiler": "^2.6.12",
"vue-router": "^3.5.3",
"vue-template-compiler": "^2.6.14",
"vuedraggable": "^2.24.3",
"vuejs-datepicker": "git://github.com/habitrpg/vuejs-datepicker.git#153d339e4dbebb73733658aeda1d5b7fcc55b0a0",
"webpack": "^4.46.0"
},
"devDependencies": {
"@babel/plugin-proposal-optional-chaining": "^7.13.12"
"@babel/plugin-proposal-optional-chaining": "^7.16.7"
}
}

View File

@@ -33,12 +33,14 @@
<payments-success-modal />
<sub-cancel-modal-confirm v-if="isUserLoaded" />
<sub-canceled-modal v-if="isUserLoaded" />
<bug-report-modal v-if="isUserLoaded" />
<bug-report-success-modal v-if="isUserLoaded" />
<snackbars />
<router-view v-if="!isUserLoggedIn || isStaticPage" />
<template v-else>
<template v-if="isUserLoaded">
<damage-paused-banner />
<!-- <gems-promo-banner /> -->
<gems-promo-banner />
<gift-promo-banner />
<notifications-display />
<app-menu />
@@ -154,7 +156,7 @@ import { loadProgressBar } from 'axios-progress-bar';
import AppMenu from './components/header/menu';
import AppHeader from './components/header/index';
import DamagePausedBanner from './components/header/banners/damagePaused';
// import GemsPromoBanner from './components/header/banners/gemsPromo';
import GemsPromoBanner from './components/header/banners/gemsPromo';
import GiftPromoBanner from './components/header/banners/giftPromo';
import AppFooter from './components/appFooter';
import notificationsDisplay from './components/notifications';
@@ -177,6 +179,10 @@ import {
removeLocalSetting,
} from '@/libs/userlocalManager';
const bugReportModal = () => import(/* webpackChunkName: "bug-report-modal" */'@/components/bugReportModal');
const bugReportSuccessModal = () => import(/* webpackChunkName: "bug-report-success-modal" */'@/components/bugReportSuccessModal');
const COMMUNITY_MANAGER_EMAIL = process.env.EMAILS_COMMUNITY_MANAGER_EMAIL; // eslint-disable-line
export default {
@@ -186,7 +192,7 @@ export default {
AppHeader,
AppFooter,
DamagePausedBanner,
// GemsPromoBanner,
GemsPromoBanner,
GiftPromoBanner,
notificationsDisplay,
snackbars,
@@ -196,6 +202,8 @@ export default {
paymentsSuccessModal,
subCancelModalConfirm,
subCanceledModal,
bugReportModal,
bugReportSuccessModal,
},
mixins: [notifications, spellsMixin],
data () {
@@ -261,6 +269,12 @@ export default {
this.$root.$emit('bv::show::modal', 'buy-modal');
});
this.$root.$on('bv::modal::hidden', event => {
if (event.componentId === 'buy-modal') {
this.$root.$emit('buyModal::hidden', this.selectedItemToBuy.key);
}
});
this.$root.$on('selectMembersModal::showItem', item => {
this.selectedSpellToBuy = item;
this.$root.$emit('bv::show::modal', 'select-member-modal');
@@ -400,7 +414,10 @@ export default {
this.$store.state.isUserLoaded = true;
Analytics.setUser();
Analytics.updateUser();
return axios.get('/api/v4/i18n/browser-script', { language: this.user.preferences.language });
}).then(() => {
const i18nData = window && window['habitica-i18n'];
this.$loadLocale(i18nData);
this.hideLoadingScreen();
// Adjust the timezone offset
@@ -513,37 +530,5 @@ export default {
<style src="intro.js/minified/introjs.min.css"></style>
<style src="axios-progress-bar/dist/nprogress.css"></style>
<style src="@/assets/scss/index.scss" lang="scss"></style>
<style src="@/assets/css/sprites/spritesmith-largeSprites-0.css"></style>
<style src="@/assets/css/sprites/spritesmith-main-0.css"></style>
<style src="@/assets/css/sprites/spritesmith-main-1.css"></style>
<style src="@/assets/css/sprites/spritesmith-main-2.css"></style>
<style src="@/assets/css/sprites/spritesmith-main-3.css"></style>
<style src="@/assets/css/sprites/spritesmith-main-4.css"></style>
<style src="@/assets/css/sprites/spritesmith-main-5.css"></style>
<style src="@/assets/css/sprites/spritesmith-main-6.css"></style>
<style src="@/assets/css/sprites/spritesmith-main-7.css"></style>
<style src="@/assets/css/sprites/spritesmith-main-8.css"></style>
<style src="@/assets/css/sprites/spritesmith-main-9.css"></style>
<style src="@/assets/css/sprites/spritesmith-main-10.css"></style>
<style src="@/assets/css/sprites/spritesmith-main-11.css"></style>
<style src="@/assets/css/sprites/spritesmith-main-12.css"></style>
<style src="@/assets/css/sprites/spritesmith-main-13.css"></style>
<style src="@/assets/css/sprites/spritesmith-main-14.css"></style>
<style src="@/assets/css/sprites/spritesmith-main-15.css"></style>
<style src="@/assets/css/sprites/spritesmith-main-16.css"></style>
<style src="@/assets/css/sprites/spritesmith-main-17.css"></style>
<style src="@/assets/css/sprites/spritesmith-main-18.css"></style>
<style src="@/assets/css/sprites/spritesmith-main-19.css"></style>
<style src="@/assets/css/sprites/spritesmith-main-20.css"></style>
<style src="@/assets/css/sprites/spritesmith-main-21.css"></style>
<style src="@/assets/css/sprites/spritesmith-main-22.css"></style>
<style src="@/assets/css/sprites/spritesmith-main-23.css"></style>
<style src="@/assets/css/sprites/spritesmith-main-24.css"></style>
<style src="@/assets/css/sprites/spritesmith-main-25.css"></style>
<style src="@/assets/css/sprites/spritesmith-main-26.css"></style>
<style src="@/assets/css/sprites/spritesmith-main-27.css"></style>
<style src="@/assets/css/sprites/spritesmith-main-28.css"></style>
<style src="@/assets/css/sprites/spritesmith-main-29.css"></style>
<style src="@/assets/css/sprites/spritesmith-main-30.css"></style>
<style src="@/assets/css/sprites.css"></style>
<style src="@/assets/scss/sprites.scss" lang="scss"></style>
<style src="smartbanner.js/dist/smartbanner.min.css"></style>

View File

@@ -1,30 +1,46 @@
.quest_lostMasterclasser4 {
background: url("~@/assets/images/animated/quest_lostMasterclasser4.gif") no-repeat;
background: url("https://habitica-assets.s3.amazonaws.com/mobileApp/images/quest_lostMasterclasser4.gif") no-repeat;
width: 219px;
height: 219px;
}
.quest_windup {
background: url("~@/assets/images/animated/quest_windup.gif") no-repeat;
background: url("https://habitica-assets.s3.amazonaws.com/mobileApp/images/quest_windup.gif") no-repeat;
width: 219px;
height: 219px;
}
.Pet_HatchingPotion_Dessert, .Pet_HatchingPotion_Veggie, .Pet_HatchingPotion_Windup {
.quest_solarSystem {
background: url("https://habitica-assets.s3.amazonaws.com/mobileApp/images/quest_solarSystem.gif") no-repeat;
width: 219px;
height: 219px;
}
.quest_virtualpet {
background: url("https://habitica-assets.s3.amazonaws.com/mobileApp/images/quest_virtualpet.gif") no-repeat;
width: 219px;
height: 219px;
}
.Pet_HatchingPotion_Dessert, .Pet_HatchingPotion_Veggie, .Pet_HatchingPotion_Windup, .Pet_HatchingPotion_VirtualPet {
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_Dessert {
background: url("~@/assets/images/animated/Pet_HatchingPotion_Dessert.gif") no-repeat;
background: url("https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet_HatchingPotion_Dessert.gif") no-repeat;
}
.Pet_HatchingPotion_Veggie {
background: url("~@/assets/images/animated/Pet_HatchingPotion_Veggie.gif") no-repeat;
background: url("https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet_HatchingPotion_Veggie.gif") no-repeat;
}
.Pet_HatchingPotion_Windup {
background: url("~@/assets/images/animated/Pet_HatchingPotion_Windup.gif") no-repeat;
background: url("https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet_HatchingPotion_Windup.gif") no-repeat;
}
.Pet_HatchingPotion_VirtualPet {
background: url("https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet_HatchingPotion_VirtualPet.gif") no-repeat;
}
.Gems {
@@ -62,7 +78,7 @@
/* Critical */
.weapon_special_critical {
background: url("~@/assets/images/animated/weapon_special_critical.gif") no-repeat;
background: url("https://habitica-assets.s3.amazonaws.com/mobileApp/images/weapon_special_critical.gif") no-repeat;
width: 90px;
height: 90px;
margin-left:-12px;
@@ -79,32 +95,32 @@
}
.head_special_0 {
background: url("~@/assets/images/animated/BackerOnly-Equip-ShadeHelmet.gif") no-repeat;
background: url("https://habitica-assets.s3.amazonaws.com/mobileApp/images/BackerOnly-Equip-ShadeHelmet.gif") no-repeat;
}
.head_special_1 {
background: url("~@/assets/images/animated/ContributorOnly-Equip-CrystalHelmet.gif") no-repeat;
background: url("https://habitica-assets.s3.amazonaws.com/mobileApp/images/ContributorOnly-Equip-CrystalHelmet.gif") no-repeat;
margin-top: 3px;
}
.broad_armor_special_0,.slim_armor_special_0 {
background: url("~@/assets/images/animated/BackerOnly-Equip-ShadeArmor.gif") no-repeat;
background: url("https://habitica-assets.s3.amazonaws.com/mobileApp/images/BackerOnly-Equip-ShadeArmor.gif") no-repeat;
}
.broad_armor_special_1,.slim_armor_special_1 {
background: url("~@/assets/images/animated/ContributorOnly-Equip-CrystalArmor.gif") no-repeat;
background: url("https://habitica-assets.s3.amazonaws.com/mobileApp/images/ContributorOnly-Equip-CrystalArmor.gif") no-repeat;
}
.shield_special_0 {
background: url("~@/assets/images/animated/BackerOnly-Shield-TormentedSkull.gif") no-repeat;
background: url("https://habitica-assets.s3.amazonaws.com/mobileApp/images/BackerOnly-Shield-TormentedSkull.gif") no-repeat;
}
.weapon_special_0 {
background: url("~@/assets/images/animated/BackerOnly-Weapon-DarkSoulsBlade.gif") no-repeat;
background: url("https://habitica-assets.s3.amazonaws.com/mobileApp/images/BackerOnly-Weapon-DarkSoulsBlade.gif") no-repeat;
}
.Pet-Wolf-Cerberus {
width: 105px;
height: 72px;
background: url("~@/assets/images/animated/BackerOnly-Pet-CerberusPup.gif") no-repeat;
background: url("https://habitica-assets.s3.amazonaws.com/mobileApp/images/BackerOnly-Pet-CerberusPup.gif") no-repeat;
}
.broad_armor_special_ks2019, .slim_armor_special_ks2019, .eyewear_special_ks2019, .head_special_ks2019, .shield_special_ks2019 {
@@ -113,29 +129,29 @@
}
.broad_armor_special_ks2019, .slim_armor_special_ks2019 {
background: url("~@/assets/images/animated/BackerOnly-Equip-MythicGryphonArmor.gif") no-repeat;
background: url("https://habitica-assets.s3.amazonaws.com/mobileApp/images/BackerOnly-Equip-MythicGryphonArmor.gif") no-repeat;
}
.eyewear_special_ks2019 {
background: url("~@/assets/images/animated/BackerOnly-Equip-MythicGryphonVisor.gif") no-repeat;
background: url("https://habitica-assets.s3.amazonaws.com/mobileApp/images/BackerOnly-Equip-MythicGryphonVisor.gif") no-repeat;
}
.head_special_ks2019 {
background: url("~@/assets/images/animated/BackerOnly-Equip-MythicGryphonHelm.gif") no-repeat;
background: url("https://habitica-assets.s3.amazonaws.com/mobileApp/images/BackerOnly-Equip-MythicGryphonHelm.gif") no-repeat;
}
.shield_special_ks2019 {
background: url("~@/assets/images/animated/BackerOnly-Equip-MythicGryphonShield.gif") no-repeat;
background: url("https://habitica-assets.s3.amazonaws.com/mobileApp/images/BackerOnly-Equip-MythicGryphonShield.gif") no-repeat;
}
.weapon_special_ks2019 {
background: url("~@/assets/images/animated/BackerOnly-Equip-MythicGryphonGlaive.gif") no-repeat;
background: url("https://habitica-assets.s3.amazonaws.com/mobileApp/images/BackerOnly-Equip-MythicGryphonGlaive.gif") no-repeat;
width: 120px;
height: 120px;
}
.Pet-Gryphon-Gryphatrice {
background: url("~@/assets/images/animated/BackerOnly-Pet-Gryphatrice.gif") no-repeat;
background: url("https://habitica-assets.s3.amazonaws.com/mobileApp/images/BackerOnly-Pet-Gryphatrice.gif") no-repeat;
width: 81px;
height: 99px;
}
@@ -146,11 +162,11 @@
}
.Mount_Head_Gryphon-Gryphatrice {
background: url("~@/assets/images/animated/BackerOnly-Mount-Head-Gryphatrice.gif") no-repeat;
background: url("https://habitica-assets.s3.amazonaws.com/mobileApp/images/BackerOnly-Mount-Head-Gryphatrice.gif") no-repeat;
}
.Mount_Body_Gryphon-Gryphatrice {
background: url("~@/assets/images/animated/BackerOnly-Mount-Body-Gryphatrice.gif") no-repeat;
background: url("https://habitica-assets.s3.amazonaws.com/mobileApp/images/BackerOnly-Mount-Body-Gryphatrice.gif") no-repeat;
}
.background_airship, .background_clocktower, .background_steamworks {
@@ -159,15 +175,15 @@
}
.background_airship {
background: url("~@/assets/images/animated/background_airship.gif") no-repeat;
background: url("https://habitica-assets.s3.amazonaws.com/mobileApp/images/background_airship.gif") no-repeat;
}
.background_clocktower {
background: url("~@/assets/images/animated/background_clocktower.gif") no-repeat;
background: url("https://habitica-assets.s3.amazonaws.com/mobileApp/images/background_clocktower.gif") no-repeat;
}
.background_steamworks {
background: url("~@/assets/images/animated/background_steamworks.gif") no-repeat;
background: url("https://habitica-assets.s3.amazonaws.com/mobileApp/images/background_steamworks.gif") no-repeat;
}
/* FIXME figure out how to handle customize menu!!

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