* 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.
* purge Facebook.
Only keep it in some select places to allow for some compatablilty.
* Fix error
* fix error
* Let settings handle it when you don't have a password set but an email
* fix error
* Fix boolean logic
* fix json conversion
* .
* fix password reset for old social accounts
* 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.
* purge Facebook.
Only keep it in some select places to allow for some compatablilty.
* Fix error
* fix error
* Let settings handle it when you don't have a password set but an email
* fix error
* Fix boolean logic
* fix json conversion
* fix password reset for old social accounts
* Revert "lint fixes"
This reverts commit c244b1651c.
# Conflicts:
# website/client/src/components/auth/registerLoginReset.vue
# website/client/src/components/static/contact.vue
* Revert "fix password reset for old social accounts"
This reverts commit 7e0069a80f.
* fix duplicate code
* chore(misc): remove irrelevant changes
* chore(privacy): update policy page with note about FB
Co-authored-by: SabreCat <sabe@habitica.com>
* first pass
* second pass
* third pass
* fourth pass, not a lot of progress
* fifth pass, slowly gettin there
* breakpoint nonsense
* flexbox and breakpoint nonsense
* svg updates, css updates
* whitespace
* chore: merge upstream/develop
* style(breakpoints): added responsive breakpoints, social column alignment tweaks
* style(breakpoints): add xs-specific selectors and classes
* style: mobile footer
* style: mobile footer
* style: static landing page footer
* style: small tweaks to social layout
* fix(translations): update website/common/locales/de/gear.json to develop
* update(style): small updates
* update(style): cleaning up code
* update(style): cleaning up code
* update(style): mobile footer updates
* update(style): complete mobile footer & clean up code
* update(style): add tablet breakpoint and remove rogue terms link
* fix(string): questVice1Notes html changed to a mobile-device friendly format
* fix(strings): updated limited.json with "dateEnd" & "monthYYYY" months & put in chronological order
* fix(string): remove extra word from headSpecialSummer2022WarriorNotes
* fix(string): corrected armorSpecialSummer2022MageNotes
* fix: remove duplicated string and adjust upgrade button style
* fix(style): set border radii to 8px on upgrading-group id
* fix(payments): remove duplicate entry from another modal
Co-authored-by: SabreCat <sabe@habitica.com>
* chore(submodule): add August 2022 Mystery Items
* chore(content): add September 2022 Backgrounds and Enchanted Armoire Items
* fix(typo): periods so people don't grumble
* fix(typo): consistent caps
Co-authored-by: Sabe Jones <sabrecat@gmail.com>
Currently translated at 39.3% (81 of 206 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (58 of 58 strings)
Translated using Weblate (Ukrainian)
Currently translated at 41.1% (311 of 755 strings)
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (127 of 127 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (228 of 228 strings)
Translated using Weblate (Spanish)
Currently translated at 98.2% (57 of 58 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (374 of 374 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (718 of 718 strings)
Translated using Weblate (Russian)
Currently translated at 94.8% (369 of 389 strings)
Translated using Weblate (French)
Currently translated at 100.0% (389 of 389 strings)
Translated using Weblate (Portuguese)
Currently translated at 95.7% (45 of 47 strings)
Translated using Weblate (Ukrainian)
Currently translated at 92.9% (118 of 127 strings)
Translated using Weblate (Korean)
Currently translated at 78.6% (565 of 718 strings)
Translated using Weblate (Vietnamese)
Currently translated at 84.4% (174 of 206 strings)
Translated using Weblate (Korean)
Currently translated at 64.0% (132 of 206 strings)
Translated using Weblate (Japanese)
Currently translated at 100.0% (2655 of 2655 strings)
Translated using Weblate (English (Pirate) (en@pirate))
Currently translated at 88.5% (124 of 140 strings)
Translated using Weblate (Korean)
Currently translated at 43.8% (79 of 180 strings)
Translated using Weblate (Korean)
Currently translated at 41.1% (74 of 180 strings)
Translated using Weblate (Korean)
Currently translated at 51.7% (30 of 58 strings)
Translated using Weblate (Korean)
Currently translated at 100.0% (13 of 13 strings)
Translated using Weblate (Korean)
Currently translated at 82.1% (620 of 755 strings)
Translated using Weblate (Korean)
Currently translated at 78.1% (561 of 718 strings)
Translated using Weblate (Korean)
Currently translated at 78.1% (561 of 718 strings)
Translated using Weblate (Korean)
Currently translated at 63.5% (131 of 206 strings)
Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (58 of 58 strings)
Translated using Weblate (Japanese)
Currently translated at 92.8% (361 of 389 strings)
Translated using Weblate (Czech)
Currently translated at 74.4% (1977 of 2655 strings)
Translated using Weblate (Ukrainian)
Currently translated at 78.7% (100 of 127 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (135 of 135 strings)
Translated using Weblate (French)
Currently translated at 100.0% (135 of 135 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 92.5% (360 of 389 strings)
Translated using Weblate (French)
Currently translated at 100.0% (58 of 58 strings)
Translated using Weblate (Italian)
Currently translated at 100.0% (58 of 58 strings)
Translated using Weblate (Czech)
Currently translated at 74.2% (1972 of 2655 strings)
Translated using Weblate (Italian)
Currently translated at 98.2% (57 of 58 strings)
Translated using Weblate (Romanian)
Currently translated at 98.9% (93 of 94 strings)
Translated using Weblate (Czech)
Currently translated at 73.8% (1962 of 2655 strings)
Translated using Weblate (Romanian)
Currently translated at 91.4% (86 of 94 strings)
Translated using Weblate (Czech)
Currently translated at 72.8% (1934 of 2655 strings)
Translated using Weblate (Portuguese (Brazil))
Currently translated at 98.2% (57 of 58 strings)
Translated using Weblate (Romanian)
Currently translated at 100.0% (140 of 140 strings)
Translated using Weblate (Romanian)
Currently translated at 100.0% (140 of 140 strings)
Translated using Weblate (Romanian)
Currently translated at 100.0% (140 of 140 strings)
Translated using Weblate (Romanian)
Currently translated at 100.0% (140 of 140 strings)
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (94 of 94 strings)
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (140 of 140 strings)
Translated using Weblate (Russian)
Currently translated at 98.2% (57 of 58 strings)
Translated using Weblate (Russian)
Currently translated at 100.0% (374 of 374 strings)
Translated using Weblate (Romanian)
Currently translated at 100.0% (140 of 140 strings)
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (135 of 135 strings)
Translated using Weblate (Romanian)
Currently translated at 100.0% (13 of 13 strings)
Translated using Weblate (Romanian)
Currently translated at 100.0% (129 of 129 strings)
Translated using Weblate (Romanian)
Currently translated at 100.0% (8 of 8 strings)
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (228 of 228 strings)
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (389 of 389 strings)
Translated using Weblate (Russian)
Currently translated at 92.8% (361 of 389 strings)
Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (2655 of 2655 strings)
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (56 of 56 strings)
Translated using Weblate (Romanian)
Currently translated at 100.0% (186 of 186 strings)
Translated using Weblate (Romanian)
Currently translated at 100.0% (98 of 98 strings)
Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (718 of 718 strings)
Translated using Weblate (Romanian)
Currently translated at 93.5% (131 of 140 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (140 of 140 strings)
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (215 of 215 strings)
Translated using Weblate (Romanian)
Currently translated at 90.0% (126 of 140 strings)
Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (389 of 389 strings)
Translated using Weblate (Spanish)
Currently translated at 99.2% (139 of 140 strings)
Translated using Weblate (Japanese)
Currently translated at 100.0% (135 of 135 strings)
Translated using Weblate (Italian)
Currently translated at 100.0% (389 of 389 strings)
Translated using Weblate (Italian)
Currently translated at 99.2% (386 of 389 strings)
Translated using Weblate (Russian)
Currently translated at 99.7% (2649 of 2655 strings)
Translated using Weblate (Filipino)
Currently translated at 93.5% (131 of 140 strings)
Translated using Weblate (Filipino)
Currently translated at 96.4% (354 of 367 strings)
Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (135 of 135 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (2655 of 2655 strings)
Translated using Weblate (Italian)
Currently translated at 100.0% (135 of 135 strings)
Translated using Weblate (Filipino)
Currently translated at 81.3% (109 of 134 strings)
Translated using Weblate (Filipino)
Currently translated at 95.0% (133 of 140 strings)
Translated using Weblate (Filipino)
Currently translated at 36.3% (8 of 22 strings)
Translated using Weblate (Ukrainian)
Currently translated at 93.8% (214 of 228 strings)
Translated using Weblate (Spanish)
Currently translated at 98.5% (138 of 140 strings)
Translated using Weblate (Ukrainian)
Currently translated at 89.4% (204 of 228 strings)
Translated using Weblate (Russian)
Currently translated at 99.5% (2642 of 2655 strings)
Translated using Weblate (Russian)
Currently translated at 99.4% (2640 of 2655 strings)
Translated using Weblate (Japanese)
Currently translated at 100.0% (94 of 94 strings)
Translated using Weblate (Russian)
Currently translated at 99.3% (2639 of 2655 strings)
Translated using Weblate (Filipino)
Currently translated at 50.0% (11 of 22 strings)
Translated using Weblate (Filipino)
Currently translated at 100.0% (8 of 8 strings)
Translated using Weblate (Ukrainian)
Currently translated at 22.6% (602 of 2655 strings)
Translated using Weblate (Russian)
Currently translated at 99.2% (2636 of 2655 strings)
Translated using Weblate (German)
Currently translated at 100.0% (2655 of 2655 strings)
Translated using Weblate (German)
Currently translated at 100.0% (374 of 374 strings)
Translated using Weblate (Ukrainian)
Currently translated at 29.6% (786 of 2655 strings)
Translated using Weblate (Ukrainian)
Currently translated at 33.4% (889 of 2655 strings)
Translated using Weblate (Korean)
Currently translated at 100.0% (98 of 98 strings)
Translated using Weblate (Filipino)
Currently translated at 72.9% (551 of 755 strings)
Translated using Weblate (Filipino)
Currently translated at 96.4% (135 of 140 strings)
Translated using Weblate (Filipino)
Currently translated at 93.4% (200 of 214 strings)
Translated using Weblate (Ukrainian)
Currently translated at 43.8% (1163 of 2655 strings)
Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (2655 of 2655 strings)
Translated using Weblate (French)
Currently translated at 100.0% (374 of 374 strings)
Translated using Weblate (Filipino)
Currently translated at 72.8% (550 of 755 strings)
Translated using Weblate (Ukrainian)
Currently translated at 86.8% (198 of 228 strings)
Translated using Weblate (Russian)
Currently translated at 98.9% (2628 of 2655 strings)
Translated using Weblate (Korean)
Currently translated at 85.0% (108 of 127 strings)
Translated using Weblate (Ukrainian)
Currently translated at 57.8% (1535 of 2655 strings)
Translated using Weblate (Russian)
Currently translated at 98.7% (2623 of 2655 strings)
Translated using Weblate (Japanese)
Currently translated at 100.0% (2655 of 2655 strings)
Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (374 of 374 strings)
Translated using Weblate (Ukrainian)
Currently translated at 86.4% (197 of 228 strings)
Translated using Weblate (Ukrainian)
Currently translated at 62.7% (1667 of 2655 strings)
Translated using Weblate (Italian)
Currently translated at 100.0% (374 of 374 strings)
Translated using Weblate (Japanese)
Currently translated at 100.0% (374 of 374 strings)
Translated using Weblate (Japanese)
Currently translated at 100.0% (140 of 140 strings)
Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (755 of 755 strings)
Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (718 of 718 strings)
Translated using Weblate (Russian)
Currently translated at 99.5% (205 of 206 strings)
Translated using Weblate (Russian)
Currently translated at 98.7% (2622 of 2655 strings)
Translated using Weblate (German)
Currently translated at 100.0% (140 of 140 strings)
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (374 of 374 strings)
Translated using Weblate (Filipino)
Currently translated at 83.4% (172 of 206 strings)
Translated using Weblate (Filipino)
Currently translated at 72.8% (550 of 755 strings)
Translated using Weblate (Filipino)
Currently translated at 72.1% (101 of 140 strings)
Translated using Weblate (Filipino)
Currently translated at 92.2% (344 of 373 strings)
Translated using Weblate (Ukrainian)
Currently translated at 27.1% (56 of 206 strings)
Translated using Weblate (French)
Currently translated at 100.0% (56 of 56 strings)
Translated using Weblate (Ukrainian)
Currently translated at 73.4% (1951 of 2655 strings)
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (180 of 180 strings)
Translated using Weblate (Ukrainian)
Currently translated at 40.9% (309 of 755 strings)
Translated using Weblate (French)
Currently translated at 100.0% (215 of 215 strings)
Translated using Weblate (Korean)
Currently translated at 92.3% (339 of 367 strings)
Translated using Weblate (Filipino)
Currently translated at 86.3% (620 of 718 strings)
Translated using Weblate (Filipino)
Currently translated at 74.7% (564 of 755 strings)
Translated using Weblate (Filipino)
Currently translated at 74.2% (104 of 140 strings)
Translated using Weblate (Ukrainian)
Currently translated at 46.6% (96 of 206 strings)
Translated using Weblate (Ukrainian)
Currently translated at 75.5% (2005 of 2655 strings)
Translated using Weblate (Russian)
Currently translated at 98.1% (2606 of 2655 strings)
Translated using Weblate (Korean)
Currently translated at 100.0% (111 of 111 strings)
Translated using Weblate (Filipino)
Currently translated at 75.3% (569 of 755 strings)
Translated using Weblate (Filipino)
Currently translated at 78.5% (110 of 140 strings)
Translated using Weblate (Filipino)
Currently translated at 33.4% (889 of 2655 strings)
Translated using Weblate (Russian)
Currently translated at 98.1% (2606 of 2655 strings)
Translated using Weblate (Dutch)
Currently translated at 99.0% (213 of 215 strings)
Translated using Weblate (Ukrainian)
Currently translated at 64.9% (490 of 755 strings)
Translated using Weblate (Ukrainian)
Currently translated at 73.3% (554 of 755 strings)
Translated using Weblate (Ukrainian)
Currently translated at 71.8% (148 of 206 strings)
Translated using Weblate (Ukrainian)
Currently translated at 78.9% (180 of 228 strings)
Translated using Weblate (Russian)
Currently translated at 100.0% (228 of 228 strings)
Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (228 of 228 strings)
Translated using Weblate (Ukrainian)
Currently translated at 75.7% (2010 of 2655 strings)
Translated using Weblate (Russian)
Currently translated at 98.1% (2606 of 2655 strings)
Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (2655 of 2655 strings)
Translated using Weblate (Ukrainian)
Currently translated at 96.1% (173 of 180 strings)
Translated using Weblate (Ukrainian)
Currently translated at 78.5% (44 of 56 strings)
Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (56 of 56 strings)
Translated using Weblate (Ukrainian)
Currently translated at 78.6% (594 of 755 strings)
Translated using Weblate (Ukrainian)
Currently translated at 59.0% (75 of 127 strings)
Translated using Weblate (Ukrainian)
Currently translated at 59.0% (75 of 127 strings)
Translated using Weblate (Korean)
Currently translated at 51.7% (29 of 56 strings)
Translated using Weblate (Korean)
Currently translated at 62.1% (128 of 206 strings)
Translated using Weblate (Korean)
Currently translated at 81.8% (618 of 755 strings)
Translated using Weblate (Korean)
Currently translated at 81.4% (114 of 140 strings)
Translated using Weblate (Korean)
Currently translated at 64.5% (1713 of 2655 strings)
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (180 of 180 strings)
Translated using Weblate (Galician)
Currently translated at 100.0% (180 of 180 strings)
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (180 of 180 strings)
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (140 of 140 strings)
Translated using Weblate (Galician)
Currently translated at 90.0% (162 of 180 strings)
Translated using Weblate (Galician)
Currently translated at 100.0% (134 of 134 strings)
Translated using Weblate (Galician)
Currently translated at 100.0% (22 of 22 strings)
Translated using Weblate (Galician)
Currently translated at 100.0% (8 of 8 strings)
Translated using Weblate (Galician)
Currently translated at 97.6% (209 of 214 strings)
Translated using Weblate (Russian)
Currently translated at 97.5% (2590 of 2655 strings)
Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (228 of 228 strings)
Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (2655 of 2655 strings)
Translated using Weblate (Galician)
Currently translated at 97.6% (209 of 214 strings)
Translated using Weblate (Korean)
Currently translated at 98.3% (183 of 186 strings)
Translated using Weblate (Galician)
Currently translated at 96.2% (206 of 214 strings)
Translated using Weblate (Galician)
Currently translated at 92.9% (199 of 214 strings)
Translated using Weblate (Galician)
Currently translated at 83.7% (108 of 129 strings)
Translated using Weblate (Galician)
Currently translated at 94.6% (176 of 186 strings)
Translated using Weblate (Galician)
Currently translated at 58.3% (419 of 718 strings)
Translated using Weblate (Galician)
Currently translated at 88.0% (118 of 134 strings)
Translated using Weblate (Galician)
Currently translated at 59.2% (122 of 206 strings)
Translated using Weblate (Galician)
Currently translated at 82.7% (625 of 755 strings)
Translated using Weblate (Galician)
Currently translated at 65.9% (62 of 94 strings)
Translated using Weblate (Galician)
Currently translated at 54.8% (125 of 228 strings)
Translated using Weblate (Galician)
Currently translated at 86.1% (316 of 367 strings)
Translated using Weblate (Galician)
Currently translated at 92.9% (199 of 214 strings)
Translated using Weblate (Galician)
Currently translated at 67.1% (1783 of 2655 strings)
Translated using Weblate (Galician)
Currently translated at 72.2% (39 of 54 strings)
Translated using Weblate (Galician)
Currently translated at 91.4% (43 of 47 strings)
Translated using Weblate (Galician)
Currently translated at 92.2% (344 of 373 strings)
Translated using Weblate (Galician)
Currently translated at 71.6% (91 of 127 strings)
Translated using Weblate (Galician)
Currently translated at 78.6% (169 of 215 strings)
Translated using Weblate (Galician)
Currently translated at 92.8% (52 of 56 strings)
Translated using Weblate (Galician)
Currently translated at 82.9% (107 of 129 strings)
Translated using Weblate (Galician)
Currently translated at 94.6% (176 of 186 strings)
Translated using Weblate (Galician)
Currently translated at 58.3% (419 of 718 strings)
Translated using Weblate (Galician)
Currently translated at 88.8% (119 of 134 strings)
Translated using Weblate (Galician)
Currently translated at 59.2% (122 of 206 strings)
Translated using Weblate (Galician)
Currently translated at 65.9% (62 of 94 strings)
Translated using Weblate (Galician)
Currently translated at 50.0% (4 of 8 strings)
Translated using Weblate (Galician)
Currently translated at 12.1% (17 of 140 strings)
Translated using Weblate (Galician)
Currently translated at 83.6% (51 of 61 strings)
Translated using Weblate (Galician)
Currently translated at 77.2% (17 of 22 strings)
Translated using Weblate (Galician)
Currently translated at 54.8% (125 of 228 strings)
Translated using Weblate (Galician)
Currently translated at 62.5% (5 of 8 strings)
Translated using Weblate (Galician)
Currently translated at 85.8% (315 of 367 strings)
Translated using Weblate (Galician)
Currently translated at 92.9% (199 of 214 strings)
Translated using Weblate (Galician)
Currently translated at 67.1% (1782 of 2655 strings)
Translated using Weblate (Galician)
Currently translated at 68.5% (37 of 54 strings)
Translated using Weblate (Galician)
Currently translated at 82.9% (39 of 47 strings)
Translated using Weblate (Galician)
Currently translated at 70.8% (90 of 127 strings)
Translated using Weblate (Japanese)
Currently translated at 97.8% (137 of 140 strings)
Translated using Weblate (Italian)
Currently translated at 100.0% (140 of 140 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (140 of 140 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (215 of 215 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 98.5% (138 of 140 strings)
Translated using Weblate (Korean)
Currently translated at 98.3% (183 of 186 strings)
Translated using Weblate (Korean)
Currently translated at 94.7% (127 of 134 strings)
Translated using Weblate (Russian)
Currently translated at 99.5% (205 of 206 strings)
Translated using Weblate (Russian)
Currently translated at 97.5% (2590 of 2655 strings)
Translated using Weblate (Russian)
Currently translated at 100.0% (140 of 140 strings)
Translated using Weblate (Russian)
Currently translated at 97.5% (2589 of 2655 strings)
Translated using Weblate (Japanese)
Currently translated at 100.0% (215 of 215 strings)
Translated using Weblate (Filipino)
Currently translated at 84.6% (94 of 111 strings)
Translated using Weblate (Filipino)
Currently translated at 79.2% (111 of 140 strings)
Translated using Weblate (Filipino)
Currently translated at 94.1% (351 of 373 strings)
Translated using Weblate (Filipino)
Currently translated at 86.4% (96 of 111 strings)
Translated using Weblate (Filipino)
Currently translated at 82.1% (115 of 140 strings)
Translated using Weblate (Filipino)
Currently translated at 82.8% (116 of 140 strings)
Translated using Weblate (Filipino)
Currently translated at 87.5% (7 of 8 strings)
Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (140 of 140 strings)
Translated using Weblate (Filipino)
Currently translated at 83.4% (172 of 206 strings)
Translated using Weblate (Filipino)
Currently translated at 83.5% (117 of 140 strings)
Translated using Weblate (Filipino)
Currently translated at 83.9% (173 of 206 strings)
Translated using Weblate (Filipino)
Currently translated at 34.0% (903 of 2655 strings)
Translated using Weblate (Russian)
Currently translated at 97.4% (2588 of 2655 strings)
Translated using Weblate (French)
Currently translated at 100.0% (2655 of 2655 strings)
Translated using Weblate (French)
Currently translated at 100.0% (140 of 140 strings)
Translated using Weblate (French)
Currently translated at 100.0% (373 of 373 strings)
Translated using Weblate (Filipino)
Currently translated at 34.0% (904 of 2655 strings)
Translated using Weblate (Korean)
Currently translated at 62.1% (128 of 206 strings)
Translated using Weblate (Korean)
Currently translated at 59.2% (122 of 206 strings)
Translated using Weblate (Russian)
Currently translated at 97.4% (2587 of 2655 strings)
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (180 of 180 strings)
Translated using Weblate (Ukrainian)
Currently translated at 94.4% (120 of 127 strings)
Translated using Weblate (French)
Currently translated at 99.6% (2647 of 2655 strings)
Translated using Weblate (Ukrainian)
Currently translated at 88.9% (113 of 127 strings)
Translated using Weblate (Korean)
Currently translated at 79.5% (101 of 127 strings)
Translated using Weblate (Russian)
Currently translated at 97.4% (2586 of 2655 strings)
Translated using Weblate (Russian)
Currently translated at 97.2% (2583 of 2655 strings)
Translated using Weblate (Russian)
Currently translated at 97.2% (2581 of 2655 strings)
Translated using Weblate (Filipino)
Currently translated at 87.3% (180 of 206 strings)
Translated using Weblate (French)
Currently translated at 99.3% (2639 of 2655 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (214 of 214 strings)
Translated using Weblate (Russian)
Currently translated at 97.0% (2576 of 2655 strings)
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (180 of 180 strings)
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (228 of 228 strings)
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (718 of 718 strings)
Translated using Weblate (Filipino)
Currently translated at 86.8% (179 of 206 strings)
Translated using Weblate (Filipino)
Currently translated at 87.5% (7 of 8 strings)
Translated using Weblate (Korean)
Currently translated at 74.8% (95 of 127 strings)
Translated using Weblate (French)
Currently translated at 99.1% (2632 of 2655 strings)
Translated using Weblate (Spanish (Latin America))
Currently translated at 97.7% (702 of 718 strings)
Translated using Weblate (Spanish (Latin America))
Currently translated at 100.0% (137 of 137 strings)
Translated using Weblate (Filipino)
Currently translated at 34.0% (904 of 2655 strings)
Translated using Weblate (German)
Currently translated at 100.0% (206 of 206 strings)
Translated using Weblate (French)
Currently translated at 98.7% (2622 of 2655 strings)
Translated using Weblate (German)
Currently translated at 100.0% (2655 of 2655 strings)
Translated using Weblate (German)
Currently translated at 100.0% (2655 of 2655 strings)
Translated using Weblate (Russian)
Currently translated at 96.7% (2568 of 2655 strings)
Translated using Weblate (French)
Currently translated at 100.0% (718 of 718 strings)
Translated using Weblate (German)
Currently translated at 99.8% (2652 of 2655 strings)
Translated using Weblate (German)
Currently translated at 100.0% (718 of 718 strings)
Translated using Weblate (German)
Currently translated at 99.8% (2652 of 2655 strings)
Translated using Weblate (French)
Currently translated at 100.0% (206 of 206 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (56 of 56 strings)
Translated using Weblate (Korean)
Currently translated at 82.4% (113 of 137 strings)
Translated using Weblate (Filipino)
Currently translated at 42.3% (1125 of 2655 strings)
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (137 of 137 strings)
Translated using Weblate (Korean)
Currently translated at 38.3% (69 of 180 strings)
Translated using Weblate (Korean)
Currently translated at 100.0% (186 of 186 strings)
Translated using Weblate (Korean)
Currently translated at 77.9% (560 of 718 strings)
Translated using Weblate (Korean)
Currently translated at 94.7% (127 of 134 strings)
Translated using Weblate (Korean)
Currently translated at 94.7% (127 of 134 strings)
Translated using Weblate (Korean)
Currently translated at 92.6% (340 of 367 strings)
Translated using Weblate (Korean)
Currently translated at 90.1% (193 of 214 strings)
Translated using Weblate (Korean)
Currently translated at 85.1% (46 of 54 strings)
Translated using Weblate (Korean)
Currently translated at 71.6% (91 of 127 strings)
Translated using Weblate (Russian)
Currently translated at 96.5% (2563 of 2655 strings)
Translated using Weblate (Japanese)
Currently translated at 99.5% (214 of 215 strings)
Translated using Weblate (Russian)
Currently translated at 96.3% (2559 of 2655 strings)
Translated using Weblate (Korean)
Currently translated at 85.1% (46 of 54 strings)
Translated using Weblate (Korean)
Currently translated at 85.1% (46 of 54 strings)
Translated using Weblate (Korean)
Currently translated at 78.1% (107 of 137 strings)
Translated using Weblate (Korean)
Currently translated at 100.0% (373 of 373 strings)
Translated using Weblate (Korean)
Currently translated at 100.0% (186 of 186 strings)
Translated using Weblate (Korean)
Currently translated at 100.0% (61 of 61 strings)
Translated using Weblate (Korean)
Currently translated at 64.5% (1713 of 2655 strings)
Translated using Weblate (Korean)
Currently translated at 100.0% (373 of 373 strings)
Translated using Weblate (Korean)
Currently translated at 100.0% (373 of 373 strings)
Translated using Weblate (Korean)
Currently translated at 100.0% (373 of 373 strings)
Translated using Weblate (Korean)
Currently translated at 89.9% (116 of 129 strings)
Translated using Weblate (Korean)
Currently translated at 51.7% (29 of 56 strings)
Translated using Weblate (Korean)
Currently translated at 81.8% (618 of 755 strings)
Translated using Weblate (Korean)
Currently translated at 76.6% (105 of 137 strings)
Translated using Weblate (Korean)
Currently translated at 92.6% (340 of 367 strings)
Translated using Weblate (Korean)
Currently translated at 92.6% (340 of 367 strings)
Translated using Weblate (Korean)
Currently translated at 64.4% (1711 of 2655 strings)
Translated using Weblate (Korean)
Currently translated at 83.3% (45 of 54 strings)
Translated using Weblate (Korean)
Currently translated at 77.9% (560 of 718 strings)
Translated using Weblate (Korean)
Currently translated at 81.4% (44 of 54 strings)
Translated using Weblate (Japanese)
Currently translated at 100.0% (2655 of 2655 strings)
Translated using Weblate (Japanese)
Currently translated at 99.0% (213 of 215 strings)
Translated using Weblate (Galician)
Currently translated at 44.6% (25 of 56 strings)
Translated using Weblate (Galician)
Currently translated at 95.6% (178 of 186 strings)
Translated using Weblate (Galician)
Currently translated at 59.2% (122 of 206 strings)
Translated using Weblate (Galician)
Currently translated at 82.7% (625 of 755 strings)
Translated using Weblate (Galician)
Currently translated at 56.1% (128 of 228 strings)
Translated using Weblate (Galician)
Currently translated at 67.1% (1784 of 2655 strings)
Translated using Weblate (Galician)
Currently translated at 83.7% (93 of 111 strings)
Translated using Weblate (Galician)
Currently translated at 21.1% (38 of 180 strings)
Translated using Weblate (Galician)
Currently translated at 50.0% (28 of 56 strings)
Translated using Weblate (Galician)
Currently translated at 96.2% (179 of 186 strings)
Translated using Weblate (Galician)
Currently translated at 58.3% (419 of 718 strings)
Translated using Weblate (Galician)
Currently translated at 89.5% (120 of 134 strings)
Translated using Weblate (Galician)
Currently translated at 59.2% (122 of 206 strings)
Translated using Weblate (Galician)
Currently translated at 83.1% (628 of 755 strings)
Translated using Weblate (Galician)
Currently translated at 13.8% (19 of 137 strings)
Translated using Weblate (Galician)
Currently translated at 56.1% (128 of 228 strings)
Translated using Weblate (Galician)
Currently translated at 87.1% (320 of 367 strings)
Translated using Weblate (Galician)
Currently translated at 92.9% (199 of 214 strings)
Translated using Weblate (Galician)
Currently translated at 67.3% (1789 of 2655 strings)
Translated using Weblate (Galician)
Currently translated at 68.5% (37 of 54 strings)
Translated using Weblate (Galician)
Currently translated at 95.7% (45 of 47 strings)
Translated using Weblate (Galician)
Currently translated at 89.8% (335 of 373 strings)
Translated using Weblate (Galician)
Currently translated at 74.0% (94 of 127 strings)
Translated using Weblate (Galician)
Currently translated at 76.7% (165 of 215 strings)
Translated using Weblate (Galician)
Currently translated at 3.8% (7 of 180 strings)
Translated using Weblate (Galician)
Currently translated at 96.4% (54 of 56 strings)
Translated using Weblate (Galician)
Currently translated at 50.0% (28 of 56 strings)
Translated using Weblate (Galician)
Currently translated at 57.1% (410 of 718 strings)
Translated using Weblate (Galician)
Currently translated at 88.0% (118 of 134 strings)
Translated using Weblate (Galician)
Currently translated at 58.7% (121 of 206 strings)
Translated using Weblate (Galician)
Currently translated at 82.1% (620 of 755 strings)
Translated using Weblate (Galician)
Currently translated at 67.0% (63 of 94 strings)
Translated using Weblate (Galician)
Currently translated at 100.0% (8 of 8 strings)
Translated using Weblate (Galician)
Currently translated at 100.0% (8 of 8 strings)
Translated using Weblate (Galician)
Currently translated at 91.1% (195 of 214 strings)
Translated using Weblate (Galician)
Currently translated at 100.0% (15 of 15 strings)
Translated using Weblate (Galician)
Currently translated at 73.2% (93 of 127 strings)
Translated using Weblate (Galician)
Currently translated at 74.4% (160 of 215 strings)
Translated using Weblate (Galician)
Currently translated at 100.0% (98 of 98 strings)
Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (373 of 373 strings)
Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (718 of 718 strings)
Translated using Weblate (German)
Currently translated at 99.8% (2651 of 2655 strings)
Translated using Weblate (German)
Currently translated at 99.8% (2651 of 2655 strings)
Translated using Weblate (Russian)
Currently translated at 99.8% (754 of 755 strings)
Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (206 of 206 strings)
Translated using Weblate (Korean)
Currently translated at 75.9% (104 of 137 strings)
Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (206 of 206 strings)
Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (2655 of 2655 strings)
Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (755 of 755 strings)
Co-authored-by: Adriana Alupei <a.ady96@yahoo.com>
Co-authored-by: Adrián Chaves Fernández <adrian@chaves.io>
Co-authored-by: Ana Beatriz <anabeatriz.augusto06@yahoo.com>
Co-authored-by: Anton de Regt <antonderegt@pm.me>
Co-authored-by: Benoit Hetru <me+hbtc@gahanka.net>
Co-authored-by: Céu <marcel.ufscar@gmail.com>
Co-authored-by: David Kővári <davson.kovari@gmail.com>
Co-authored-by: Felix Wittwer <spam@felixwittwer.de>
Co-authored-by: Forst Wolf <forestwolf@spam.care>
Co-authored-by: Forstwolf <forestwolf@spam.care>
Co-authored-by: Goggle K <afc731@gmail.com>
Co-authored-by: Hexe des Windes (she/her) <krausanna1@gmail.com>
Co-authored-by: Hyun Yeol Kim <hyunyeolkim@gmail.com>
Co-authored-by: JMFO16 <fournier.olivera.jm@gmail.com>
Co-authored-by: Kedr <sergeysamori.ua@gmail.com>
Co-authored-by: Leslie Munguía <moongeeuh@gmail.com>
Co-authored-by: Linda Li <wli62442@gmail.com>
Co-authored-by: Martim Pinto Paiva <pintopaivam@gmail.com>
Co-authored-by: Natalie Luhrs <eilatan@gmail.com>
Co-authored-by: Nazar Paruna <nazarparuna@gmail.com>
Co-authored-by: Richard Gould <rgould@u2622.ca>
Co-authored-by: Sandra Marcial <sandramarcial80@gmail.com>
Co-authored-by: Sara López <sarayupy@gmail.com>
Co-authored-by: Sara de Nicolas <saradenicolas12@gmail.com>
Co-authored-by: Sergey Shevelev <vlkgamer45@gmail.com>
Co-authored-by: Tran Lam Van Khoa <lamvankhoat1@gmail.com>
Co-authored-by: UNI <nibi727171@gmail.com>
Co-authored-by: Ventus Meigo <at.fbfzd@gmail.com>
Co-authored-by: Vince <vincemorel.vilan.889@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: Zero <leedambak@gmail.com>
Co-authored-by: datschka <datschka@gmx.at>
Co-authored-by: hekin zhou <1916360372@qq.com>
Co-authored-by: jiangshanghan <jsh1215@hash.fyi>
Co-authored-by: kat o(`ω´ )o <memesarerealkool@gmail.com>
Co-authored-by: neko kyuri <Nekorin0621@gmail.com>
Co-authored-by: parkbird <kgh9812@naver.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/en@pirate/
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/fil/
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/gl/
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/achievements/ko/
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/ro/
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/ru/
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/de/
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/fil/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/gl/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ko/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/challenge/gl/
Translate-URL: https://translate.habitica.com/projects/habitica/challenge/ko/
Translate-URL: https://translate.habitica.com/projects/habitica/challenge/ro/
Translate-URL: https://translate.habitica.com/projects/habitica/character/gl/
Translate-URL: https://translate.habitica.com/projects/habitica/character/ko/
Translate-URL: https://translate.habitica.com/projects/habitica/character/ro/
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/gl/
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/ko/
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/content/de/
Translate-URL: https://translate.habitica.com/projects/habitica/content/es/
Translate-URL: https://translate.habitica.com/projects/habitica/content/fil/
Translate-URL: https://translate.habitica.com/projects/habitica/content/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/content/gl/
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/ko/
Translate-URL: https://translate.habitica.com/projects/habitica/content/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/content/ru/
Translate-URL: https://translate.habitica.com/projects/habitica/content/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/contrib/gl/
Translate-URL: https://translate.habitica.com/projects/habitica/contrib/pt/
Translate-URL: https://translate.habitica.com/projects/habitica/death/gl/
Translate-URL: https://translate.habitica.com/projects/habitica/defaulttasks/gl/
Translate-URL: https://translate.habitica.com/projects/habitica/defaulttasks/ko/
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/gl/
Translate-URL: https://translate.habitica.com/projects/habitica/faq/it/
Translate-URL: https://translate.habitica.com/projects/habitica/faq/ko/
Translate-URL: https://translate.habitica.com/projects/habitica/faq/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/faq/ru/
Translate-URL: https://translate.habitica.com/projects/habitica/faq/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/faq/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/front/gl/
Translate-URL: https://translate.habitica.com/projects/habitica/front/ko/
Translate-URL: https://translate.habitica.com/projects/habitica/front/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/cs/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/de/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/fil/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/gl/
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/pt_BR/
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/fil/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/gl/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/ko/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/groups/fil/
Translate-URL: https://translate.habitica.com/projects/habitica/groups/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/groups/gl/
Translate-URL: https://translate.habitica.com/projects/habitica/groups/it/
Translate-URL: https://translate.habitica.com/projects/habitica/groups/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/groups/ko/
Translate-URL: https://translate.habitica.com/projects/habitica/groups/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/groups/ru/
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/fil/
Translate-URL: https://translate.habitica.com/projects/habitica/inventory/gl/
Translate-URL: https://translate.habitica.com/projects/habitica/limited/es/
Translate-URL: https://translate.habitica.com/projects/habitica/limited/gl/
Translate-URL: https://translate.habitica.com/projects/habitica/limited/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/limited/ru/
Translate-URL: https://translate.habitica.com/projects/habitica/limited/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/loginincentives/fil/
Translate-URL: https://translate.habitica.com/projects/habitica/loginincentives/gl/
Translate-URL: https://translate.habitica.com/projects/habitica/messages/gl/
Translate-URL: https://translate.habitica.com/projects/habitica/messages/ko/
Translate-URL: https://translate.habitica.com/projects/habitica/npc/gl/
Translate-URL: https://translate.habitica.com/projects/habitica/npc/ko/
Translate-URL: https://translate.habitica.com/projects/habitica/npc/ro/
Translate-URL: https://translate.habitica.com/projects/habitica/overview/gl/
Translate-URL: https://translate.habitica.com/projects/habitica/overview/ro/
Translate-URL: https://translate.habitica.com/projects/habitica/pets/fil/
Translate-URL: https://translate.habitica.com/projects/habitica/pets/gl/
Translate-URL: https://translate.habitica.com/projects/habitica/pets/ko/
Translate-URL: https://translate.habitica.com/projects/habitica/quests/gl/
Translate-URL: https://translate.habitica.com/projects/habitica/quests/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/quests/ro/
Translate-URL: https://translate.habitica.com/projects/habitica/quests/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/fil/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/gl/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/ko/
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/rebirth/ko/
Translate-URL: https://translate.habitica.com/projects/habitica/rebirth/ro/
Translate-URL: https://translate.habitica.com/projects/habitica/settings/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/settings/gl/
Translate-URL: https://translate.habitica.com/projects/habitica/settings/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/settings/nl/
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/spells/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/spells/gl/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/de/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/fil/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/gl/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/ko/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/pt_BR/
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/fil/
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/gl/
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/it/
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/ko/
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/uk/
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/Contrib
Translation: Habitica/Death
Translation: Habitica/Defaulttasks
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
Fix props' change handler which is called when guild is changed from
notification.
Tests:
+ Guild challenges updated successfully when guild is changed from
notification center.
Co-authored-by: neel <neel@helpshift.com>
* disable spell if user doesn't have enough mana
* differenciate insufficient mana and disabled spell
* linting
* reduce opacity, no hover state when insufficient mana
* display that lvl insufficient in spell tooltip
* change spell text color when spell has no effect
change spell-text color to blue-500 when spell has no effect
Removed testing banner
Fixed a JS console error when assigning a user to a previously open task
Fixed a potential abuse where user might be able to score someone else's
task via API call
Fixed an issue where finding tasks by alias could return tasks belonging
to other users
Fixed an issue that was appending the user's party ID to their list of
Guilds
Fixed an issue where group tasks were not receiving the default tag
needed for filtering them on user's personal list
* chore(submodule): add August 2022 Mystery Items
* chore(content): August 2022 Backgrounds and Enchanted Armoire Items
* chore(submodule): August 2022 Backgrounds and Enchanted Armoire images
* fix(typo): space
* fix(whitespace): spaces
Co-authored-by: Sabe Jones <sabrecat@gmail.com>
* chore(submodule): add August 2022 Mystery Items
* chore(content): August 2022 Backgrounds and Enchanted Armoire Items
* chore(submodule): August 2022 Backgrounds and Enchanted Armoire images
* fix(typo): space
* fix(whitespace): spaces
Co-authored-by: Sabe Jones <sabrecat@gmail.com>
* add max length validations for summary in challenge create and update controllers
* Add validation to group APIs
* fix lint errors
* add validation to group plan
* fix imports
* add tests
* add max length validations for summary in challenge create and update controllers
* Add validation to group APIs
* fix lint errors
* add validation to group plan
* fix imports
* add tests
* lint checks
* feat(chat): server setting to disallow chat from new accounts
* fix(tests): many adjustments to handle chat minimum age
* fix(tests): address issues outside of chat posting
* chore(analytics): add incident logging
* fix(config): allow instant chat for dev purposes
* fix(test): finely age one more user
* fix(test): member not leader
Co-authored-by: SabreCat <sabe@habitica.com>
* update selectUserModal.vue
* more updates to selectUserModal.vue, typo fix in subscriber.json
* remove exact sizing for selectUserModal.vue
* update to size for selectUserModal.vue
* added sendGiftModal.vue file
* updates to selectUser & sendGift modals
* making the modals go & position cursor
* working working working
* added a return to method
* avatar display & placeholder profile.name and username
* subscription-options added
* added menu row & started on gem options
* Added selectPage function, have not tested.
* updated habitica-images
* state changes
* bringing in gem counter
* arranging elements
* state changes, gem input boxes
* styling sendGiftModal.vue
* more sendGiftModal.vue styling and new close.svg icon
* more styling!
* and more styling of send own gems part of page
* images update
* more styling of own gems & some attempts to adjust :class on the menu
* styling styling styling
* replace +/- svg, styling
* styling, mostly
* new SVGs
* stylin'
* reverting svg changes
* no more stylin'
* finally got the +/- icons to show up...but they're the wrong color
* solved svg icon color problem! :)
* habitica-images
* working on sendGift part of button
* trying to make it do math, failing
* more attempts at math
* +/- buttons work on gem pages & cost calculation on buyGems
* trying to get hover colors working on +/- svgs
* formatted dollar amount as currency
* css/html for subscription-options & payments-buttons simplified
* swag at payments-buttons parameter (not tested)
* send gems from own balance works!
* working on starting page
* increment gem amount limited to maxGems and not < 0
* uncommented onHide()
* got bg color on sub options to work! yay!
* payment buttons!
* making g1g1 look good
* position modal on page properly & code clean-up
* Changes as requested!
* small color update
* fixed ternary function
* chore(html): indentation and comments
* fix(fn): correct catch for under-0
* chore(json): whitespace
* update gem styling; add linebreak to notifications.vue bc linter
* updating subscriptionOptions
* snackbar css fix
* reverting commit e16c12f
* removing merge conflict markers
* just a little comment
* fixed some navigation, clear input field on selectPage, cleaned up code; another try at subscriptionOption.vue
* merge upstream/develop
* update selectPage() to disable Gems menu items when on 'ownGems' or 'buyGems' states
* working on subscriptionOptions.vue logic
* fix(script): changed props & added updateSubscriptionData()
* fix(script): forgot to call updateSubscriptionData()
* fix(scripts): corrected :userReceivingGift on sendGiftModal.vue
* fix(scripts): correct props userReceivingGift to an Object
* fix(scripts): corrected v-if & revised props
* fix(style/html/whitespace): updated css for close.svg and added missing </div>
* style(radio-buttons): updated focus states and added hover states
* style(radio-buttons): refined focus and hover states
* fix(function): changed buyGemsLink to buyGems; still working on menu
* style(radio buttons): ensured consistent display of radio buttons through-out site; still struggling with hover states
* style(radio buttons): updated focus/active/hover to match design & removed unnecessary code
* fix: set default subscription option to 1 month
* fix(function): add default amounts to gem states when modal selected from user profile
* fix(build): use develop package json
* fix: SCSS commenting & abstracted setGemsDefault()
* fix(packages): revert to develop
* fix: remove unnecessary console.log statement
* fix(payments): storePaymentStatusAndReload() modified
Co-authored-by: SabreCat <sabe@habitica.com>
* feat: prevent user from purchasing a quest if prerequisites are not met
* test: fail to buy quest if not all prerequisites are met
* test: modify to check all quest prerequisites
* update selectUserModal.vue
* more updates to selectUserModal.vue, typo fix in subscriber.json
* remove exact sizing for selectUserModal.vue
* update to size for selectUserModal.vue
* added sendGiftModal.vue file
* updates to selectUser & sendGift modals
* making the modals go & position cursor
* working working working
* added a return to method
* avatar display & placeholder profile.name and username
* subscription-options added
* added menu row & started on gem options
* Added selectPage function, have not tested.
* updated habitica-images
* state changes
* bringing in gem counter
* arranging elements
* state changes, gem input boxes
* styling sendGiftModal.vue
* more sendGiftModal.vue styling and new close.svg icon
* more styling!
* and more styling of send own gems part of page
* images update
* more styling of own gems & some attempts to adjust :class on the menu
* styling styling styling
* replace +/- svg, styling
* styling, mostly
* new SVGs
* stylin'
* reverting svg changes
* no more stylin'
* finally got the +/- icons to show up...but they're the wrong color
* solved svg icon color problem! :)
* habitica-images
* working on sendGift part of button
* trying to make it do math, failing
* more attempts at math
* +/- buttons work on gem pages & cost calculation on buyGems
* trying to get hover colors working on +/- svgs
* formatted dollar amount as currency
* css/html for subscription-options & payments-buttons simplified
* swag at payments-buttons parameter (not tested)
* send gems from own balance works!
* working on starting page
* increment gem amount limited to maxGems and not < 0
* uncommented onHide()
* got bg color on sub options to work! yay!
* payment buttons!
* making g1g1 look good
* position modal on page properly & code clean-up
* Changes as requested!
* small color update
* fixed ternary function
* chore(html): indentation and comments
* fix(fn): correct catch for under-0
* chore(json): whitespace
* update gem styling; add linebreak to notifications.vue bc linter
* updating subscriptionOptions
* snackbar css fix
* reverting commit e16c12f
* removing merge conflict markers
* just a little comment
* fixed some navigation, clear input field on selectPage, cleaned up code; another try at subscriptionOption.vue
* merge upstream/develop
* update selectPage() to disable Gems menu items when on 'ownGems' or 'buyGems' states
* working on subscriptionOptions.vue logic
* fix(script): changed props & added updateSubscriptionData()
* fix(script): forgot to call updateSubscriptionData()
* fix(scripts): corrected :userReceivingGift on sendGiftModal.vue
* fix(scripts): correct props userReceivingGift to an Object
* fix(scripts): corrected v-if & revised props
* fix(style/html/whitespace): updated css for close.svg and added missing </div>
* style(radio-buttons): updated focus states and added hover states
* style(radio-buttons): refined focus and hover states
* fix(function): changed buyGemsLink to buyGems; still working on menu
* style(radio buttons): ensured consistent display of radio buttons through-out site; still struggling with hover states
* style(radio buttons): updated focus/active/hover to match design & removed unnecessary code
* fix: set default subscription option to 1 month
* fix(function): add default amounts to gem states when modal selected from user profile
* fix(build): use develop package json
* fix: SCSS commenting & abstracted setGemsDefault()
* fix(packages): revert to develop
* fix: remove unnecessary console.log statement
Co-authored-by: SabreCat <sabe@habitica.com>
* stack profile actions on smaller screens
* stack avatar and stats for even smaller screens
* remove unnecessary classes to keep profile nav on the same line
* adjust media query width
* refactor stats removing unnecessary classes and simplifying with less elements and relying more on flexbox
* adjust breakpoints for modal vs pofile page
* more margin for avatar
* handle allocation on middle size more gracefully
Co-authored-by: scoffrin <scoffrin@indeed.com>
* Fix no response when password changed
* Update website/client/src/components/settings/site.vue
update the spacing in website/client/src/components/settings/site.vue
Co-authored-by: Panu Valtanen <p4nu@users.noreply.github.com>
* Update website/client/src/components/settings/site.vue
change to single quote
* Fix success change password response using internationalization
* fix(i18n): remove translations other than US English
Partial revert of #1a198677bd
Co-authored-by: Panu Valtanen <p4nu@users.noreply.github.com>
Co-authored-by: SabreCat <sabe@habitica.com>
* chore(content): add splashySkins for Summer Gala event
* fix(content): use date string, not Boolean, for range start
Co-authored-by: SabreCat <sabe@habitica.com>
* fix(string): questVice1Notes html changed to a mobile-device friendly format
* fix(strings): updated limited.json with "dateEnd" & "monthYYYY" months & put in chronological order
* fix(string): remove extra word from headSpecialSummer2022WarriorNotes
* fix(string): corrected armorSpecialSummer2022MageNotes
* fix(auth): record local email for social users where possible
* fix(auth): Apple emails are junk, prefer Google
* fix(auth): correct placement of logic to save local email
* fix(auth): run full function in both workflows to avoid conflicts
Co-authored-by: SabreCat <sabe@habitica.com>
* Added XML code to parse json + convert formatting before exporting as XML + XML Marshall tests
* Add linting fixes
linting errors still present in xmlMarshaller.test.js but, certain keys starting with digits (for example '800ed0') must be enclosed in quotes , so to maintain consistency within the test file I kept all keys enclosed by single quotes.
* fix(lint): unquote, EOF
Co-authored-by: SabreCat <sabe@habitica.com>
* update selectUserModal.vue
* more updates to selectUserModal.vue, typo fix in subscriber.json
* remove exact sizing for selectUserModal.vue
* update to size for selectUserModal.vue
* added sendGiftModal.vue file
* updates to selectUser & sendGift modals
* making the modals go & position cursor
* working working working
* added a return to method
* avatar display & placeholder profile.name and username
* subscription-options added
* added menu row & started on gem options
* Added selectPage function, have not tested.
* updated habitica-images
* state changes
* bringing in gem counter
* arranging elements
* state changes, gem input boxes
* styling sendGiftModal.vue
* more sendGiftModal.vue styling and new close.svg icon
* more styling!
* and more styling of send own gems part of page
* images update
* more styling of own gems & some attempts to adjust :class on the menu
* styling styling styling
* replace +/- svg, styling
* styling, mostly
* new SVGs
* stylin'
* reverting svg changes
* no more stylin'
* finally got the +/- icons to show up...but they're the wrong color
* solved svg icon color problem! :)
* habitica-images
* working on sendGift part of button
* trying to make it do math, failing
* more attempts at math
* +/- buttons work on gem pages & cost calculation on buyGems
* trying to get hover colors working on +/- svgs
* formatted dollar amount as currency
* css/html for subscription-options & payments-buttons simplified
* swag at payments-buttons parameter (not tested)
* send gems from own balance works!
* working on starting page
* increment gem amount limited to maxGems and not < 0
* uncommented onHide()
* got bg color on sub options to work! yay!
* payment buttons!
* making g1g1 look good
* position modal on page properly & code clean-up
* Changes as requested!
* small color update
* fixed ternary function
* chore(html): indentation and comments
* fix(fn): correct catch for under-0
* chore(json): whitespace
Co-authored-by: SabreCat <sabe@habitica.com>
* 2022-05 backgrounds and enchanted armoire images
* 2022-05 backgrounds and enchanted
* chore(sprites): compile
also fix a few string typos
Co-authored-by: SabreCat <sabe@habitica.com>
* remove quest refactoring, created new branch for that task
* remove quest refactoring, created new branch for that task
* More trying to figure out how buying a quest actually works
* rolling back changes
* updated shops/quests/index.vue to disable clicking on locked quests
* removed console.log(item)
* misc fixes per review comments
* changes as requested
* incorporated quest refactors updates
* removing a couple lines of code
* Fixes Issue13749
* If a value is at 0 the other value won't show a +/-
* Fix for the negative habits
* Fix : Habits values will always have signs except if the habit is one sided or the values are null
* fix(tasks): tighten margen when 0 as well
Co-authored-by: SabreCat <sabe@habitica.com>
* create Admin Panel page with initial content from Hall's admin section
* reorganise Admin Panel form and add more accordians
* add lastCron to fields returned by api.getHeroes
* improve timestamps and authentication section
* add party and quest info to Admin Panel, add party to heroAdminFields
* move Admin Panel menu item to top of menu, make invisible to non-admins
* remove code used for displaying all Heroes
* add avatar appearance and drops section in Admin Panel
* allow logged-in user to be the default hero loaded
* add time zones to timestamp/authentication section
* rename Items to Update Items
This will allow a new Items section to be added.
* add read-only Items display with button to copy data to Update Items section
* remove never-used allItemsPaths code that had been copied from Hall
* update tests for the attributes added to heroAdminFields
* supply names for items and also set information for gear/equipment
* remove code that loads subsections of content
We use enough of the content that it's easier to load it all and
access it through the content object, especially when we're looping
through different item types.
* add gear names and set details to Avatar Costume/Battle Gear section
* make the wiki URLs clickable and make minor item format improvements
* add gear sets for Check-In Incentives and animal ears and tails
* add gear set for Gold-Purchasable Quest Lines
Also merges the existing Mystery of the Masterclassers quest set into it.
* fix error with Kickstarter gear set and include wiki link
* improve description of check-in incentive gear set
* fix description of Items section
* fix lint warnings
* update another test for the attributes added to heroAdminFields
* allow "@" to be included when specifying Username to load
* create GetHeroParty API v3 route to fetch a given user's party data
Only some data from the party will be loaded (e.g., not private
data such as name, description).
Includes tests for the route.
See the next commit for front-end changes that use this.
* display data from a given user's party in admin panel
Only some data from the party will be loaded (e.g., not private
data such as name, description).
Also adds support for finding and displaying errors from the
user's data.
* use new error handling method for other sections
- Time zone differences
- Cron bugs
- Privilege removal (mute/block) - not a bug but needs to be highlighted
* redirect non-admin users away from admin-only page (WIP)
This needs more work. Currently, admin users are also redirected
if they access the page by direct URL or after reload.
* clarify source of items from Check-In Incentives and Lunar Battle quests
* replace non-standard form fields with HTML forms
* add user's language, remove unused export blocks
* convert functions to filters: formatDate, formatTimeZone
* improve display of minutes portion of time zone in Admin Panel
* move basic details about user to a new component
* move Timestamp/Cron/Auth/etc details to a new component - WIP, has errors
The automatic expand and error warnings don't reset themselves when
you fetch data for a new user.
* replace non-standard form fields with HTML forms
Most of this was done in 26fdcbbee5
* move Timestamp/Cron/Auth/etc details to a new component (fixed)
* move Avatar and Drops section to a new component
* move Party and Quest section to a new component
* move Contributor Details to new component, add checkbox for admin, add preview
This adds a markdown-enabled preview of the Contributions textarea.
It also removes the code that automatically set contributor.admin
to true when the Tier was above 7.
That feature wasn't secure because the Tier can be accidentally
changed if you scroll while the cursor is over the Tier form field
(we accidentally demoted a Socialite once by doing that and if
we'd scrolled in the other direction we would have given her
admin privileges).
Instead there's now a checkbox for giving moderator-level privileges.
We'll want that anyway when we move to a system of selected
privileges for each admin instead of all admin privileges being
given to all mods/staff.
There's also a commented-out checkbox for giving Bailey CMS
privileges, for when we're ready to use that. The User model doesn't
yet have support for it.
* move Privileges and Gems section to a new component
* rename formatItems to getItemDescription; make other minor fixes
* remove an outdated test description
This "pended" explanation probably wasn't needed after "x" was
removed from "describe" in 2ab76db27c
* add newsPoster Bailey CMS permission to User model and Admin Panel
* move formatDate from mixins to filters
* make lint fixes
* remove development comments from hall.js
I'll be handling the TODO comment and I've left in my "XXX" marker
to remind me
* fix bug in Hall's castItemVal: mounts are null not false
* move Items section to a new component and delete Update Items section
The Update Items section is no longer needed because the new Items
component has in-place editing.
* remove unused imports
* add "secret" field to "Privileges, Gem Balance" section.
Also move the markdownPreview style from contributorDetails.vue to
index.vue since it's used in two components now.
* show non-Standard never-owned Pets and Mounts in Items section
* redirect non-admin users away from admin-only page
This completes the work started in commit a4f9c754ad
It now allows admins to access the page when coming from another
page on the site or from a direct link, including if the admin user
isn't logged in yet.
* display memberCount for party
* add secret.text field to Contributor Details
This is in addition to showing it in the Privileges section because
the secret text could be about either troublesome behaviour or
contributions.
* allow user to be loaded into Admin Panel via a URL
This includes:
- router config has a child route for the admin panel with a
Username/ID as a parameter
- loadHero code moved from top-level index page into a new
"user support" index page
- links in the Hall changed to point to admin panel route
- admin panel link added to admin section of user profile modal
* keep list of known titles on their own lines
* sort heroFields alphabetically
No actual changes.
* return all flags for use in Admin Panel and fix Hall tests for flags
Future Admin Panel changes will display more flags.
NB 'flags' wasn't in the tests before, even though two optional
flags were being fetched.
The tests weren't failing because the test users hadn't been given
data for those optional flags.
The primary reason for this change now is to fix the tests.
* show part of the API Token in the Admin Panel
* send full hero object into cronAndAuth.vue
This is a prelude to allowing this component to change the hero.
* split heroAdminFields string into two: one for fetching data and one for showing it
This is because apiToken must be fetched but not shown,
while apiTokenObscured is calculated (not fetched) and shown.
* let admin change a user's API Token
* restore sanity
* remove code to show obscured version of API Token
It will return with tighter permissions for viewing it.
* add Custom Day Start time (CDS) to Timestamps, Time Zone... section
* commit lint's automatic fixes - one for admin-panel changes in hall.js
The other fixes aren't related to this PR but I figured they may
as well go live.
* apply fixes from paglias's comments, excluding style/CSS changesd
The comments that this PR fixes start at
https://github.com/HabitRPG/habitica/pull/12035#pullrequestreview-500422316
Style fixes will be in a future commit.
* fix styles/CSS
* allow profile modal to close when using admin panel link
Also removes an empty components block.
* prevent Admin Panel being used without new userSupport privilege
Also adds initial support for other contributor.priv privileges
and changes Debug Menu to add userSupport privilege
* don't do this: this.hero = { ...hero };
* enhance quest error messages
* redirect to admin-panel home page when using "Save and Clear Data"
The user's ID / name is still in the form for easy refetching.
* create ensurePriv function, use in api.getHeroParty
* fix lint problems and integration tests
* add page title to top-level Admin Panel
Also add more details to a router comment (consistent with a similar
comment) in case it helps anyone.
* fix tests
* display Moderation Notes above Contributions
* lint fix
* remove placeholder code for new privileges
I had planned to have each of these implemented in stages, but
paglias wanted it all done at once. I'm afraid that's too big a
project for me to take on in a single PR so I'm cancelling
the plans for adjusting the privileges.
* Improve permission handling
* Don't report timezone error on first day
* fix lint error
* .
* Fix lint error
* fix failing tests
* Fix more tests
* .
* ..
* ...
* fix(admin): always include permissions when querying user
also remove unnecessary failing test case
* permission improvements
* show transactions in admin panel
* fix lint errors
* fix permission check
* fix(panel): missing mixin, handle empty perms object
Co-authored-by: Alys <alice.harris@oldgods.net>
Co-authored-by: SabreCat <sabe@habitica.com>
* fix#12124
add a transaction for updating user and group
so the user doesn't lose gems when saving the group fails
* use mongoose transaction helper
use the helper instead of manually commiting/aborting
to deal with transient transaction errors
* increase timeout and add console.log outputs
add some logging to a failing test
* Revert "increase timeout and add console.log outputs"
This reverts commit 0c36aaa55f.
* add a test for gems when guild creation fails
test the transaction in createGroup()
make sure user keeps the gems if group.save() rejects
* fix(test): try suggested delay from PR discussion
Co-authored-by: SabreCat <sabe@habitica.com>
constmessage='`This party\'s collection quest has been made easier! For details, refer to http://habitica.fandom.com/wiki/User_blog:LadyAlys/Collection_Quests_are_Now_Easier`';
constmessage='`This party\'s collection quest has been made easier! For details, refer to https://habitica.fandom.com/wiki/User_blog:LadyAlys/Collection_Quests_are_Now_Easier`';
@@ -7,7 +7,7 @@ if (process.env.NODE_ENV === 'production') {
stdio:'inherit',
});
execSync('npm run storybook:build',{
/* execSync('npm run storybook:build', {
stdio: 'inherit',
});
}); */
}
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.