Compare commits

..

19 Commits

Author SHA1 Message Date
Kalista Payne
4ecd13fbdc chore(github): split responsiveness to #15514 2025-09-17 16:25:19 -05:00
Hafiz
8ac414a184 move !error.response to correct level
!error.response before any attempt to access error.response.status
2025-09-15 12:03:22 -05:00
Kalista Payne
c4c0cca369 fix(admin): revert accidental change from rebase 2025-09-12 18:21:52 -05:00
Kalista Payne
326843fdc5 fix(blockers): duplicated code from rebase 2025-09-12 18:05:30 -05:00
Hafiz
0df9ea32fb Revert "Merge branch 'fiz/item-container-scaling' into qa/bat"
This reverts commit 4f28bfaad4, reversing
changes made to 477dd6328a.
2025-09-12 18:00:53 -05:00
Hafiz
bd3625aa4b remove redundant disabled styles in task modals
The .disabled class conflicting with existing disabled state implementations
2025-09-12 18:00:53 -05:00
Hafiz
0654d59752 Responsive Layout for Equipment Containers
- Added responsive CSS for mobile (<768px) and tablet (769px-1024px)
- Implemented flex-wrap layout that automatically stacks items in rows of 4 on smaller
2025-09-12 18:00:49 -05:00
Hafiz
0f901c9007 lint fix 2025-09-12 18:00:05 -05:00
Hafiz
30b6584a47 Update ToS error message
- Updated account suspension message from "This account, User ID..." to "Your account @[username] has been
  blocked..."
- Modified server auth middleware to pass username parameter when throwing account suspended error
-Modified auth utils loginRes function to include username in suspended account error
- Updated client bannedAccountModal component to pass username (empty string if unavailable)
- Updated login test to expect username in account suspended message
2025-09-12 18:00:05 -05:00
Hafiz
846250e4b8 Fix shop tabs overflow off screen at certain zoom levels
Fix quest cards get cut off on small screens
Fix pop-up windows extend past screen edges on mobile
2025-09-12 18:00:05 -05:00
Hafiz
0d1a5b6a7c Await genericPurchase completion before page reload to prevent request cancellation.
Also adds defensive check for undefined error.response in axios interceptor to prevent "t.response undefined" errors.
2025-09-12 18:00:05 -05:00
Phillip Thelen
c97845329a lint fixes 2025-09-12 17:56:34 -05:00
Phillip Thelen
5adbf536f5 add blocker to block emails from registration 2025-09-12 17:51:49 -05:00
Phillip Thelen
d9e76fcb3f restructure admin pages 2025-09-12 17:46:26 -05:00
Phillip Thelen
1efe30b7a7 Add UI for managing blockers 2025-09-12 17:36:29 -05:00
Phillip Thelen
4e2a8eb550 Tweak wording 2025-09-12 17:36:29 -05:00
Phillip Thelen
c3fd1fdd66 correctly reset local data after creating blocker 2025-09-12 17:36:29 -05:00
Phillip Thelen
0ec74582f0 Add UI for managing blockers 2025-09-12 17:36:27 -05:00
Phillip Thelen
69bf75322f add new frontend files 2025-09-12 17:33:03 -05:00
81 changed files with 537 additions and 1455 deletions

95
package-lock.json generated
View File

@@ -1,17 +1,18 @@
{
"name": "habitica",
"version": "5.41.3",
"version": "5.41.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "habitica",
"version": "5.41.3",
"version": "5.41.0",
"hasInstallScript": true,
"dependencies": {
"@babel/core": "^7.22.10",
"@babel/preset-env": "^7.22.10",
"@babel/register": "^7.22.15",
"@google-analytics/data": "^4.12.1",
"@google-cloud/trace-agent": "^7.1.2",
"@parse/node-apn": "^5.2.3",
"@slack/webhook": "^6.1.0",
@@ -1974,6 +1975,17 @@
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
"integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q=="
},
"node_modules/@google-analytics/data": {
"version": "4.12.1",
"resolved": "https://registry.npmjs.org/@google-analytics/data/-/data-4.12.1.tgz",
"integrity": "sha512-LzyrkVrnVUTYTmdmHayOZoroc+YA9GHEUrkSSuiXSmMSNbesuWy/MoTXugC1V7+8PCGqb2eQ1UtVVv/2BCAQYA==",
"dependencies": {
"google-gax": "^4.0.3"
},
"engines": {
"node": ">=14.0.0"
}
},
"node_modules/@google-cloud/common": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/@google-cloud/common/-/common-4.0.3.tgz",
@@ -2317,7 +2329,6 @@
"version": "1.10.8",
"resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.10.8.tgz",
"integrity": "sha512-vYVqYzHicDqyKB+NQhAc54I1QWCBLCrYG6unqOIcBTHx+7x8C9lcoLj3KVJXs2VB4lUbpWY+Kk9NipcbXYWmvg==",
"optional": true,
"dependencies": {
"@grpc/proto-loader": "^0.7.13",
"@js-sdsl/ordered-map": "^4.4.2"
@@ -2330,7 +2341,6 @@
"version": "0.7.13",
"resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.13.tgz",
"integrity": "sha512-AiXO/bfe9bmxBjxxtYxFAXGZvMaN5s8kO+jBHAJCON8rJoB5YS/D6X7ZNc6XQkuHNmyl4CYaMI1fJ/Gn27RGGw==",
"optional": true,
"dependencies": {
"lodash.camelcase": "^4.3.0",
"long": "^5.0.0",
@@ -2348,7 +2358,6 @@
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"optional": true,
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -2363,7 +2372,6 @@
"version": "8.0.1",
"resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
"integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
"optional": true,
"dependencies": {
"string-width": "^4.2.0",
"strip-ansi": "^6.0.1",
@@ -2377,7 +2385,6 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"optional": true,
"dependencies": {
"color-name": "~1.1.4"
},
@@ -2388,14 +2395,12 @@
"node_modules/@grpc/proto-loader/node_modules/color-name": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"optional": true
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
},
"node_modules/@grpc/proto-loader/node_modules/get-caller-file": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
"integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
"optional": true,
"engines": {
"node": "6.* || 8.* || >= 10.*"
}
@@ -2404,7 +2409,6 @@
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
"integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
"optional": true,
"dependencies": {
"ansi-styles": "^4.0.0",
"string-width": "^4.1.0",
@@ -2421,7 +2425,6 @@
"version": "5.0.8",
"resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
"integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
"optional": true,
"engines": {
"node": ">=10"
}
@@ -2430,7 +2433,6 @@
"version": "17.7.2",
"resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
"integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
"optional": true,
"dependencies": {
"cliui": "^8.0.1",
"escalade": "^3.1.1",
@@ -2448,7 +2450,6 @@
"version": "21.1.1",
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
"integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
"optional": true,
"engines": {
"node": ">=12"
}
@@ -2619,7 +2620,6 @@
"version": "4.4.2",
"resolved": "https://registry.npmjs.org/@js-sdsl/ordered-map/-/ordered-map-4.4.2.tgz",
"integrity": "sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==",
"optional": true,
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/js-sdsl"
@@ -2932,32 +2932,27 @@
"node_modules/@protobufjs/aspromise": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz",
"integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==",
"optional": true
"integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ=="
},
"node_modules/@protobufjs/base64": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz",
"integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==",
"optional": true
"integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg=="
},
"node_modules/@protobufjs/codegen": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz",
"integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==",
"optional": true
"integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg=="
},
"node_modules/@protobufjs/eventemitter": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz",
"integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==",
"optional": true
"integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q=="
},
"node_modules/@protobufjs/fetch": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz",
"integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==",
"optional": true,
"dependencies": {
"@protobufjs/aspromise": "^1.1.1",
"@protobufjs/inquire": "^1.1.0"
@@ -2966,32 +2961,27 @@
"node_modules/@protobufjs/float": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz",
"integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==",
"optional": true
"integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ=="
},
"node_modules/@protobufjs/inquire": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz",
"integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==",
"optional": true
"integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q=="
},
"node_modules/@protobufjs/path": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz",
"integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==",
"optional": true
"integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA=="
},
"node_modules/@protobufjs/pool": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz",
"integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==",
"optional": true
"integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw=="
},
"node_modules/@protobufjs/utf8": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz",
"integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==",
"optional": true
"integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw=="
},
"node_modules/@sindresorhus/is": {
"version": "4.6.0",
@@ -3126,8 +3116,7 @@
"node_modules/@types/caseless": {
"version": "0.12.5",
"resolved": "https://registry.npmjs.org/@types/caseless/-/caseless-0.12.5.tgz",
"integrity": "sha512-hWtVTC2q7hc7xZ/RLbxapMvDMgUnDvKvMOpKal4DrMyfGBUfB1oKaZlIRr6mJL+If3bAP6sV/QneGzF6tJjZDg==",
"optional": true
"integrity": "sha512-hWtVTC2q7hc7xZ/RLbxapMvDMgUnDvKvMOpKal4DrMyfGBUfB1oKaZlIRr6mJL+If3bAP6sV/QneGzF6tJjZDg=="
},
"node_modules/@types/connect": {
"version": "3.4.38",
@@ -3230,8 +3219,7 @@
"node_modules/@types/long": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz",
"integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==",
"optional": true
"integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA=="
},
"node_modules/@types/mime": {
"version": "1.3.5",
@@ -3281,7 +3269,6 @@
"version": "2.48.12",
"resolved": "https://registry.npmjs.org/@types/request/-/request-2.48.12.tgz",
"integrity": "sha512-G3sY+NpsA9jnwm0ixhAFQSJ3Q9JkpLZpJbI3GMv0mIAT0y3mRabYeINzal5WOChIiaTEGQYlHOKgkaM9EisWHw==",
"optional": true,
"dependencies": {
"@types/caseless": "*",
"@types/node": "*",
@@ -3293,7 +3280,6 @@
"version": "2.5.1",
"resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz",
"integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==",
"optional": true,
"dependencies": {
"asynckit": "^0.4.0",
"combined-stream": "^1.0.6",
@@ -3333,8 +3319,7 @@
"node_modules/@types/tough-cookie": {
"version": "4.0.5",
"resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz",
"integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==",
"optional": true
"integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA=="
},
"node_modules/@types/triple-beam": {
"version": "1.3.5",
@@ -3544,7 +3529,6 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz",
"integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==",
"optional": true,
"dependencies": {
"event-target-shim": "^5.0.0"
},
@@ -9363,7 +9347,6 @@
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz",
"integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==",
"optional": true,
"engines": {
"node": ">=6"
}
@@ -11616,7 +11599,6 @@
"version": "4.3.3",
"resolved": "https://registry.npmjs.org/google-gax/-/google-gax-4.3.3.tgz",
"integrity": "sha512-f4F2Y9X4+mqsrJuLZsuTljYuQpcBnQsCt9ScvZpdM8jGjqrcxyJi5JUiqtq0jtpdHVPzyit0N7f5t07e+kH5EA==",
"optional": true,
"dependencies": {
"@grpc/grpc-js": "~1.10.3",
"@grpc/proto-loader": "^0.7.0",
@@ -11639,7 +11621,6 @@
"version": "7.1.1",
"resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz",
"integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==",
"optional": true,
"dependencies": {
"debug": "^4.3.4"
},
@@ -11651,7 +11632,6 @@
"version": "6.6.0",
"resolved": "https://registry.npmjs.org/gaxios/-/gaxios-6.6.0.tgz",
"integrity": "sha512-bpOZVQV5gthH/jVCSuYuokRo2bTKOcuBiVWpjmTn6C5Agl5zclGfTljuGsQZxwwDBkli+YhZhP4TdlqTnhOezQ==",
"optional": true,
"dependencies": {
"extend": "^3.0.2",
"https-proxy-agent": "^7.0.1",
@@ -11667,7 +11647,6 @@
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-6.1.0.tgz",
"integrity": "sha512-Jh/AIwwgaxan+7ZUUmRLCjtchyDiqh4KjBJ5tW3plBZb5iL/BPcso8A5DlzeD9qlw0duCamnNdpFjxwaT0KyKg==",
"optional": true,
"dependencies": {
"gaxios": "^6.0.0",
"json-bigint": "^1.0.0"
@@ -11680,7 +11659,6 @@
"version": "9.10.0",
"resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-9.10.0.tgz",
"integrity": "sha512-ol+oSa5NbcGdDqA+gZ3G3mev59OHBZksBTxY/tYwjtcp1H/scAFwJfSQU9/1RALoyZ7FslNbke8j4i3ipwlyuQ==",
"optional": true,
"dependencies": {
"base64-js": "^1.3.0",
"ecdsa-sig-formatter": "^1.0.11",
@@ -11697,7 +11675,6 @@
"version": "7.1.0",
"resolved": "https://registry.npmjs.org/gtoken/-/gtoken-7.1.0.tgz",
"integrity": "sha512-pCcEwRi+TKpMlxAQObHDQ56KawURgyAf6jtIY046fJ5tIv3zDe/LEIubckAO8fj6JnAxLdmWkUfNyulQ2iKdEw==",
"optional": true,
"dependencies": {
"gaxios": "^6.0.0",
"jws": "^4.0.0"
@@ -11710,7 +11687,6 @@
"version": "7.0.4",
"resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz",
"integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==",
"optional": true,
"dependencies": {
"agent-base": "^7.0.2",
"debug": "4"
@@ -11724,7 +11700,6 @@
"resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.6.tgz",
"integrity": "sha512-dgJaEDDL6x8ASUZ1YqWciTRrdOuYNzoOf27oHNfdyvKqHr5i0FV7FSLU+aIeFjyFgVxrpTOtQUi0BLLBymZaBw==",
"hasInstallScript": true,
"optional": true,
"dependencies": {
"@protobufjs/aspromise": "^1.1.2",
"@protobufjs/base64": "^1.1.2",
@@ -11747,7 +11722,6 @@
"version": "7.0.2",
"resolved": "https://registry.npmjs.org/retry-request/-/retry-request-7.0.2.tgz",
"integrity": "sha512-dUOvLMJ0/JJYEn8NrpOaGNE7X3vpI5XlZS/u0ANjqtcZVKnIxP7IgCFwrKTxENw29emmwug53awKtaMm4i9g5w==",
"optional": true,
"dependencies": {
"@types/request": "^2.48.8",
"extend": "^3.0.2",
@@ -11761,7 +11735,6 @@
"version": "9.0.0",
"resolved": "https://registry.npmjs.org/teeny-request/-/teeny-request-9.0.0.tgz",
"integrity": "sha512-resvxdc6Mgb7YEThw6G6bExlXKkv6+YbuzGg9xuXxSgxJF7Ozs+o8Y9+2R3sArdWdW8nOokoQb1yrpFB0pQK2g==",
"optional": true,
"dependencies": {
"http-proxy-agent": "^5.0.0",
"https-proxy-agent": "^5.0.0",
@@ -11777,7 +11750,6 @@
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
"integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
"optional": true,
"dependencies": {
"debug": "4"
},
@@ -11789,7 +11761,6 @@
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
"integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
"optional": true,
"dependencies": {
"agent-base": "6",
"debug": "4"
@@ -14268,8 +14239,7 @@
"node_modules/lodash.camelcase": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz",
"integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==",
"optional": true
"integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA=="
},
"node_modules/lodash.clonedeep": {
"version": "4.5.0",
@@ -16692,7 +16662,6 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz",
"integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==",
"optional": true,
"engines": {
"node": ">= 6"
}
@@ -17915,7 +17884,6 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/proto3-json-serializer/-/proto3-json-serializer-2.0.1.tgz",
"integrity": "sha512-8awBvjO+FwkMd6gNoGFZyqkHZXCFd54CIYTb6De7dPaufGJ2XNW+QUNqbMr8MaAocMdb+KpsD4rxEOaTBDCffA==",
"optional": true,
"dependencies": {
"protobufjs": "^7.2.5"
},
@@ -17928,7 +17896,6 @@
"resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.3.0.tgz",
"integrity": "sha512-YWD03n3shzV9ImZRX3ccbjqLxj7NokGN0V/ESiBV5xWqrommYHYiihuIyavq03pWSGqlyvYUFmfoMKd+1rPA/g==",
"hasInstallScript": true,
"optional": true,
"dependencies": {
"@protobufjs/aspromise": "^1.1.2",
"@protobufjs/base64": "^1.1.2",
@@ -20529,9 +20496,9 @@
}
},
"node_modules/tar-fs": {
"version": "2.1.4",
"resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.4.tgz",
"integrity": "sha512-mDAjwmZdh7LTT6pNleZ05Yt65HC3E+NiQzl672vQG38jIrehtJk/J3mNwIg+vShQPcLF/LV7CMnDW6vjj6sfYQ==",
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.3.tgz",
"integrity": "sha512-090nwYJDmlhwFwEW3QQl+vaNnxsO2yVsd45eTKRBzSzu+hlb1w2K9inVq5b0ngXuLVqQ4ApvsUHHnu/zQNkWAg==",
"license": "MIT",
"dependencies": {
"chownr": "^1.1.1",

View File

@@ -1,12 +1,13 @@
{
"name": "habitica",
"description": "A habit tracker app which treats your goals like a Role Playing Game.",
"version": "5.41.3",
"version": "5.41.0",
"main": "./website/server/index.js",
"dependencies": {
"@babel/core": "^7.22.10",
"@babel/preset-env": "^7.22.10",
"@babel/register": "^7.22.15",
"@google-analytics/data": "^4.12.1",
"@google-cloud/trace-agent": "^7.1.2",
"@parse/node-apn": "^5.2.3",
"@slack/webhook": "^6.1.0",

View File

@@ -47,12 +47,6 @@ describe('highlightMentions', () => {
expect(result[0]).to.equal('[@user-dash](/profile/444): message [@user_underscore](/profile/555)');
});
it('highlights users with case-insensitive matching', async () => {
const text = '@USER: message @User2 @USER3';
const result = await highlightMentions(text);
expect(result[0]).to.equal('[@USER](/profile/111): message [@User2](/profile/222) [@USER3](/profile/333)');
});
it('doesn\'t highlight nonexisting users', async () => {
const text = '@nouser message';
const result = await highlightMentions(text);

View File

@@ -238,18 +238,6 @@ describe('POST /chat', () => {
expect(groupMessages[0].id).to.exist;
});
it('creates a chat with case-insensitive mentions', async () => {
const originalUsername = member.auth.local.username;
const uppercaseUsername = originalUsername.toUpperCase();
const messageWithMentions = `hi @${uppercaseUsername}`;
const newMessage = await user.post(`/groups/${groupWithChat._id}/chat`, { message: messageWithMentions });
const groupMessages = await user.get(`/groups/${groupWithChat._id}/chat`);
expect(newMessage.message.id).to.exist;
expect(newMessage.message.text).to.include(`[@${uppercaseUsername}](/profile/${member._id})`);
expect(groupMessages[0].id).to.exist;
});
it('creates a chat with a max length of 3000 chars', async () => {
const veryLongMessage = `
123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789.

View File

@@ -23,6 +23,7 @@
"eslint-config-habitrpg": "6.2.0",
"eslint-plugin-mocha": "5.3.0",
"eslint-plugin-vue": "7.20.0",
"ga-gtag": "^1.2.0",
"habitica-markdown": "^3.0.0",
"hellojs": "^1.20.0",
"intro.js": "^7.2.0",
@@ -5174,6 +5175,11 @@
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/ga-gtag": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/ga-gtag/-/ga-gtag-1.2.0.tgz",
"integrity": "sha512-j9gxutMdpGMdwaX1SzOG31Ddm+IGFjeNf+N3Z5g+BBpS8FSXOALlrM+ORIGc/QKszGJEDlw+6PfIsJZICsqsGQ=="
},
"node_modules/gensync": {
"version": "1.0.0-beta.2",
"resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",

View File

@@ -27,6 +27,7 @@
"eslint-config-habitrpg": "6.2.0",
"eslint-plugin-mocha": "5.3.0",
"eslint-plugin-vue": "7.20.0",
"ga-gtag": "^1.2.0",
"habitica-markdown": "^3.0.0",
"hellojs": "^1.20.0",
"intro.js": "^7.2.0",

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 8.5 KiB

View File

@@ -1,9 +0,0 @@
<svg width="378" height="176" viewBox="0 0 378 176" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M0 0H378V174C378 175.105 377.105 176 376 176H1.99999C0.895423 176 0 175.105 0 174V0Z" fill="url(#paint0_linear_2257_239)"/>
<defs>
<linearGradient id="paint0_linear_2257_239" x1="378" y1="0" x2="0" y2="0" gradientUnits="userSpaceOnUse">
<stop stop-color="#925CF3"/>
<stop offset="1" stop-color="#34B5C1"/>
</linearGradient>
</defs>
</svg>

Before

Width:  |  Height:  |  Size: 448 B

View File

@@ -1,37 +0,0 @@
<svg width="48" height="96" viewBox="0 0 48 96" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M-3.10104 12.0483C-2.82088 9.43721 -3.53422 6.57214 -5.6115 5.24584C-7.68877 3.91954 -9.89543 4.92709 -10.1422 6.808C-10.3891 8.68891 -9.06061 9.83066 -4.97737 13.9337C-3.81821 15.0985 -3.3812 14.6594 -3.10104 12.0483Z" stroke="#FFA624" stroke-width="4"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M2.34089 15.2054C4.45116 13.6561 7.27707 12.8443 9.45877 13.9889C11.6405 15.1334 11.8754 17.5575 10.3778 18.7127C8.88016 19.868 7.23193 19.2828 1.65411 17.781C0.0706697 17.3546 0.230624 16.7548 2.34089 15.2054Z" stroke="#FFBE5D" stroke-width="4"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M0.549002 12.0098C-3.61871 9.59194 -3.87667 15.8322 -2.20457 16.8023C-0.532473 17.7724 4.71671 14.4277 0.549002 12.0098Z" fill="#EE9109"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M-1.76917 16.0445L13.637 24.9825L9.18965 32.7229L-6.21656 23.785L-1.76917 16.0445Z" fill="#F8F9F9"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M-6.90457 13.0652L3.36623 19.0238L-1.08116 26.7643L-11.352 20.8057L-6.90457 13.0652Z" fill="#FFBE5D"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M-1.76917 16.0445L3.36623 19.0238L1.88377 21.604L-3.25163 18.6247L-1.76917 16.0445Z" fill="#FFA624"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M-6.21656 23.785L6.62195 31.2333L-3.75529 49.2944L-16.5938 41.8461L-6.21656 23.785Z" fill="#F8F9F9"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M-3.64886 25.2747L6.62195 31.2333L5.13948 33.8134L-5.13132 27.8548L-3.64886 25.2747Z" fill="#DDF3F3"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M0.401307 24.1842L10.6721 30.1428L9.18965 32.7229L-1.08116 26.7643L0.401307 24.1842Z" fill="#DDF3F3"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M18.7924 38.4607L17.9387 42.0519L21.31 40.5834L24.8838 41.4413L23.4225 38.0537L24.2762 34.4625L20.9049 35.9309L17.3311 35.0731L18.7924 38.4607Z" fill="white" fill-opacity="0.5"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M-3.93867 71.2331L-4.79238 74.8243L-1.42111 73.3559L2.15271 74.2137L0.691383 70.8261L1.54509 67.2349L-1.82618 68.7033L-5.4 67.8455L-3.93867 71.2331Z" fill="white" fill-opacity="0.5"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M33.8949 25.3807L35.0583 29.8802L37.9424 26.2452L42.4202 25.0761L38.8028 22.178L37.6393 17.6786L34.7552 21.3135L30.2775 22.4826L33.8949 25.3807Z" fill="white" fill-opacity="0.5"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M26.2596 71.999L40.579 68.1435L45.9507 88.2881L31.6312 92.1436L26.2596 71.999Z" fill="#F8F9F9"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M11.9401 75.8545L26.2589 71.9966L31.6273 92.1421L17.3084 96L11.9401 75.8545Z" fill="#DDF3F3"/>
<rect width="2.96589" height="20.8485" transform="matrix(0.965611 -0.25999 0.257652 0.966238 23.3957 72.7701)" fill="#FFA624"/>
<rect width="2.96589" height="20.8485" transform="matrix(0.965611 -0.25999 0.257652 0.966238 26.2596 71.999)" fill="#FFBE5D"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M27.9999 90.0369L30.8638 89.2658L31.6312 92.1436L28.7673 92.9147L27.9999 90.0369Z" fill="#EE9109"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M23.3957 72.7701L26.2596 71.999L27.0269 74.8768L24.163 75.6479L23.3957 72.7701Z" fill="#EE9109"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M11.9401 75.8545L23.3951 72.7682L24.162 75.6461L12.707 78.7325L11.9401 75.8545Z" fill="#C1E9E9"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M16.5443 93.1213L27.9999 90.0369L28.7673 92.9147L17.3117 95.9991L16.5443 93.1213Z" fill="#C1E9E9"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M29.1235 71.2279L40.579 68.1435L41.3464 71.0213L29.8908 74.1057L29.1235 71.2279Z" fill="#DDF3F3"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M33.7277 88.4947L45.1833 85.4103L45.9507 88.2881L34.4951 91.3725L33.7277 88.4947Z" fill="#DDF3F3"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M30.8638 89.2658L33.7277 88.4947L34.4951 91.3725L31.6312 92.1436L30.8638 89.2658Z" fill="#FFA624"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M26.2596 71.999L29.1235 71.2279L29.8908 74.1057L27.0269 74.8768L26.2596 71.999Z" fill="#FFA624"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M26.5224 56.3076C25.8087 53.7812 24.0792 51.3933 21.6588 50.9455C19.2383 50.4977 17.5679 52.2625 18.0403 54.0994C18.5126 55.9363 20.17 56.4948 25.4855 58.7621C26.9945 59.4057 27.236 58.834 26.5224 56.3076Z" stroke="#FFA624" stroke-width="4"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M32.745 57.1864C34.124 54.9555 36.4415 53.1391 38.8911 53.3791C41.3406 53.6191 42.4621 55.7782 41.5042 57.413C40.5463 59.0479 38.7999 59.1258 33.0684 59.8329C31.4413 60.0337 31.366 59.4173 32.745 57.1864Z" stroke="#FFBE5D" stroke-width="4"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M29.8923 54.898C25.1267 54.225 27.2139 60.108 29.1258 60.378C31.0378 60.648 34.6579 55.571 29.8923 54.898Z" fill="#EE9109"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M29.247 59.5115L46.8635 61.9994L45.6255 70.8503L28.0091 68.3625L29.247 59.5115Z" fill="#F8F9F9"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M11.6306 57.0236L29.247 59.5114L28.0091 68.3624L10.3927 65.8745L11.6306 57.0236Z" fill="#DDF3F3"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M23.3749 58.6822L35.1192 60.3408L33.8813 69.1917L22.137 67.5332L23.3749 58.6822Z" fill="#FFBE5D"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M23.3749 58.6822L29.247 59.5115L28.0091 68.3625L22.137 67.5332L23.3749 58.6822Z" fill="#FFA624"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M29.247 59.5115L35.1192 60.3408L34.7065 63.2911L28.8344 62.4618L29.247 59.5115Z" fill="#FFA624"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M23.3749 58.6822L29.247 59.5115L28.8344 62.4618L22.9622 61.6326L23.3749 58.6822Z" fill="#EE9109"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M10.8053 62.9241L22.5496 64.5827L22.137 67.533L10.3927 65.8745L10.8053 62.9241Z" fill="#C1E9E9"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M34.2939 66.2414L46.0382 67.9L45.6255 70.8503L33.8813 69.1917L34.2939 66.2414Z" fill="#DDF3F3"/>
</svg>

Before

Width:  |  Height:  |  Size: 6.0 KiB

View File

@@ -30,23 +30,12 @@
cursor: default;
color: $gray-200;
opacity: 1;
background-color: transparent;
box-shadow: none;
background-color: $gray-700;
border: 2px solid transparent;
box-shadow:
0 1px 3px 0 rgba($black, 0.12),
0 1px 2px 0 rgba($black, 0.24);
font-family: 'Roboto', sans-serif;
font-weight: 700;
font-size: 14px;
line-height: 24px;
padding: 4px 12px;
min-height: 32px;
max-height: 32px;
gap: 8px;
border-radius: 4px;
.svg {
color: $gray-200;
color: $gray-300;
}
}

View File

@@ -1,8 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g fill="#FFFFFF" fill-rule="nonzero">
<polygon points="12.1973467 2 14 3.80265326 9.80187117 8 14 12.1973467 12.1973467 14 8 9.80187117 3.80265326 14 2 12.1973467 6.19812883 8 2 3.80265326 3.80265326 2 8 6.19812883"></polygon>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 504 B

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 5.4 KiB

View File

@@ -1,29 +0,0 @@
<svg width="64" height="64" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M58.1792 31.6843L46.8536 22.3769L23.918 28.6988L18.861 42.5218L44.341 58.5813L58.1792 31.6843Z" fill="#FF944C"/>
<path opacity="0.25" fill-rule="evenodd" clip-rule="evenodd" d="M46.6218 34.5148L46.1108 26.1328L36.2812 28.8422L46.6218 34.5148Z" fill="white"/>
<path opacity="0.25" fill-rule="evenodd" clip-rule="evenodd" d="M30.2393 39.0304L26.4518 31.5515L36.2813 28.8422L30.2393 39.0304Z" fill="white"/>
<path opacity="0.5" fill-rule="evenodd" clip-rule="evenodd" d="M46.6218 34.5148L36.2813 28.8422L30.2393 39.0304L46.6218 34.5148Z" fill="white"/>
<path opacity="0.5" fill-rule="evenodd" clip-rule="evenodd" d="M53.8301 32.5279L46.1108 26.1328L46.6218 34.5148L53.8301 32.5279Z" fill="white"/>
<path opacity="0.35" fill-rule="evenodd" clip-rule="evenodd" d="M23.0309 41.0173L26.4518 31.5516L30.2393 39.0304L23.0309 41.0173Z" fill="#FA8537"/>
<path opacity="0.35" fill-rule="evenodd" clip-rule="evenodd" d="M53.8301 32.5279L46.6218 34.5148L43.0424 53.79L53.8301 32.5279Z" fill="#FA8537"/>
<path opacity="0.5" fill-rule="evenodd" clip-rule="evenodd" d="M23.0309 41.0173L30.2393 39.0304L43.0425 53.79L23.0309 41.0173Z" fill="white"/>
<path opacity="0.25" fill-rule="evenodd" clip-rule="evenodd" d="M46.6218 34.5148L30.2393 39.0304L43.0425 53.79L46.6218 34.5148Z" fill="white"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M50.555 4.15937L47.026 0.420004L38.7773 1.59601L36.4144 6.17539L44.5675 12.8919L50.555 4.15937Z" fill="#FFBE5D"/>
<path opacity="0.25" fill-rule="evenodd" clip-rule="evenodd" d="M46.414 4.62854L46.6034 1.6924L43.0682 2.1964L46.414 4.62854Z" fill="white"/>
<path opacity="0.25" fill-rule="evenodd" clip-rule="evenodd" d="M40.5221 5.46854L39.5331 2.7004L43.0682 2.1964L40.5221 5.46854Z" fill="white"/>
<path opacity="0.5" fill-rule="evenodd" clip-rule="evenodd" d="M46.414 4.62854L43.0683 2.1964L40.5221 5.46855L46.414 4.62854Z" fill="white"/>
<path opacity="0.5" fill-rule="evenodd" clip-rule="evenodd" d="M49.0064 4.25894L46.6034 1.6924L46.414 4.62854L49.0064 4.25894Z" fill="white"/>
<path opacity="0.35" fill-rule="evenodd" clip-rule="evenodd" d="M37.9296 5.83815L39.5331 2.70041L40.5221 5.46855L37.9296 5.83815Z" fill="#FFA624"/>
<path opacity="0.35" fill-rule="evenodd" clip-rule="evenodd" d="M49.0064 4.25893L46.414 4.62853L44.3259 11.1688L49.0064 4.25893Z" fill="#FFA624"/>
<path opacity="0.5" fill-rule="evenodd" clip-rule="evenodd" d="M37.9297 5.83815L40.5221 5.46855L44.326 11.1688L37.9297 5.83815Z" fill="white"/>
<path opacity="0.25" fill-rule="evenodd" clip-rule="evenodd" d="M46.414 4.62854L40.5221 5.46855L44.326 11.1688L46.414 4.62854Z" fill="white"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M27.2986 16.7775L24.6513 8.36623L11.1016 3.94533L4.07056 9.19883L11.614 25.6769L27.2986 16.7775Z" fill="#FF6165"/>
<path opacity="0.25" fill-rule="evenodd" clip-rule="evenodd" d="M20.5864 14.3719L23.0573 10.0026L17.2502 8.10789L20.5864 14.3719Z" fill="white"/>
<path opacity="0.25" fill-rule="evenodd" clip-rule="evenodd" d="M10.908 11.2141L11.4432 6.21322L17.2502 8.10789L10.908 11.2141Z" fill="white"/>
<path opacity="0.5" fill-rule="evenodd" clip-rule="evenodd" d="M20.5864 14.3719L17.2502 8.10789L10.9081 11.2141L20.5864 14.3719Z" fill="white"/>
<path opacity="0.5" fill-rule="evenodd" clip-rule="evenodd" d="M24.8449 15.7613L23.0573 10.0026L20.5864 14.3719L24.8449 15.7613Z" fill="white"/>
<path opacity="0.35" fill-rule="evenodd" clip-rule="evenodd" d="M6.64955 9.82464L11.4432 6.21321L10.908 11.2141L6.64955 9.82464Z" fill="#F23035"/>
<path opacity="0.35" fill-rule="evenodd" clip-rule="evenodd" d="M24.8449 15.7613L20.5864 14.3719L12.5221 22.8464L24.8449 15.7613Z" fill="#F23035"/>
<path opacity="0.5" fill-rule="evenodd" clip-rule="evenodd" d="M6.64959 9.82464L10.9081 11.2141L12.5221 22.8463L6.64959 9.82464Z" fill="white"/>
<path opacity="0.25" fill-rule="evenodd" clip-rule="evenodd" d="M20.5864 14.3719L10.9081 11.2141L12.5221 22.8463L20.5864 14.3719Z" fill="white"/>
</svg>

Before

Width:  |  Height:  |  Size: 4.0 KiB

View File

@@ -1,29 +0,0 @@
<svg width="64" height="64" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M5.82083 31.6843L17.1464 22.3769L40.082 28.6988L45.139 42.5218L19.659 58.5813L5.82083 31.6843Z" fill="#24CC8F"/>
<path opacity="0.25" fill-rule="evenodd" clip-rule="evenodd" d="M17.3782 34.5148L17.8892 26.1328L27.7188 28.8422L17.3782 34.5148Z" fill="white"/>
<path opacity="0.25" fill-rule="evenodd" clip-rule="evenodd" d="M33.7607 39.0304L37.5482 31.5515L27.7187 28.8422L33.7607 39.0304Z" fill="white"/>
<path opacity="0.5" fill-rule="evenodd" clip-rule="evenodd" d="M17.3782 34.5148L27.7187 28.8422L33.7607 39.0304L17.3782 34.5148Z" fill="white"/>
<path opacity="0.5" fill-rule="evenodd" clip-rule="evenodd" d="M10.1699 32.5279L17.8892 26.1328L17.3782 34.5148L10.1699 32.5279Z" fill="white"/>
<path opacity="0.35" fill-rule="evenodd" clip-rule="evenodd" d="M40.9691 41.0173L37.5482 31.5516L33.7607 39.0304L40.9691 41.0173Z" fill="#1CA372"/>
<path opacity="0.35" fill-rule="evenodd" clip-rule="evenodd" d="M10.1699 32.5279L17.3782 34.5148L20.9576 53.79L10.1699 32.5279Z" fill="#1CA372"/>
<path opacity="0.5" fill-rule="evenodd" clip-rule="evenodd" d="M40.9691 41.0173L33.7607 39.0304L20.9575 53.79L40.9691 41.0173Z" fill="white"/>
<path opacity="0.25" fill-rule="evenodd" clip-rule="evenodd" d="M17.3782 34.5148L33.7607 39.0304L20.9575 53.79L17.3782 34.5148Z" fill="white"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M13.445 4.15937L16.974 0.420004L25.2227 1.59601L27.5856 6.17539L19.4325 12.8919L13.445 4.15937Z" fill="#925CF3"/>
<path opacity="0.25" fill-rule="evenodd" clip-rule="evenodd" d="M17.586 4.62854L17.3966 1.6924L20.9318 2.1964L17.586 4.62854Z" fill="white"/>
<path opacity="0.25" fill-rule="evenodd" clip-rule="evenodd" d="M23.4779 5.46854L24.4669 2.7004L20.9318 2.1964L23.4779 5.46854Z" fill="white"/>
<path opacity="0.5" fill-rule="evenodd" clip-rule="evenodd" d="M17.586 4.62854L20.9317 2.1964L23.4779 5.46855L17.586 4.62854Z" fill="white"/>
<path opacity="0.5" fill-rule="evenodd" clip-rule="evenodd" d="M14.9936 4.25894L17.3966 1.6924L17.586 4.62854L14.9936 4.25894Z" fill="white"/>
<path opacity="0.35" fill-rule="evenodd" clip-rule="evenodd" d="M26.0704 5.83815L24.4669 2.70041L23.4779 5.46855L26.0704 5.83815Z" fill="#4F2A93"/>
<path opacity="0.35" fill-rule="evenodd" clip-rule="evenodd" d="M14.9936 4.25893L17.586 4.62853L19.6741 11.1688L14.9936 4.25893Z" fill="#4F2A93"/>
<path opacity="0.5" fill-rule="evenodd" clip-rule="evenodd" d="M26.0703 5.83815L23.4779 5.46855L19.674 11.1688L26.0703 5.83815Z" fill="white"/>
<path opacity="0.25" fill-rule="evenodd" clip-rule="evenodd" d="M17.586 4.62854L23.4779 5.46855L19.674 11.1688L17.586 4.62854Z" fill="white"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M36.7014 16.7775L39.3487 8.36623L52.8984 3.94533L59.9294 9.19883L52.386 25.6769L36.7014 16.7775Z" fill="#50B5E9"/>
<path opacity="0.25" fill-rule="evenodd" clip-rule="evenodd" d="M43.4136 14.3719L40.9427 10.0026L46.7498 8.10789L43.4136 14.3719Z" fill="white"/>
<path opacity="0.25" fill-rule="evenodd" clip-rule="evenodd" d="M53.092 11.2141L52.5568 6.21322L46.7498 8.10789L53.092 11.2141Z" fill="white"/>
<path opacity="0.5" fill-rule="evenodd" clip-rule="evenodd" d="M43.4136 14.3719L46.7498 8.10789L53.0919 11.2141L43.4136 14.3719Z" fill="white"/>
<path opacity="0.5" fill-rule="evenodd" clip-rule="evenodd" d="M39.1551 15.7613L40.9427 10.0026L43.4136 14.3719L39.1551 15.7613Z" fill="white"/>
<path opacity="0.35" fill-rule="evenodd" clip-rule="evenodd" d="M57.3504 9.82464L52.5568 6.21321L53.092 11.2141L57.3504 9.82464Z" fill="#46A7D9"/>
<path opacity="0.35" fill-rule="evenodd" clip-rule="evenodd" d="M39.1551 15.7613L43.4136 14.3719L51.4779 22.8464L39.1551 15.7613Z" fill="#46A7D9"/>
<path opacity="0.5" fill-rule="evenodd" clip-rule="evenodd" d="M57.3504 9.82464L53.0919 11.2141L51.4779 22.8463L57.3504 9.82464Z" fill="white"/>
<path opacity="0.25" fill-rule="evenodd" clip-rule="evenodd" d="M43.4136 14.3719L53.0919 11.2141L51.4779 22.8463L43.4136 14.3719Z" fill="white"/>
</svg>

Before

Width:  |  Height:  |  Size: 4.0 KiB

View File

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

View File

@@ -72,40 +72,32 @@
</div>
<div class="col-12 col-md-6 text-right">
<div
class="box member-count p-2"
class="box member-count"
@click="showMemberModal()"
>
<div class="box-content">
<div class="icon-number-row">
<div
class="svg-icon member-icon"
v-html="icons.memberIcon"
></div>
<span class="number">{{ challenge.memberCount }}</span>
</div>
<div
v-once
class="details"
>
{{ $t('participantsTitle') }}
</div>
<div
class="svg-icon member-icon"
v-html="icons.memberIcon"
></div>
{{ challenge.memberCount }}
<div
v-once
class="details"
>
{{ $t('participantsTitle') }}
</div>
</div>
<div class="box prize-count p-2">
<div class="box-content">
<div class="icon-number-row">
<div
class="svg-icon gem-icon"
v-html="icons.gemIcon"
></div>
<span class="number">{{ challenge.prize || 0 }}</span>
</div>
<div
v-once
class="details"
>
{{ $t('prize') }}
</div>
<div class="box">
<div
class="svg-icon gem-icon"
v-html="icons.gemIcon"
></div>
{{ challenge.prize || 0 }}
<div
v-once
class="details"
>
{{ $t('prize') }}
</div>
</div>
</div>
@@ -312,6 +304,7 @@
.box {
display: inline-block;
padding: 1em;
border-radius: 2px;
background-color: $white;
box-shadow: 0 2px 2px 0 rgba(26, 24, 29, 0.16), 0 1px 4px 0 rgba(26, 24, 29, 0.12);
@@ -321,88 +314,22 @@
text-align: center;
font-size: 20px;
vertical-align: bottom;
overflow: hidden;
position: relative;
&.member-count:hover {
cursor: pointer;
}
.box-content {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
height: 100%;
width: 100%;
}
.icon-number-row {
display: flex;
align-items: center;
justify-content: center;
margin-bottom: 0.1em;
.number {
font-size: 20px;
font-weight: normal;
margin-left: 0.2em;
}
}
.svg-icon {
width: 30px;
display: inline-block;
margin-right: .2em;
vertical-align: bottom;
}
.details {
font-size: 12px;
margin-top: 0.4em;
color: $gray-200;
width: 100%;
padding: 0 4px;
line-height: 1.15;
word-break: break-word;
max-height: 2.3em;
overflow: visible;
}
&.member-count {
.icon-number-row {
.svg-icon {
width: 24px;
height: 24px;
}
.number {
font-size: 18px;
}
}
.details {
font-size: 11px;
line-height: 1.1;
max-height: 2.2em;
}
}
&.prize-count {
.icon-number-row {
.svg-icon {
width: 24px;
height: 24px;
}
.number {
font-size: 18px;
}
}
.details {
font-size: 11px;
line-height: 1.1;
max-height: 2.2em;
}
}
}

View File

@@ -4,7 +4,6 @@
id="close-challenge-modal"
:title="$t('endChallenge')"
size="md"
:hide-header="false"
>
<div
slot="modal-header"
@@ -16,9 +15,6 @@
>
{{ $t('endChallenge') }}
</h2>
<close-x
@close="$root.$emit('bv::hide::modal', 'close-challenge-modal')"
/>
</div>
<div class="row text-center">
<span
@@ -32,67 +28,28 @@
class="col-12"
>
<div class="col-12">
<div class="badge-section">
<div
class="gems-left"
v-html="icons.gemsOrange"
></div>
<div
class="challenge-badge"
v-html="icons.endChallengeBadge"
></div>
<div
class="gems-right"
v-html="icons.gemsPurple"
></div>
<div class="support-habitica">
<!-- @TODO: Add challenge achievement badge here-->
</div>
</div>
<div class="col-12">
<strong v-once>{{ $t('selectChallengeWinnersDescription') }}</strong>
</div>
<div class="col-12 search-input-container">
<div class="search-input-wrapper">
<div
class="search-icon"
v-html="icons.search"
></div>
<input
v-model="searchTerm"
class="search-input"
type="text"
placeholder="@Username"
@input="searchMembers"
@focus="showResults = true"
@blur="handleBlur"
>
<div
v-if="showResults && filteredMembers.length > 0"
class="search-results"
>
<div
v-for="member in filteredMembers"
:key="member._id"
class="search-result-item"
@mousedown="selectMember(member)"
>
{{ getMemberDisplayName(member) }}
</div>
</div>
</div>
<div class="col-12">
<member-search-dropdown
:text="winnerText"
:members="members"
:challenge-id="challengeId"
@member-selected="selectMember"
/>
</div>
<div class="col-12">
<button
class="btn award-winner-btn"
:class="{'has-winner': winner._id}"
:disabled="!winner._id"
v-once
class="btn btn-primary"
@click="closeChallenge"
>
<span>{{ $t('awardWinners') }}</span>
<div
class="gem-icon"
v-html="icons.gem"
></div>
<span>{{ prize }} {{ prize === 1 ? $t('gem') : $t('gems') }}</span>
{{ $t('awardWinners') }}
</button>
</div>
</span>
@@ -103,27 +60,14 @@
</div>
</div>
<div class="col-12">
<strong
v-once
class="delete-challenge-text"
>{{ $t('doYouWantedToDeleteChallenge') }}</strong>
</div>
<div
v-once
class="col-12 refund-text"
>
{{ $t('deleteChallengeRefundDescription') }}
<strong v-once>{{ $t('doYouWantedToDeleteChallenge') }}</strong>
</div>
<div class="col-12">
<button
v-once
class="btn btn-danger delete-challenge-btn"
class="btn btn-danger"
@click="deleteChallenge()"
>
<div
class="svg-icon color delete-icon"
v-html="icons.deleteIcon"
></div>
{{ $t('deleteChallenge') }}
</button>
</div>
@@ -138,7 +82,6 @@
<style lang='scss'>
@import '@/assets/scss/colors.scss';
@import '@/assets/scss/button.scss';
#close-challenge-modal {
h2 {
@@ -151,190 +94,26 @@
.header-wrap {
width: 100%;
padding-top: 32px;
position: relative;
padding-top: 2em;
}
.modal-close {
position: absolute;
right: 16px;
top: 16px;
padding: 0;
margin: 0;
}
.search-input-container {
margin-top: 1em !important;
}
.search-input-wrapper {
position: relative;
width: 384px;
.support-habitica {
background-image: url('@/assets/svg/for-css/support-habitica-gems.svg?raw');
width: 325px;
height: 89px;
margin: 0 auto;
.search-icon {
position: absolute;
left: 12px;
top: 50%;
transform: translateY(-55%);
width: 16px;
height: 16px;
color: $gray-200;
pointer-events: none;
display: flex;
align-items: center;
}
.search-input {
width: 100%;
height: 32px;
padding-left: 36px;
padding-right: 12px;
border: 1px solid $gray-400;
border-radius: 4px;
font-size: 14px;
transition: border-color 0.2s ease, border-width 0.2s ease;
&:focus {
outline: none;
border: 2px solid $purple-400;
}
&::placeholder {
color: $gray-300;
}
}
.search-results {
position: absolute;
top: 100%;
left: 0;
right: 0;
background: $white;
border: 1px solid $gray-400;
border-top: none;
border-radius: 0 0 4px 4px;
max-height: 200px;
overflow-y: auto;
z-index: 1000;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
.search-result-item {
padding: 8px 16px;
cursor: pointer;
transition: all 0.2s ease;
text-align: left;
&:hover {
background-color: $purple-600;
color: $purple-300;
}
}
}
}
.delete-challenge-text {
color: $maroon-50;
}
.refund-text {
font-family: 'Roboto', sans-serif;
font-size: 14px;
line-height: 24px;
font-weight: 400;
color: $gray-50;
margin-top: 0.5em !important;
}
.delete-challenge-btn {
font-family: 'Roboto', sans-serif;
font-size: 14px;
font-weight: 700;
line-height: 24px;
display: inline-flex;
align-items: center;
gap: 8px;
.delete-icon {
width: 16px;
height: 16px;
display: inline-flex;
}
}
.award-winner-btn {
display: inline-flex;
align-items: center;
gap: 8px;
min-height: 32px;
padding: 4px 12px;
transition: all 0.2s ease;
&:not(:disabled) {
background-color: $white;
color: $gray-200;
border: 1px solid $gray-400;
box-shadow: 0 2px 2px 0 rgba(26, 24, 29, 0.16), 0 1px 4px 0 rgba(26, 24, 29, 0.12);
&.has-winner {
background-color: $purple-200;
color: $white;
border-color: $purple-200;
}
&:hover:not(.has-winner) {
background-color: $gray-700;
}
}
.gem-icon {
width: 20px;
height: 20px;
display: inline-flex;
align-items: center;
color: $gems-color;
}
}
.badge-section {
display: flex;
align-items: center;
justify-content: center;
gap: 1.5rem;
margin: -24px auto 0;
padding: 0.5rem 0;
.gems-left, .gems-right {
width: 64px;
height: 64px;
flex-shrink: 0;
}
.challenge-badge {
width: 48px;
height: 52px;
flex-shrink: 0;
}
}
.modal-footer, .modal-header {
border: none !important;
}
.modal-header {
padding: 0 !important;
}
.footer-wrap {
display: none;
}
.col-12 {
margin-top: 1.5em;
}
.col-12:first-child {
margin-top: 0;
margin-top: 2em;
}
.or {
@@ -344,39 +123,21 @@
margin-right: auto;
margin-left: auto;
font-weight: bold;
color: $gray-100;
}
}
</style>
<script>
import searchIcon from '@/assets/svg/for-css/search.svg?raw';
import deleteIcon from '@/assets/svg/delete.svg?raw';
import gemIcon from '@/assets/svg/gem.svg?raw';
import endChallengeBadge from '@/assets/svg/for-css/end_challenge_badge.svg?raw';
import gemsOrange from '@/assets/svg/for-css/orange100_red100_yellow100_gems.svg?raw';
import gemsPurple from '@/assets/svg/for-css/purple200_green10_blue100_gems.svg?raw';
import closeX from '@/components/ui/closeX';
import memberSearchDropdown from '@/components/members/memberSearchDropdown';
export default {
components: {
closeX,
memberSearchDropdown,
},
props: ['challengeId', 'members', 'prize', 'flagCount'],
data () {
return {
winner: {},
searchTerm: '',
showResults: false,
filteredMembers: [],
icons: Object.freeze({
search: searchIcon,
deleteIcon,
gem: gemIcon,
endChallengeBadge,
gemsOrange,
gemsPurple,
}),
};
},
computed: {
@@ -389,35 +150,8 @@ export default {
},
},
methods: {
searchMembers () {
if (!this.searchTerm) {
this.filteredMembers = [];
return;
}
const searchLower = this.searchTerm.toLowerCase().replace('@', '');
this.filteredMembers = this.members.filter(member => {
const username = member.auth?.local?.username || '';
const displayName = member.profile?.name || '';
return username.toLowerCase().includes(searchLower)
|| displayName.toLowerCase().includes(searchLower);
}).slice(0, 10);
},
getMemberDisplayName (member) {
if (member.auth?.local?.username) {
return `@${member.auth.local.username}`;
}
return member.profile?.name || '';
},
selectMember (member) {
this.winner = member;
this.searchTerm = this.getMemberDisplayName(member);
this.showResults = false;
},
handleBlur () {
setTimeout(() => {
this.showResults = false;
}, 200);
},
async closeChallenge () {
this.challenge = await this.$store.dispatch('challenges:selectChallengeWinner', {

View File

@@ -1,43 +1,37 @@
<template>
<div
class="notification d-flex justify-content-center align-items-center"
class="notification d-flex flex-column justify-content-center text-center"
>
<img
src="@/assets/images/gifts_start.svg"
class="gift-start"
alt=""
<strong
v-once
class="mx-auto mb-2"
>
<div class="content-wrapper d-flex flex-column justify-content-center text-center">
<strong
v-once
class="mx-auto mb-2"
>
{{ $t('g1g1') }}
</strong>
<small
v-once
class="mx-4 mb-3"
>
{{ $t('g1g1Details') }}
</small>
<button
class="btn btn-secondary mx-auto"
@click="showSelectUser()"
>
{{ $t('sendGift') }}
</button>
</div>
<img
src="@/assets/images/gifts_start.svg"
class="gift-end"
alt=""
{{ $t('g1g1') }}
</strong>
<small
v-once
class="mx-4 mb-3"
>
{{ $t('g1g1Details') }}
</small>
<div
class="close-x"
@click="remove()"
class="btn-secondary mx-auto d-flex"
@click="showSelectUser()"
>
<div
class="svg-icon svg-close"
v-once
class="m-auto"
>
{{ $t('sendGift') }}
</div>
</div>
<div
class="notification-remove"
@click.stop="remove()"
>
<div
v-once
class="svg-icon"
v-html="icons.close"
></div>
</div>
@@ -47,89 +41,51 @@
<style lang='scss' scoped>
@import '@/assets/scss/colors.scss';
small {
small, strong {
color: $white;
font-family: 'Roboto', sans-serif;
font-weight: 400;
font-style: normal;
font-size: 14px;
line-height: 1.714;
letter-spacing: 0;
}
strong {
color: $white;
font-family: 'Roboto', sans-serif;
font-weight: 700;
font-style: normal;
font-size: 14px;
line-height: 1.714;
}
.notification {
background-image: url('@/assets/images/gifts_bg.svg');
background-size: cover;
background-position: center;
background-image: url('@/assets/images/g1g1-notif.png');
height: 10rem;
padding: 0;
padding: 3rem;
position: relative;
overflow: hidden;
white-space: normal;
cursor: pointer;
}
.content-wrapper {
flex: 1;
padding: 2rem;
z-index: 1;
}
.gift-start {
height: 96px;
width: auto;
.notification-remove {
position: absolute;
left: 0;
top: 50%;
transform: translateY(-50%);
z-index: 0;
}
width: 18px;
height: 18px;
padding: 4px;
right: 24px;
top: 24px;
.gift-end {
height: 96px;
width: auto;
position: absolute;
right: 0;
top: 50%;
transform: translateY(-50%) scaleX(-1);
z-index: 0;
}
.close-x {
position: absolute;
right: 16px;
top: 16px;
cursor: pointer;
z-index: 2;
&:hover .svg-close {
opacity: 0.75;
.svg-icon {
width: 10px;
height: 10px;
}
}
.svg-close {
width: 18px;
height: 18px;
opacity: 0.5;
transition: opacity 0.2s ease;
pointer-events: none;
}
.btn-secondary {
width: 5.75rem;
min-height: 1.5rem;
border-radius: 2px;
border-color: $white;
box-shadow: 0 2px 2px 0 rgba(26, 24, 29, 0.16), 0 1px 4px 0 rgba(26, 24, 29, 0.12);
font-size: 12px;
font-weight: bold;
}
</style>
<script>
import closeIcon from '@/assets/svg/close-white.svg?raw';
import closeIcon from '@/assets/svg/close-teal.svg?raw';
import { mapActions } from '@/libs/store';
export default {
props: ['notification', 'eventKey'],
props: ['notification'],
data () {
return {
icons: Object.freeze({
@@ -138,11 +94,11 @@ export default {
};
},
methods: {
...mapActions({
readNotification: 'notifications:readNotification',
}),
remove () {
if (this.eventKey) {
window.sessionStorage.setItem(`hide-g1g1-${this.eventKey}`, 'true');
}
this.$emit('notification-removed');
this.readNotification({ notificationId: this.notification.id });
},
showSelectUser () {
this.$root.$emit('bv::show::modal', 'select-user-modal');

View File

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

View File

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

View File

@@ -49,12 +49,6 @@
v-if="showOnboardingGuide"
:never-seen="hasSpecialBadge"
/>
<gift-one-get-one-notification
v-if="shouldShowG1g1"
:notification="g1g1Notification"
:event-key="g1g1EventKey"
@notification-removed="handleG1g1Removed"
/>
<component
:is="notification.type"
v-for="notification in notifications"
@@ -120,7 +114,6 @@
<script>
import * as quests from '@/../../common/script/content/quests';
import { hasCompletedOnboarding } from '@/../../common/script/libs/onboarding';
import find from 'lodash/find';
import { mapState, mapActions } from '@/libs/store';
import notificationsIcon from '@/assets/svg/notifications.svg?raw';
import MenuDropdown from '../ui/customMenuDropdown';
@@ -158,7 +151,6 @@ export default {
CARD_RECEIVED,
CHALLENGE_INVITATION,
GIFT_ONE_GET_ONE,
GiftOneGetOneNotification: GIFT_ONE_GET_ONE,
GROUP_TASK_ASSIGNED,
GROUP_TASK_CLAIMED,
GROUP_TASK_NEEDS_WORK,
@@ -186,14 +178,17 @@ export default {
hasSpecialBadge: false,
quests,
openStatus: undefined,
g1g1Hidden: false,
actionableNotifications: [
'GUILD_INVITATION', 'PARTY_INVITATION', 'CHALLENGE_INVITATION',
'QUEST_INVITATION',
],
// A list of notifications handled by this component,
// listed in the order they should appear in the notifications panel.
// NOTE: Those not listed here won't be shown in the notification panel!
handledNotifications: [
'NEW_STUFF',
'ITEM_RECEIVED',
'GIFT_ONE_GET_ONE',
'GROUP_TASK_NEEDS_WORK',
'GUILD_INVITATION',
'PARTY_INVITATION',
@@ -212,10 +207,7 @@ export default {
};
},
computed: {
...mapState({
user: 'user.data',
currentEventList: 'worldState.data.currentEventList',
}),
...mapState({ user: 'user.data' }),
notificationsOrder () {
// Returns a map of NOTIFICATION_TYPE -> POSITION
const orderMap = {};
@@ -294,9 +286,9 @@ export default {
return notifications;
},
// The total number of notification, shown inside the dropdown
notificationsCount () {
const g1g1Count = this.shouldShowG1g1 ? 1 : 0;
return this.notifications.length + g1g1Count;
return this.notifications.length;
},
hasUnseenNotifications () {
return this.notifications.some(notification => (notification.seen === false));
@@ -307,30 +299,6 @@ export default {
showOnboardingGuide () {
return !hasCompletedOnboarding(this.user);
},
currentG1g1Event () {
return find(this.currentEventList, event => event.promo === 'g1g1');
},
g1g1EventKey () {
if (!this.currentG1g1Event || !this.currentG1g1Event.start) return null;
const startDate = new Date(this.currentG1g1Event.start);
return `${startDate.getFullYear()}-${startDate.getMonth()}`;
},
shouldShowG1g1 () {
if (!this.currentG1g1Event) return false;
const eventKey = this.g1g1EventKey;
if (eventKey && window.sessionStorage.getItem(`hide-g1g1-${eventKey}`) === 'true') {
return false;
}
return !this.g1g1Hidden;
},
g1g1Notification () {
return {
type: 'GIFT_ONE_GET_ONE',
id: `g1g1-event-${this.currentG1g1Event?.start || 'default'}`,
data: {},
seen: false,
};
},
},
mounted () {
const onboardingPanelState = getLocalSetting(CONSTANTS.keyConstants.ONBOARDING_PANEL_STATE);
@@ -396,9 +364,6 @@ export default {
isActionable (notification) {
return this.actionableNotifications.indexOf(notification.type) !== -1;
},
handleG1g1Removed () {
this.g1g1Hidden = true;
},
},
};

View File

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

View File

@@ -454,14 +454,17 @@ export default {
},
isUserMentioned () {
const message = this.msg;
if (message.highlight) {
return true;
}
const { user } = this;
const displayName = user.profile.name;
const { username } = user.auth.local;
if (!username) return false;
const usernamePattern = new RegExp(`@${escapeRegExp(username)}(?:\\b|(?=[^a-zA-Z0-9_]))`, 'i');
message.highlight = usernamePattern.test(message.text);
const pattern = `@(${escapeRegExp(displayName)}|${escapeRegExp(username)})(\\b)`;
message.highlight = new RegExp(pattern, 'i').test(message.text);
return message.highlight;
},
flagCountDescription () {

View File

@@ -12,12 +12,14 @@
class="staff col-6 p-0"
>
<div class="d-flex">
<div
<router-link
class="title"
:to="{'name': 'userProfile', 'params': {'userId': user.uuid}}"
>
{{ user.name }}
</div>
</router-link>
<div
v-if="user.type === 'Staff'"
class="svg-icon staff-icon ml-1"
v-html="icons.tierStaff"
></div>

View File

@@ -120,9 +120,9 @@
>
<ul>
<li>
{{ $t('commGuideAKA', {habitName: 'Viirus', realName: 'Phillip'}) }}
({{ $t('commGuideOnGitHub', {gitHubName: 'phillipthelen'}) }})
- Developer
{{ $t('commGuideAKA', {habitName: 'heyeilatan', realName: 'Natalie'}) }}
({{ $t('commGuideOnGitHub', {gitHubName: 'CuriousMagpie'}) }})
- Web Developer
</li>
<li>
{{ $t('commGuideAKA', {habitName: 'redphoenix', realName: 'Vicky'}) }}
@@ -133,6 +133,10 @@
{{ $t('commGuideAKA', {habitName: 'Beffymaroo', realName: 'Beth'}) }}
- Art, Community Management, Many Hats
</li>
<li>
{{ $t('commGuideAKA', {habitName: 'SabreCat', realName: 'Sabe'}) }}
- Web Developer
</li>
<li>
{{ $t('commGuideAKA', {habitName: 'Apollo', realName: 'Tressley'}) }}
- Designer
@@ -142,13 +146,8 @@
- Mobile Designer
</li>
<li>
{{ $t('commGuideAKA', {habitName: 'SabreCat', realName: 'Kalista'}) }}
- Web Developer
</li>
<li>
{{ $t('commGuideAKA', {habitName: 'fizself', realName: 'Hafiz'}) }}
({{ $t('commGuideOnGitHub', {gitHubName: 'hafizzle'}) }})
- Developer
{{ $t('commGuideAKA', {habitName: 'Viirus', realName: 'Phillip'}) }}
- Mobile Developer
</li>
</ul>
<p v-html="$t('commGuidePara013')"></p>
@@ -157,7 +156,7 @@
<em>
Lemoness, lefnire, Slappybag, litenull, Shaner, Bobbyroberts99, wc8,
Breadstrings, Megan, Blade, Daniel the Bard, deilann, shanaqui, Nakonana,
Dewines, Alys, Fox_town, MaybeSteveRogers, Cantras, and heyeilatan.
Dewines, Alys, Fox_town, MaybeSteveRogers, and Cantras.
</em>
</p>
<h2 id="final">

View File

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

View File

@@ -3,10 +3,14 @@ import isEqual from 'lodash/isEqual';
import keys from 'lodash/keys';
import pick from 'lodash/pick';
import amplitude from 'amplitude-js';
import { gtag, install } from 'ga-gtag';
import Vue from 'vue';
import getStore from '@/store';
const AMPLITUDE_KEY = import.meta.env.AMPLITUDE_KEY;
const DEBUG_ENABLED = import.meta.env.DEBUG_ENABLED === 'true';
const GA_ID = import.meta.env.GA_ID;
const IS_PRODUCTION = import.meta.env.NODE_ENV === 'production';
const REQUIRED_FIELDS = ['eventCategory', 'eventAction'];
let analyticsLoading = false;
@@ -65,6 +69,10 @@ function _gatherUserStats (properties) {
export function safeSetup (userId) {
if (analyticsLoading || analyticsReady) return;
analyticsLoading = true;
install(GA_ID, {
debug_mode: DEBUG_ENABLED || !IS_PRODUCTION,
user_id: userId,
});
amplitude.getInstance().init(AMPLITUDE_KEY, userId);
analyticsReady = true;
analyticsLoading = false;
@@ -82,6 +90,7 @@ export function track (properties, options = {}) {
// Track events on the server by default
if (trackOnClient === true) {
amplitude.getInstance().logEvent(properties.eventAction, properties);
gtag('event', properties.eventAction, properties);
} else {
const store = getStore();
store.dispatch('analytics:trackEvent', properties);
@@ -96,6 +105,7 @@ export function updateUser (properties = {}) {
// Use nextTick to avoid blocking the UI
Vue.nextTick(() => {
_gatherUserStats(properties);
gtag('set', 'user_properties', properties);
forEach(properties, (value, key) => {
const identify = new amplitude.Identify().set(key, value);
amplitude.getInstance().identify(identify);

View File

@@ -1,16 +1,7 @@
import habiticaMarkdown from 'habitica-markdown/withMentions';
import escapeRegExp from 'lodash/escapeRegExp';
export default function renderWithMentions (text, user) {
if (!text) return null;
const env = { userName: user.auth.local.username };
let html = habiticaMarkdown.render(String(text), env);
if (user.auth.local.username) {
const username = escapeRegExp(user.auth.local.username);
const regex = new RegExp(`(<span class="at-text">@)(${username})(</span>)`, 'gi');
html = html.replace(regex, (match, p1, p2, p3) => `${p1.replace('at-text', 'at-text at-highlight')}${p2}${p3}`);
}
return html;
const env = { userName: user.auth.local.username, displayName: user.profile.name };
return habiticaMarkdown.render(String(text), env);
}

View File

@@ -30,8 +30,8 @@ export default [
uuid: '61b2c855-0a30-444c-bcc6-1cac876460b0',
},
{
name: 'fizself',
name: 'heyeilatan',
type: 'Staff',
uuid: 'e39ea3eb-28d2-48da-8568-7a5b0e64498e',
uuid: 'f4e5c6da-0617-48bf-b3bd-9f97636774a8',
},
];

View File

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

View File

@@ -1,6 +1,8 @@
import axios from 'axios';
import { authAsCredentialsState, LOCALSTORAGE_AUTH_KEY } from '@/libs/auth';
const GA_ID = import.meta.env.GA_ID;
function saveLocalDataAuth (store, apiId, apiToken) {
const credentialsObj = {
auth: {
@@ -121,6 +123,9 @@ export async function appleAuth (store, params) {
export function logout (store, options = {}) {
localStorage.clear();
sessionStorage.clear();
if (window.gtag) {
window.gtag('config', GA_ID, { user_id: null });
}
const query = options.redirectToLogin === true ? '?redirectToLogin=true' : '';
window.location.href = `/logout-server${query}`;
}

View File

@@ -12,12 +12,12 @@ describe('renderWithMentions', () => {
expect(result).to.be.null;
});
test('does not highlight displayname to prevent impersonation', () => {
test('highlights displayname', () => {
const text = 'hello @displayedUser with text after';
const result = renderMarkdown(text, user('user', 'displayedUser'));
expect(result).to.contain('<span class="at-text">@displayedUser</span>');
expect(result).to.not.contain('<span class="at-text at-highlight">@displayedUser</span>');
expect(result).to.contain('<span class="at-text at-highlight">@displayedUser</span>');
});
test('highlights username', () => {
@@ -56,8 +56,7 @@ describe('renderWithMentions', () => {
const result = renderMarkdown(plainText, user('use', 'mentions'));
expect(result).to.contain('<span class="at-text">@mentions</span>');
expect(result).to.not.contain('<span class="at-text at-highlight">@mentions</span>');
expect(result).to.contain('<span class="at-text at-highlight">@mentions</span>');
expect(result).to.contain('<span class="at-text at-highlight">@use</span>');
expect(result).to.contain('<span class="at-text">@mail</span>');
expect(result).to.not.contain('<span class="at-text at-highlight">@mentions</span>.com');

View File

@@ -26,6 +26,7 @@ const envVars = [
'EMAILS_COMMUNITY_MANAGER_EMAIL',
'EMAILS_TECH_ASSISTANCE_EMAIL',
'EMAILS_PRESS_ENQUIRY_EMAIL',
'GA_ID',
'STRIPE_PUB_KEY',
'GOOGLE_CLIENT_ID',
'APPLE_AUTH_CLIENT_ID',

View File

@@ -108,6 +108,5 @@
"resetFlagCount": "Markierungszähler zurücksetzen",
"cannotClone": "Diese Herausforderung kann nicht dupliziert werden, weil einer oder mehrere Spieler sie als unangemessen gemeldet haben. Einer der Mitarbeiter wird dich in Kürze mit Anweisungen kontaktieren. Wenn mehr als 48 Stunden vergangen sind, und du nichts von ihnen gehört hast, schicke bitte eine Email an admin@habitica.com, um Unterstützung zu erhalten.",
"resetFlags": "Markierungen zurücksetzen",
"messageChallengeFlagOfficial": "Offizielle Herausforderungen können nicht gemeldet werden.",
"deleteChallengeRefundDescription": "Wenn du diese Herausforderung löschst, bekommst du den Preis in Edelsteinen erstattet und die Aufgaben der Herausforderung verbleiben auf der Aufgabentafel der Teilnehmer."
"messageChallengeFlagOfficial": "Offizielle Herausforderungen können nicht gemeldet werden."
}

View File

@@ -28,10 +28,10 @@
"marketing1Lead1Title": "Mache dein Leben zum Spiel",
"marketing1Lead1": "Habitica ist die perfekte App, für alle die Probleme mit ToDo-Listen haben. Wir verwenden bekannte Spiel-Mechaniken wie Belohnungen in Gold, XP und Gegenstände, die dir dabei helfen, dich produktiver zu fühlen und dein Erfolgserlebnis zu steigern, wenn du Aufgaben vollendest. Je besser Du Dich dabei anstellst, umso weiter kommst Du im Spiel.",
"marketing1Lead2Title": "Rüsten dich mit Stil aus",
"marketing1Lead2": "Sammele Schwerter, Rüstungen und vieles mehr mit dem Gold, das du beim Vollenden von Aufgaben verdienst. Mit hunderten von Stücken zum Sammeln, aus denen du auswählen kannst, werden dir die Kombinationen zum Ausprobieren nie ausgehen. Optimiere deine Werte, deinen Style oder beides! ",
"marketing1Lead2": "Sammele Schwerter, Rüstungen und vieles mehr mit Gold, welches du beim Vollenden von Aufgaben verdienst. Mit hunderten von Ausrüstungsstücken, die du sammeln und auswählen kannst, werden dir nie Kombinationen zum Ausprobieren ausgehen. Optimiere deine Statistik, deinen Style oder beides zusammen! ",
"marketing1Lead3Title": "Verdiene Belohnungen für deine Bemühungen",
"marketing1Lead3": "Etwas zu haben, auf das man sich freuen kann, mag den Unterschied ausmachen, ob man eine Aufgabe erledigt oder ob sie einen wochenlang quält. Wenn das Leben keine Belohnung bietet ist Habitica für dich da! Du wirst für jede Aufgabe belohnt, aber Überraschungen gibt es an jeder Ecke - also mach weiter so! ",
"marketing2Header": "Verbünde dich mit Freunden",
"marketing2Header": "Schließe dich mit Freunden zusammen",
"marketing2Lead1Title": "Soziale Produktivität",
"marketing2Lead1": "Hole dir einen Motivationsschub, indem du mit anderen zusammenarbeitest, konkurrierst und interagierst! Habitica wurde entwickelt, um den effektivsten Teil eines jeden Selbstverbesserungsprogramms zu nutzen: soziale Verantwortung.",
"marketing2Lead2Title": "Bekämpfe Monster in Quests",

View File

@@ -3437,7 +3437,5 @@
"shieldSpecialFall2025WarriorText": "Sasquatch Schild",
"shieldSpecialFall2025WarriorNotes": "Verschaffe dir etwas mehr Zeit zum Nachdenken und Planen, indem du dich vor deinen nächsten Tagesaufgaben abschirmst. Erhöht die Konstitution um <%= con %>. Limitierte Auflage Herbst 2025 Ausrüstung.",
"shieldSpecialFall2025HealerNotes": "Verschaffe dir etwas mehr Zeit, um Vorräte zu sammeln, indem du dich vor deinen Aufgaben abschirmst. Erhöht die Konstitution um <%= con %>. Limitierte Ausgabe Herbst 2025 Ausrüstung.",
"shieldArmoireSoftOrangePillowNotes": "Der vorbereitete Krieger packt für jede Expedition ein Kissen ein. Mach dich bereit, neue Verpflichtungen zu übernehmen ... sogar während du ein Nickerchen machst. Erhöht Intelligenz und Wahrnehmung um jeweils <%= attrs %>. Verzauberter Kleiderschrank: Orangenes Loungewear-Set (Gegenstand 3 von 3).",
"bodyMystery202509Text": "Schal des windgepeitschten Wanderers",
"armorSpecialFall2025RogueNotes": "Ein hartes und schmales Ziel in dieser saisonalen Rüstung ist am schwersten zu treffen. Erhöht die Wahrnehmung um <%= per %>. Limitierte Ausgabe Herbst 2025 Ausrüstung."
"shieldArmoireSoftOrangePillowNotes": "Der vorbereitete Krieger packt für jede Expedition ein Kissen ein. Mach dich bereit, neue Verpflichtungen zu übernehmen ... sogar während du ein Nickerchen machst. Erhöht Intelligenz und Wahrnehmung um jeweils <%= attrs %>. Verzauberter Kleiderschrank: Orangenes Loungewear-Set (Gegenstand 3 von 3)."
}

View File

@@ -241,6 +241,5 @@
"titleCustomizations": "Individualisierungen",
"targetUserNotExist": "Zielbenutzer: '<%= userName %>' existiert nicht.",
"newMessage": "Neue Nachricht",
"rememberToBeKind": "Bitte sei freundlich, respektvoll, und folge den <a href='/static/community-guidelines' target='_blank'>Community-Richtlinien</a>.",
"gem": "Edelstein"
"rememberToBeKind": "Bitte sei freundlich, respektvoll, und folge den <a href='/static/community-guidelines' target='_blank'>Community-Richtlinien</a>."
}

View File

@@ -1,5 +1,5 @@
{
"stable": "Haustiere und Reittiere",
"stable": "Haus- und Reittiere",
"pets": "Haustiere",
"activePet": "Aktives Haustier",
"noActivePet": "Kein aktives Haustier",

View File

@@ -69,7 +69,6 @@
"awardWinners": "Award Winner",
"doYouWantedToDeleteChallenge": "Do you want to delete this Challenge?",
"deleteChallenge": "Delete Challenge",
"deleteChallengeRefundDescription": "If you delete this Challenge, you will be refunded the Gem prize and the Challenge tasks will remain on the participants' task boards.",
"challengeNamePlaceholder": "What is your Challenge name?",
"challengeSummary": "Summary",
"challengeSummaryPlaceholder": "Write a short description advertising your Challenge to other Habiticans. What is the main purpose of your Challenge and why should people join it? Try to include useful keywords in the description so that Habiticans can easily find it when they search!",

View File

@@ -51,7 +51,6 @@
"notEnoughGems": "Not enough Gems",
"alreadyHave": "Whoops! You already have this item. No need to buy it again!",
"delete": "Delete",
"gem": "Gem",
"gems": "Gems",
"needMoreGems": "Need More Gems?",
"needMoreGemsInfo": "Purchase Gems now, or become a subscriber to buy Gems with Gold, get monthly mystery items, enjoy increased drop caps and more!",

View File

@@ -116,7 +116,7 @@
"needsTextPlaceholder": "Type your message here.",
"messageCopiedToClipboard": "Message copied to clipboard.",
"leaderOnlyChallenges": "Only group leader can create challenges",
"sendGift": "Send Gift",
"sendGift": "Send a Gift",
"selectGift": "Select Gift",
"selectSubscription": "Select Subscription",
"sendGiftToWhom": "Who would you like to send a gift to?",

View File

@@ -108,6 +108,5 @@
"resetFlags": "Reiniciar marcas",
"cannotClose": "Este Desafío no puede cerrarse porque uno o más jugadores lo han marcado como inapropiado. Un miembro del Personal te contactará pronto con instrucciones. Si han pasado más de 48 horas y no has recibido noticias de ellos, envía un correo a admin@habitica.com para solicitar ayuda.",
"cannotMakeChallenge": "No puedes crear un Desafío público porque tu cuenta no tiene privilegios de chat en este momento. Envía un mensaje a admin@habitica.com para obtener más información.",
"messageChallengeFlagOfficial": "Los Desafíos Oficiales no se pueden notificar.",
"deleteChallengeRefundDescription": "Si cancelas este Desafío, recuperarás las Gemas de la recompensa y las tareas del Desafío permanecerán en los listados de tareas de los participantes."
"messageChallengeFlagOfficial": "Los Desafíos Oficiales no se pueden notificar."
}

View File

@@ -3389,7 +3389,7 @@
"weaponSpecialFall2025MageNotes": "Una poderosa arma capaz de trazar una senda segura a través de los terrores del Bosque Negro. Aumenta la Inteligencia en <%= int %> y la Percepción en <%= per %>. Equipamiento de Edición Limitada Otoño 2025.",
"weaponSpecialFall2025WarriorText": "Hacha de Bigfoot",
"weaponSpecialFall2025HealerText": "Hacha Kobold",
"weaponSpecialFall2025HealerNotes": "Una poderosa arma capaz de trazar una senda segura a través de los obstáculos del Bosque Negro. Aumenta la Inteligencia en <%= int %>. Equipamiento de Edición Limitada Otoño 2025.",
"weaponSpecialFall2025HealerNotes": "Una poderosa arma capaz de trazar una senda segura a través de los obstáculos del Bosque Negro. Aumenta la Fuerza en <%= str %>. Equipamiento de Edición Limitada Otoño 2025.",
"weaponSpecialFall2025MageText": "Hacha de Fantasma Enmascarado",
"weaponMystery202511Text": "Espada Escarcha",
"weaponMystery202511Notes": "El halo helado de esta espada te permitirá realizar con rapidez incluso las tareas rojas más oscuras. No otorga ningún beneficio. Artículo de Suscriptor Noviembre 2025.",

View File

@@ -241,6 +241,5 @@
"playerReportModalBody": "Solo deberías informar de un jugador que de alguna forma quebrantara las <%= firstLinkStart %>Normas de la Comunidad<%= linkEnd %> y/o <%= secondLinkStart %>los Terminos de Servicio<%= linkEnd %>. Enviar un informe falso es una clara violación de la Normas de la Comunidad de Habitica.",
"newMessage": "Nuevo Mensaje",
"targetUserNotExist": "Usuario objetivo: '<%= userName %>' no existe.",
"rememberToBeKind": "Por favor recuerda ser bondadoso, respetuoso y seguir las <a href='/static/community-guidelines' target='_blank'>Normas de la Comunidad</a>.",
"gem": "Gema"
"rememberToBeKind": "Por favor recuerda ser bondadoso, respetuoso y seguir las <a href='/static/community-guidelines' target='_blank'>Normas de la Comunidad</a>."
}

View File

@@ -96,7 +96,7 @@
"optional": "Opcional",
"needsTextPlaceholder": "Escribe tu mensaje aquí.",
"leaderOnlyChallenges": "Sólo el Líder del Grupo puede crear desafíos",
"sendGift": "Enviar regalo",
"sendGift": "Enviar un regalo",
"inviteFriends": "Invitar Amigos",
"inviteByEmail": "Invita por correo electrónico",
"inviteMembersHowTo": "Invita gente a través de un correo electrónico válido o el ID de usuario de 36 dígitos. Si el correo electrónico no ha sido registrado aún, le invitaremos a unirse a Habitica.",

View File

@@ -271,7 +271,5 @@
"privacySettingsOverview": "Habitica usa las cookies para analizar el rendimiento, gestionar solicitudes de soporte y brindarle la mejor experiencia de juego posible. Para eso, necesitamos pedirte los siguientes permisos. Puedes cambiar tus preferencias en cualquier momento desde los ajustes de tu cuenta.",
"usedForSupport": "Estás se usan para mejorar la experiencia del usuario, el rendimiento, y los servicios de nuestra página web y nuestras aplicaciones. Estos datos se usan para ayudar a nuestro equipo de soporte cuando tienen que gestionar tanto solicitudes como informes de error.",
"privacyOverview": "En el mundo en el que vivimos, parece que todas las compañías buscan obtener beneficios de los datos que recopilan acerca de nosotros. Esto nos dificulta la búsqueda de una aplicación que nos ayude a mejorar nuestros hábitos y estilo de vida. Habitica usa cookies que almacenan nuestros datos solo para analizar el rendimiento, gestionar solicitudes de soporte y brindarnos la mejor experiencia de juego posible. Aún así puedes cambiar tus preferencias en cualquier momento desde los ajustes de tu cuenta.",
"acceptAllCookies": "Aceptar Todas las Cookies",
"gpcWarning": "<a href='<%= url %>' target='_blank'>GPC</a>está activado. Al activar el seguimiento de abajo, se anulará esto y se enviarán datos a nuestros socios analíticos.",
"gpcPlusAnalytics": "<a href='<%= url %>' target='_blank'>GPC</a>está activado. Ha aceptado el seguimiento y envío de datos a nuestros socios analíticos."
"acceptAllCookies": "Aceptar Todas las Cookies"
}

View File

@@ -108,6 +108,5 @@
"cannotClone": "Ce Défi ne peut être dupliqué car un·e ou plusieurs joueu·r·se·s l'ont signalé comme inapproprié. Un·e membre de l'équipe va vous contacter sous peu avec des instructions. Si vous n'avez pas de nouvelles après 48 heures, merci d'envoyer un courriel à admin@habitica.com.",
"resetFlags": "Réinitialiser les Signalements",
"cannotMakeChallenge": "Vous ne pouvez pas créer de Défis publics car votre compte n'a pour le moment pas les accès aux discussions. Merci de contacter admin@habitica.com pour plus d'informations.",
"messageChallengeFlagOfficial": "Les Défis Officiels ne peuvent pas être signalés.",
"deleteChallengeRefundDescription": "Si vous supprimez ce Défi, les Gemmes investies vous seront restituées et les Tâches du Défis ne disparaîtront pas des Tâches des participant·e·s."
"messageChallengeFlagOfficial": "Les Défis Officiels ne peuvent pas être signalés."
}

View File

@@ -241,6 +241,5 @@
"titleCustomizations": "Personnalisations",
"rememberToBeKind": "N'oubliez pas d'être bienveillant·e, respectueu·x·se, et de suivre le <a href='/static/community-guidelines' target='_blank'>Guide de la Communauté</a>.",
"newMessage": "Nouveau Message",
"targetUserNotExist": "L'Utilisat·eur·rice '<%= userName %>' n'existe pas.",
"gem": "Gemme"
"targetUserNotExist": "L'Utilisat·eur·rice '<%= userName %>' n'existe pas."
}

View File

@@ -271,7 +271,5 @@
"habiticaPrivacyPolicy": "Politique de Confidentialité d'Habitica",
"privacyOverview": "Dans le monde actuel, on peut avoir l'impression que toutes les entreprises veulent exploiter nos données, ce qui peut rendre la recherche d'application pour améliorer ses habitudes compliquée. Habitica n'utilise les cookies que pour enregistrer des données permettant l'analyse de performance, répondre aux requêtes du support, et vous faire profiter de la meilleure expérience ludique possible. Vous pouvez changer vos préférences à tout moment dans les paramètres de votre compte.",
"usedForSupport": "Sont utilisés pour améliorer l'expérience utilisat·eur·rice, les performances et les services pour notre site et nos applications. Ces données sont utilisées par l'équipe du support pour la résolution de requêtes et rapports de bug.",
"privacySettingsOverview": "Habitica utilise les cookies pour enregistrer des données permettant l'analyse de performance, répondre aux requêtes du support, et vous faire profiter de la meilleure expérience ludique possible. Pour cela, nous devons vous demander quelques autorisations. Vous pouvez changer vos préférences à tout moment dans les paramètres de votre compte.",
"gpcWarning": "<a href='<%= url %>' target='_blank'>La GPC (Prise en charge du contrôle Global de la vie Privée)</a> est activée. Activer la traçabilité ci-dessous annulera la GPC et enverra des données à nos partenaires analytiques.",
"gpcPlusAnalytics": "<a href='<%= url %>' target='_blank'>La GPC (Prise en charge du contrôle Global de la vie Privée)</a> est activée. Vous avez activé la traçabilité pour que vous données soient transférées à nos partenaires analytiques."
"privacySettingsOverview": "Habitica utilise les cookies pour enregistrer des données permettant l'analyse de performance, répondre aux requêtes du support, et vous faire profiter de la meilleure expérience ludique possible. Pour cela, nous devons vous demander quelques autorisations. Vous pouvez changer vos préférences à tout moment dans les paramètres de votre compte."
}

View File

@@ -14,18 +14,18 @@
"yourProgress": "Tvoj napredak",
"yourRewards": "Tvoje nagrade",
"onboardingCompleteDescSmall": "Ako želiš još više, pogledaj Postignuća i počni skupljati!",
"achievementAridAuthorityText": "Pripitomio/la je sve pustinjske jahače životinje.",
"achievementAridAuthorityText": "Ukrotio/la je sve pustinjske životinje za jahanje.",
"onboardingProgress": "<%= percentage %>% napredak",
"achievementAridAuthorityModalText": "Ukrotila/ukrotio si sve pustinjske životinje za jahanje!",
"achievementAridAuthorityModalText": "Ukrotio/la si sve pustinjske životinje za jahanje!",
"earnedAchievement": "Zaslužio/la si postignuće!",
"gettingStartedDesc": "Dovršite ove početne zadatke i osvojit ćete <strong>5 postignuća</strong> i <strong class=\"gold-amount\">100 zlata</strong> kada završite!",
"achievementLostMasterclasserModalText": "Završio/la si svih šesnaest pustolovina iz serije Masterclasser Quest i riješio/la misterij nestalog majistora!",
"achievementAllYourBaseModalText": "Ukrotila/ukrotio si sve temeljne životinje za jahanje!",
"achievementLostMasterclasserModalText": "Završio/la si svih šesnaest pustolovina iz serije Masterclasser Quest i riješio/la misterij Nestalog majistora!",
"achievementAllYourBaseModalText": "Ukrotio/la si sve bazne životinje za jahanje!",
"achievementBackToBasicsModalText": "Skupio/la si sve osnovne ljubimce!",
"achievementDustDevilText": "Sakupio/la je sve pustinjske ljubimce.",
"achievementBackToBasicsText": "Sakupio/la je sve osnovni ljubimci.",
"achievementBackToBasicsText": "Prikupio/la je sve osnovne ljubimce.",
"achievementMindOverMatter": "Um Nad Materijom",
"achievementAllYourBaseText": "Ukrotila/ukrotio je sve temeljne životinje za jahanje.",
"achievementAllYourBaseText": "Ukrotio/la je sve bazne životinje za jahanje.",
"achievementDustDevilModalText": "Skupio/la si sve pustinjske ljubimce!",
"achievementJustAddWater": "Samo Dodaj Vode",
"onboardingComplete": "Dovršili ste svoje zadatke za početnike!",
@@ -36,134 +36,119 @@
"achievementGroupsBeta2022": "Interaktivni Beta Ispitivač",
"achievementGroupsBeta2022Text": "Vi i vaša grupa pružili ste neprocjenjive povratne informacije kako biste pomogli testiranju Habitice.",
"achievementGroupsBeta2022ModalText": "Vi i vaše grupe pomogli ste Habitici testiranjem i pružanjem povratnih informacija!",
"foundNewItemsCTA": "Krenite u svoj inventar i pokušajte kombinirati svoj novi napitak za izlijeganje i jaje!",
"achievementMindOverMatterText": "Završio/la je zadatke za kućne ljubimce 'Rock', 'Slime' i 'Yarn'.",
"achievementJustAddWaterModalText": "Završio/la si zadatke ljubimaca hobotnice, morskog konjica, sipe, kita, kornjače, golobrade, morske zmije i dupina.",
"achievementAllYourBase": "Sve vaše baze",
"achievementKickstarter2019Text": "Podržao/la je Pin Kickstarter projekt iz 2019. godine.",
"achievementPartyUp": "Udružio/la si se s članom družbine!",
"achievementPartyOn": "Vaša grupa se proširila na 4 člana!",
"achievementMonsterMagus": arobnjak čudovišta",
"achievementUndeadUndertakerModalText": "Ukrotila/ukrotio si sve zombi životinje za jahanje!",
"achievementUndeadUndertaker": "Nedoumorni pogrebnik",
"achievementCreatedTaskText": "Kreirao/Kreirala je svoj prvi zadatak.",
"achievementCreatedTaskModalText": "Dodaj zadatak za nešto što želiš postići ove sedmice.",
"achievementCompletedTaskText": "Završio/la je svoj prvi zadatak.",
"achievementCompletedTaskModalText": "Označite svoje zadatke kako biste dobili nagrade.",
"achievementHatchedPetText": "Izlegao/la je svog prvog ljubimca.",
"achievementHatchedPetModalText": "Otiđite u svoj inventar i pokušajte kombinirati napitak za izleganje i jaje.",
"achievementFedPetText": "Nahranio/la je svog prvog ljubimca.",
"achievementFedPetModalText": "Postoji mnogo različitih vrsta hrane, ali ljubimci mogu biti izbirljivi.",
"achievementPurchasedEquipmentModalText": "Oprema je način za prilagođavanje svog avatara i poboljšanje svojih statistika.",
"achievementPrimedForPaintingModalText": "Sakupio/la si sve bijele ljubimce!",
"achievementPearlyProModalText": "Pripitomio/la si sve Bijele životinje za jahanje!",
"achievementTickledPinkText": "Prikupio/la je sve kućne ljubimce boje roza vate!",
"achievementTickledPinkModalText": "Prikupio/la si sve kućne ljubimce boje roza vate!",
"achievementRosyOutlookText": "Ukrotio/la je sve bijele i životinje boje roze vate.",
"achievementBugBonanzaModalText": "Završio/la si zadatke za kućne ljubimce: kukci - buba, leptir, puž i pauk!",
"achievementBareNecessities": "Najosnovnije Stvari",
"foundNewItemsCTA": "Krenite u svoj inventar i pokušajte kombinirati svoj novi napitak za izlijganje i jaje!",
"achievementMindOverMatterText": "Završio/la je zadatke za kućne ljubimce u Kamenu, Sluzi i Pređi.",
"achievementJustAddWaterModalText": "Završili ste zadatke kućnih ljubimaca hobotnice, morskog konjica, sipe, kita, kornjače, golobradne grane, morske zmije i dupina!",
"achievementAllYourBase": "Sve Vaše Bazično",
"achievementKickstarter2019Text": "Podržao projekt Pin Kickstarter 2019",
"achievementPartyUp": "Udružio si se s članom družbe!",
"achievementPartyOn": "Vaša družba je narasla na 4 člana!",
"achievementMonsterMagus": udovišni čarobnjak",
"achievementUndeadUndertakerModalText": "Ukrotio/la sisve Zombie životinje za jahanje!",
"achievementUndeadUndertaker": "Neumorni Pogrebnik",
"achievementCreatedTaskText": "Izradili su svoj prvi zadatak.",
"achievementCreatedTaskModalText": "Dodajte zadatak za nešto što biste željeli postići ovaj tjedan",
"achievementCompletedTaskText": "Izvršili su svoj prvi zadatak.",
"achievementCompletedTaskModalText": "Označite bilo koji od svojih zadataka kako biste zaradili nagrade",
"achievementHatchedPetText": "Izlegli su svog prvog ljubimca.",
"achievementHatchedPetModalText": "Prijeđite na svoj inventar i pokušajte kombinirati napitak za izleganje i jaje",
"achievementFedPetText": "Nahranili svog prvog ljubimca.",
"achievementFedPetModalText": "Postoji mnogo različitih vrsta hrane, ali kućni ljubimci mogu biti izbirljivi",
"achievementPurchasedEquipmentModalText": "Oprema je način da prilagodite svog avatara i poboljšate svoju statistiku",
"achievementPrimedForPaintingModalText": "Prikupio/la si sve Bijele ljubimce!",
"achievementPearlyProModalText": "Ukrotio/la si sve bijele životinje za jahanje!",
"achievementTickledPinkText": "Sakupio/la je sve Cotton Candy Roze Ljubimce.",
"achievementTickledPinkModalText": "Sakupio/la si sve Cotton Candy Roze Ljubimce!",
"achievementRosyOutlookText": "Ukrotio/la je sve Cotton Candy Roze životinje za jahanje.",
"achievementBugBonanzaModalText": "Dovršio/la simisije za kućne ljubimce Bube, Leptira, Pa i Pauka!",
"achievementBareNecessities": "Najpotrebnije",
"achievementAllThatGlittersText": "Ukrotio/la je sve zlatne životinje za jahanje.",
"achievementAllThatGlittersModalText": "Ukrotio/la si sve zlatne životinje za jahanjhe!",
"achievementBoneCollectorModalText": "Sakupio/la si sve Kosturske ljubimce!",
"achievementRedLetterDay": "Dan Crvenih Slova",
"achievementLegendaryBestiaryText": "Izlegao/la je sve standardne boje mitskih kućnih ljubimaca: zmaj, leteća svinja, grifon, morsku zmiju i jednoroga!",
"achievementAllThatGlittersModalText": "Ukrotio/la si sve zlatne životinje za jahanje!",
"achievementBoneCollectorModalText": "Sakupio/la sisve Kosturske Ljubimce!",
"achievementRedLetterDay": "Dan crvenih slova",
"achievementLegendaryBestiaryText": "Izlegao je sve standardne boje mitskih ljubimaca: zmaj, leteća svinja, grifon, morska zmija i jednorog!",
"achievementSeasonalSpecialistText": "Završio/la je sve proljetne i zimske sezonske zadatke: Lov na jaja, Trapper Djed Božićnjak i Pronađi mladunče!",
"achievementVioletsAreBlue": "Ljubičice su Plave",
"achievementVioletsAreBlueText": "Sakupio/la je sve ljubimve plave boje vune!",
"achievementVioletsAreBlueModalText": "Sakupio/la si sve ljubimve plave boje vune!",
"achievementWildBlueYonderText": "Ukrotio/la je sve životinje za jahanje plave boje vune!",
"achievementWildBlueYonderModalText": "Ukrotio/la si sve životinje za jahanje plave boje vune!",
"achievementVioletsAreBlueText": "Sakupio/la je sve Cotton Candy Plave ljubimce.",
"achievementVioletsAreBlueModalText": "Sakupio/la si sve Cotton Candy Plave ljubimce!",
"achievementWildBlueYonderText": "Ukrotio/la je sve Cotton Candy Plave životinje za jahanje.",
"achievementWildBlueYonderModalText": "Ukrotio/la si sve Cotton Candy Plave životinje za jahanje!",
"achievementShadeOfItAllText": "Ukrotio/la je sve životinje za jahanje boje sjene.",
"achievementZodiacZookeeperText": "Izlegao/la je sve standardne boje kućnih ljubimaca zodijaka: štakor, krava, zeko, zmija, konj, ovca, majmun, pijetao, vuk, tigar, leteće prase i zmaj!",
"achievementPrimedForPainting": "Temelj za bojanje",
"achievementRosyOutlookModalText": "Ukrotio/la si sve životinje za jahanje boje roze vate!",
"achievementPrimedForPainting": "Spremno za bojanje",
"achievementRosyOutlookModalText": "Ukrotio/la si sve Cotton Candy Roze životinje za jahanje!",
"achievementPolarPro": "Polarni Profesionalac",
"achievementPolarProText": "Izlegao/la je sve standardne boje polarnih ljubimaca: medvjeda, lisicu, pingvina, kita i vuka!",
"achievementPolarProModalText": "Sakupili ste sve polarne ljubimce!",
"achievementPolarProText": "Izlegao je sve standardne boje polarnih ljubimaca: medvjeda, lisicu, pingvina, kita i vuka!",
"achievementPolarProModalText": "Skupili ste sve Polarne Ljubimce!",
"achievementWoodlandWizard": "Šumski Čarobnjak",
"achievementWoodlandWizardText": "Izlegao/la je sve standardne boje šumskih stvorenja: jazavca, medvjeda, jelena, lisice, žabe, ježa, sove, puža, vjeverice i drvca!",
"achievementWoodlandWizardModalText": "Prikupili ste sve šumske ljubimce!",
"achievementWoodlandWizardModalText": "Skupili ste sve šumske ljubimce!",
"achievementPlantParent": "Roditelj Biljke",
"achievementPlantParentText": "Izlegao/la je sve standardne boje biljnih ljubimaca: Kaktus i Drvo!",
"achievementPlantParentModalText": "Sakupili ste sve biljne ljubimce!",
"achievementPlantParentModalText": "Sakupili ste sve Biljne ljubimce!",
"achievementReptacularRumble": "Reptilska Tutnjava",
"achievementReptacularRumbleText": "Izlegao/la je sve standardne boje kućnih ljubimaca reptila: Aligator, Pterodaktil, Zmija, Triceratops, Kornjača, Tiranosaurusa Rex i Velociraptora!",
"achievementReptacularRumbleModalText": "Sakupili ste sve reptilske ljubimce!",
"achievementReptacularRumbleText": "Izlegao/la je sve standardne boje kućnih ljubimaca reptila: Aligator, Pterodaktil, Zmija, Triceratops, Kornjača, Tiranosaurus Rex i Velociraptor!",
"achievementReptacularRumbleModalText": "Skupili ste sve kućne ljubimce reptile!",
"achievementLegendaryBestiary": "Legendarni Ukrotitelj Zvijeri",
"achievementUndeadUndertakerText": "Ukrotila/ukrotio je sve zombi životinje za jahanje.",
"achievementUndeadUndertakerText": "Ukrotio/la je sve Zombie životinje za jahanje.",
"achievementDomesticatedText": "Izlegao/la je sve standardne boje pripitomljenih kućnih ljubimaca: tvor, zamorac, pijetao, leteće prase, štakor, zeko, konj i krava!",
"achievementTickledPink": "Iznimno Sretan",
"achievementDomesticated": "IJA-IJA-JO",
"achievementBareNecessitiesModalText": "Završio/la si zadatak za kućne ljubimce: majmun, lenjivac i drvo-čedo.",
"achievementHatchedPet": "Izlegni ljubimca.",
"achievementMindOverMatterModalText": "Završio/la si zadatke za kućne ljubimce 'Rock', 'Slime' i 'Yarn'!",
"achievementGoodAsGold": "Dobar Kao Zlato",
"achievementLegendaryBestiaryModalText": "Sakupio/la si sve mitske ljubimce!",
"achievementSkeletonCrewModalText": "Ukrotio/la si sve Kosturske životinje za jahanje.",
"achievementTickledPink": "Zagolican do Rumenjenja",
"achievementDomesticated": "IJA-IJA-O",
"achievementBareNecessitiesModalText": "Završio/la si zadatke majmuna, ljenjivca i stabla!",
"achievementHatchedPet": "Izleći ljubimca",
"achievementMindOverMatterModalText": "Završili ste zadatke kućnih ljubimaca Kamen, Sluz i Pređa!",
"achievementGoodAsGold": "Dobar kao Zlato",
"achievementLegendaryBestiaryModalText": "Sakupili ste sve mitske ljubimce!",
"achievementSkeletonCrewModalText": "Ukrotio/la si sve Kosturske životinje za jahanje!",
"achievementSeeingRed": "Vidiš Crveno",
"achievementFedPet": "Nahranite ljubimca.",
"achievementBugBonanza": "Festival Kukaca",
"achievementPearlyPro": "Biseran Profesionalac",
"achievementFedPet": "Nahrani ljubimca",
"achievementBugBonanza": "Tulum Kukaca",
"achievementPearlyPro": "Biserni Profesionalac",
"achievementWildBlueYonder": "Daleka Divlja Plava",
"achievementRedLetterDayText": "Ukrotio/la je sve crvene životinje za jahanje.",
"achievementPurchasedEquipment": "Kupite komad opreme.",
"achievementRedLetterDayText": "Ukrotio/la je sve Crvene životinje za jahanje.",
"achievementPurchasedEquipment": "Kupite dio opreme",
"achievementSkeletonCrewText": "Ukrotio/la je sve Kosturske životinje za jahanje.",
"achievementMonsterMagusModalText": "Sakupio/sakupila si sve kućne ljubimce zombija!",
"achievementBugBonanzaText": "Završio/la je zadatke za kućne ljubimce: kukci - buba, leptir, puž i pauk.",
"achievementMonsterMagusModalText": "Sakupio/la si sve zombi ljubimce!",
"achievementBugBonanzaText": "Dovršio/la je misije za kućne ljubimce Bube, Leptira, Pa i Pauka.",
"achievementSkeletonCrew": "Kosturska Družina",
"achievementFreshwaterFriends": "Slatkovodni Prijatelji",
"achievementMonsterMagusText": "Sakupio/sakupila je sve kućne ljubimce zombija.",
"achievementFreshwaterFriendsModalText": "Završio/la si zadatak kućnih ljubimaca Axolotla, Žabe i Nilskog konja.",
"achievementFreshwaterFriends": "Slatkovodni prijatelji",
"achievementMonsterMagusText": "Sakupio/la je sve zombi ljubimce.",
"achievementFreshwaterFriendsModalText": "Završio/la sizadatke kućnih ljubimaca Axolotla, Žabe i Nilskog konja!",
"achievementGoodAsGoldText": "Sakupio/la je sve zlatne ljubimce.",
"achievementBoneCollector": "Sakupljač Kostiju",
"achievementGoodAsGoldModalText": "Sakupio/la si sve zlatne ljubimce.",
"achievementRosyOutlook": "Ružičasti pogled",
"achievementSeeingRedModalText": "Sakupio/la si sve crvene ljubimce.",
"achievementGoodAsGoldModalText": "Sakupio/la si sve zlatne ljubimce!",
"achievementRosyOutlook": "Ružičasti Izgled",
"achievementSeeingRedModalText": "Sakupio/la si sve Crvene ljubimce!",
"achievementKickstarter2019": "Pristalica Pin Kickstartera",
"achievementAllThatGlitters": "Sve Što Svjetluca",
"achievementSeeingRedText": "Sakupio/la je sve crvene ljubimce.",
"achievementCreatedTask": "Kreiraj svoj prvi zadatak",
"achievementFreshwaterFriendsText": "Završio/la je zadatak kućnih ljubimaca Axolotla, Žabe i Nilskog konja.",
"achievementCompletedTask": "Završi zadatak.",
"achievementBoneCollectorText": "Sakupio/la je sve Kosturske ljubimce.",
"achievementPurchasedEquipmentText": "Kupio/la je svoj prvi komad opreme.",
"achievementJustAddWaterText": "Završio/la je zadatke za kućne ljubimce 'Octopus', 'Seahorse', 'Cuttlefish', 'Whale', 'Turtle', 'Nudibranch', 'Sea Serpent' i 'Dolphin'.",
"achievementPrimedForPaintingText": "Prikupio/la je sve bijele ljubimce.",
"achievementRedLetterDayModalText": "Ukrotio/la si sve crvene životinje za jahanje!",
"achievementPearlyProText": "Pripitomio/la sve bijele životinje za jahanje.",
"achievementSeasonalSpecialistModalText": "Završio/la si sve sezonske zadatke!",
"achievementBareNecessitiesText": "Završio/la je zadatke za kućne ljubimce: majmun, lenjivac i drvo-čedo.",
"achievementAllThatGlitters": "Sve što Svjetluca",
"achievementSeeingRedText": "Sakupio/la je sve Crvene ljubimce.",
"achievementCreatedTask": "Kreirajte svoj prvi zadatak",
"achievementFreshwaterFriendsText": "Završio/la je zadatke kućnih ljubimaca Axolotla, Žabe i Nilskog konja.",
"achievementCompletedTask": "Izvršite zadatak",
"achievementBoneCollectorText": "Sakupio/la je sve Kosturske Ljubimce.",
"achievementPurchasedEquipmentText": "Kupili prvi komad opreme.",
"achievementJustAddWaterText": "Završio/la je zadatke ljubimaca hobotnice, morskog konjica, sipe, kita, kornjače, golobrade, morske zmije i dupina.",
"achievementPrimedForPaintingText": "Prikupio/la je sve Bijele ljubimce.",
"achievementRedLetterDayModalText": "Ukrotio/la si sve Crvene životinje za jahanje!",
"achievementPearlyProText": "Ukrotio/la je sve bijele životinje za jahanje.",
"achievementSeasonalSpecialistModalText": "Završili ste sve sezonske misije!",
"achievementBareNecessitiesText": "Završio/la je zadatke majmuna, ljenjivca i stabla.",
"achievementDomesticatedModalText": "Prikupili ste sve pripitomljene ljubimce!",
"achievementSeasonalSpecialist": "Sezonski Specijalist",
"achievementBirdsOfAFeather": "Ptice Istog Pera",
"achievementBirdsOfAFeatherModalText": "Prikupili ste sve leteće ljubimce!",
"achievementBirdsOfAFeather": "Ptice istog Pera",
"achievementBirdsOfAFeatherModalText": "Skupili ste sve leteće ljubimce!",
"achievementBirdsOfAFeatherText": "Izlegao/la je sve standardne boje letećih ljubimaca: Leteću svinju, Sovu, Papigu, Pterodaktila, Grifona, Sokola, Pauna i Pijetla!",
"achievementBoneToPick": "Nedovršena Posla",
"achievementBoneToPickText": "Izlegao/la je sve klasične i kosturske ljubimce iz zadatka!",
"achievementBoneToPickModalText": "Prikupili ste sve klasične i kućne ljubimce kosture iz zadatka!",
"achievementZodiacZookeeper": "Zodiac Čuvar Zoo Vrta",
"achievementZodiacZookeeperModalText": "Prikupili ste sve horoskopske ljubimce!",
"achievementBoneToPick": "Nemirne Kosti",
"achievementBoneToPickText": "Izlegao/la je sve klasične i Quest Kostur Ljubimce!",
"achievementBoneToPickModalText": "Izlegao/la si sve klasične i Quest Kostur Ljubimce!",
"achievementZodiacZookeeper": "Zodijak Čuvar Zoo-a",
"achievementZodiacZookeeperModalText": "Prikupili ste sve zodijak ljubimce!",
"achievementShadyCustomer": "Sumnjiva Mušterija",
"achievementShadyCustomerText": "Prikuio/la je sve ljubimce boje sjene.",
"achievementShadyCustomerModalText": "Prikuio/la si sve ljubimce boje sjene.",
"achievementShadeOfItAll": "Nijansa Svega",
"achievementShadeOfItAllModalText": "Ukrotio/la si sve životinje za jahanje boje sjene.",
"achievementShadyCustomerText": "Prikupio/la je sve ljubimce sjene.",
"achievementShadyCustomerModalText": "Prikupio/la si sve ljubimce sjene!",
"achievementShadeOfItAll": "Nijansa svega",
"achievementShadeOfItAllModalText": "Ukrotio/la si sve životinje za jahanje boje sjene!",
"achievementDinosaurDynasty": "Dinastija dinosaura",
"achievementDinosaurDynastyText": "Izlegao/la je sve standardne boje ljubimaca ptica i dinosaura: sokol, sova, papiga, paun, pingvin, pijetao, pterodaktil, t-rex, triceratops i velociraptor!",
"achievementDinosaurDynastyModalText": "Sakupio/la si sve ljubimce ptica i dinosaura!",
"achievementRoughRiderModalText": "Skupili ste sve osnovne boje neudobnih ljubimaca i jahaćih životinja!",
"achievementRodentRuler": "Vladar glodavaca",
"achievementRodentRulerModalText": "Skupili ste sve ljubimce glodavce!",
"achievementRoughRider": "Neustrašivi jahač",
"achievementRoughRiderText": "Izlegli ste sve osnovne boje neudobnih ljubimaca i jahaćih životinja: Kaktus, Jež i Kamen!",
"achievementCatsModalText": "Skupili ste sve ljubimce mačke!",
"achievementCats": "Gonič Mačaka",
"achievementDuneBuddyModalText": "Skupili ste sve ljubimce iz pustinje!",
"achievementRodentRulerText": "Izlegli ste sve standardne boje ljubimaca glodavaca: Zamorac, Štakor i Vjeverica!",
"achievementCatsText": "Izlegli ste sve standardne boje ljubimaca iz porodice mačaka: Gepard, Lav, Sabljozubi tigar i Tigar!",
"achievementBonelessBoss": "Bezkostni Šef",
"achievementBonelessBossText": "Izlegli ste sve standardne boje kućnih ljubimaca beskralješnjaka: Buba, Leptir, Sipa, Puž golać, Hobotnica, Puž i Pauk!",
"achievementBonelessBossModalText": "Sakupio si sve ljubimce beskralješnjake!",
"achievementDuneBuddy": "Pustinjski prijatelj",
"achievementDuneBuddyText": "Izlegli ste sve standardne boje ljubimaca iz pustinje: Armadillo, Kaktus, Lisica, Žaba, Zmija i Pauk!"
"achievementDinosaurDynastyModalText": "Sakupio/la si sve ljubimce ptica i dinosaura!"
}

View File

@@ -213,7 +213,7 @@
"backgroundStormyRooftopsNotes": "Šuljaj se po olujnim krovovima.",
"backgroundWindyAutumnText": "Vjetrovita jesen",
"backgroundWindyAutumnNotes": "Lovi lišće tijekom vjetrovite jeseni.",
"incentiveBackgrounds": "Standardne pozadine",
"incentiveBackgrounds": "Komplet običnih pozadina",
"backgroundVioletText": "Purpurna",
"backgroundVioletNotes": "Prpošna purpurna pozadina.",
"backgroundBlueText": "Plava",
@@ -765,10 +765,10 @@
"backgroundSnowyVillageNotes": "Divite se snježnom selu.",
"timeTravelBackgrounds": "Steampunk pozadine",
"backgroundAirshipText": "Cepelin",
"backgroundUnderwaterAmongKoiText": "Podvodni među Koi",
"backgroundAmongCattailsText": "Među Mačjim Repovima",
"backgroundAmongCattailsNotes": "Divite se močvarnim divljim životinjama među Cattails.",
"backgroundUnderwaterAmongKoiNotes": "Zaslijepite i budite zaslijepljeni svjetlucavim šaranima, Underwater Among Koi.",
"backgroundUnderwaterAmongKoiText": "Pod vodom Među Koi Ribama",
"backgroundAmongCattailsText": "Među rogozima",
"backgroundAmongCattailsNotes": "Diviti se divljini močvare među rogozima.",
"backgroundUnderwaterAmongKoiNotes": "Zabljesni i budi zaslijepljen od sjajnih šarana, pod vodom među koi ribama.",
"backgrounds052023": "SET 108: Izašlo u svibnju 2023.",
"backgroundInAPaintingText": "U slici",
"backgroundInAPaintingNotes": "Uživaj u kreativnim potragama unutar slike.",
@@ -796,47 +796,5 @@
"backgroundColorfulCoralNotes": "Zaronite među raznobojne koralje.",
"backgroundBoardwalkIntoSunsetText": "Prošetajte molom u zalazak sunca",
"backgrounds072023": "SET 110: Objavljen u srpnju 2023",
"backgroundBoardwalkIntoSunsetNotes": "Prošećite molom u zalazak sunca.",
"backgrounds112023": "SET 114: Izašlo u studenom 2023",
"backgroundGiantCatText": "Divovska mačka",
"backgroundGiantCatNotes": "Odmorite uz Divovsku Mačku.",
"backgroundBarrelCellarText": "Podrum s bačvama",
"backgroundAutumnTreeTunnelText": "Tunel jesenskog drveća",
"backgroundAutumnTreeTunnelNotes": "Uživajte u ljepoti tunela jesenskog drveća.",
"backgrounds082023": "SET 111: Izašlo u kolovozu 2023",
"backgroundBonsaiCollectionText": "Bonsai Kolekcija",
"backgroundBonsaiCollectionNotes": "Divite se predivnoj Bonsai kolekciji.",
"backgroundDreamyIslandText": "Otok iz snova",
"backgroundDreamyIslandNotes": "Uživajte u pogledu na Otoku iz snova.",
"backgroundRockGardenText": "Kameni vrt",
"backgroundRockGardenNotes": "Opustite se u Kamenom vrtu.",
"backgrounds122023": "SET 115: Izašlo u prosincu 2023",
"backgroundHolidayTreeForestText": "Šuma božićnog drveća",
"backgroundHolidayTreeForestNotes": "Ukrasite božićno drvce u šumi.",
"backgroundIceSculptureFestivalText": "Festival skulptura od leda",
"backgroundIceSculptureFestivalNotes": "Obiđite Festival skulptura od leda.",
"backgroundWinterFullMoonText": "Zimski puni mjesec",
"backgroundWinterFullMoonNotes": "Pogledajte zimski puni mjesec.",
"backgrounds012024": "SET 116: Izašlo u siječnju 2024",
"backgroundWinterMountainRangeText": "Zimski planinski lanac",
"backgroundWinterMountainRangeNotes": "Popnite se na zimski planinski lanac.",
"backgroundFrozenBluePondText": "Zaleđeno plavo jezerce",
"backgroundIceBubbleLakeText": "Jezero ledenih mjehurića",
"backgroundIceBubbleLakeNotes": "Pažljivo stojte na Jezeru ledenih mjehurića.",
"backgroundBarrelCellarNotes": "Potražite kulinarske poslastice u Podrumu s bačvama.",
"backgroundFrozenBluePondNotes": "Opustite se uz zaleđeno plavo jezerce.",
"backgrounds092023": "SET 112: Izašlo u rujnu 2023",
"backgroundMovingDayText": "Dan selidbe",
"backgroundMovingDayNotes": "Spakirajte se za Dan selidbe.",
"backgroundCoveredBridgeInAutumnText": "Prekriveni most u jesen",
"backgroundCoveredBridgeInAutumnNotes": "Prijeđite prekriveni most u jesen.",
"backgroundBaobabForestText": "Šuma Baobaba",
"backgroundBaobabForestNotes": "S divljenjem promatrajte Šumu Baobaba.",
"backgrounds102023": "SET 113: Izašlo u listopadu 2023",
"backgroundSpectralCandleRoomText": "Soba Spektralnih Svijeća",
"backgroundSpectralCandleRoomNotes": "Komunicirajte s duhovima u Sobi Spektralnih Svijeća.",
"backgroundMonstrousCaveText": "Čudovišna špilja",
"backgroundMonstrousCaveNotes": "Zagledajte se u ždrijelo Čudovišne špilje.",
"backgroundJackOLanternStacksText": "Gomile Jack O'Lantern bundeva",
"backgroundJackOLanternStacksNotes": "Divite se polju gomile Jack O'Lantern bundeva."
"backgroundBoardwalkIntoSunsetNotes": "Prošećite molom u zalazak sunca."
}

View File

@@ -3,20 +3,20 @@
"profile": "Profil",
"avatar": "Prilagodi Avatar",
"editAvatar": "Uredi avatara",
"noDescription": "Ovaj Habitičanin nije dodao opis.",
"noPhoto": "Ovaj Habitičanin nije dodao sliku.",
"noDescription": "Ovaj Habitičan nije dodao/la opis.",
"noPhoto": "Ovaj Habitičan nije dodao/la sliku.",
"other": "Ostalo",
"fullName": "Puno ime",
"fullName": "Puno Ime",
"displayName": "Ime za prikazivanje",
"changeDisplayName": "Promijeni ime za prikazivanje",
"newDisplayName": "Novo ime za prikazivanje",
"displayBlurbPlaceholder": "Molimo te da se predstaviš",
"displayBlurbPlaceholder": "Možeš li nam se predstaviti?",
"photoUrl": "URL fotografije",
"imageUrl": "URL slike",
"inventory": "Inventar",
"social": "Društveno",
"lvl": "lvl",
"buffed": "Ojačan",
"buffed": "Ojačan/a",
"bodyBody": "Tijelo",
"size": "Veličina",
"locked": "zaključano",
@@ -34,8 +34,8 @@
"beard": "Brada",
"mustache": "Brkovi",
"flower": "Cvijet",
"accent": "Naglasak",
"headband": "Traka za glavu",
"accent": "Akcenti",
"headband": "Obruč za kosu",
"wheelchair": "Invalidska kolica",
"extra": "Dodatno",
"rainbowSkins": "Teme u duginim bojama",
@@ -56,13 +56,13 @@
"autoEquipBattleGear": "Automatski opremi novu opremu",
"costume": "Kostim",
"useCostume": "Koristi Kostim",
"costumePopoverText": "Odaberi \"Koristi kostim\" kako bi odjenuo svog avatara bez utjecaja na bonuse svoje ratne opreme! Ovo znači da svog avatara možeš obući kako god želiš, a da pritom i dalje na sebi imaš najbolju ratnu opremu.",
"autoEquipPopoverText": "Odaberi ovu opciju za automatsko opremanje opreme kad ju kupiš.",
"costumeDisabled": "Uklonio si svoj kostim.",
"gearAchievement": "Zaradili ste postignuće \"Ultimativna Oprema\" za nadograđivanje svoje opreme do najjačeg kompleta za svoju klasu! Postigli ste sljedeće potpune komplete:",
"gearAchievementNotification": "Zaradili ste postignuće \"Ultimativna Oprema\" za nadograđivanje svoje opreme do najjačeg seta opreme za svoju klasu!",
"costumePopoverText": "Odaberi \"Koristi kostim\" kako bi opremio/la artikle za svog avatara bez utjecanja na Statistiku svoje Ratne Opreme! Ovo znači da svog avatara možeš obući kako god hoćeš, a da pritom i dalje imaš opremljenu najbolju Ratnu Opremu.",
"autoEquipPopoverText": "Odaberi ovu opciju za automatsko opremanje komada opreme kad ga kupiš.",
"costumeDisabled": "Uklonio/la si svoj kosim.",
"gearAchievement": "Zaradio/la si Postignuće \"Ultimativna Oprema\" za nadograđivanje svoje opreme do najvišeg kompleta opreme za svoju klasu! Skupio/la si sljedeće potpune komplete:",
"gearAchievementNotification": "Zaradio/la si Postignuće \"Ultimativna Oprema\" za nadograđivanje svoje opreme do najvišeg kompleta opreme za svoju klasu!",
"moreGearAchievements": "Kako bi dobio/la više znački za Ultimativnu Opremu, promijeni klasu pod <a href='/user/settings/site' target='_blank'>Postavke &gt; Stranica</a> i počni kupovati opremu svoje nove klase!",
"armoireUnlocked": "Za više opreme baci pogled u <strong>Začarani Ormar!</strong> Klikni na Začarani Ormar u stupcu Nagrada za nasumičnu priliku da dobiješ dio posebne Opreme! Ovo ti također može donijeti nasumični XP ili artikle hrane.",
"armoireUnlocked": "Za više opreme, poviri u <strong>Začarani Ormar!</strong> Klikni na Začarani Ormar u stupcu Nagrada za nasumičnu priliku da dobiješ komad posebne Opreme! Ovo ti također može donijeti nasumični XP ili artikle hrane.",
"ultimGearName": "Ultimativna Oprema - <%= ultClass %>",
"ultimGearText": "je maksimalno nadogradio/la komplet oružja i oklopa za klasu <%= ultClass %>.",
"level": "Level",
@@ -90,7 +90,7 @@
"constitution": "Konstitucija",
"conText": "Konstitucija smanjuje štetu koju dobiješ od loših Navika i neizvršenih Svakodnevnih zadataka.",
"perception": "Percepcija",
"perText": "Percepcija uvećava količinu Zlata koje zaradiš, a nakon što otključaš Tržnicu ti povećava šansu da pronađeš nove stvari prilikom rješavanja zadataka.",
"perText": "Percepcija povečava količinu Zlatnika koju zaradiš,a nakon što otključaš Tržnicu, povečava ti šansu da nađeš artikle prilikom obavljanja zadataka.",
"intelligence": "Inteligencija",
"intText": "Inteligencija povećava količinu Iskustva koju dobivaš, a nakon što otključaš Klase, ona određuje maksimalnu količinu dostupne Mane za sposobnosti Klase.",
"levelBonus": "Bonus za Level",
@@ -167,8 +167,8 @@
"photo": "Slika",
"info": "Informacije",
"joined": "Pridružio/la se",
"totalLogins": "Ukupne prijave",
"latestCheckin": "Posljednja prijava",
"totalLogins": "Ukupno Prijava",
"latestCheckin": "Posljednja Prijava",
"editProfile": "Uredi Profil",
"challengesWon": "Dobiveni Izazovi",
"questsCompleted": "Dovršene Pustolovine",
@@ -185,6 +185,5 @@
"chatCastSpellUser": "<%= username %> baca <%= spell%> na <%= target%>.",
"purchaseForGold": "Kupnja za <%= cost %> Zlata?",
"chatCastSpellPartyTimes": "<%= username %> koristi <%= spell %> za družinu <%= times %> puta.",
"chatCastSpellUserTimes": "<%= username %> koristi <%= spell %> za <%= target %> <%= times %> puta.",
"nextReward": "Nagrada za slijedeću prijavu"
"chatCastSpellUserTimes": "<%= username %> koristi <%= spell %> za <%= target %> <%= times %> puta."
}

View File

@@ -1,8 +1,8 @@
{
"frequentlyAskedQuestions": "Često postavljena pitanja",
"iosFaqStillNeedHelp": "Ako imate pitanje koje nije na ovom popisu ili na [Wiki FAQ](https://habitica.fandom.com/wiki/FAQ), dođite pitati u Tavern chat pod Menu > Tavern! Rado ćemo pomoći.",
"androidFaqStillNeedHelp": "Ako imate pitanje koje nije na ovom popisu ili na [Wiki FAQ](https://habitica.fandom.com/wiki/FAQ), dođite pitati u Tavern chat pod Menu > Tavern! Rado ćemo pomoći.",
"webFaqStillNeedHelp": "Ako imate pitanje koje nije na ovom popisu ili na [Wiki FAQ](https://habitica.fandom.com/wiki/FAQ), dođite pitati u [Habitica Help guild](https://habitica .com/groups/guild/5481ccf3-5d2d-48a9-a871-70a7380cee5a)! Rado ćemo pomoći.",
"iosFaqStillNeedHelp": "Ako imaš pitanje koje nije navedeno na ovom popisu ili pod [Wiki ČPP](http://habitica.wikia.com/wiki/FAQ), dođi ga postaviti u chat Krčme pod Izbornik > Krčma! Rado ćemo ti pomoći.",
"androidFaqStillNeedHelp": "Ako imaš pitanje koje nije navedeno na ovom popisu ili pod [Wiki ČPP](http://habitica.wikia.com/wiki/FAQ), dođi ga postaviti u chat Krčme pod Izbornik > Krčma! Rado ćemo ti pomoći.",
"webFaqStillNeedHelp": "Ako imaš pitanje koje nije navedeno na ovom popisu ili pod [Wiki ČPP](http://habitica.wikia.com/wiki/FAQ), dođi ga postaviti u [Habitičinom cehu za Pomoć](https://habitica.com/groups/guild/5481ccf3-5d2d-48a9-a871-70a7380cee5a)! Rado ćemo ti pomoći.",
"commonQuestions": "Uobičajena pitanja",
"faqQuestion25": "Što su različite vrste zadataka?",
"faqQuestion26": "Koji su neki jednostavni zadatci?",
@@ -11,23 +11,5 @@
"faqQuestion33": "Što je plava traka koja se pojavljuje nakon razine 10?",
"faqQuestion34": "Kakvu hranu moj ljubimac voli?",
"faqQuestion36": "Kako da promijenim izgled svog Avatara?",
"faqQuestion37": "Zašto se moja Oprema ne prikazuje na mom Avataru?",
"faqQuestion29": "Kako mogu oporaviti HP?",
"webFaqAnswer29": "Možete oporaviti 15 HP kupnjom napitka za zdravlje iz stupca Nagrade za 25 zlata. Osim toga, uvijek ćete oporaviti puni HP kada se popnete na višu razinu!",
"faqQuestion30": "Što se događa kada mi ponestane HP-a?",
"webFaqAnswer30": "Ako vam HP dosegne nulu, izgubit ćete jednu razinu, svo svoje zlato i komad opreme koji se može ponovno kupiti.",
"faqQuestion31": "Zašto sam gubio HP prilikom interakcije s nenegativnim zadatkom?",
"faqQuestion32": "Kako mogu odabrati razred?",
"webFaqAnswer33": "Nakon što otključate Klasni Sustav, otključavate i Vještine za koje je potrebna Mana. Mana je određena vašom INT statistikom i može se prilagoditi vještinama i opremom.",
"faqQuestion35": "Nahranio sam svog ljubimca i nestao je! Što se dogodilo?",
"faqQuestion38": "Zašto ne mogu kupiti određene artikle?",
"faqQuestion39": "Gdje mogu nabaviti više opreme?",
"faqQuestion40": "Što su dragulji i kako ih mogu dobiti?",
"faqQuestion41": "Što su Mistični pješčani satovi i kako ih mogu dobiti?",
"faqQuestion42": "Što mogu učiniti kako bih povećao odgovornost?",
"faqQuestion43": "Kako mogu prihvatiti zadatke?",
"faqQuestion44": "Kako mogu izbrisati zadatke Izazova?",
"faqQuestion45": "Moj avatar se transformirao u snjegovića, morsku zvijezdu, cvijet ili duha. Kako se mogu vratiti u to stanje?",
"webFaqAnswer26": "Pozitivne navike (Ponašanja koja želiš potaknuti; trebaju imati gumb s plusom)\n\n Uzeti vitamine\n Koristiti zubni konac\n Jedan sat učenja\n\nNegativne navike (Ponašanja koja želiš ograničiti ili izbjegavati; trebaju imati gumb s minusom)\n\n Pušenje\n Beskrajno \"skrolanje\" (doom scrolling)\n Grizenje noktiju\n\nDvostruke navike (Navike koje uključuju pozitivnu i negativnu opciju; trebaju imati i plus i minus gumb)\n\n Piti vodu vs. piti gazirano piće\n Učiti vs. odugovlačiti\n\nPrimjeri dnevnih zadataka (Zadaci koje želiš ponavljati po redovnom rasporedu)\n Oprati suđe\n Zaliti biljke\n 30 minuta tjelesne aktivnosti\n\nPrimjeri zadataka za obaviti (Zadaci koje trebaš napraviti samo jednom)\n\n Zakazati termin\n Organizirati ormar\n Završiti esej",
"webFaqAnswer25": "Habitica koristi tri različite vrste zadataka kako bi se prilagodila tvojim potrebama: Navike (Habits), Dnevne zadatke (Dailies) i Zadatke za obaviti (To Do's).\n\nNavike mogu biti pozitivne ili negativne i predstavljaju nešto što želiš pratiti više puta dnevno ili po nepredviđenom rasporedu. Pozitivne navike donose nagrade, poput zlata i iskustva (Exp), dok te negativne navike koštaju zdravlja (HP).\n\nDnevni zadaci su ponavljajući zadaci koje želiš obavljati po strukturiranom rasporedu. Na primjer, jednom dnevno, tri puta tjedno ili četiri puta mjesečno. Neizvršeni dnevni zadaci uzrokuju gubitak HP-a, ali što su teži, to su nagrade bolje!\n\nZadaci za obaviti su jednokratni zadaci koji ti daju nagrade nakon što ih završiš. Mogu imati rok, ali nećeš izgubiti HP ako ga propustiš.\n\nOdaberi vrstu zadatka koja najbolje odgovara onome što želiš postići!"
"faqQuestion37": "Zašto se moja Oprema ne prikazuje na mom Avataru?"
}

View File

@@ -1,74 +1,74 @@
{
"oldNews": "Vijesti",
"footerMobile": "Za mobitel",
"oldNews": "Novosti",
"footerMobile": "Mobilni",
"history": "Povijest",
"FAQ": "Često postavljena pitanja",
"companyDonate": "Doniraj Habitici",
"FAQ": "Pitanja",
"companyDonate": "Donirajte Habitici",
"footerProduct": "Proizvod",
"footerSocial": "Društveno",
"free": "Pridruži se besplatno",
"logout": "Odjava",
"marketing1Header": "Igrom poboljšajte svoje navike",
"marketing1Lead1Title": "Tvoj život, Igra igranja uloga",
"marketing1Lead2Title": "Osvoji fora opremu",
"marketing1Lead3Title": "Pronađi nasumične nagrade",
"marketing2Header": "Natječi se s prijateljima i pridruži se zanimljivim grupama",
"marketing2Lead1Title": "Društvena Produktivnost",
"marketing2Lead2Title": "Bori se s čudovištima na misijama",
"marketing2Lead2": "Što je igranje uloga bez bitaka? Borite se protiv čudovišta sa svojom družinom. Čudovišta su \"način super odgovornosti\" - dan kada propustite teretanu je dan kada čudovište ozlijede *sve!*",
"footerSocial": "Društveni",
"free": "Pridružite se besplatno",
"logout": "Odjavite se",
"marketing1Header": "Unaprijedite svoje navike igrajući igru",
"marketing1Lead1Title": "Vaš život, igra uloga",
"marketing1Lead2Title": "Nabavite Zakon Opremu",
"marketing1Lead3Title": "Pronađite nasumične nagrade",
"marketing2Header": "Natječite se s prijateljima, pridružite se interesnim grupama",
"marketing2Lead1Title": "Društvena produktivnost",
"marketing2Lead2Title": "Borba protiv čudovišta",
"marketing2Lead2": "Što je igranje uloga bez bitaka? Borite se protiv čudovišta sa svojom družinom. Čudovišta su \"način super odgovornosti\" - dan kada propustite teretanu je dan kada čudovište povrijedi *sve!*",
"marketing2Lead3Title": "Izazovite jedni druge",
"marketing2Lead3": "Izazovi vam omogućuju da se natječete s prijateljima i strancima. Tko bude najbolji na kraju izazova, osvaja posebne nagrade.",
"marketing3Lead1": "Aplikacije za **iPhone i Android** omogućuju vam da vodite računa o poslu dok ste u pokretu. Shvaćamo da prijava na web mjesto radi klikanja gumba može biti naporna.",
"marketing3Lead2Title": "Integracija",
"marketing3Lead2Title": "Integracije",
"marketing4Header": "Organizacijska upotreba",
"marketing4Lead1Title": "Gamifikacija u obrazovanju",
"marketing4Lead2": "Troškovi zdravstvene zaštite su u porastu i nešto mora popustiti. Izrađene su stotine programa za smanjenje troškova i poboljšanje dobrobiti. Vjerujemo da Habitica može utrti značajan put prema zdravim stilovima života.",
"marketing4Lead2": "Troškovi zdravstvene zaštite su u porastu i nešto se mora promjeniti. Izrađene su stotine programa za smanjenje troškova i poboljšanje dobrobiti. Vjerujemo da Habitica može utrti značajan put prema zdravim stilovima života.",
"marketing4Lead2Title": "Gamifikacija u zdravlju i dobrobiti",
"marketing4Lead3-1": "Želite gamificirati svoj život?",
"marketing4Lead3-2": "Zainteresirani ste za vođenje grupe u obrazovanju, wellnessu i još mnogo toga?",
"marketing4Lead3Title": "Gamificirajte Sve",
"mobileAndroid": "Android Aplikacija",
"mobileIOS": "iOS Aplikacija",
"marketing4Lead3Title": "Gamificiraj Sve",
"mobileAndroid": "Android aplikacija",
"mobileIOS": "aplikacija za iOS",
"setNewPass": "Postavite novu lozinku",
"playButton": "Igraj",
"enterHabitica": "Uđite u Habiticu",
"presskitText": "Hvala na interesu za Habiticu! Sljedeće slike mogu se koristiti za članke ili video zapise o Habitici. Za više informacija kontaktirajte nas na <%= pressEnquiryEmail %>.",
"pkQuestion1": "Što je inspiriralo Habiticu? Kako je sve počelo?",
"pkQuestion1": "Što je inspiriralo Habiticu? Kako je počelo?",
"pkQuestion2": "Zašto Habitica djeluje?",
"pkQuestion3": "Zašto ste dodali društvene značajke?",
"pkQuestion4": "Zašto preskakanje zadataka smanjuje zdravlje vašeg avatara?",
"pkQuestion5": "Po čemu se Habitica razlikuje od ostalih gamifikacijskih programa?",
"pkAnswer5": "Jedan od načina na koji je Habitica bila najuspješnija u korištenju gamifikacije jest to što smo uložili puno truda u razmišljanje o aspektima igre kako bismo osigurali da su one zapravo zabavne. Također smo uključili mnoge društvene komponente jer smatramo da vam neke od najmotivirajućih igara omogućuju igranje s prijateljima i jer je istraživanje pokazalo da je lakše stvoriti navike kada imate odgovornost prema drugim ljudima.",
"pkQuestion6": "Tko je tipični korisnik Habitice?",
"login": "Prijava",
"marketing3Header": "Aplikacije i Proširenja",
"marketing1Lead1": "Habitica je video igra koja će ti pomoći da poboljšaš svoje navike. Habitica tvoje obveze (Navike, Dnevne zadatke i Zadatke) pretvara u mala čudovišta koja trebaš pobijediti. Što si u tome bolji, to brže napreduješ. Ako, pak, ne izvršavaš svoje obveze, tvom liku ide loše, Tvoj lik u igri odraz je tebe u stvarnom životu.",
"pkAnswer1": "Ako ste ikada uložili vrijeme u podizanje razine lika u igrici, teško je ne zapitati se kako bi vaš život bio sjajan da sav taj trud uložite u poboljšanje sebe u stvarnom životu umjesto svog avatara. Počinjemo s izgradnjom Habitice kako bismo odgovorili na to pitanje. <br /> Habitica je službeno pokrenuta s Kickstarterom 2013. i ideja je doista zaživjela. Od tada je prerastao u ogroman projekt, koji podržavaju naši sjajni open source volonteri i naši velikodušni korisnici.",
"pkAnswer2": "Stvaranje nove navike je teško jer ljudi stvarno trebaju tu očitu, trenutnu nagradu. Na primjer, teško je početi koristiti zubni konac, jer iako nam stomatolog kaže da je to dugoročno zdravije, u trenu samo zaboli desni. <br /> Habiticina igrivost dodaje osjećaj trenutnog zadovoljstva svakodnevnim ciljevima nagrađujući težak zadatak iskustvom, zlatom... a možda čak i nasumičnim izborom, poput zmajevog jajeta! To pomaže da ljudi ostanu motivirani čak i kada sam zadatak nema intrinzičnu nagradu, a vidjeli smo kako ljudi preokreću svoje živote kao rezultat toga.",
"pkAnswer3": "Društveni pritisak veliki je motivirajući faktor za mnoge ljude, pa smo znali da želimo imati snažnu zajednicu koja će jedni druge smatrati odgovornima za svoje ciljeve i navijati za njihove uspjehe. Srećom, jedna od stvari koje videoigre za više igrača rade najbolje jest poticanje osjećaja zajedništva među svojim korisnicima! Habiticina struktura zajednice posuđuje od ovih vrsta igara; možete osnovati malu grupu bliskih prijatelja, ali se također možete pridružiti većim grupama zajedničkih interesa poznatim kao ceh. Iako neki korisnici odluče igrati solo, većina odluči formirati mrežu podrške koja potiče društvenu odgovornost kroz značajke kao što su misije, gdje članovi stranke udružuju svoju produktivnost kako bi se zajedno borili protiv čudovišta.",
"companyContribute": "Pridonesi Habitici",
"pkAnswer4": "Ako preskočite jedan od svojih dnevnih ciljeva, vaš će avatar sljedeći dan izgubiti zdravlje. Ovo služi kao važan motivirajući čimbenik za poticanje ljudi da slijede svoje ciljeve jer ljudi stvarno mrze povrijediti svojeg malog avatara! Osim toga, društvena odgovornost ključna je za mnoge ljude: ako se s prijateljima borite protiv čudovišta, preskakanje zadataka šteti i njihovim avatarima.",
"emailNewPass": "Pošaljite mi poveznicu za promjenu lozinke",
"sendLink": "Pošalji mi poveznicu",
"login": "Prijaviti se",
"marketing3Header": "Aplikacije i proširenja",
"marketing1Lead1": "Habitica je videoigra koja vam pomaže poboljšati navike u stvarnom životu. Ono \"gamificira\" vaš život pretvarajući sve vaše zadatke (navike, svakodnevne poslove i obaveze) u mala čudovišta koja morate pobijediti. Što ste bolji u ovome, to više napredujete u igri. Ako pogriješite u životu, vaš lik počinje nazadovati u igri.",
"pkAnswer1": "Ako ste ikada uložili vrijeme u podizanju levela lika u igrici, teško je ne zapitati se kako bi vaš život bio sjajan da sav taj trud uložite u poboljšanje sebe u stvarnom životu umjesto svog avatara. Počinjemo s izgradnjom Habitice kako bismo odgovorili na to pitanje. <br /> Habitica je službeno pokrenuta s Kickstarterom 2013. i ideja je doista zaživjela. Od tada je prerastao u ogroman projekt, koji podržavaju naši sjajni volonteri otvorenog koda i naši velikodušni korisnici.",
"pkAnswer2": "Stvaranje nove navike je teško jer ljudi stvarno trebaju tu očitu, trenutnu nagradu. Na primjer, teško je početi koristiti zubni konac, jer iako nam stomatolog kaže da je to dugoročno zdravije, u trenu samo zaboli desni. <br /> Habitičina gamifikacija dodaje osjećaj trenutnog zadovoljstva svakodnevnim ciljevima nagrađujući težak zadatak iskustvom, zlatom... a možda čak i nasumičnim izborom, poput zmajevog jajeta! To pomaže da ljudi ostanu motivirani čak i kada sam zadatak nema intrinzičnu nagradu, a vidjeli smo kako ljudi preokreću svoje živote kao rezultat toga.",
"pkAnswer3": "Društveni pritisak veliki je motivirajući faktor za mnoge ljude, pa smo znali da želimo imati snažnu zajednicu koja će jedni druge smatrati odgovornima za svoje ciljeve i navijati za njihove uspjehe. Srećom, jedna od stvari koje videoigre za više igrača rade najbolje jest poticanje osjećaja zajedništva među svojim korisnicima! Habitičina struktura zajednice posuđuje od ovih vrsta igara; možete osnovati malu grupu bliskih prijatelja, ali se također možete pridružiti većim grupama zajedničkih interesa poznatim kao Guild. Iako neki korisnici odluče igrati solo, većina odluči formirati mrežu podrške koja potiče društvenu odgovornost kroz značajke kao što su misije, gdje članovi grupe udružuju svoju produktivnost kako bi se zajedno borili protiv čudovišta.",
"companyContribute": "Doprinos Habitici",
"pkAnswer4": "Ako preskočite jedan od svojih dnevnih ciljeva, vaš će avatar sljedeći dan izgubiti zdravlje. Ovo služi kao važan motivirajući čimbenik za poticanje ljudi da slijede svoje ciljeve jer ljudi stvarno mrze povrijediti svog malog avatara! Osim toga, društvena odgovornost ključna je za mnoge ljude: ako se s prijateljima borite protiv čudovišta, preskakanje zadataka šteti i njihovim avatarima.",
"emailNewPass": "Pošaljite e-poštom vezu za ponovno postavljanje lozinke",
"sendLink": "Pošalji Poveznicu",
"footerCommunity": "Zajednica",
"invalidEmail": "Za promjenu lozinke potrebna je važeća email adresa",
"marketing1Lead2": "Skupljaj mačeve, oklope i još mnogo toga uz zlato koje zaradiš ispunjavanjem zadataka. S obzirom na to da možeš skupiti stotine predmeta, nikad ti neće ponestati kombinacija koje možeš isprobati. Optimiziraj za statistiku, stil ili oboje! ",
"marketing1Lead3": "Neke motivira kockanje: sustav zvan \"stohastičke nagrade.\" Habitica sadrži sve oblike nagrade i kazne: pozitivne, negativne, predvidljive i nasumične. ",
"marketing2Lead1": "Potakni svoju motivaciju suradnjom, natjecanjem i interakcijom s drugima! Habitica je osmišljena tako da iskoristi najučinkovitiji dio svakog programa za samopoboljšanje: društvenu odgovornost.",
"marketing4Lead1": "Obrazovanje je jedan od najboljih sektora za gamifikaciju. Svi znamo koliko su studenti ovih dana zalijepljeni za telefone i igre; iskoristi tu moć! Suprotstavite svoje učenike u prijateljskom natjecanju. Nagradite dobro ponašanje rijetkim nagradama. Gledajte kako im ocjene i ponašanje rastu.",
"invalidEmail": "Potrebna je valjana adresa e-pošte kako bi se izvršilo ponovno postavljanje lozinke.",
"marketing1Lead2": "Poboljšajte svoje navike kako biste izgradili svoj avatar. Pokažite zakon opremu koju ste zaradili!",
"marketing1Lead3": "Neke motivira kockanje: sustav koji se zove \"stohastičke nagrade\". Habitica se prilagođava svim stilovima potkrepljivanja i kažnjavanja: pozitivnim, negativnim, predvidljivim i nasumičnim.",
"marketing2Lead1": "Iako možete igrati Habiticu solo, svjetla se stvarno pale kada počnete surađivati, natjecati se i držati jedni druge odgovornima. Najučinkovitiji dio svakog programa samousavršavanja je društvena odgovornost, a koje je bolje okruženje za odgovornost i natjecanje od videoigre?",
"marketing4Lead1": "Obrazovanje je jedan od najboljih sektora za gamifikaciju. Svi znamo koliko su studenti ovih dana zalijepljeni za telefone i igre; iskoristi tu moć! Suprotstavite svoje učenike u prijateljskom natjecanju. Nagradite dobro ponašanje nagradama. Gledajte kako im ocjene i ponašanje rastu.",
"clearBrowserData": "Izbriši podatke preglednika",
"companyAbout": "Kako radi",
"companyAbout": "Kako ovo funkcionira",
"forgotPassword": "Zaboravili ste lozinku?",
"communityFacebook": "Facebook",
"communityExtensions": "<a href='http://habitica.fandom.com/wiki/Extensions,_Add-Ons,_and_Customizations' target='_blank'>Dodaci i prilagodbe</a>",
"communityExtensions": "Dodaci i proširenja",
"chores": "Obveze",
"footerDevs": "Razvojni programeri",
"footerDevs": "Programeri",
"communityInstagram": "Instagram",
"forgotPasswordSteps": "Unesite email adresu kojom ste se registrirali na svoj Habitica račun",
"forgotPasswordSteps": "Unesite svoje korisničko ime ili adresu e-pošte koju ste koristili za registraciju svog Habitica računa.",
"companyBlog": "Blog",
"marketing3Lead2": "Ostali **alati trećih strana** povezuju Habiticu s raznim aspektima vašeg života. Naš API pruža jednostavnu integraciju za stvari poput [Chrome Extension](https://chrome.google.com/webstore/detail/habitica/pidkmpibnnnhneohdgjclfdjpijggmjj?hl=en-US), za koje gubite bodove prilikom pregledavanja neproduktivnih web stranica i dobivaju bodove kada su na produktivnim. [Više pogledajte ovdje](https://habitica.fandom.com/wiki/Extensions,_Add-Ons,_and_Customizations).",
"marketing3Lead2": "Ostali **alati trećih strana** povezuju Habiticu s raznim aspektima vašeg života. Naš API pruža jednostavnu integraciju za stvari kao što su [Chrome Extension](https://chrome.google.com/webstore/detail/habitica/pidkmpibnnnhneohdgjclfdjpijggmjj?hl=en-US), za koje gubite bodove prilikom pregledavanja neproduktivnih web stranica i dobivaju bodove kada su na produktivnim. [Više pogledajte ovdje](https://habitica.fandom.com/wiki/Extensions,_Add-Ons,_and_Customizations).",
"password": "Lozinka",
"register": "Prijavi se",
"register": "Registar",
"missingNewPassword": "Nedostaje nova lozinka.",
"pkQuestion7": "Zašto Habitica koristi pixel art?",
"pkQuestion8": "Kako je Habitica utjecala na stvarne živote ljudi?",
@@ -77,7 +77,7 @@
"pkLogo": "Logotipi",
"pkSamples": "Uzorci zaslona",
"pkWebsite": "Web stranica",
"sync": "Sinkroniziraj",
"sync": "Sinkronizacija",
"tasks": "Zadaci",
"teams": "Timovi",
"terms": "Odredbe i uvjeti",
@@ -85,15 +85,15 @@
"localStorageTryNext": "Ako se problem nastavi, <%= linkStart %>Prijavite grešku<%= linkEnd %> ako već niste.",
"localStorageClear": "Obriši podatke",
"localStorageClearExplanation": "Ovaj gumb će izbrisati lokalnu pohranu i većinu kolačića te vas odjaviti.",
"username": "Korisničko Ime",
"username": "Korisničko ime",
"emailOrUsername": "E-pošta ili korisničko ime (razlikuje velika i mala slova)",
"reportAccountProblems": "Prijavite probleme s računom",
"reportCommunityIssues": "Prijavite probleme zajednice",
"subscriptionPaymentIssues": "Problemi s pretplatom i plaćanjem",
"generalQuestionsSite": "Opća pitanja o stranici",
"businessInquiries": "Poslovni/marketinški upiti",
"merchandiseInquiries": "Upiti o fizičkoj robi (majice, naljepnice).",
"tweet": "Tweetaj",
"businessInquiries": "Poslovni/Marketinški upiti",
"merchandiseInquiries": "Upiti o fizičkoj robi (majice, naljepnice)",
"tweet": "Tweet",
"checkOutMobileApps": "Provjerite naše mobilne aplikacije!",
"missingAuthHeaders": "Nedostaju zaglavlja za provjeru autentičnosti.",
"missingUsernameEmail": "Nedostaje korisničko ime ili adresa e-pošte.",
@@ -120,8 +120,8 @@
"heroIdRequired": "\"heroId\" mora biti važeći UUID.",
"cannotFulfillReq": "Vaš zahtjev ne može biti ispunjen. Pošaljite e-poruku na admin@habitica.com ako se ova pogreška nastavi pojavljivati.",
"modelNotFound": "Ovaj model ne postoji.",
"signUpWithSocial": "Prijavite se na <%= social %>",
"loginWithSocial": "Prijavite se s <%= social %>",
"signUpWithSocial": "Registrirajte se sa <%= social %>",
"loginWithSocial": "Prijavite se sa <%= social %>",
"confirmPassword": "Potvrdi lozinku",
"usernamePlaceholder": "npr. HabitRabbit",
"emailPlaceholder": "npr. gryphon@example.com",
@@ -129,19 +129,19 @@
"confirmPasswordPlaceholder": "Provjerite je li to ista lozinka!",
"joinHabitica": "Pridružite se Habitici",
"alreadyHaveAccountLogin": "Već imate Habitica račun? <strong>Prijavite se.</strong>",
"dontHaveAccountSignup": "Nemate Habitica račun? <strong>Registrirajte se.</strong>",
"dontHaveAccountSignup": "Nemate Habitica račun? <strong>Registriraj se.</strong>",
"motivateYourself": "Motivirajte se da postignete svoje ciljeve.",
"timeToGetThingsDone": "Vrijeme je za zabavu kada završite stvari! Pridružite se više od <%= userCountInMillions %> milijuna Habitičana i poboljšajte svoj život zadatak po zadatak.",
"singUpForFree": "Prijavite se besplatno",
"singUpForFree": "Registrirajte se besplatno",
"or": "ILI",
"gamifyYourLife": "Gamificirajte svoj život",
"trackYourGoals": "Pratite svoje navike i ciljeve",
"trackYourGoalsDesc": "Ostanite odgovorni praćenjem i upravljanjem svojim navikama, dnevnim ciljevima i popisom obveza pomoću Habiticinih mobilnih aplikacija i web sučelja jednostavnih za korištenje.",
"earnRewardsDesc": "Označite zadatke kako biste podigli razinu svog Avatara i otključali značajke u igri kao što su borbeni oklopi, misteriozni kućni ljubimci, čarobne vještine, pa čak i misije!",
"battleMonsters": "Borite se s čudovištima s prijateljima",
"earnRewardsDesc": "Označite zadatke kako biste podigli level svog Avatara i otključali značajke u igri kao što su borbeni oklopi, misteriozni kućni ljubimci, čarobne vještine, pa čak i misije!",
"battleMonsters": "Borite se protiv čudovišta s prijateljima",
"battleMonstersDesc": "Borite se protiv čudovišta s drugim Habitičanima! Iskoristite zlato koje zaradite za kupnju nagrada u igri ili prilagođenih nagrada, poput gledanja epizode vaše omiljene TV emisije.",
"playersUseToImprove": "Igrači koriste Habiticu za poboljšanje",
"healthAndFitness": "Zdravlje i kondicija",
"healthAndFitness": "Zdravlje i Fitness",
"schoolAndWork": "Škola i Posao",
"schoolAndWorkDesc": "Bilo da pripremate izvješće za svog učitelja ili šefa, lako je pratiti svoj napredak dok rješavate svoje najteže zadatke.",
"muchmuchMore": "I još puno, puno više!",
@@ -149,33 +149,30 @@
"levelUpAnywhereDesc": "Naše mobilne aplikacije olakšavaju praćenje vaših zadataka dok ste u pokretu. Ostvarite svoje ciljeve jednim dodirom, bez obzira gdje se nalazite.",
"joinMany": "Pridružite se više od <%= userCountInMillions %> milijuna ljudi koji se zabavljaju dok ostvaruju svoje ciljeve!",
"joinToday": "Pridružite se Habitici već danas",
"featuredIn": "Spominjano u",
"featuredIn": "Istaknuto u",
"getStarted": "Započnite!",
"earnRewards": "Zaradite nagrade za svoje ciljeve",
"school": "Škola",
"work": "Posao",
"pkAnswer6": "Puno različitih ljudi koristi Habiticu! Više od polovice naših korisnika ima od 18 do 34 godine, ali imamo bake i djedove koji koriste stranicu sa svojim mladim unucima i sve dobi između. Često će se obitelji pridružiti zabavi i zajedno se boriti protiv čudovišta. <br /> Mnogi naši korisnici imaju iskustvo u igricama, ali iznenađujuće, kada smo prije nekog vremena proveli anketu, 40% naših korisnika identificiralo se kao neigrači! Stoga se čini da naša metoda može biti učinkovita za svakoga tko želi produktivnost i dobrobit kako bi se osjećao zabavnije.",
"pkAnswer7": "Habitica koristi pixel art iz nekoliko razloga. Osim faktora zabavne nostalgije, pikselna umjetnost je vrlo pristupačna našim umjetnicima volonterima koji žele dati svoj doprinos. Mnogo je lakše održati našu pikselnu umjetnost dosljednom čak i kada puno različitih umjetnika pridonosi, a omogućuje nam brzo stvaranje gomile novih sadržaj!",
"pkAnswer6": "Puno različitih ljudi koristi Habiticu! Više od polovice naših korisnika ima od 18 do 34 godine, ali imamo bake i djedove koji koriste stranicu sa svojim mladim unucima i sve dobi između. Često će se obitelji pridružiti grupama i zajedno se boriti protiv čudovišta. <br /> Mnogi naši korisnici imaju iskustvo u igricama, ali iznenađujuće, kada smo prije nekog vremena proveli anketu, 40% naših korisnika identificiralo se kao neigrači! Stoga se čini da naša metoda može biti učinkovita za svakoga tko želi produktivnost i dobrobit kako bi se osjećao zabavnije.",
"pkAnswer7": "Habitica koristi pixel art iz nekoliko razloga. Osim faktora zabavne nostalgije, pixel art je vrlo pristupačna našim umjetnicima volonterima koji žele dati svoj doprinos. Mnogo je lakše održati našu pikselnu umjetnost dosljednom čak i kada puno različitih umjetnika doprinosi, a omogućuje nam brzo stvaranje tone novih sadržaj!",
"invalidEmailDomain": "Ne možete se registrirati s e-poštom sa sljedećim domenama: <%= domene %>",
"localStorageTryFirst": "Ako imate problema s Habiticom, kliknite donji gumb za brisanje lokalne pohrane i većine kolačića za ovo web mjesto (druga web mjesta neće utjecati). Morat ćete se ponovno prijaviti nakon što to učinite, pa prvo provjerite znate li svoje podatke za prijavu, koji se mogu pronaći u Postavke -> <%= linkStart %>Site<%= linkEnd %>.",
"usernameTOSRequirements": "Korisnička imena moraju biti u skladu s našim <a href='/static/terms' target='_blank'>Uvjetima pružanja usluge</a> i <a href='/static/community-guidelines' target='_blank'>Smjernicama zajednice< /a>. Ako prethodno niste postavili ime za prijavu, vaše korisničko ime je automatski generirano.",
"localStorageTryFirst": "Ako imate problema s Habiticom, kliknite donji gumb za brisanje lokalne pohrane i većine kolačića za ovo web mjesto (druga web mjesta neće utjecati). Morat ćete se ponovno prijaviti nakon što to učinite, pa prvo provjerite znate li svoje podatke za prijavu, koji se mogu pronaći u Postavkama -> <%= linkStart %>Site<%= linkEnd %>.",
"usernameTOSRequirements": "Korisnička imena moraju biti u skladu s našim <a href='/static/terms' target='_blank'>Uvjetima pružanja usluge</a> i<a href='/static/community-guidelines' target='_blank'>Smjernicama zajednice< /a>. Ako prethodno niste postavili ime za prijavu, vaše korisničko ime je automatski generirano.",
"invalidLoginCredentialsLong": "O-Ne - vaša adresa e-pošte/korisničko ime ili lozinka nisu točni.\n- Provjerite jesu li ispravno upisani. Vaše korisničko ime i lozinka razlikuju velika i mala slova.\n- Možda ste se prijavili s Facebook ili Google prijavom, a ne putem e-pošte, pa provjerite i isprobajte ih.\n- Ako ste zaboravili lozinku, kliknite na \"Zaboravljena lozinka\".",
"accountSuspended": "Ovaj račun, ID korisnika \"<%= userId %>\", blokiran je zbog kršenja Smjernica zajednice (https://habitica.com/static/community-guidelines) ili Uvjeta pružanja usluge (https://habitica.com/ static/terms). Za pojedinosti ili zahtjev za deblokiranje, pošaljite e-poruku našem upravitelju zajednice na <%= communityManagerEmail %> ili zamolite svog roditelja ili skrbnika da im pošalje e-poruku. Uključite svoje @Username u e-poruku.",
"accountSuspended": "Ovaj račun, korisnički ID \"<%= userId %>\", blokiran je zbog kršenja Smjernica zajednice (https://habitica.com/static/community-guidelines) ili Uvjeta pružanja usluge (https://habitica.com/ statički/termini). Za pojedinosti ili zahtjev za deblokiranje pošaljite e-poruku našem upravitelju zajednice na <%= communityManagerEmail %> ili zamolite svog roditelja ili skrbnika da im pošalje e-poruku. Uključite svoje @Username u e-poruku.",
"invalidReqParams": "Nevažeći parametri zahtjeva.",
"usernameLimitations": "Korisničko ime mora imati od 1 do 20 znakova, samo slova od a do z, brojeve od 0 do 9, crtice ili podvlake i ne smije sadržavati neprikladne pojmove.",
"healthAndFitnessDesc": "Nikad niste bili motivirani za čišćenje zubnim koncem? Čini se da ne možete doći u teretanu? Habitica napokon čini zabavnim ozdravljenje.",
"healthAndFitnessDesc": "Nikad niste bili motivirani za čišćenje zubnim koncem? Čini se da ne možete doći u teretanu? Habitica napokon čini put ka zdravlju zabavnijim.",
"muchmuchMoreDesc": "Naš potpuno prilagodljivi popis zadataka znači da možete oblikovati Habiticu kako bi odgovarala vašim osobnim ciljevima. Radite na kreativnim projektima, naglašavajte brigu o sebi ili slijedite drugačiji san -- sve ovisi o vama.",
"learnMore": "Saznaj Više",
"learnMore": "Saznajte više",
"pkMoreQuestions": "Imate li pitanje koje nije na ovom popisu? Pošaljite e-mail na admin@habitica.com!",
"usernameInfo": "Imena za prijavu sada su jedinstvena korisnička imena koja će biti vidljiva pored vašeg imena za prikaz i koristit će se za pozivnice, @spominjanja u chatu i slanje poruka.<br><br>Ako želite saznati više o ovoj promjeni, <a href='https ://habitica.fandom.com/wiki/Player_Names' target='_blank'>posjetite naš wiki</a>.",
"privacy": "Politika privatnosti",
"mobileApps": "Mobilne Aplikacije",
"mobileApps": "Mobilne aplikacije",
"newEmailRequired": "Nedostaje nova adresa e-pošte.",
"signup": "Prijavite se",
"signup": "Registriraj se",
"emailUsernamePlaceholder": "npr. habitrabbit ili gryphon@example.com",
"aboutHabitica": "Habitica je besplatna aplikacija za stjecanje navika i produktivnost koja vaš stvarni život tretira kao igru. S nagradama i kaznama unutar igre koje vas motiviraju i snažnom društvenom mrežom koja vas inspirira, Habitica vam može pomoći da postignete svoje ciljeve da postanete zdravi, vrijedni i sretni.",
"translateHabitica": "Prevedi Habiticu",
"footerCompany": "Društvo",
"presskit": "Stisnite Kit",
"guidanceForBlacksmiths": "Vodič za \"kovače\""
"aboutHabitica": "Habitica je besplatna aplikacija za stjecanje navika i produktivnost koja vaš stvarni život tretira kao igru. S nagradama i kaznama u igri da vas motiviraju i snažnom društvenom mrežom da vas inspirira, Habitica vam može pomoći da postignete svoje ciljeve da postanete zdravi, marljivi i sretni.",
"translateHabitica": "Prevedi Habiticu"
}

View File

@@ -5,7 +5,7 @@
"groupBy": "Grupiraj po <%= type %>",
"classBonus": "(Ovaj predmet odgovara tvojoj klasi pa se zato njegova Statistika množi s 1.5.)",
"classArmor": "Oklop klase",
"featuredset": "Istaknuti Set: <%= name %>",
"featuredset": "Istaknuti komplet <%= name %>",
"mysterySets": "Tajni kompleti",
"gearNotOwned": "Ne posjeduješ ovaj artikal.",
"noGearItemsOfType": "Ne posjeduješ nijednog od ovih.",

View File

@@ -195,6 +195,5 @@
"selected": "Odabrano",
"howManyToBuy": "Koliko bi ih htio/la kupiti?",
"contactForm": "Kontaktiraj tim Moderatora",
"finish": "Završi",
"options": "Opcije"
"finish": "Završi"
}

View File

@@ -27,10 +27,10 @@
"seasonalShopClosedTitle": "<%= linkStart %>Leslie<%= linkEnd %>",
"seasonalShopTitle": "<%= linkStart %>Sezonska Čarobnica<%= linkEnd %>",
"seasonalShopClosedText": "Sezonski dućan je trenutno zatvoren!! Otvoren je samo tijekom Habitičinih četiriju Velikih gala.",
"seasonalShopSummerText": "Sretno ljetno prskanje!! Želite li kupiti neke rijetke predmete? Obavezno ih nabavite prije završetka Gala!",
"seasonalShopSummerText": "Sretno ljetno bal!! Želite li kupiti neke rijetke predmete? Obavezno ih nabavite prije završetka Gala!",
"seasonalShopFallText": "Sretan jesenski festival!! Želite li kupiti neke rijetke predmete? Obavezno ih nabavite prije završetka Gale!",
"seasonalShopWinterText": "Sretna zimska zemlja čuda!! Želite li kupiti neke rijetke predmete? Obavezno ih nabavite prije završetka Gale!",
"seasonalShopSpringText": "Sretna proljetna veza!! Želite li kupiti neke rijetke predmete? Obavezno ih nabavite prije završetka Gale!",
"seasonalShopSpringText": "Sretna proljetna zabava!! Želite li kupiti neke rijetke predmete? Obavezno ih nabavite prije završetka Gale!",
"seasonalShopFallTextBroken": "Oh.... Dobrodošao/la u Sezonski dućan... Trenutno skupljamo zalihe raznoraznih dobara jesenskog sezonskog izdanja ... Sve što se nalazi ovdje će biti dostupno za kupnju tijekom Jesenskog festivala svake godine, ali smo otvoreni samo do 31. listopada... Trebao/la bi se sada opremiti ili ćeš trebati čekati... i čekati... i čekati... <strong>*uzdah*</strong>",
"seasonalShopBrokenText": "Moj paviljon!!!!!!! Moji ukrasi!!!! Joj, Demoralizator je sve uništio :( Molim te, pomozi ga poraziti u Krčmi tako da mogu započeti obnovu!",
"seasonalShopRebirth": "Ako si kupio/la išta ove opreme u prošlosti, ali je trenutno ne posjeduješ, možeš je ponovno kupiti u stupcu Nagrada. U početku ćeš moći samo kupovati artikle za tvoju trenutnu klasu (Ratnik prema zadanim postavkama), ali bez brige, drugi artikli specifični za određenu klasu će postati dostupni ako se prebaciš u tu klasu.",
@@ -74,51 +74,51 @@
"magicianBunnySet": "Mađioničarev kunić (Čarobnjak)",
"comfortingKittySet": "Utješna maca (Iscjelitelj)",
"sneakySqueakerSet": "Skriveni cikavac (Lupež)",
"sunfishWarriorSet": "Sunčanica (Ratnik)",
"sunfishWarriorSet": "Bucanjski (Ratnik)",
"shipSoothsayerSet": "Brodski prorok (Čarobnjak)",
"strappingSailorSet": "Kršni moreplovac (Iscjelitelj)",
"reefRenegadeSet": "Grebenski odmetnik (Lupež)",
"scarecrowWarriorSet": "Strašilo (Ratnik)",
"stitchWitchSet": "Vještica-vezica (Čarobnjak)",
"potionerSet": "Izrađivač napitaka (Iscjelitelj)",
"battleRogueSet": "Bat-le (Lupež)",
"battleRogueSet": "Rat-tni (Lupež)",
"springingBunnySet": "Skakutavi kunić (Iscjelitelj)",
"grandMalkinSet": "Veličanstveno strašilo (Čarobnjak)",
"cleverDogSet": "Pametan pas (Lupež)",
"braveMouseSet": "Hrabri miš (Ratnik)",
"summer2016SharkWarriorSet": "morski pas (ratnik)",
"summer2016SharkWarriorSet": "Morski Pas (Ratnik)",
"summer2016DolphinMageSet": "Dupin (Čarobnjak)",
"summer2016SeahorseHealerSet": "Morski konjić (Iscjelitelj)",
"summer2016SeahorseHealerSet": "Morski konjić (iscjelitelj)",
"summer2016EelSet": "Jegulja (Lupež)",
"fall2016SwampThingSet": "Močvarno biće (Ratnik)",
"fall2016WickedSorcererSet": "Opaki vještac (Čarobnjak)",
"fall2016GorgonHealerSet": "Gorgona (Iscjelitelj)",
"fall2016GorgonHealerSet": "Gorgona (iscjelitelj)",
"fall2016BlackWidowSet": "Crna Udovica (Lupež)",
"winter2017IceHockeySet": "Hokej na ledu (Ratnik)",
"winter2017WinterWolfSet": "Zimski vuk (Čarobnjak)",
"winter2017SugarPlumSet": "Šećerna Vila (Iscjelitelj)",
"winter2017FrostyRogueSet": "Ledeni (Lupež)",
"winter2017SugarPlumSet": "Šećerna Vila (Iscjeljitelj)",
"winter2017FrostyRogueSet": "Ledenko (Lupež)",
"spring2017FelineWarriorSet": "Mačor (Ratnik)",
"spring2017CanineConjurorSet": "Pseći prizivač (Čarobnjak)",
"spring2017FloralMouseSet": "Cvijetni miš (Iscjelitelj)",
"spring2017SneakyBunnySet": "Skriveni kunić (Lupež)",
"summer2017SandcastleWarriorSet": "Dvorac od pijeska (Ratnik)",
"summer2017SandcastleWarriorSet": "Pješćani Dvorac (Ratnik)",
"summer2017WhirlpoolMageSet": "Vrtlog (Čarobnjak)",
"summer2017SeashellSeahealerSet": "Školjkaški morski iscjelitelj (Iscjelitelj)",
"summer2017SeaDragonSet": "Morski zmaj (Lupež)",
"fall2017HabitoweenSet": "Habitoween (Ratnik)",
"fall2017MasqueradeSet": "Maskembal (Čarobnjak)",
"fall2017HauntedHouseSet": "Ukleta Kuća (Iscjeljivatelj)",
"fall2017HauntedHouseSet": "Ukleta Kuća (Iscjeljitelj)",
"fall2017TrickOrTreatSet": "Trik ili Poslastica (Lupež)",
"winter2018ConfettiSet": "Konfeti (Čarobnjak)",
"winter2018GiftWrappedSet": "Zamotani Dar (Ratnik)",
"winter2018MistletoeSet": "Imela (Iscjeljivatelj)",
"winter2018GiftWrappedSet": "Ukrasni Omotač (Ratnik)",
"winter2018MistletoeSet": "Imela (Iscjeljitelj)",
"winter2018ReindeerSet": "Sob (Lupež)",
"spring2018SunriseWarriorSet": "Izlazak Sunca (Ratnik)",
"spring2018TulipMageSet": "Tulipan (Čarobnjak)",
"spring2018GarnetHealerSet": "Granat (Iscjeljivatelj)",
"spring2018GarnetHealerSet": "Granat (Iscjeljitelj)",
"spring2018DucklingRogueSet": "Pačić (Lupež)",
"summer2018BettaFishWarriorSet": "Betta Riba (Borac)",
"summer2018BettaFishWarriorSet": "Sijamska riba (Ratnik)",
"summer2018LionfishMageSet": "Morski Lav (Čarobnjak)",
"summer2018MerfolkMonarchSet": "Vladar sirena (Iscjelitelj)",
"summer2018FisherRogueSet": "Lupeški ribar (Lupež)",
@@ -130,33 +130,33 @@
"winter2019PyrotechnicSet": "Pirotehničar (Čarobnjak)",
"winter2019WinterStarSet": "Zimska zvijezda (Iscjelitelj)",
"winter2019PoinsettiaSet": "Božićna zvijezda (Lupež)",
"winterPromoGiftHeader": "POKLONITE PRETPLATU, DOBIJETE JEDNU BESPLATNO!",
"winterPromoGiftHeader": "POKLONITE PRETPLATU, DOBIJETE JEDNU BESPLATNO!!",
"winterPromoGiftDetails1": "Samo do 6. siječnja, kada nekome poklonite pretplatu, istu pretplatu dobivate besplatno!",
"winterPromoGiftDetails2": "Molimo te da imaš na umu da će poklonjena pretplata, u slučaju da ti ili primatelj dara već imate ponavljajuću pretplatu, početi tek nakon što je prva pretplata otkazana ili istekne. Hvala puno na podršci! <3",
"discountBundle": "paket",
"g1g1Announcement": "<strong>Poklonite pretplatu i ostvarite besplatnu pretplatu</strong> događaj koji je u tijeku!",
"g1g1Announcement": "<strong>Poklonite pretplatu i ostvarite besplatnu pretplatu</strong> događaj koji je upravo u tijeku!",
"g1g1Details": "Poklonite pretplatu prijatelju i dobit ćete istu pretplatu besplatno!",
"g1g1": "Pokloni jedan, dobi jedan",
"g1g1": "Pokloni jedan, dobij jedan",
"spring2019OrchidWarriorSet": "Orhideja (Ratnik)",
"spring2019AmberMageSet": "Jantar (Čarobnjak)",
"spring2019RobinHealerSet": "Crvendać (Iscjeljivatelj)",
"spring2019RobinHealerSet": "Crvendać (Iscjeljitelj)",
"spring2019CloudRogueSet": "Oblak (Lupež)",
"summer2019SeaTurtleWarriorSet": "Morska Kornjača (Ratnik)",
"summer2019WaterLilyMageSet": "Lopoč (Čarobnjak)",
"summer2019ConchHealerSet": "Školjka (Iscjeljivatelj)",
"summer2019ConchHealerSet": "Školjka (Iscjeljitelj)",
"fall2019CyclopsSet": "Kiklop (Čarobnjak)",
"fall2019LichSet": "Pijavica (Iscjeljivatelj)",
"fall2019LichSet": "Pijavica (Čarobnjak)",
"fall2019RavenSet": "Gavran (Ratnik)",
"winter2020EvergreenSet": "Zimzeleni (Ratnik)",
"winter2020EvergreenSet": "Zimzelen (Ratnik)",
"winter2020CarolOfTheMageSet": "Pjesma Čarobnjaka (Čarobnjak)",
"winter2020WinterSpiceSet": "Zimski Začin (Iscjeljivatelj)",
"winter2020WinterSpiceSet": "Zimski Začini (Iscjeljitelj)",
"winter2020LanternSet": "Lampa (Lupež)",
"spring2020BeetleWarriorSet": "Nosorog Kornjaš (Ratnik)",
"spring2020BeetleWarriorSet": "Kornjaš Nosorog (Ratnik)",
"spring2020PuddleMageSet": "Lokva (Čarobnjak)",
"spring2020IrisHealerSet": "Zjena (Iscjeljitelj)",
"spring2020IrisHealerSet": "Zjenica (Isjeljitelj)",
"summer2020RainbowTroutWarriorSet": "Dugina Pastrva (Ratnik)",
"summer2020OarfishMageSet": "Riba Veslo (Čarobnjak)",
"summer2020SeaGlassHealerSet": "Morsko Staklo (Iscjeljitelj)",
"summer2020SeaGlassHealerSet": "Morska Trava (Iscjeljitelj)",
"summer2020CrocodileRogueSet": "Krokodil (Lupež)",
"fall2020WraithWarriorSet": "Utvara (Ratnik)",
"fall2020DeathsHeadMothHealerSet": "Mrtvački Moljac (Iscjeljitelj)",
@@ -166,17 +166,17 @@
"spring2021WillowHealerSet": "Vrba (Iscjeljitelj)",
"summer2021FlyingFishWarriorSet": "Leteća Riba (Ratnik)",
"summer2021NautilusMageSet": "Nautilus (Čarobnjak)",
"summer2021ParrotHealerSet": "Papagaj (Iscjelitelj)",
"summer2021ParrotHealerSet": "Papagaj (Iscjeljitelj)",
"summer2021ClownfishRogueSet": "Riba Klaun (Lupež)",
"spring2023CaterpillarRogueSet": "Gusjenica (Lupež)",
"g1g1Limitations": "Ovo je vremenski ograničen događaj koji počinje 15. prosinca u 8:00 ET (13:00 UTC) i završit će 8. siječnja u 23:59 ET (9. siječnja 04:59 UTC). Ova promocija vrijedi samo kada darujete drugom Habiticu. Ako vi ili vaš primatelj dara već imate pretplatu, poklonjena pretplata će dodati mjesece kredita koji će se koristiti tek nakon što se trenutna pretplata otkaže ili istekne.",
"g1g1Limitations": "Ovo je vremenski ograničen događaj koji počinje 15. prosinca u 8:00 ET (13:00 UTC) i završit će 8. siječnja u 23:59 ET (9. siječnja 04:59 UTC). Ova promocija vrijedi samo kada darujete drugom Habitičanu. Ako vi ili vaš primatelj dara već imate pretplatu, poklonjena pretplata će dodati mjesece kredita koji će se koristiti tek nakon što se trenutna pretplata otkaže ili istekne.",
"anniversaryLimitations": "Ovo je vremenski ograničen događaj koji počinje 30. siječnja u 8:00 ET (13:00 UTC) i završit će 8. veljače u 23:59 ET (04:59 UTC). Ograničeno izdanje Jubilant Gryphatrice i deset čarobnih napitaka za izleganje bit će dostupni za kupnju tijekom tog vremena. Ostali darovi navedeni u odjeljku Četiri besplatno bit će automatski isporučeni na sve račune koji su bili aktivni 30 dana prije dana slanja dara. Računi stvoreni nakon slanja darova neće ih moći preuzeti.",
"winter2023WalrusWarriorSet": "Morž (Ratnik)",
"winter2023FairyLightsMageSet": "Vilinska svjetla (Čarobnjak)",
"winter2023CardinalHealerSet": "Kardinal (Iscjelitelj)",
"winter2023FairyLightsMageSet": "Vilinska Svjetla (Čarobnjak)",
"winter2023CardinalHealerSet": "Kardinal (Iscjeljitelj)",
"gemSaleHow": "Između <%= eventStartMonth %> <%= eventStartOrdinal %> i <%= eventEndOrdinal %>, jednostavno kupite bilo koji paket dragulja kao i obično i vašem će računu biti dodijeljen promotivni iznos dragulja. Više dragulja za potrošiti, podijeliti ili spremiti za buduća izdanja!",
"spring2023HummingbirdWarriorSet": "Kolibrić (Ratnik)",
"spring2023LilyHealerSet": "Ljiljan (Iscjelitelj)",
"spring2023LilyHealerSet": "Ljiljan (Iscjeljitelj)",
"celebrateBirthday": "Proslavite 10. rođendan Habitice uz darove i ekskluzivne artikle!",
"jubilantGryphatricePromo": "Animirani ljubimac Gryphatrice",
"anniversaryGryphatriceText": "Rijetki Jubilant Gryphatrice pridružuje se proslavi rođendana! Ne propustite priliku posjedovati ovog ekskluzivnog animiranog ljubimca.",
@@ -185,22 +185,22 @@
"buyNowGemsButton": "Kupite sada za 60 dragulja",
"takeMeToStable": "Odvedi me u štalu",
"plentyOfPotions": "Hrpa Napitaka",
"fourForFreeText": "Kako bismo održali zabavu, podijelit ćemo ogrtače za zabavu, 20 dragulja i ograničeno izdanje rođendanske pozadine i kompleta predmeta koji uključuje ogrtač, navlake i masku za oči.",
"fourForFreeText": "Kako bismo održali zabavu, dijelit ćemo ogrtače za zabavu, 20 dragulja i ograničeno izdanje rođendanske pozadine i kompleta predmeta koji uključuje ogrtač, navlake i masku za oči.",
"visitTheMarketButton": "Posjetite tržnicu",
"plentyOfPotionsText": "Vraćamo 10 omiljenih napitaka Magic Hatching zajednice. Posjetite The Market i popunite svoju kolekciju!",
"fourForFree": "Četiri besplatno (maybe Četri za jedan besplatan)",
"plentyOfPotionsText": "Vraćamo od zajednice 10 omiljenih Magičnih Napitaka za izljeganje. Posjetite tržnicu i popunite svoju kolekciju!",
"fourForFree": "Četiri besplatno",
"dayOne": "Dan 1",
"dayFive": "Dan 5",
"dayTen": "Dan 10",
"partyRobes": "Ogrtači za zabave",
"twentyGems": "20 Dragulja",
"birthdaySet": "Rođendanski set",
"fall2020TwoHeadedRogueSet": "Dvije-Glave (Lupež) - [maybe Dvoglavi?]",
"fall2020TwoHeadedRogueSet": "DvoGlavi (Lupež)",
"fall2020ThirdEyeMageSet": "Treće Oko (Čarobnjak)",
"spring2021TwinFlowerRogueSet": "Cvijet Blizanac (Lupež)",
"winter2021HollyIvyRogueSet": "Božićnjak i Bršljan (Lupež)",
"winter2021ArcticExplorerHealerSet": "Istraživač Arktika (iscjelitelj)",
"summer2019HammerheadRogueSet": "Morski Pas Čekićar (Lupež)",
"winter2021HollyIvyRogueSet": "Božikovina i Bršljan (Lupež)",
"winter2021ArcticExplorerHealerSet": "Artički Istraživač (Iscjeljitelj)",
"summer2019HammerheadRogueSet": "Morski Pas Čekić (Lupež)",
"spring2020LapisLazuliRogueSet": "Lapis Lazulij (Lupež)",
"fall2019OperaticSpecterSet": "Operni Spektar (Lupež)",
"anniversaryLimitedDates": "30. siječnja do 8. veljače",
@@ -213,28 +213,28 @@
"jubilantSuccess": "Uspješno ste kupili <strong>Jubilant Gryphatrice!</strong>",
"stableVisit": "Posjetite štalu za opremanje!",
"spring2022MagpieRogueSet": "Svraka (Lupež)",
"spring2022RainstormWarriorSet": "Kišna oluja (Ratnik)",
"spring2022RainstormWarriorSet": "Kišna Oluja (Ratnik)",
"spring2022ForsythiaMageSet": "Forzicija (Čarobnjak)",
"g1g1Returning": "U čast sezone, vraćamo vrlo posebnu promociju. Sada kada poklonite pretplatu, dobit ćete istu zauzvrat!",
"summer2022CrabRogueSet": "Rak (Lupež)",
"summer2022WaterspoutWarriorSet": "Vodena pljuska (Ratnik)",
"summer2022MantaRayMageSet": "Raža (Čarobnjak)",
"g1g1Event": "U tijeku je događaj Pokloni jedan, Dobi jedan!",
"summer2022WaterspoutWarriorSet": "Vodena Pljuska (Ratnik)",
"summer2022MantaRayMageSet": "Raž (Čarobnjak)",
"g1g1Event": "U tijeku je događaj Pokloni jedan, donij jedan!",
"howItWorks": "Kako radi",
"royalPurpleJackolantern": "Kraljevski ljubičasti Jack-O-Lantern",
"fall2022WatcherHealerSet": "Pogledač (Iscjeljitelj)",
"fall2022OrcWarriorSet": "Ork (Ratnik)",
"fall2022HarpyMageSet": "Harpa (Čarobnjak)",
"fall2021OozeRogueSet": "Iscjedak (Lupež)",
"fall2021HeadlessWarriorSet": "Bezglavi (Ratnik)",
"fall2021BrainEaterMageSet": "Ždermozga (Čarobnjak)",
"fall2021FlameSummonerHealerSet": "Prizivač plamena (Iscjelitelj)",
"fall2021HeadlessWarriorSet": "Bez glave (Ratnik)",
"fall2021BrainEaterMageSet": "GutMozga (Čarobnjak)",
"fall2021FlameSummonerHealerSet": "Prizivač Vatre (Iscjeljitelj)",
"winter2022FireworksRogueSet": "Vatromet (Lupež)",
"winter2022StockingWarriorSet": "Čarapa (Ratnik)",
"winter2022PomegranateMageSet": "Nar (Čarobnjak)",
"winter2022IceCrystalHealerSet": "Ledeni kristal (Iscjelitelj)",
"winter2022IceCrystalHealerSet": "Ledeni Kristal (Iscjeljitelj)",
"limitations": "Ograničenja",
"g1g1HowItWorks": "Upišite korisničko ime računa kojem želite darovati. Odatle odaberite duljinu koju želite pokloniti i završite kupnju. Vaš će račun automatski biti nagrađen istom razinom pretplate koju ste upravo darovali.",
"g1g1HowItWorks": "Upišite korisničko ime računa kojem želite darovati. Odatle odaberite duljinu podnožja koju želite pokloniti i nastavite sa isplatom. Vaš će račun automatski biti nagrađen istom razinom pretplate koju ste upravo darovali.",
"noLongerAvailable": "Ova stavka više nije dostupna.",
"winter2023RibbonRogueSet": "Vrpca (Lupež)",
"spring2023MoonstoneMageSet": "Mjesečev Kamen (Čarobnjak)",

View File

@@ -38,18 +38,18 @@
"magicalBee": "Čarobna pčela",
"hatchingPotions": "Napitci za izlijeganje",
"royalPurpleJackalope": "Plemeti ljubičasti rogati zec",
"magicHatchingPotions": "Čarobni napici za izlijeganje",
"magicHatchingPotions": "Čarobni napitci za izlijeganje",
"hatchingPotion": "napitak za izlijeganje",
"haveHatchablePet": "Imaš %= potion %> napitak za izlijeganje i <%= egg %> jaje da izležeš ovog ljubimca! <b>Klikni</b> da izležeš!",
"quickInventory": "Brzi Inventar",
"noFoodAvailable": "Trenutno nemaš hrane za ljubimce.",
"dropsExplanation": "Dobij ove predmete brže s Draguljima ako ne želiš čekati da ih zaradiš izvršavanjem zadataka. <a href=\"https://habitica.fandom.com/wiki/Drops\">Nauči više o sustavu nagrada.</a>",
"hatchedPetHowToUse": "Posjeti [Štalu](<%= stableUrl %>) da nahraniš i vodiš svojeg najnovijeg ljubimca!",
"mountNotOwned": "Nemaš ovu jahaću životinju.",
"mountNotOwned": "Nemaš ovu jahaču životinju.",
"mountMasterName": "Gospodar Jahačih Životinja",
"triadBingoName": "Trostruki Bingo",
"triadBingoText2": " i oslobodio/la je punu štalu <%= count %> put/a",
"hatchedPetGeneric": "Izlegao ti se novi ljubimac!",
"hatchedPetGeneric": "Izlegao/la si novog ljubimca!",
"beastMasterText2": " i oslobodio/la je svoje ljubimce <%= count %> put/a",
"petNotOwned": "Nemaš ovog ljubimca.",
"beastAchievement": "Zaslužio/la si postignuće \"Gospodar Zvijeri\" za skupljanje svih ljubimaca!",
@@ -58,55 +58,12 @@
"petName": "<%= potion(locale) %> <%= egg(locale) %>",
"mountName": "<%= potion(locale) %> <%= mount(locale) %>",
"beastMasterProgress": "Napredak Gospodara Zvijeri",
"beastMasterText": "Ova osoba pronašla je svih 90 ljubimaca (a to je jako teško, čestitajte joj)",
"beastMasterText": "Pronašao/la je svih 90 ljubimaca (nevjerojatno teško, čestitaj ovom/oj korisniku/ci!)",
"mountAchievement": "Zaslužio/la si postignuće \"Gospodar Jahačih Životinja\" za pripitomljivanje svih jahačih životinja!",
"mountMasterText2": " i oslobodio/la je svih svojih 90 jahačih životinja <%= count %> put/a",
"mountMasterText": "Ova je osoba pripitomila svih 90 jahaćih životinja (što je još teže i zaslužuje pohvalu)",
"triadBingoText": "Ova je osoba pronašla svih 90 ljubimaca, svih 90 jahaćih životinja i svih 90 ljubimaca, po DRUGI PUT (KAKO TI JE TO UOPĆE USPJELO!?)",
"mountMasterText": "Pripitomio/la je svih 90 jahačih životinja (još teže, čestitaj ovom/oj korisniku/ci!)",
"triadBingoText": "Pronašao/la je svih 90 ljubimaca, svih 90 jahačih životinja, i PONOVO pronašao/la svih 90 ljubimaca (KAKO TI JE TO USPJELO!)",
"triadBingoAchievement": "Zaslužio/la si postignuće \"Trostruki Bingo\" za pronalazak svih ljubimaca, pripitomljivanja svih jahačih životinja, i ponovni pronalazak svih ljubimaca!",
"hatchedPet": "Izlegao/la si novo <%= potion %> <%= egg%>!",
"feedPet": "Nahrani <%= text %> svojem/oj <%= name %>?",
"mountsAndPetsReleased": "Oslobođeni životinje za jahanje i kućni ljubimci",
"mountsReleased": "Životinje za jahanje puštene",
"keyToPetsDesc": "Oslobodite sve standardne ljubimce kako biste ih mogli ponovno pokupiti. (Kustovi ljubimci i rijetki ljubimci nisu pogođeni.)",
"raisedPet": "Uzgojili ste svog <%= ljubimca %>!",
"premiumPotionNoDropExplanation": "Čarobni napitci za izleganje ne mogu se koristiti na jajima dobivenim iz zadataka. Jedini način da dobijete Čarobne napitke za izleganje je kupnjom ispod, a ne iz nasumičnih padavina.",
"keyToBoth": "Glavni ključevi odgajivačnica",
"releasePetsConfirm": "Jeste li sigurni da želite pustiti svoje standardne ljubimce?",
"keyToMountsDesc": "Otpustite sve standardne životinje za jahanje kako biste ih mogli ponovno pokupiti. (Ne utječe na životinje za jahanje misije i rijetke nosače.)",
"releaseBothSuccess": "Vaši standardni ljubimci i životinje za jahanje su pušteni!",
"releaseBothConfirm": "Jeste li sigurni da želite pustiti svoje standardne ljubimce i životinje za jahanje?",
"petsReleased": "Kućni ljubimci pušteni.",
"releasePetsSuccess": "Vaši standardni ljubimci su pušteni!",
"keyToBothDesc": "Otpustite sve standardne kućne ljubimce i životinje za jahanje kako biste ih mogli ponovno pokupiti. (Kustovi ljubimci/jahaći i rijetki ljubimci/jahaći nisu pogođeni.)",
"keyToMounts": "Ključ od životinje za jahanje Kennels",
"releaseMountsConfirm": "Jeste li sigurni da želite pustiti svoje standardne nosače?",
"releaseMountsSuccess": "Vaši standardni nosači su pušteni!",
"keyToPets": "Ključ uzgajivačnice kućnih ljubimaca",
"dropsExplanationEggs": "Potrošite dragulje da biste brže dobili jaja, ako ne želite čekati da ispadnu standardna jaja ili ponavljati misije da zaradite misija jaja. <a href=\"https://habitica.fandom.com/wiki/Drops\">Saznajte više o sustavu pada.</a>",
"welcomeStable": "Dobrodošli u Štalu!",
"notEnoughPets": "Niste prikupili dovoljno ljubimaca",
"sortByColor": "Boja",
"filterByMagicPotion": "Čarobni napitak",
"sortByHatchable": "Izlegujuće",
"notEnoughFood": "Nemate dovoljno hrane",
"hatch": "Izlegni!",
"filterByStandard": "Standardni",
"foodTitle": "Hrana za kućne ljubimce",
"petLikeToEat": "Što moj ljubimac voli jesti?",
"filterByWacky": "Ćaknut",
"standard": "Standard",
"clickOnPetToFeed": "Kliknite na ljubimca za hranjenje <%= foodName %> i gledajte kako raste!",
"clickOnEggToHatch": "Kliknite na jaje da biste upotrijebili svoj <%= potionName %> napitak za izleganje i izlegli novog ljubimca!",
"invalidAmount": "Nevažeća količina hrane, mora biti pozitivan cijeli broj",
"dragThisFood": "Povucite ovo <%= foodName %> na ljubimca i gledajte kako raste!",
"notEnoughMounts": "Niste sakupili dovoljno životinja za jahanje",
"tooMuchFood": "Pokušavate svom ljubimcu dati previše hrane, akcija je otkazana",
"filterByQuest": "Potraga (maybe Zadatak)",
"dragThisPotion": "Povucite ovaj <%= potionName %> u jaje i izležite novog ljubimca!",
"hatchDialogText": "Izlijte svoj <%= potionName %> napitak za izleganje na svoje <%= eggName %> jaje i ono će se izleći u <%= petName %>.",
"notEnoughPetsMounts": "Niste sakupili dovoljno ljubimaca i životinja za jahanje",
"clickOnPotionToHatch": "Kliknite na napitak za izleganje da biste ga upotrijebili na svom <%= eggName %> i izlegli novog ljubimca!",
"petLikeToEatText": "Kućni ljubimci će rasti bez obzira čime ih hranite, ali će rasti brže ako ih hranite onom hranom za kućne ljubimce koju najviše vole. Eksperimentirajte kako biste otkrili uzorak ili pogledajte odgovore ovdje: <br/> <a href=\"https://habitica.fandom.com/wiki/Food_Preferences\" target=\"_blank\">https://habitica.fandom. com/wiki/Food_Preferences</a>",
"welcomeStableText": "Dobrodošli u Štalu! Ja sam Matt, gospodar zvijeri. Svaki put kada izvršite zadatak, imat ćete slučajnu priliku da dobijete jaje ili napitak za izleganje kućnih ljubimaca. Kada izležete ljubimca, pojavit će se ovdje! Pritisnite sliku kućnog ljubimca da biste je dodali svom Avataru. Nahranite ih hranom za kućne ljubimce koju pronađete i oni će izrasti u izdržljive životinje za jahanje."
"feedPet": "Nahrani <%= text %> svojem/oj <%= name %>?"
}

View File

@@ -155,8 +155,5 @@
"usernameVerifiedConfirmation": "Tvoje korisničko ime, <%= username %>, je potvrđeno!",
"usernameNotVerified": "Molimo te da potvrdiš svoje korisničko ime.",
"changeUsernameDisclaimer": "Uskoro ćemo se prebaciti s korištenja imena za prijavu na jedinstvena, javna korisnička imena. Ovo korisničko ime će se koristiti za pozivnice, @spomene u chatu i u porukama.",
"verifyUsernameVeteranPet": "Jedan od ovih veteranskih ljubimaca će te čekati nakon što potvrdiš!",
"generalSettings": "Opće postavke",
"siteData": "Podaci s web mjesta",
"taskSettings": "Postavke zadatka"
"verifyUsernameVeteranPet": "Jedan od ovih veteranskih ljubimaca će te čekati nakon što potvrdiš!"
}

View File

@@ -1,7 +1,7 @@
{
"spellWizardFireballText": "Prasak Plamena",
"spellWizardFireballNotes": "Sakupljaš XP i zadaješ vatrenu štetu Bosovima! (Temeljeno na: INT)",
"spellWizardMPHealText": "Eterski Nalet",
"spellWizardFireballNotes": "Sakupljaš XP i zadaješ vatrenu štetu Bosovima! (Na osnovi: INT)",
"spellWizardMPHealText": "Eterični udar",
"spellWizardMPHealNotes": "Žrtvuješ Manu kako bi ostatak tvoje Družine izuzev Čarobnjaka, dobio bodove Mane! (Na osnovi: INT)",
"spellWizardEarthText": "Potres",
"spellWizardEarthNotes": "Tvoja mentalna moć potresa tlo i jača Inteligenciju tvoje Družine! (Na osnovi: neojačane INT)",

View File

@@ -2,18 +2,18 @@
"subscription": "Pretplata",
"subscriptions": "Pretplate",
"sendGems": "Pošalji Dragulje",
"buyGemsGold": "Besplatni mjesečni dragulji",
"buyGemsGold": "Kupi Dragulje Zlatnicima",
"mustSubscribeToPurchaseGems": "Trebaš se pretplatiti za kupovinu dragulja bodovima Zlatnika",
"reachedGoldToGemCapQuantity": "Vaš traženi iznos <%= quantity %> premašuje iznos koji možete kupiti za ovaj mjesec (<%= convCap %>). Puni iznos postaje dostupan unutar prva tri dana svakog mjeseca. Hvala na pretplati!",
"reachedGoldToGemCapQuantity": "Količina od <%= quantity %> koju si tražio/la prelazi količinu koju možeš kupiti ovaj mjesec. Limit se resetira unutar prva tri dana svakog mjeseca. Hvala vam što ste pretplatnik!",
"mysteryItem": "Ekskluzivni mjesečni artikli",
"mysteryItemText": "Svaki mjesec ćeš dobiti jedinstveni kozmetički predmet za svog avatara! Uz to, za svaka tri mjeseca uzastopne pretplate, misteriozni Vremenski Putnici će ti dati pristup povijesnim (i futurističkim!) kozmetičkim predmetima.",
"exclusiveJackalopePet": "Poseban ljubimac",
"giftSubscription": "Želiš li nekome pokloniti pretplatu?",
"exclusiveJackalopePet": "Ekskluzivni ljubimac",
"giftSubscription": "Želiš nekome drugome pokloniti pretplatu?",
"giftSubscriptionText4": "Hvala što podržavaš Habiticu!",
"groupPlans": "Grupni planovi",
"nowSubscribed": "Sad si pretplaćen/a na Habiticu!",
"cancelSub": "Otkaži pretplatu",
"cancelSubInfoGroupPlan": "Budući da imate besplatnu pretplatu iz grupnog plana, ne možete je otkazati. Završit će kada više ne budete član grupnog plana. Ako ste voditelj grupe i želite otkazati grupni plan, to možete učiniti na kartici \"Grupna naplata\" grupnog plana.",
"cancelSubInfoGroupPlan": "Zato što imaš besplatnu pretplatu u sklopu Grupnog plana, ne možeš je otkazati. Ona će završiti kad više ne budeš u Grupi. Ako si ti vođa Grupe i želiš otkazati cijeli Grupni plan, to možeš učiniti iz kartice \"Detalji plaćanja\" u grupi.",
"cancelingSubscription": "Otkazivanje pretplate",
"contactUs": "Kontaktiraj nas",
"checkout": "Odjava",
@@ -21,7 +21,7 @@
"subGemName": "Dragulji pretplatnika",
"maxBuyGems": "Kupio/la si sve Dragulje koje možeš za ovaj mjesec. Više ih postane dostupno unutar prva tri dana svakog mjeseca. Zahvaljujemo ti na pretplati!",
"timeTravelers": "Vremenski putnici",
"timeTravelersPopoverNoSubMobile": "Pretplatnici svaki mjesec primaju rijedak Mistični pješčani sat kako bi ga upotrijebili u Trgovini putnika kroz vrijeme!",
"timeTravelersPopoverNoSubMobile": "Izgleda da će ti trebati Mistični pješčani sat da bi otvorio/la vremenski portal i prizvao/la misteriozne Vremenske putnike.",
"timeTravelersPopover": "Tvoj Mistični pješčani sat je otvorio naš vremenski portal! Odaberi što bi htio/la da ti donesemo iz prošlosti ili budućnosti.",
"mysterySetNotFound": "Tajni komplet nije pronađen ili ga već posjeduješ.",
"mysteryItemIsEmpty": "Nema tajnih artikala",
@@ -90,7 +90,7 @@
"mysterySet301703": "Komplet steampunk pauna",
"mysterySet301704": "Komplet steampunk fazana",
"mysterySetwondercon": "Wondercon",
"subUpdateCard": "Ažurirajte kreditnu karticu",
"subUpdateCard": "Ažuriraj karticu",
"subUpdateTitle": "Ažuriraj",
"notEnoughHourglasses": "Nemaš dovoljno Mističnih pješčanih satova.",
"petsAlreadyOwned": "Već posjeduješ ovog ljubimca.",
@@ -113,110 +113,24 @@
"couponUsed": "Kod kupona je već iskorišten.",
"couponCodeRequired": "Potreban je kod kupona.",
"choosePaymentMethod": "Odaberi način plaćanja",
"support": "Podrška",
"gemBenefitLeadin": "Što možete kupiti s draguljima?",
"support": "PODRŠKA",
"gemBenefitLeadin": "Dragulji ti omogućuju kupovinu zabavnih dodataka za svoj račun, uključujući?",
"gemBenefit1": "Jedinstvene i moderne kostime za svog avatara.",
"gemBenefit2": "Pozadine kako bi mogao/la uroniti svog avatara u svijet Habitice!",
"gemBenefit3": "Uzbudljive nizove Pustolovina koji ti poklanjaju jaja s ljubimcima.",
"gemBenefit4": "Resetiraj Statističke bodove svog avatara i promijeni njegovu Klasu.",
"subscriptionBenefit1": "Alexander the Merchant sada će vam prodati dragulje s tržišta za 20 zlata svaki!",
"subscriptionBenefit3": "Otkrijte još više artikala u Habitici s 2x dnevnim popustom.",
"subscriptionBenefit4": "Jedinstveni kozmetički predmet za ukrašavanje vašeg avatara svaki mjesec.",
"subscriptionBenefit5": "Dobijte ljubimca Royal Purple Jackalope kada postanete novi pretplatnik.",
"subscriptionBenefit6": "Zaradite mistične pješčane satove za kupnju artikala u Dućanu vremenskog putnika!",
"subscriptionBenefit1": "Trgovac Aleksandar će ti prodavati Dragulje, 20 Zlatnika po komadu!",
"subscriptionBenefit3": "Otkrivat ćeš više artikala na Habitici uz udvostručeni dnevni limit poklona.",
"subscriptionBenefit4": "Jedinstveni kozmetički artikli će biti dostupni za tvog avatara svaki mjesec.",
"subscriptionBenefit5": "Dobit ćeš ekskluzivnog kraljevski ljubičastog ljubimca - Rogatog zeca!",
"subscriptionBenefit6": "Zaradi Mistične pješčane satove za korištenje u Dućanu Vremenskih putnika!",
"purchaseAll": "Kupi komplet",
"gemsRemaining": "Preostali Dragulji",
"notEnoughGemsToBuy": "Ne možete kupiti tu količinu dragulja",
"viewSubscriptions": "Pogledajte pretplate",
"howManyGemsPurchase": "Koliko dragulja želite kupiti?",
"howManyGemsSend": "Koliko dragulja želite poslati?",
"needToPurchaseGems": "Trebate kupiti dragulje kao dar?",
"gemsRemaining": "dragulja preostalo",
"notEnoughGemsToBuy": "Nisi u mogućnosti kupiti tu količinu dragulja",
"viewSubscriptions": "Pregledaj pretplate",
"howManyGemsPurchase": "Koliko Dragulja bi želio/la kupiti?",
"howManyGemsSend": "Koliko dragulja želiš poslati?",
"needToPurchaseGems": "Trebaš kupiti Dragulje kao dar?",
"organization": "Organizacija",
"giftASubscription": "Poklonite pretplatu",
"wantToSendOwnGems": "Želite li poslati svoje dragulje?",
"subWillBecomeInactive": "Postat će neaktivan",
"cancelSubInfoApple": "Slijedite <a href=\"https://support.apple.com/en-us/HT202039\">službene upute tvrtke Apple</a> da biste otkazali pretplatu ili da biste vidjeli datum prekida pretplate ako ste je već otkazali. Ovaj vam zaslon ne može pokazati je li vaša pretplata otkazana.",
"cancelSubInfoGoogle": "Idite na odjeljak \"Račun\" > \"Pretplate\" u aplikaciji Trgovina Google Play da biste otkazali svoju pretplatu ili da biste vidjeli datum prekida pretplate ako ste je već otkazali. Ovaj vam zaslon ne može pokazati je li vaša pretplata otkazana.",
"confirmCancelSub": "Jeste li sigurni da želite otkazati svoju pretplatu? Izgubit ćete sve svoje pogodnosti pretplate.",
"mysticHourglassNeededNoSub": "Za ovaj predmet potreban je mističan pješčani sat. Pretplatom na Habiticu zarađujete Mystic Hourglasses.",
"mysterySet201912": "Polarni Pixie Set",
"mysterySet201901": "Polaris set",
"mysterySet201902": "Cryptic Crush Set",
"mysterySet201903": "Set za pečenje Jaja",
"mysterySet201904": "Raskošan Opalni set",
"mysterySet201905": "Sjajni Zmajev set",
"mysterySet201906": "Ljubazno Koi Set",
"mysterySet201907": "Beach Buddy Set",
"mysterySet201908": "Komotna Fauna set",
"mysterySet201910": "Kriptične Vatre Set",
"mysterySet201911": "Privačivač Kristala Set",
"mysterySet202001": "Legendarni Lisičev Set",
"mysterySet202002": "Elegantan set za srce",
"mysterySet202003": "Set bodljikavih boraca",
"mysterySet202004": "Moćni Monarh set",
"mysterySet202005": "Čudesni Wyvern set",
"mysterySet202006": "Multikromatski Merfolk set",
"mysterySet202007": "Izvanredni Orka Set",
"mysterySet202008": "Sovački Oracle Set",
"mysterySet202009": "Čudesni Moljac Set",
"mysterySet202010": "Beguilingly Batty Set",
"mysterySet202011": "Rascvjetani Čarobnjak Set",
"mysterySet202012": "LedenoPlameni Feniks Set",
"mysterySet202101": "Oštar Sniježni Leopard Set",
"mysterySet202102": "Šarmantni Šampion Set",
"mysterySet202103": "Promatranje Cvjetanja Set",
"mysterySet202104": "Čuvara Čička Set",
"mysterySet202105": "Nebulin Zmaj Set",
"mysterySet202106": "Zalazak Sunca Sirene Set",
"mysterySet202108": "Vatreni Borac Set",
"mysterySet202109": "Lunarni Lepidopteran Set",
"mysterySet202111": "Kozmički Kronomancer Set",
"mysterySet201909": "Pristupaačan Žir set",
"mysterySet202110": "Gargojl Obrastao Bršljanom Set",
"mysterySet202112": "Antartička Vodena Vila Set",
"mysterySet202209": "Migični Učenjak Set",
"mysterySet202210": "Zločudna Guja Set",
"mysterySet202203": "Neustrašivi Vilin Konjic Set",
"mysterySet202301": "Hrabri Lukavac Set",
"mysterySet202201": "Ponoćni Veseljak Set",
"mysterySet202207": "Plesajuća Meduza Set",
"mysterySet202211": "Čarobnjak Struje Set",
"mysterySet202206": "Morski Duh Set",
"mysterySet202208": "Živahan Rep Set",
"mysterySet202204": "Virtualni Pustolov Set",
"mysterySet202202": "Tirkizni Dvorepi Set",
"mysterySet202212": "Galagtički Zaštitnik Set",
"mysterySet202205": "Sumrak-Krilati Zmaj Set",
"mysterySet202302": "Lukava Torokuša Set",
"backgroundAlreadyOwned": "Pozadina već u vlasništvu.",
"supportHabitica": "Podržite Habiticu",
"usuallyGems": "Obično <%= originalGems %>",
"lookingForMoreItems": "Tražite više artikala?",
"subscriptionCanceled": "Vaša pretplata je otkazana",
"subscriptionInactiveDate": "Vaše pogodnosti pretplate postat će neaktivne <br><strong><%= datum %></strong>",
"switchToRecurring": "Prebaciti se na ponavljajuću pretplatu?",
"cancelYourSubscription": "Otkazati pretplatu?",
"subscribersReceiveBenefits": "Pretplatnici dobivaju ove korisne pogodnosti!",
"monthlyMysteryItems": "Mjesečne tajanstvene stavke",
"doubleDropCap": "Dupli Drops (maybe Dupli Dobitci)",
"youAreSubscribed": "Pretplaćeni ste na Habiticu",
"dropCapReached": "Našli ste sve stavke za taj dan!",
"dropCapExplanation": "Vaši će se dobitci poništiti s vašim zadacima sutra. Međutim, nastavit ćete zarađivati zlato, iskustvo i napredak u misiji kada dovršite zadatke.",
"subCanceledTitle": "Pretplata otkazana",
"dropCapLearnMore": "Saznajte više o Habiticinom sustavu dobitaka",
"dropCapSubs": "Pretplatnici Habitice mogu pronaći dvostruko više nasumičnih predmeta svaki dan i primati mjesečne tajanstvene predmete!",
"subscriptionStats": "Statistika pretplate",
"subMonths": "Podmjeseci",
"needToUpdateCard": "Trebate ažurirati svoju karticu?",
"readyToResubscribe": "Jeste li spremni ponovno se pretplatiti?",
"cancelSubAlternatives": "Ako imate tehničkih problema ili vam se čini da Habitica ne radi, razmislite o <a href='mailto:admin@habitica.com'>kontaktiranju s nama</a>. Želimo vam pomoći da izvučete najviše iz Habitice.",
"sendAGift": "Pošalji poklon",
"haveNonRecurringSub": "Imate neponavljajuću darovnu pretplatu.",
"continueGiftSubBenefits": "Želite nastaviti svoje pogodnosti? Možete započeti novu pretplatu prije nego što istekne vaša darovana kako biste zadržali svoje pogodnosti aktivnima.",
"subscriptionCreditConversion": "Pokretanje nove pretplate pretvorit će sve preostale mjesece u kredit koji će se koristiti nakon otkazivanja ponavljajuće pretplate.",
"mysterySet202303": "Set za grivu",
"mysterySet202107": "Set za plažu",
"mysterySet202306": "Blještavi dugin set",
"mysterySet202305": "Set zmaja sutona",
"mysterySet202304": "Savršeni set za čaj"
"giftASubscription": "Pokloni Pretplatu"
}

View File

@@ -15,10 +15,10 @@
"negative": "Negativna",
"yellowred": "Slabe",
"greenblue": "Jake",
"edit": "Uredi",
"edit": "Izmijeni",
"save": "Spremi",
"addChecklist": "Dodaj popis zadataka",
"checklist": "Popis zadataka",
"addChecklist": "Dodaj spisak",
"checklist": "Spisak",
"newChecklistItem": "Nova stavka na spisku",
"expandChecklist": "Proširi spisak",
"collapseChecklist": "Sažmi spisak",
@@ -72,7 +72,7 @@
"streakName": "<%= count %> postignuća za dosljednost",
"streakText": "Postigao/la je <%= count %> 21-dnevnih uzastopnih ponavljanja Svakodnevnih zadataka",
"streakSingular": "Ponavljač",
"streakSingularText": "21 dan za redom obavio/la je Svakodnevni zadatak",
"streakSingularText": "je 21 dan za redom obavio/la Svakodnevni zadatak",
"perfectName": "<%= count %> savršenih dana",
"perfectText": "Izvršeni su svi Svakodnevni zadaci <%= count %> dana za redom. S ovim postignućem dobivaš bonus koji iznosi +level/2 boda ojačanja za sve Statistike sljedeći dan. Oni iznad levela 100 ne dobivaju nikakve dodatne efekte ojačanja.",
"perfectSingular": "Savršeni dan",

View File

@@ -108,6 +108,5 @@
"resetFlags": "フラグのリセット",
"cannotClose": "このチャレンジは、1人以上のプレイヤーが不適切だと報告したため、閉じることはできません。スタッフのメンバーが間もなく指示を含む連絡を取ります。48時間以上経過しても連絡がない場合は、admin@habitica.comにメールして支援を依頼してください。",
"cannotMakeChallenge": "あなたのアカウントには現在チャット権限がないため、パブリックチャレンジを作成できません。詳しくは admin@habitica.com までお問い合わせください。",
"messageChallengeFlagOfficial": "公式チャレンジは報告できません。",
"deleteChallengeRefundDescription": "このチャレンジを消除すると、賞品のジェムが返金され、チャレンジのタスクは参加者のタスクボードに残ります。"
"messageChallengeFlagOfficial": "公式チャレンジは報告できません。"
}

View File

@@ -227,15 +227,5 @@
"subscriptionDetail24": "有料会員が「タイムトラベラーズショップ」からアイテムを収集できる機会を、年間4回以上に増やしたいと考えました。",
"subscriptionHeading3": "リリース当日特典",
"subscriptionPara1": "新しいスケジュールへの移行をスムーズにするため、既存の有料会員にはリリース当日に追加の特典が用意されます。この変更に伴い、引き続きサポートしてくださる皆様に心から感謝いたします!",
"subscriptionDetail4400": "現在、毎月ジェムを<%= initialNumber %>個アンロックしている場合、ジェムの上限は<%= roundedNumber %>個に調整されます。",
"subscriptionDetail48": "ミステリー装備セットなど、他の有料プランの特典には変更ありますか?",
"subscriptionDetail33": "このご褒美は、11月19日以前に有料プランを始めたアカウントしか受け取れません。",
"subscriptionDetail42": "有料プランに登録している間、1ヶ月間ログインしない場合、この特典はまだ受け取れますか",
"subscriptionDetail400": "現在の有料会員には、リリース後の最初の月の初回ログイン時に、最初のミスティック砂時計と毎月のジェム上限が+2増加します。つまり、もしすでに11月にログインしている場合、最初の定期的な増加は12月に行われます。",
"subscriptionDetail40": "私は有料会員ですが、新しいスケジュールでは最初の定期的な神秘の砂時計とジェム上限の増加はいつ受け取れますか?",
"subscriptionDetail420": "ミステリーギアセットと同様に、登録している間にログインしなくても神秘の砂時計やジェムの上限アップを見逃すことはありません。次回ログインしたときに、登録していた期間のすべての特典を受け取ることができます。",
"subscriptionDetail43": "有料プランを申し込んでからキャンセルした場合でも、特典は受けられますか?",
"subscriptionDetail47": "グループプランに登録している人はどう影響されますか?",
"subscriptionDetail440": "これらの変更が有効となった日から、毎月受け取るジェムが奇数個の有料会員のジェムの上限に反映されます。",
"subscriptionDetail430": "有料プランを解約すると特典の終了日が設定されますが、その日まではすべての特典を利用できます。つまり、利用可能な期間中は毎月、神秘の砂時計の受け取り、毎月初めのジェム上限増加が引き続き適用されます。"
"subscriptionDetail4400": "現在、毎月ジェムを<%= initialNumber %>個アンロックしている場合、ジェムの上限は<%= roundedNumber %>個に調整されます。"
}

View File

@@ -1174,7 +1174,7 @@
"headArmoireRedHairbowText": "赤いリボン",
"headArmoireRedHairbowNotes": "この美しい赤いリボンをつけると強く、タフに、そして賢くなります!力が<%= str %>、体質が<%= con %>、知能が<%= int %>上がります。ラッキー宝箱:赤いリボンセット(アイテム1/2)。",
"headArmoireVioletFloppyHatText": "紫のチューリップハット",
"headArmoireVioletFloppyHatNotes": "気持ちが明るくなる紫色のこのシンプルな帽子には、たくさんの呪文が縫いつけられています。知覚が<%= per %>、知能が<%= int %> 、体質が<%= con %>上がります。ラッキー宝箱:紫の部屋着セットアイテム1/3 。",
"headArmoireVioletFloppyHatNotes": "気持ちが明るくなる紫色のこのシンプルな帽子には、たくさんの呪文が縫いつけられています。知覚が<%= per %>、知能が<%= int %> 、体質が<%= con %>上がります。ラッキー宝箱:個別のアイテム。",
"headArmoireGladiatorHelmText": "剣闘士のかぶと",
"headArmoireGladiatorHelmNotes": "剣闘士になるには強いだけではなく、賢くなければなりません。知能が<%= int %>、知覚が<%= per %>上がります。ラッキー宝箱:剣闘士セット(アイテム1/3 )。",
"headArmoireRancherHatText": "牧童の帽子",
@@ -1190,7 +1190,7 @@
"headArmoireYellowHairbowText": "黄色いリボン",
"headArmoireYellowHairbowNotes": "この美しい黄色のリボンをつけると鋭敏に、強く、そして賢くなります!知覚、力、知能がそれぞれ<%= attrs %>上がります。ラッキー宝箱:黄色いリボンセット(アイテム1/2)。",
"headArmoireRedFloppyHatText": "赤いチューリップハット",
"headArmoireRedFloppyHatNotes": "このシンプルな帽子にはたくさんの呪文が縫い込まれており、それがこの晴れやかな赤をもたらしているのです。体質、知能、知覚が<%= attrs %>ずつ上がります。ラッキー宝箱:赤い部屋着セットアイテム1/3。",
"headArmoireRedFloppyHatNotes": "このシンプルな帽子にはたくさんの呪文が縫い込まれており、それがこの晴れやかな赤をもたらしているのです。体質、知能、知覚が<%= attrs %>ずつ上がります。ラッキー宝箱:赤い部屋着セット(アイテム1/n)。",
"headArmoirePlagueDoctorHatText": "ペスト医師の帽子",
"headArmoirePlagueDoctorHatNotes": "「先延ばし」という名のペスト(伝染病)とたたかった医師がかぶっていた信頼のおける帽子です!力が<%= str %>、知能が<%= int %>、体質が<%= con %>上がります。ラッキー宝箱:ペスト専門医セット(アイテム1/3 )。",
"headArmoireBlackCatText": "黒猫の帽子",
@@ -3136,7 +3136,7 @@
"armorSpecialSpring2025HealerNotes": "この美しいローブはやわらかくてひらひらするプルメリアの花びらからできています。体質が<%= con %>上がります。2025年春の限定装備。",
"armorSpecialSummer2025RogueText": "イカのスーツ",
"weaponSpecialFall2025WarriorText": "サスクワッチの斧",
"shieldArmoireSoftOrangePillowText": "柔らかいオレンジのまくら",
"shieldArmoireSoftOrangePillowText": "もちもちなオレンジの",
"weaponSpecialFall2025RogueText": "ガイコツの刃",
"weaponSpecialFall2025HealerText": "コボルドの斧",
"weaponMystery202511Text": "霜の剣",
@@ -3152,8 +3152,8 @@
"armorArmoireSoftOrangeSuitText": "やわらかいオレンジのスーツ",
"armorArmoireSoftOrangeSuitNotes": "オレンジは鮮やかな色です。寝るときにこれを着ると、夢の中の挑戦にも成功します!体質と力がそれぞれ<%= attrs %>上がります。ラッキー宝箱オレンジのルームウェアセットアイテム2/3 )。",
"headArmoireBlacksmithsGogglesText": "鍛冶屋のゴーグル",
"headArmoireFloppyOrangeHatText": "オレンジのチューリップハット",
"headArmoireFloppyOrangeHatNotes": "鮮やかなオレンジのこのシンプルな帽子には、たくさんの呪文が縫い込まれています。すべての能力値がそれぞれ<%= attrs %>上がります。ラッキー宝箱:オレンジの部屋着セットアイテム1/3 )。",
"headArmoireFloppyOrangeHatText": "ゆったり垂れるオレンジの帽子",
"headArmoireFloppyOrangeHatNotes": "このシンプルな帽子は魔法にかかって鮮やかなオレンジ色がつきました。すべての能力値がそれぞれ<%= attrs %>上がります。ラッキー宝箱:オレンジのルームウェアセットアイテム1/3 )。",
"shieldSpecialFall2025WarriorText": "サスクワッチの盾",
"bodyMystery202509Text": "風に吹かれた旅人のマフラー",
"backMystery202510Text": "空中に浮かぶグールの翼",
@@ -3185,35 +3185,5 @@
"shieldSpecialFall2025HealerText": "コボルドの盾",
"shieldArmoireHattersPocketWatchText": "ピカピカなポケットウォッチ",
"shieldSpecialSummer2024HealerText": "海貝の盾",
"shieldSpecialSummer2024HealerNotes": "このぴかぴかする盾は、海貝の杖よりも強いです。体質が<%= con %>上がります。2024年夏の限定装備。",
"armorMystery202504Notes": "「汚れた雪男」、だって本当は可愛らしいでしょ効果なし。2025年4月の有料会員アイテム。",
"armorArmoireSpringPetalYukataText": "春の花びらの浴衣",
"headSpecialSummer2025HealerText": "クリオネのかぶと",
"headSpecialFall2025WarriorText": "サスクワッチの仮面",
"headSpecialSpring2025RogueNotes": "この帽子の水晶は生産的なエネルギーを出し、昼でも夜でも働けるように明るく輝きます。知覚が<%= per %>上がります。2025年春の限定装備。",
"headSpecialSpring2025MageText": "カマキリの仮面",
"headSpecialSummer2025WarriorNotes": "頑丈でとがっているこのヘルメットは、ヒトデからでも守ってくれます。力が<%= str %>上がります。2025年夏の限定装備。",
"shieldSpecialSummer2025WarriorText": "ホタテ貝の盾",
"headSpecialSpring2025RogueText": "水晶ポイントの帽子",
"headSpecialSpring2025HealerText": "プルメリアのヘッドドレス",
"headSpecialSummer2025WarriorText": "ホタテ貝のヘルメット",
"headSpecialSummer2025RogueText": "イカの仮面",
"headSpecialSummer2025RogueNotes": "この仮面をかぶるとたんに視力が向上されます。知覚が<%= per %>上がります。2025年夏の限定装備。",
"shieldSpecialSummer2025HealerText": "クリオネの盾",
"shieldArmoireSoftWhitePillowText": "柔らかい白いまくら",
"shieldArmoireSpringPetalUchiwaText": "春の花びらのうちわ",
"headArmoireWhiteFloppyHatText": "白いチューリップハット",
"headMystery202504Text": "不思議な雪男のずきん",
"armorMystery202504Text": "不思議な雪男のよろい",
"armorArmoireBeekeepersSuitNotes": "忙しいミツバチを飼育するときは気を付けましょう。体質が<%= con %>上がります。ラッキー宝箱養蜂家セットアイテム2/4",
"armorArmoireFlyFishingWadersText": "渓流釣り用のウェーダー",
"armorArmoireFlyFishingWadersNotes": "渓流、池、湖、川の中を歩いても濡れず、温かいままでいられます。力と体質がそれぞれ<%= attrs %>上がります。ラッキー宝箱フライフィッシングセットアイテム2/3",
"armorArmoireRedWaistcoatText": "赤いベスト",
"armorArmoireRedWaistcoatNotes": "スマートでスタイリッシュな姿でタスクに取り組みましょう。ベストのポケットに何か隠れていますが、何だと思いますか?体質と力がそれぞれ<%= attrs %>上がります。ラッキー宝箱赤いベストセットアイテム2/2",
"armorMystery202407Text": "優しいウーパールーパーのスーツ",
"armorArmoireSillyOrangeTuxedoText": "おかしなオレンジのタキシード",
"armorMystery202412Notes": "冬の日に温かくいられるためのふわふわな装備です。効果なし。2024年12月の有料会員アイテム。",
"armorArmoireFestiveHelperOverallsNotes": "丈夫で快適なこのオーバーオールは仕事、遊びや他人を助けるのにぴったりです。それに、ポケット付きです!体質が<%= con %>上がります。ラッキー宝箱フェスティブなヘルパーセットアイテム2/2",
"armorArmoireSillierBlueTuxedoText": "さらにおかしな青いタキシード",
"armorArmoireSillyOrangeTuxedoNotes": "あなた専用のスーツです。体質が<%= con %>上がります。ラッキー宝箱おかしなタキシードセットアイテム1/2。"
"shieldSpecialSummer2024HealerNotes": "このぴかぴかする盾は、海貝の杖よりも強いです。体質が<%= con %>上がります。2024年夏の限定装備。"
}

View File

@@ -241,6 +241,5 @@
"titleCustomizations": "カスタマイズ",
"newMessage": "新しいメッセージ",
"targetUserNotExist": "「<%= userName %>」というユーザーはいません。",
"rememberToBeKind": "他人には優しくして、<a href='/static/community-guidelines' target='_blank'>コミュニティガイドラン</a>を守ってください。",
"gem": "ジェム"
"rememberToBeKind": "他人には優しくして、<a href='/static/community-guidelines' target='_blank'>コミュニティガイドラン</a>を守ってください。"
}

View File

@@ -96,7 +96,7 @@
"optional": "オプション",
"needsTextPlaceholder": "ここにメッセージを入力してください。",
"leaderOnlyChallenges": "グループリーダーだけがチャレンジを作成できます",
"sendGift": "プレゼントを贈る",
"sendGift": "贈り物を送る",
"inviteFriends": "友達を招待する",
"inviteByEmail": "メールで招待する",
"inviteMembersHowTo": "有効なEメールか36桁のユーザーIDを使ってほかの人を招待しましょう。そのEメールがすでに登録済みでなければ、Habiticaへの招待メールを送ります。",

View File

@@ -6,13 +6,13 @@
"questEvilSantaDropBearCubPolarMount": "シロクマ(乗騎)",
"questEvilSanta2Text": "子グマの捜索",
"questEvilSanta2Notes": "猟師のサンタが乗騎のシロクマを捕まえたとき、子グマは、氷原に逃げていきました。たしかに森の中の氷の結晶の音に交じって、小枝をふむ音や雪がくだける音が聞こえます。足あとだ!それを追いかけようと走り出します。足あとと折れた小枝を見のがしてはいけません。子グマを見つけ出しましょう!<br><br><strong>注意</strong>:「子グマの捜索」のクエストは何回でも挑戦できますが、クエスト報酬の特別なペットが手に入るのは最初の一回だけです。",
"questEvilSanta2Completion": "子グマを見つけました!ずっとあなたから離れないでしょう。",
"questEvilSanta2Completion": "子グマを見つけました! ずっとあなたから離れないでしょう。",
"questEvilSanta2CollectTracks": "足跡",
"questEvilSanta2CollectBranches": "折れた小枝",
"questEvilSanta2DropBearCubPolarPet": "シロクマ(ペット)",
"questGryphonText": "炎のグリフォン",
"questGryphonNotes": "偉大な猛獣使い、<strong>baconsaur</strong>があなたのパーティーに助けを求めてきました。「冒険者よ、どうか私を助けてください 大切なグリフォンが逃げてしまい、Habit シティーを自由気ままに飛び回り、人びと に恐怖を与えているのです。もしグリフォンを止められたら、お礼にグリフォンのたまごを差し上げます!」",
"questGryphonCompletion": "やりました!強い獣はこそこそとはずかしそうに主人の元に帰りま。「驚いた!冒険者よ、よくやってくれましたね!」<strong>baconsaur</strong> は声を上げま。 「どうかこのグリフォンのたまごを受けとってください。あなたならきっとうまく育てられるでしょう!」",
"questGryphonCompletion": "やりました! 強い獣はこそこそとはずかしそうに主人の元に帰りました。「驚いた! 冒険者よ、よくやってくれましたね!」 <strong>baconsaur</strong> は声を上げました。 「どうかこのグリフォンのたまごを受けとってください。あなたならきっとうまく育てられるでしょう!」",
"questGryphonBoss": "炎のグリフォン",
"questGryphonDropGryphonEgg": "グリフォン ( たまご )",
"questGryphonUnlockText": "市場でグリフォンのたまごを買えるようになります",
@@ -815,10 +815,5 @@
"questChameleonNotes": "タスクの森の暖かく雨の降る一角で、美しい一日が始まります。あなたは葉のコレクションに新しい蒐集物を探していると、目の前の枝が予告なしに色を変えました!しかも、その枝が動いたのです!<br><br>後ろにひっくり返りそうになりながら気づくと、それは枝ではなく巨大なカメレオンでした。体のあらゆる部分が色を変え続け、目はあちこちにキョロキョロと動いています。<br><br>「大丈夫ですか?」とあなたはカメレオンに尋ねます。<br><br>「うーん、ええと…」と、少しあわてた様子で彼は答えます。「隠れようとしているんだけど…色が次々に現れては消えるから圧倒されちゃって…ひとつに集中するのが難しいんだ…」<br><br>「なるほど」とあなた。「それなら手伝えるかも。小さなチャレンジで集中力を鍛えよう!色の準備はいい?」<br><br>「任せて!」とカメレオンは答えました。",
"questPlatypusRageEffect": "完璧主義者のカモノハシは川に潜って、パーティーに水をかけます!パーティーのマナが減ってしまいました!",
"questOpalCollectLibraRunes": "てんびん座のルーン",
"questOpalCollectMercuryRunes": "水星のルーン",
"questPlatypusNotes": "コンクエスト入り江の天気は晴れているが、宿題プリントのせいで台無しになっています。なんでいつも冒険したいときに宿題があるんだろう、とあなたは考えます。河川の生態系についての問題を解いていると、作文が出てきます。<br><br>「動物は川に住むためにどのように工夫しているか?知らんよ...」<br><br>どこから始めたらいいのかもわからず戸惑っていると、下流からバタバタする音が聞こえてきます。<br><br>「やれやれ」と、水面のしたからため息。すると、疲れたカモノハシが浮かび上がります。「全然巣穴が進まない。どうしても思い通りに作れないわ。」彼女は再び水中に潜り込み、幅広い尾が水面にあたるとあなたに大きな水しぶきがかかります。<br><br>「ちょっと待って、全部崩さないで!」とあなたは叫びます。早く助けてあげないと!(ついでに作文のアイデアが出るかも!)",
"questCatRageTitle": "怒りの猫パンチ",
"questRaccoonRageEffect": "欲張りなアライグマはあなたが救出したアイテムを奪い取り、木の中に詰め込みます。ボスは体力を30回復してしまいました",
"questOpalCompletion": "疲れて砂だらけの姿ですが、魔法のたまごがえしの薬を作るために必要なルーンとオパールの宝石がやっと全部集まりました。<br><br>Habiticaの首都に帰ると、すぐに作業を始めます。すると、オパールとルーンの魔法のおかげで虹色の光が部屋中に広がりますあっという間に薬が三つできて、カラフルなペットをたまごからかえすのが楽しみです。",
"questOpalNotes": "Habiticaの学者たちは長年、伝説のオパールのたまごがえしの薬を探してきています。それは、他の宝石や貴金属と比べられないぐらい、鮮やかな炎の色をペットや乗騎に与える薬だそうです。オパールには計画性、判断力と創造力を向上させる魔法があるとも噂されています。絶対タスクに役立ちそうですね<br><br>そして、あなたが一生懸命リサーチしたおかげ、やっとその秘密を解き明かすことができました。オパールのたまごがえしの薬を作るには、てんびん座と水星のルーンを鍛えてできる、オパールの宝石が必要です。この古代のアイテムは特定の場所でしか見つけられません...ムダボネの砂漠の端にある、失われた街です。<br><br>一番強い乗騎に乗り、数日かけて険しい道を通っていると、やっと街の廃墟が見えてきます。瓦礫と色のあせた石の間には、明るい光が輝いています。さぁ、探検が始まります!"
"questOpalCollectMercuryRunes": "水星のルーン"
}

View File

@@ -22,12 +22,12 @@
"spellRogueToolsOfTradeText": "商売道具",
"spellRogueToolsOfTradeNotes": "あなたの巧みな才能により、パーティー全員の知覚に勢いボーナスがつきます!( 基準:勢いなしの知覚値)",
"spellRogueStealthText": "ステルス",
"spellRogueStealthNotes": "唱えるたびに、日課のいくつかをやり残しても、今夜はダメージを受けずに済むようになります。連続実行回数やタスクの色に影響を与えません。(基準:知覚)",
"spellRogueStealthNotes": "唱えるたびに、日課のいくつかをやり残しても、今夜はダメージを受けずに済むようになります。連続実行やタスクの色に影響を与えません。(基準:知覚)",
"spellRogueStealthDaliesAvoided": "<%= originalText %>回避する日課:<%= number %>件。",
"spellHealerHealText": "ヒール",
"spellHealerHealNotes": "まばゆい光が体力を回復します! (基準:体質と知能)",
"spellHealerBrightnessText": "焼けるような輝き",
"spellHealerBrightnessNotes": "炸裂する光が、タスクの色の赤さを軽減して青に近づけます。基準:知能",
"spellHealerBrightnessNotes": "炸裂する光が、タスクの色の赤さを軽減して青に近づけます。(基準:知能 )",
"spellHealerProtectAuraText": "守りのオーラ",
"spellHealerProtectAuraNotes": "ダメージからパーティーを守ります。パーティーの全員の体質に勢いボーナスがつきます!( 基準:勢いなしの体質値)",
"spellHealerHealAllText": "おまじない",
@@ -42,7 +42,7 @@
"spellSpecialOpaquePotionNotes": "不気味な光の効果を取り消す。",
"spellSpecialShinySeedText": "輝く種",
"spellSpecialShinySeedNotes": "友達を楽しそうな花に変えよう!",
"spellSpecialPetalFreePotionText": "花びら消しの薬",
"spellSpecialPetalFreePotionText": "花びら消しポーション",
"spellSpecialPetalFreePotionNotes": "輝く種の効果を取り消す。",
"spellSpecialSeafoamText": "海の泡",
"spellSpecialSeafoamNotes": "友達を海の生き物に変えよう!",

View File

@@ -122,7 +122,7 @@
"gemBenefit4": "アバターの能力値をリセット、またはクラスを変更する。",
"subscriptionBenefit1": "市場でゴールドで購入可能なジェムを最大50個得て、クエスト、カスタマイズ、ペットなどが購入できます",
"subscriptionBenefit3": "毎日2倍のタマゴ、たまごがえしの薬と餌を見つけてペットコレクションを増やしましょう",
"subscriptionBenefit4": "最新の限定装備で着飾りましょう。有料プランに登録して<%= month %>の<%= currentMysterySetName %>をゲットしよう!",
"subscriptionBenefit4": "最新の限定装備で着飾りましょう。有料プランに登録して<%= month %>の <%= currentMysterySetName %>をゲットしよう!",
"subscriptionBenefit5": "さっそく有料プランに登録して、特別なロイヤルパープルのジャッカロープのペットをゲットしよう!",
"subscriptionBenefit6": "タイムトラベラーの店で使える神秘の砂時計を毎月1個ゲットして、アイテムを見逃さないようにしよう",
"purchaseAll": "セットを購入する",
@@ -245,7 +245,7 @@
"mysterySet202507": "元気なスケーターセット",
"subscribeTo": "に登録",
"monthlyMysticHourglass": "毎月の神秘の砂時計",
"unlockNGems": "毎月<strong><%= count %>個のジェム</strong>をアンロック",
"unlockNGems": "毎月<strong><%= count %> 個のジェム</strong>をアンロックしよう",
"resubscribeToPickUp": "有料プランに再登録して中断したところから続けましょう!",
"popular": "人気",
"subscribe": "有料プランの登録",
@@ -255,19 +255,18 @@
"nMonthsGift": "<%= months %>ヶ月プラン",
"oneMonthGift": "1ヶ月プラン",
"selectPayment": "お支払い方法を選択する",
"mysterySet202504": "不思議な雪男セット",
"mysterySet202504": "伝説の雪男セット",
"mysterySet202506": "太陽の輝きセット",
"subscriptionChangeAnnouncement": "<strong>有料プランの特典とそれの付与の方法は11/19から変わります。詳しくは</strong> <%= linkStart %>このページ</a>をご覧ください。",
"monthlyGemsLabel": "毎月のジェム",
"mysterySet202509": "風に吹かれた旅人セット",
"mysterySet202511": "霜の戦士セット",
"recurringNMonthly": "<%= length %>ヶ月ごとに自動更新",
"recurringNMonthly": "<%= length %>ヶ月ごとに更新されます",
"mysterySet202510": "空中に浮かぶグールセット",
"unlockNGemsGift": "受取人は毎月<strong><%= count %> 個のジェム</strong>をアンロックします",
"earn2GemsGift": "受取人は有料プランに登録している間、毎月<strong>+2個のジェム</strong>を獲得します",
"earn2Gems": "登録している間、毎月<strong>+2個のジェム</strong>を獲得",
"mysterySet202502": "親切なアルレッキーノセット",
"maxGemCapGift": "受取人は<strong>最大限のジェム</strong>をゲットします",
"subscribeAgainContinueHourglasses": "神秘の砂時計をゲットし続けるには、再び有料プランに登録してください",
"immediate12Hourglasses": "初めて12ヶ月間の有料プランに登録したとき、<strong>12個の神秘の砂時計</strong>をすぐにゲットしよう!"
"subscribeAgainContinueHourglasses": "神秘の砂時計をゲットし続けるには、再び有料プランに登録してください"
}

View File

@@ -728,7 +728,5 @@
"backgrounds102022": "SET 101: 2022년 10월에 출시",
"backgroundSpookyRuinsText": "으스스한 폐허",
"backgroundSpookyRuinsNotes": "으스스한 폐허를 모험하세요.",
"backgroundMaskMakersWorkshopText": "마스크 제작자의 워크숍",
"backgroundMaskMakersWorkshopNotes": "마스크 제작자의 워크숍에서 새로운 마스크를 체험해보세요.",
"backgroundCemeteryGateText": "묘지 입구"
"backgroundMaskMakersWorkshopText": "마스크 제작자의 워크숍"
}

View File

@@ -773,7 +773,5 @@
"backgroundInsideACrystalNotes": "Kijk vanuit een Kristal naar buiten.",
"backgroundSnowyVillageText": "Besneeuwd Dorp",
"backgroundSnowyVillageNotes": "Bewonder een Besneeuwd Dorp.",
"backgrounds122022": "SET 103: Uitgebracht december 2022",
"backgroundSpringtimeShowerText": "Lentedouche",
"backgroundSpringtimeShowerNotes": "Zie een bloemrijke lentedouche."
"backgrounds122022": "SET 103: Uitgebracht december 2022"
}

View File

@@ -1772,7 +1772,7 @@
"eyewearArmoireComedyMaskText": "Komediowa Maska",
"eyewearArmoireJewelersEyeLoupeText": "Lupa Jubilerska",
"moreArmoireGearAvailable": "Do tego czasu, zostało do znalezienia <%= armoireCount %> części wyposażenia w Zaczarowanej Skrzyni!",
"gearItemsCompleted": "Jesteś w posiadaniu całego ekwipunku klasy <%= klass %>! Nowy ekwipunek jest wydawany podczas Gal sezonowych.",
"gearItemsCompleted": "Jesteś w posiadaniu całego ekwipunku klasy <%= class %>! Nowy ekwipunek jest wydawany podczas Gal sezonowych.",
"moreArmoireGearComing": "Zaczarowana Skrzynia również comiesięcznie otrzymuje nowy asortyment!",
"weaponSpecialFall2019MageNotes": "Niezależnie od tego, czy chodzi o wykuwanie piorunów, wznoszenie fortyfikacji, czy po prostu wzbudzanie przerażenia w sercach śmiertelników, ta laska daje moc gigantów do czynienia cudów. Zwiększa inteligencję o <%= int %> i percepcję o <%= per %>. Limitowana edycja 2019 Jesienne Wyposażenie.",
"weaponSpecialFall2019HealerText": "Przerażające Filakterium",

View File

@@ -130,7 +130,7 @@
"optOutOfClasses": "Отказаться",
"chooseClass": "Выберите свой класс",
"chooseClassLearnMarkdown": "[Узнать больше о системе классов в стране Habitica](https://habitica.fandom.com/ru/wiki/Система_классов)",
"optOutOfClassesText": "Пока не готовы выбрать? Это не к спеху. Если откажетесь, вы можете ознакомиться с каждым классом в <a href='/static/faq#what-classes' target='_blank'>нашем FAQ</a> и по готовности зайти в «Настройки» для выбора класса.",
"optOutOfClassesText": "Не хотите утруждать себя выбором класса? Или предпочитаете определиться позже? Отказавшись от класса, вы останетесь простым воином без специальных способностей. Вы также можете прочитать про систему классов на нашей вики позже и включить классы в любое время на странице Пользователь -> Настройки.",
"selectClass": "Выбрать <%= heroClass %>",
"select": "Выбрать",
"stealth": "Хитрость",

View File

@@ -241,8 +241,8 @@
"guildSummary": "Сводка о гильдии",
"guildSummaryPlaceholder": "Напишите краткое описание вашей гильдии для других жителей страны Habitica. В чём главный смысл вашей гильдии и почему люди должны вступать в неё? Старайтесь включать полезные ключевые слова в описании, чтобы другие жители страны Habitica могли легко найти эту гильдию, когда будут её искать!",
"groupDescription": "Описание группы",
"guildDescriptionPlaceholder": "В этом блоке опишите подробно всё, что следует знать участникам о вашей команде. Полезные советы, ссылки и ободряющие высказывания идут сюда!",
"markdownFormattingHelp": "[Справка по форматированию Markdown](https://github.com/HabitRPG/habitica/wiki/Markdown-in-Habitica)",
"guildDescriptionPlaceholder": "В этом блоке опишите подробно всё, что следует знать участникам о вашей гильдии. Полезные советы, ссылки и ободряющие высказывания идут сюда!",
"markdownFormattingHelp": "[Справка по форматированию Markdown](http://habitica.fandom.com/ru/wiki/Шпаргалка_по_Markdown)",
"partyDescriptionPlaceholder": "Это описание нашей команды. Он описывает, что мы здесь делаем. Если вы хотите узнать больше, прочитайте описание. Время вечеринок.",
"guildGemCostInfo": "Цена в самоцветах способствует высокому качеству гильдий и переводится в банк вашей гильдии.",
"noGuildsTitle": "Вы не состоите в гильдиях.",
@@ -288,13 +288,13 @@
"worldBossBullet4": "Регулярно заходите в Таверну, чтобы увидеть уровни здоровья и ярости мирового босса",
"worldBoss": "Мировой злыдень",
"groupPlanTitle": "Нужно больше людей в команду?",
"groupPlanDesc": "Нужно упорядочить быт или спланировать учебный проект? С Групповыми Планами от Habitica вы сможете вместе ставить задачи и общаться в отдельном чате — это поможет всей команде не терять мотивацию.",
"groupPlanDesc": "Управляете небольшой командой или организуете работу по дому? «Командные задачи» предоставляют вам эксклюзивный доступ к личной панели задач и чат-комнате, созданным специально для вас и ваших напарников!",
"billedMonthly": "*является ежемесячной подпиской",
"teamBasedTasksList": "Общая доска задач",
"teamBasedTasksList": "Задачи для команды",
"teamBasedTasksListDesc": "Создайте легко-доступный список задач для вашей команды. Закрепите отдельную задачу за её участником или позвольте им самим выбирать какие задачи выполнять, чтобы все видели над чем они работают!",
"groupManagementControls": "Гибкая отчетность",
"groupManagementControls": "Инструменты управления командой",
"groupManagementControlsDesc": "Посмотрите статус задачи, чтобы проверить какие из задач были выполнены, добавляйте Менеджеров Групп для распределения обязанностей и наслаждайтесь личным чатом для всей вашей команды.",
"inGameBenefits": "Все преимущества!",
"inGameBenefits": "Внутриигровые бонусы",
"inGameBenefitsDesc": "Все участники команды получат эксклюзивного скакуна Джекалопа, а так же полные преимущества подписки, включающие ежемесячные наборы особой экипировки и возможность покупать самоцветы за золото.",
"letsMakeAccount": "Для начала, создадим вам аккаунт",
"nameYourGroup": "Теперь, придумаем имя вашей команде",
@@ -425,8 +425,5 @@
"interestedLearningMore": "Хотите узнать больше?",
"checkGroupPlanFAQ": "Ознакомьтесь с <a href='/static/faq#what-is-group-plan'>ЧаВо о групповых планах2</a>, чтобы узнать, как получить максимальную выгоду от совместного выполнения заданий.",
"messageCopiedToClipboard": "Сообщение скопировано в буфер обмена.",
"createGroupToday": "Создайте свою группу сегодня!",
"upgradeYourCrew": "Готовы улучишь Вашу команду?",
"createGroupTitle": "Создайте команду",
"readyToUpgrade": "Готовы улучшить?"
"createGroupToday": "Создайте свою группу сегодня!"
}

View File

@@ -108,6 +108,5 @@
"cannotClone": "此挑战无法被复制,因为一名或多名玩家举报此挑战有不适当的内容。 工作人员将很快与您联系并进行说明。 如果超过 48 小时仍未收到联系,请发送电子邮件至 admin@habitica.com 寻求帮助。",
"resetFlags": "重置举报计数",
"cannotMakeChallenge": "您无法创建公开挑战,因为您的账号目前没有聊天权限。 更多相关信息请联系 admin@habitica.com。",
"messageChallengeFlagOfficial": "不能举报官方挑战。",
"deleteChallengeRefundDescription": "如果您删除该挑战,将退还用于奖励的宝石,但挑战任务仍会保留在参加者的任务面板上。"
"messageChallengeFlagOfficial": "不能举报官方挑战。"
}

View File

@@ -238,9 +238,8 @@
"mutePlayer": "屏蔽",
"shadowMute": "隐形屏蔽",
"playerReportModalBody": "您只能举报违反<%= firstLinkStart %>社区准则<%= linkEnd %>和/或<%= secondLinkStart %>服务条款<%= linkEnd %>的玩家。提交虚假举报是违反Habitica社区准则的行为。",
"titleCustomizations": "个性装扮",
"titleCustomizations": "自定义",
"newMessage": "新信息",
"targetUserNotExist": "目标用户:'<%= userName %>'不存在。",
"rememberToBeKind": "请谨记友善、尊重他人,并遵守<a href='/static/community-guidelines' target='_blank'>社区准则</a>。",
"gem": "宝石"
"rememberToBeKind": "请谨记友善、尊重他人,并遵守<a href='/static/community-guidelines' target='_blank'>社区准则</a>。"
}

View File

@@ -96,7 +96,7 @@
"optional": "非必填",
"needsTextPlaceholder": "请在这里输入信息。",
"leaderOnlyChallenges": "只有团队队长才能创建挑战",
"sendGift": "发送礼物",
"sendGift": "发送一份礼物",
"inviteFriends": "邀请朋友",
"inviteByEmail": "通过邮件邀请",
"inviteMembersHowTo": "通过有效的电子邮件或36位用户ID邀请他人。如果电子邮件尚未注册我们将邀请他们加入Habitica。",

View File

@@ -271,7 +271,5 @@
"managePrivacyPreferences": "管理隐私偏好",
"strictlyNecessary": "绝对必要",
"yourPrivacyPreferences": "您的隐私偏好",
"savePreferences": "保存偏好设置",
"gpcWarning": "<a href='<%= url %>' target='_blank'>GPC全球隐私控制</a> 已开启。若启用下方数据可追溯性,将会覆盖此设置并将数据发送至我们的分析合作伙伴。",
"gpcPlusAnalytics": "<a href='<%= url %>' target='_blank'>GPC全球隐私控制</a> 已开启。您已同意启用可追溯性,并将数据传输给至我们的分析合作伙伴。"
"savePreferences": "保存偏好设置"
}

View File

@@ -5,7 +5,7 @@
"webFaqStillNeedHelp": "如果您有任何疑問,但沒出現在以上列表中或是 [Wiki FAQ](https://habitica.fandom.com/wiki/FAQ)中,請至 [Habitica Help guild](https://habitica.com/groups/guild/5481ccf3-5d2d-48a9-a871-70a7380cee5a)裡詢問,我們相當樂意協助。",
"commonQuestions": "常見問題",
"faqQuestion25": "這些不同的任務類型是什麼?",
"webFaqAnswer25": "Habitica 使用三種不同的任務類型來滿足您的需求,分別是:習慣 (Habits)、每日任務 (Dailies),以及待辦事項 (To-Do's)。\n\n習慣 (Habits)\n「習慣」分為正面與負面兩種適合用來追蹤那些您想在一天內多次執行、或沒有固定時程的行為。正面的習慣會為您帶來獎勵如金幣和經驗值而負面的習慣則會讓您失去生命值。\n\n每日任務 (Dailies)\n「每日任務」是您想要在更有結構的時程上完成的重複任務例如每天一次、每週三次或是一個月四次。若未完成每日任務會導致您失去生命值,但任務的難度越高,完成後的獎勵越豐厚!\n\n待辦事項 (To-Dos)\n「待辦事項」是一次性任務,在您完成會提供獎勵。待辦事項可以設定截止日期,但即使錯過了,您也不會因此失去生命值。\n\n請挑選最適合您想達成目標的任務類型吧!",
"webFaqAnswer25": "習慣可以用於你希望每天做多次的事情,或是一些不確定的計劃。 它們可以被選擇完成或完不成,選擇完成會帶來金幣和經驗的獎勵,而另一種則會對你造成生命值傷害。\n\n每日任務是你希望更嚴謹地按計畫進行的重複任務例如每天一次、每週三次或是月四次。 錯過完成每日任務會導致你受到生命值傷害,但這些任務越艱難,帶來的獎勵越豐厚!\n\n待辦事項是一次性任務當你完成會提供獎勵。 待辦事項可以設定截止時間,但你不會因為錯過時間而失去生命值。\n\n選擇最適合你想要完成的任務類型吧!",
"faqQuestion26": "什麼是範例任務?",
"contentAnswer62": "情人節魔術孵化藥水現在已納入每月的時間表中。",
"contentFaqPara3": "如果您有任何上述答案未涵蓋的問題,您可以隨時透過 <%= mailto %> 聯絡我們的團隊!我們對於新內容發行計畫感到非常興奮,並期待未來有更多的計畫能幫助所有玩家讓 Habitica 變得更好。",
@@ -29,7 +29,7 @@
"subscriptionHeading2": "我們為什麼要做這些改變?",
"subscriptionDetail20": "在目前的架構下,您很難了解您會收到多少個神秘沙漏,以及何時會收到。",
"faqQuestion27": "為什麼任務會改變顏色?",
"faqQuestion28": "如果我需要休息一下,可以暫停我的每日任務嗎?",
"faqQuestion28": "如果我需要休息,可以暫停每日任務嗎?",
"faqQuestion29": "如何恢復 HP生命值",
"faqQuestion30": "HP生命值歸零時會發生什麼事",
"faqQuestion32": "要怎麼選擇職業?",
@@ -64,8 +64,8 @@
"sunsetFaqHeader12": "公會銀行寶石會如何?",
"sunsetFaqPara21": "公會銀行中的寶石將在 8 月 8 日公會服務結束時退還給公會領袖。",
"sunsetFaqHeader2": "為什麼酒館和公會服務要結束?",
"webFaqAnswer26": "正習慣 (您想要鼓勵的行為;應有「+」按鈕)\n\n * 吃維他命\n * 使用牙線\n * 學習一小時\n\n負向習慣你想要限制或避免的行為應該有「」按鈕\n\n * 抽菸\n * 無止盡滑手機\n * 咬指甲\n\n雙向習慣同時包含正面與負面選項的行為同時帶有「+」與「-」按鈕)\n\n * 喝水 vs. 喝汽水\n * 學習 vs. 拖延\n\n每日任務範例 (您想依循規律時程重複的任務)\n * 洗碗\n * 澆花\n * 30 分鐘的體能運動\n\n待辦事項範例只需要完成一次的事情)\n\n * 預約時間\n * 整理衣櫃\n * 完成報告",
"webFaqAnswer27": "任務的顏色直觀地呈現了該任務的價值。所有任務的初始顏色都是都是代表中性的黃色,藍色代表良好,紅色代表不良。以下是各任務類型決定其顏色的方式:\n\n習慣會根據您點擊「+」或「-」按鈕而變得更藍或紅。如果您長時間沒有點擊,正面與負面的習慣都會隨著時間逐漸退回至黃色。而雙向習慣的顏色則只會依據您的點擊而改變。\n\n每日任務的顏色會根據完成頻率而變化完成的每日任務顏色會變藍未完成的每日任務顏色會變紅。\n\n待辦事項在未完成的狀態下放置越久,顏色就會逐漸變得越紅。\n\n任務的紅色愈深完成它獲得的金幣和經驗值就愈多所以,請務必去挑戰那些您最艱的任務!",
"webFaqAnswer26": "正習慣(你想要培養的行為;應有「」按鈕\n\n * 吃維他命\n * 使用牙線\n * 學習一小時\n\n負向習慣你想要限制或避免的行為應該有「」按鈕\n\n * 抽菸\n * 無止盡滑手機\n * 咬指甲\n\n雙向習慣同時包含正面與負面選項的行為應有「」與「」按鈕\n\n * 喝水 vs. 喝汽水\n * 學習 vs. 拖延\n\n每日任務範例(你想定期執行的事情)\n * 洗碗\n * 澆花\n * 30 分鐘的運動\n\n待辦事項範例只需要完成一次的事情\n\n * 預約時間\n * 整理衣櫃\n * 完成報告",
"webFaqAnswer27": "任務的顏色能夠一目了然地看出其價值。所有任務的初始顏色都是黃色(代表中性)、藍色代表較好)、紅色代表較差)。以下是決定每種任務類型價值的方式:\n\n習慣的顏色會根據你是按下「」或「」按鈕而變藍或紅。如果沒完成某個正向習慣和負向習慣,久了它們就會逐漸變成黃色;雙向習慣的顏色則只會根據你按下的按鈕而改變。\n\n每日任務的顏色會根據完成頻率而變化完成的每日任務顏色會變藍未完成的每日任務顏色會變紅。\n\n待辦事項的顏色會隨著未完成時間的延長而逐漸變紅。\n\n任務的紅色愈深完成它獲得的金幣和經驗值就愈多所以即使是最艱的任務,也一定要挑戰",
"webFaqAnswer28": "當然可以! 在「設定」中有個「暫停傷害」按鈕,可以防止你因為沒完成每日任務而損失生命值。如果你正在度假、需要休息,或因為其他原因需要暫停一下,這個功能可以幫得上忙。如果你正在打某個副本,你自己的待結算進度會暫停,但你仍然會因隊友沒完成每日任務而受到傷害。\n\n如果要暫停特定的每日任務你可以編輯排程改為「每 0 天到期一次」,直到你準備好重新開始為止。",
"webFaqAnswer29": "你可以從「獎勵」欄花費 25 金幣購買「治療藥水」,即可恢復 15 點生命值。另外,每次升級後都會重新滿血!",
"webFaqAnswer30": "如果 HP生命值歸零你就會降級一等、失去所有金幣以及一件可以重新購買的裝備。",
@@ -118,19 +118,5 @@
"webFaqAnswer59": "Habitica團隊計劃提供了一種共享體驗允許隊員輕鬆地在共享任務板上添加、分配和完成任務。憑借成員角色、狀態視圖和任務分配等功能團隊計劃非常適合擁有共同目標的家庭或同事團隊。這也是一種在與怪物戰鬥和改善生活旅程中互相激勵的好方式。",
"webFaqAnswer60": "這裡有一些小提示來幫助您開啟Habitica團隊計劃的使用 \n\n * 可以提拔成員為管理員,讓他們能夠創建和編輯任務 \n * 如果是任何人都能完成且只需完成1次的任務請讓該任務保持未分配狀態 \n * 可以將任務分配給某人可以確保其他人無法完成該任務 \n * 如果某個任務需要多人完成,可以將該任務分給多人 \n * 為防止遺漏完成多人共享任務,你的個人任務版面也可以切換顯示共享任務 \n * 即使是分配給多人的任務,你也能因為完成任務而獲得獎勵 \n * 完成任務的獎勵不會在隊員之間拆分 \n * 可以在團隊任務板上使用任務顏色來判斷任務的平均完成率 \n * 記得定期檢查共享任務板上的任務,確保共享任務仍然有效 \n * 錯過完成完成每日任务不会对你或你的团队造成伤害,但该任务的颜色会逐渐变差",
"webFaqAnswer61": "只有團隊隊長和管理員可以創建共享任務。如果你想要某位成員也能創建任務,需要將其提升為管理員。\n\n在網頁端將團隊計劃的成員提升為管理員需要\n 1. 導航到團隊計劃頁面並切換到“團隊信息”菜單\n 2. 查看成員列表並點擊要提升成員旁的原型按鈕\n 3. 選擇“指定為管理員”",
"faqQuestion62": "該怎麼指派任務?",
"webFaqAnswer62": "群組方案讓你能夠將共享任務分配給群組計劃中的其他成員。當共享任務被分配給某個成員時,其他成員將無法完成該任務。\n\n你也可以將任務分配給多個成員。例如如果每個人都必須刷牙建立一個任務並將它分配給每位成員。每位成員都可以完成任務並獲得各自的獎勵。當所有人都完成後主要任務將顯示為已完成。",
"faqQuestion63": "未分配的任務是如何運作的?",
"webFaqAnswer63": "未分配的任務可以由任何成員完成。例如:倒垃圾。無論誰去倒垃圾,都可以完成這個未分配的任務,並且它會顯示為所有人都已完成。",
"faqQuestion64": "同步的每日重置是如何運作的?",
"webFaqAnswer64": "共享任務會在同一時間為所有人重置,以保持共享任務板的同步。這個時間會顯示在共享任務板上,並由群組計劃領導者的「一天開始時間」決定。\n由於共享任務會自動重置所以當你在隔天早上登入時將沒有機會完成前一天未完成的共享每日任務。\n\n未完成的共享每日任務不會造成傷害但它們的顏色會逐漸退化以幫助視覺化進度。",
"faqQuestion65": "群組方案在行動應用程式上有支援嗎?",
"webFaqAnswer65": "雖然行動應用程式尚未完全支援所有群組方案的功能,但你仍然可以透過 iOS 和 Android 應用程式完成共享任務!\n\n在 Android 上,檢視任務時可以點擊螢幕頂端的顯示名稱,切換到共享任務板。從那裡你可以查看成員、進入聊天,以及建立、完成或分配任務。\n\n你也可以開啟一個偏好設定把共享任務複製到你的個人任務板這樣就能在同一個地方完成所有任務。\n\n在行動應用程式上操作方式\n打開設定開啟「複製共享任務」\n\n在 Habitica 網站上操作方式:\n前往你的群組方案並在共享任務板上開啟「複製任務」切換鍵",
"faqQuestion66": "群組方案的共享任務與挑戰任務有什麼不同?",
"webFaqAnswer66": "群組方案的共享任務板比挑戰更具動態性,因為它們可以不斷更新與互動。挑戰則適合在有一組固定任務要分送給許多人時使用。\n\n群組方案同時也是付費功能而挑戰對所有人都是免費的。\n\n在挑戰中你無法指定特定成員去完成某些任務而且挑戰也沒有共享的每日重置機制。總體來說挑戰提供的控制與直接互動會比較少。",
"sunsetFaqTitle": "Habitica 酒館與公會服務終止 FAQ",
"sunsetFaqPara1": "由於多種因素,包括我們玩家群體與 Habitica 的互動方式改變,以及新的內容規範,我們做出了艱難的決定,將於 <strong> 2023 年 8 月 8 日</strong> 終止酒館與公會服務。",
"sunsetFaqPara4": "為了紀念我們共同度過的時光,在邁入這個新時代之際,我們將贈送所有人一隻老兵寵物。至於我們出色的貢獻者們,我們也會送上一套特別的裝備組,以紀念他們在 Habitica 社群中的所有努力。",
"sunsetFaqPara5": "如果你想了解更多即將變動的內容,可以閱讀以下的詳細資訊。",
"sunsetFaqPara3": "我們做出這項決定,是為了能更好地將資源集中在 Habitica 玩家最依賴的部分,同時不會影響任何人的使用權限。"
"faqQuestion62": "該怎麼指派任務?"
}

View File

@@ -164,24 +164,18 @@ export default async function highlightMentions (text) {
if (mentions && mentions.length <= 5) {
const usernames = mentions.map(mention => mention.substr(1));
const usernameRegexes = usernames.map(username => new RegExp(`^${escapeRegExp(username)}$`, 'i'));
members = await User
.find({
$or: usernameRegexes.map(regex => ({ 'auth.local.username': regex })),
'flags.verifiedUsername': true,
})
.find({ 'auth.local.username': { $in: usernames }, 'flags.verifiedUsername': true })
.select(['auth.local.username', '_id', 'preferences.pushNotifications', 'pushDevices', 'party', 'guilds'])
.lean()
.exec();
const baseUrl = determineBaseUrl();
members.forEach(member => {
const { username } = member.auth.local;
const regex = new RegExp(`@${escapeRegExp(username)}(?![\\-\\w])`, 'gi');
const regex = new RegExp(`@${username}(?![\\-\\w])`, 'g');
const replacement = `[@${username}](${baseUrl}/profile/${member._id})`;
textBlocks.transformValidBlocks(blockText => blockText.replace(regex, match => {
const mentionedUsername = match.substr(1);
return `[@${mentionedUsername}](${baseUrl}/profile/${member._id})`;
}));
textBlocks.transformValidBlocks(blockText => blockText.replace(regex, replacement));
});
}