Compare commits

..

9 Commits

Author SHA1 Message Date
Julian Lam
3f13a69298 Re-introduce lodash into src/package-install.js (#10315)
* test: add failing test for if package.json is non-existant, fix tests' beforeEach method

* Revert "fix: #10289, remove lodash dependency in src/cli/package-install.js"

This reverts commit 81fa2e22bc.

* fix: regression caused by 94b79ce402

`./nodebb setup` was no longer able to be called without arguments or env vars

* fix: .updatePackageFile() throwing if no package.json

* fix: removing unneeded code in src/cli/index.js that seemed to be used to handle cases where package.json was missing (initial install)

... However, as .updatePackageFile() now handled cases where there is no package.json, it should be ok to remove this code

* fix: handle missing package.json or node_modules/
2022-02-18 10:13:11 -05:00
Julian Lam
b60174f51e fix: regression caused by 94b79ce402
`./nodebb setup` was no longer able to be called without arguments or env vars
2022-02-18 10:12:59 -05:00
Misty (Bot)
7388f111b7 chore: incrementing version number - v1.19.3 2022-02-16 19:20:39 +00:00
Misty (Bot)
4bd559deba Merge commit 'e9e48a756fad301e8a6729d3e74852a644228724' into v1.19.x 2022-02-16 19:20:36 +00:00
Misty (Bot)
ded19254ac chore: incrementing version number - v1.19.2 2022-02-09 21:28:32 +00:00
Misty (Bot)
5c89557155 Merge commit '8e52abe8bed8706d2f75dce4f118490e48c6fab8' into v1.19.x 2022-02-09 21:28:11 +00:00
Misty (Bot)
04ce24e661 chore: incrementing version number - v1.19.1 2022-01-21 18:20:49 +00:00
Misty (Bot)
a24a108a66 Merge commit 'd098e26f82096188a8ef910561c5ebc7a784a399' into v1.19.x 2022-01-21 18:18:46 +00:00
Misty (Bot)
aa77758afd chore: incrementing version number - v1.19.0 2022-01-13 18:51:21 +00:00
1103 changed files with 5671 additions and 13368 deletions

View File

@@ -18,12 +18,3 @@ logs/
.eslintrc
test/files
*.min.js
/public/src/app.js
/public/src/client.js
/public/src/admin/admin.js
/public/src/modules/translator.common.js
/public/src/modules/pictureCropper.js
/public/src/modules/ace-editor.js
/public/src/client/account/header.js
/public/src/client/test.js

32
.github/ISSUE_TEMPLATE.md vendored Normal file
View File

@@ -0,0 +1,32 @@
<!--
== Github Issues are for bug reports and feature requests only ==
== Please visit https://community.nodebb.org for other support ==
== Found a security exploit? Please email us at security@nodebb.org instead for immediate attention ==
== → DO NOT SUBMIT VULNERABILITIES TO THE PUBLIC BUG TRACKER ==
-->
<!-- ++ Please include the following information when submitting a bug report ++ -->
- **NodeBB version:**
- **NodeBB git hash:**
- **NodeJS version:**
<!-- (to find your git hash, execute `git rev-parse HEAD` from the main NodeBB directory) -->
- **Installed NodeBB Plugins:**
<!-- (to find installed plugins run ./nodebb plugins) -->
- **Database type:** mongo, redis, or postgres
- **Database version:**
<!-- `mongod --version`, `redis-server --version`, or `postgres --version` -->
- **Exact steps to cause this issue:**
<!--
1. First I did this...
2. Then, I clicked on this item...
A quick note: MP4 and MOV formatted video files are now allowed to be uploaded to GH.
Please upload if reproduction steps are hard to describe or reproduce reliably.
-->
- **What you expected:**
<!-- e.g. I expected *abc* to *xyz* -->
- **What happened instead:**
<!-- e.g. Instead, I got *zyx* and NodeBB set fire to my house -->
<!-- Thank you! -->

View File

@@ -1,81 +0,0 @@
name: Bug Report
description: File a bug report
labels: ["bug"]
body:
- type: markdown
attributes:
value: |
Github Issues are for bug reports and feature requests only
Please visit https://community.nodebb.org for other support
Found a security exploit? Please email us at security@nodebb.org instead for immediate attention
### → DO NOT SUBMIT VULNERABILITIES TO THE PUBLIC BUG TRACKER ←
- type: input
attributes:
label: NodeBB version
placeholder: e.g. v2.2.0
- type: input
attributes:
label: NodeBB git hash
description: to find your git hash, execute `git rev-parse HEAD` from the main NodeBB directory
placeholder: e.g. 783250ee6f8c51cdc243ce3b8d9f1a080517247e
- type: input
attributes:
label: NodeJS version
placeholder: e.g. v16.15.1
- type: textarea
attributes:
label: Installed NodeBB plugins
description: to find installed plugins run `./nodebb plugins`
placeholder: |
e.g.
* nodebb-plugin-2factor@5.0.1 (installed, disabled)
* nodebb-plugin-composer-default@8.0.0 (installed, enabled)
* nodebb-plugin-dbsearch@5.1.5 (installed, disabled)
* nodebb-plugin-emoji@4.0.4 (installed, enabled)
* nodebb-plugin-emoji-android@3.0.0 (installed, enabled)
* nodebb-plugin-markdown@10.0.0 (installed, enabled)
* nodebb-plugin-mentions@3.0.11 (installed, enabled)
* nodebb-plugin-spam-be-gone@1.0.0 (installed, disabled)
* nodebb-rewards-essentials@0.2.1 (installed, enabled)
* nodebb-theme-lavender@6.0.0 (installed, disabled)
* nodebb-theme-persona@12.0.11 (installed, enabled)
* nodebb-theme-slick@2.0.2 (installed, disabled)
* nodebb-theme-vanilla@12.1.18 (installed, disabled)
* nodebb-widget-essentials@6.0.0 (installed, enabled)
- type: dropdown
attributes:
label: Database type
multiple: true
options:
- MongoDB
- Redis
- PostgreSQL
- type: input
attributes:
label: Database version
description: "`mongod --version`, `redis-server --version`, or `postgres --version`"
placeholder: e.g. v5.0.9
- type: textarea
attributes:
label: Exact steps to cause this issue
placeholder: |
1. First I did this...
2. Then, I clicked on this item...
A quick note: MP4 and MOV formatted video files are now allowed to be uploaded to GH.
Please upload if reproduction steps are hard to describe or reproduce reliably.
- type: textarea
attributes:
label: What you expected
placeholder: e.g. I expected *abc* to *xyz*
- type: textarea
attributes:
label: What happened instead
placeholder: e.g. Instead, I got *zyx* and NodeBB set fire to my house
- type: textarea
attributes:
label: Anything else?
description: Any additional context about the issue you're encountering
- type: markdown
attributes:
value: "**Thank you!**"

View File

@@ -1,5 +0,0 @@
blank_issues_enabled: true
contact_links:
- name: Community Forum
url: https://community.nodebb.org
about: Github Issues are for bug reports and feature requests only, please use community forum for other support

View File

@@ -1,24 +0,0 @@
name: Feature Request
description: Suggest a new feature
labels: ["enhancement"]
body:
- type: markdown
attributes:
value: |
Github Issues are for bug reports and feature requests only
Please visit https://community.nodebb.org for other support
Found a security exploit? Please email us at security@nodebb.org instead for immediate attention
### → DO NOT SUBMIT VULNERABILITIES TO THE PUBLIC BUG TRACKER ←
- type: textarea
attributes:
label: Description
validations:
required: true
- type: input
attributes:
label: Community forum reference
description: If this feature was already discussed on the Community Forum link it here
placeholder: https://community.nodebb.org/topic/0/example-feature-request
- type: markdown
attributes:
value: "**Thank you!**"

View File

@@ -34,7 +34,7 @@ jobs:
- name: Docker meta
id: meta
uses: docker/metadata-action@v4
uses: docker/metadata-action@v3
with:
images: nodebb/docker
tags: |

View File

@@ -21,7 +21,7 @@ jobs:
fail-fast: false
matrix:
os: [ubuntu-latest]
node: [14, 16, 18]
node: [12, 14, 16]
database: [mongo-dev, mongo, redis, postgres]
include:
# only run coverage once

View File

@@ -41,7 +41,6 @@ trans.rw = public/language/rw/category.json
trans.sc = public/language/sc/category.json
trans.sk = public/language/sk/category.json
trans.sl = public/language/sl/category.json
trans.sq_AL = public/language/sq-AL/category.json
trans.sr = public/language/sr/category.json
trans.sv = public/language/sv/category.json
trans.th = public/language/th/category.json
@@ -92,7 +91,6 @@ trans.rw = public/language/rw/login.json
trans.sc = public/language/sc/login.json
trans.sk = public/language/sk/login.json
trans.sl = public/language/sl/login.json
trans.sq_AL = public/language/sq-AL/login.json
trans.sr = public/language/sr/login.json
trans.sv = public/language/sv/login.json
trans.th = public/language/th/login.json
@@ -143,7 +141,6 @@ trans.rw = public/language/rw/recent.json
trans.sc = public/language/sc/recent.json
trans.sk = public/language/sk/recent.json
trans.sl = public/language/sl/recent.json
trans.sq_AL = public/language/sq-AL/recent.json
trans.sr = public/language/sr/recent.json
trans.sv = public/language/sv/recent.json
trans.th = public/language/th/recent.json
@@ -194,7 +191,6 @@ trans.rw = public/language/rw/unread.json
trans.sc = public/language/sc/unread.json
trans.sk = public/language/sk/unread.json
trans.sl = public/language/sl/unread.json
trans.sq_AL = public/language/sq-AL/unread.json
trans.sr = public/language/sr/unread.json
trans.sv = public/language/sv/unread.json
trans.th = public/language/th/unread.json
@@ -245,7 +241,6 @@ trans.rw = public/language/rw/modules.json
trans.sc = public/language/sc/modules.json
trans.sk = public/language/sk/modules.json
trans.sl = public/language/sl/modules.json
trans.sq_AL = public/language/sq-AL/modules.json
trans.sr = public/language/sr/modules.json
trans.sv = public/language/sv/modules.json
trans.th = public/language/th/modules.json
@@ -296,7 +291,6 @@ trans.rw = public/language/rw/post-queue.json
trans.sc = public/language/sc/post-queue.json
trans.sk = public/language/sk/post-queue.json
trans.sl = public/language/sl/post-queue.json
trans.sq_AL = public/language/sq-AL/post-queue.json
trans.sr = public/language/sr/post-queue.json
trans.sv = public/language/sv/post-queue.json
trans.th = public/language/th/post-queue.json
@@ -347,7 +341,6 @@ trans.rw = public/language/rw/ip-blacklist.json
trans.sc = public/language/sc/ip-blacklist.json
trans.sk = public/language/sk/ip-blacklist.json
trans.sl = public/language/sl/ip-blacklist.json
trans.sq_AL = public/language/sq-AL/ip-blacklist.json
trans.sr = public/language/sr/ip-blacklist.json
trans.sv = public/language/sv/ip-blacklist.json
trans.th = public/language/th/ip-blacklist.json
@@ -398,7 +391,6 @@ trans.rw = public/language/rw/register.json
trans.sc = public/language/sc/register.json
trans.sk = public/language/sk/register.json
trans.sl = public/language/sl/register.json
trans.sq_AL = public/language/sq-AL/register.json
trans.sr = public/language/sr/register.json
trans.sv = public/language/sv/register.json
trans.th = public/language/th/register.json
@@ -449,7 +441,6 @@ trans.rw = public/language/rw/user.json
trans.sc = public/language/sc/user.json
trans.sk = public/language/sk/user.json
trans.sl = public/language/sl/user.json
trans.sq_AL = public/language/sq-AL/user.json
trans.sr = public/language/sr/user.json
trans.sv = public/language/sv/user.json
trans.th = public/language/th/user.json
@@ -500,7 +491,6 @@ trans.rw = public/language/rw/global.json
trans.sc = public/language/sc/global.json
trans.sk = public/language/sk/global.json
trans.sl = public/language/sl/global.json
trans.sq_AL = public/language/sq-AL/global.json
trans.sr = public/language/sr/global.json
trans.sv = public/language/sv/global.json
trans.th = public/language/th/global.json
@@ -551,7 +541,6 @@ trans.rw = public/language/rw/notifications.json
trans.sc = public/language/sc/notifications.json
trans.sk = public/language/sk/notifications.json
trans.sl = public/language/sl/notifications.json
trans.sq_AL = public/language/sq-AL/notifications.json
trans.sr = public/language/sr/notifications.json
trans.sv = public/language/sv/notifications.json
trans.th = public/language/th/notifications.json
@@ -602,7 +591,6 @@ trans.rw = public/language/rw/reset_password.json
trans.sc = public/language/sc/reset_password.json
trans.sk = public/language/sk/reset_password.json
trans.sl = public/language/sl/reset_password.json
trans.sq_AL = public/language/sq-AL/reset_password.json
trans.sr = public/language/sr/reset_password.json
trans.sv = public/language/sv/reset_password.json
trans.th = public/language/th/reset_password.json
@@ -653,7 +641,6 @@ trans.rw = public/language/rw/users.json
trans.sc = public/language/sc/users.json
trans.sk = public/language/sk/users.json
trans.sl = public/language/sl/users.json
trans.sq_AL = public/language/sq-AL/users.json
trans.sr = public/language/sr/users.json
trans.sv = public/language/sv/users.json
trans.th = public/language/th/users.json
@@ -704,7 +691,6 @@ trans.rw = public/language/rw/language.json
trans.sc = public/language/sc/language.json
trans.sk = public/language/sk/language.json
trans.sl = public/language/sl/language.json
trans.sq_AL = public/language/sq-AL/language.json
trans.sr = public/language/sr/language.json
trans.sv = public/language/sv/language.json
trans.th = public/language/th/language.json
@@ -755,7 +741,6 @@ trans.rw = public/language/rw/pages.json
trans.sc = public/language/sc/pages.json
trans.sk = public/language/sk/pages.json
trans.sl = public/language/sl/pages.json
trans.sq_AL = public/language/sq-AL/pages.json
trans.sr = public/language/sr/pages.json
trans.sv = public/language/sv/pages.json
trans.th = public/language/th/pages.json
@@ -806,7 +791,6 @@ trans.rw = public/language/rw/topic.json
trans.sc = public/language/sc/topic.json
trans.sk = public/language/sk/topic.json
trans.sl = public/language/sl/topic.json
trans.sq_AL = public/language/sq-AL/topic.json
trans.sr = public/language/sr/topic.json
trans.sv = public/language/sv/topic.json
trans.th = public/language/th/topic.json
@@ -857,7 +841,6 @@ trans.rw = public/language/rw/success.json
trans.sc = public/language/sc/success.json
trans.sk = public/language/sk/success.json
trans.sl = public/language/sl/success.json
trans.sq_AL = public/language/sq-AL/success.json
trans.sr = public/language/sr/success.json
trans.sv = public/language/sv/success.json
trans.th = public/language/th/success.json
@@ -908,7 +891,6 @@ trans.rw = public/language/rw/error.json
trans.sc = public/language/sc/error.json
trans.sk = public/language/sk/error.json
trans.sl = public/language/sl/error.json
trans.sq_AL = public/language/sq-AL/error.json
trans.sr = public/language/sr/error.json
trans.sv = public/language/sv/error.json
trans.th = public/language/th/error.json
@@ -959,7 +941,6 @@ trans.rw = public/language/rw/flags.json
trans.sc = public/language/sc/flags.json
trans.sk = public/language/sk/flags.json
trans.sl = public/language/sl/flags.json
trans.sq_AL = public/language/sq-AL/flags.json
trans.sr = public/language/sr/flags.json
trans.sv = public/language/sv/flags.json
trans.th = public/language/th/flags.json
@@ -1009,7 +990,6 @@ trans.rw = public/language/rw/tags.json
trans.sc = public/language/sc/tags.json
trans.sk = public/language/sk/tags.json
trans.sl = public/language/sl/tags.json
trans.sq_AL = public/language/sq-AL/tags.json
trans.sr = public/language/sr/tags.json
trans.sv = public/language/sv/tags.json
trans.th = public/language/th/tags.json
@@ -1060,7 +1040,6 @@ trans.rw = public/language/rw/top.json
trans.sc = public/language/sc/top.json
trans.sk = public/language/sk/top.json
trans.sl = public/language/sl/top.json
trans.sq_AL = public/language/sq-AL/top.json
trans.sr = public/language/sr/top.json
trans.sv = public/language/sv/top.json
trans.th = public/language/th/top.json
@@ -1111,7 +1090,6 @@ trans.rw = public/language/rw/email.json
trans.sc = public/language/sc/email.json
trans.sk = public/language/sk/email.json
trans.sl = public/language/sl/email.json
trans.sq_AL = public/language/sq-AL/email.json
trans.sr = public/language/sr/email.json
trans.sv = public/language/sv/email.json
trans.th = public/language/th/email.json
@@ -1162,7 +1140,6 @@ trans.rw = public/language/rw/search.json
trans.sc = public/language/sc/search.json
trans.sk = public/language/sk/search.json
trans.sl = public/language/sl/search.json
trans.sq_AL = public/language/sq-AL/search.json
trans.sr = public/language/sr/search.json
trans.sv = public/language/sv/search.json
trans.th = public/language/th/search.json
@@ -1213,7 +1190,6 @@ trans.rw = public/language/rw/groups.json
trans.sc = public/language/sc/groups.json
trans.sk = public/language/sk/groups.json
trans.sl = public/language/sl/groups.json
trans.sq_AL = public/language/sq-AL/groups.json
trans.sr = public/language/sr/groups.json
trans.sv = public/language/sv/groups.json
trans.th = public/language/th/groups.json
@@ -1264,7 +1240,6 @@ trans.rw = public/language/rw/uploads.json
trans.sc = public/language/sc/uploads.json
trans.sk = public/language/sk/uploads.json
trans.sl = public/language/sl/uploads.json
trans.sq_AL = public/language/sq-AL/uploads.json
trans.sr = public/language/sr/uploads.json
trans.sv = public/language/sv/uploads.json
trans.th = public/language/th/uploads.json
@@ -1315,7 +1290,6 @@ trans.rw = public/language/rw/admin/admin.json
trans.sc = public/language/sc/admin/admin.json
trans.sk = public/language/sk/admin/admin.json
trans.sl = public/language/sl/admin/admin.json
trans.sq_AL = public/language/sq-AL/admin/admin.json
trans.sr = public/language/sr/admin/admin.json
trans.sv = public/language/sv/admin/admin.json
trans.th = public/language/th/admin/admin.json
@@ -1366,7 +1340,6 @@ trans.rw = public/language/rw/admin/menu.json
trans.sc = public/language/sc/admin/menu.json
trans.sk = public/language/sk/admin/menu.json
trans.sl = public/language/sl/admin/menu.json
trans.sq_AL = public/language/sq-AL/admin/menu.json
trans.sr = public/language/sr/admin/menu.json
trans.sv = public/language/sv/admin/menu.json
trans.th = public/language/th/admin/menu.json
@@ -1417,7 +1390,6 @@ trans.rw = public/language/rw/admin/advanced/cache.json
trans.sc = public/language/sc/admin/advanced/cache.json
trans.sk = public/language/sk/admin/advanced/cache.json
trans.sl = public/language/sl/admin/advanced/cache.json
trans.sq_AL = public/language/sq-AL/admin/advanced/cache.json
trans.sr = public/language/sr/admin/advanced/cache.json
trans.sv = public/language/sv/admin/advanced/cache.json
trans.th = public/language/th/admin/advanced/cache.json
@@ -1468,7 +1440,6 @@ trans.rw = public/language/rw/admin/advanced/database.json
trans.sc = public/language/sc/admin/advanced/database.json
trans.sk = public/language/sk/admin/advanced/database.json
trans.sl = public/language/sl/admin/advanced/database.json
trans.sq_AL = public/language/sq-AL/admin/advanced/database.json
trans.sr = public/language/sr/admin/advanced/database.json
trans.sv = public/language/sv/admin/advanced/database.json
trans.th = public/language/th/admin/advanced/database.json
@@ -1519,7 +1490,6 @@ trans.rw = public/language/rw/admin/advanced/errors.json
trans.sc = public/language/sc/admin/advanced/errors.json
trans.sk = public/language/sk/admin/advanced/errors.json
trans.sl = public/language/sl/admin/advanced/errors.json
trans.sq_AL = public/language/sq-AL/admin/advanced/errors.json
trans.sr = public/language/sr/admin/advanced/errors.json
trans.sv = public/language/sv/admin/advanced/errors.json
trans.th = public/language/th/admin/advanced/errors.json
@@ -1570,7 +1540,6 @@ trans.rw = public/language/rw/admin/advanced/events.json
trans.sc = public/language/sc/admin/advanced/events.json
trans.sk = public/language/sk/admin/advanced/events.json
trans.sl = public/language/sl/admin/advanced/events.json
trans.sq_AL = public/language/sq-AL/admin/advanced/events.json
trans.sr = public/language/sr/admin/advanced/events.json
trans.sv = public/language/sv/admin/advanced/events.json
trans.th = public/language/th/admin/advanced/events.json
@@ -1621,7 +1590,6 @@ trans.rw = public/language/rw/admin/advanced/logs.json
trans.sc = public/language/sc/admin/advanced/logs.json
trans.sk = public/language/sk/admin/advanced/logs.json
trans.sl = public/language/sl/admin/advanced/logs.json
trans.sq_AL = public/language/sq-AL/admin/advanced/logs.json
trans.sr = public/language/sr/admin/advanced/logs.json
trans.sv = public/language/sv/admin/advanced/logs.json
trans.th = public/language/th/admin/advanced/logs.json
@@ -1672,7 +1640,6 @@ trans.rw = public/language/rw/admin/appearance/customise.json
trans.sc = public/language/sc/admin/appearance/customise.json
trans.sk = public/language/sk/admin/appearance/customise.json
trans.sl = public/language/sl/admin/appearance/customise.json
trans.sq_AL = public/language/sq-AL/admin/appearance/customise.json
trans.sr = public/language/sr/admin/appearance/customise.json
trans.sv = public/language/sv/admin/appearance/customise.json
trans.th = public/language/th/admin/appearance/customise.json
@@ -1723,7 +1690,6 @@ trans.rw = public/language/rw/admin/appearance/skins.json
trans.sc = public/language/sc/admin/appearance/skins.json
trans.sk = public/language/sk/admin/appearance/skins.json
trans.sl = public/language/sl/admin/appearance/skins.json
trans.sq_AL = public/language/sq-AL/admin/appearance/skins.json
trans.sr = public/language/sr/admin/appearance/skins.json
trans.sv = public/language/sv/admin/appearance/skins.json
trans.th = public/language/th/admin/appearance/skins.json
@@ -1774,7 +1740,6 @@ trans.rw = public/language/rw/admin/appearance/themes.json
trans.sc = public/language/sc/admin/appearance/themes.json
trans.sk = public/language/sk/admin/appearance/themes.json
trans.sl = public/language/sl/admin/appearance/themes.json
trans.sq_AL = public/language/sq-AL/admin/appearance/themes.json
trans.sr = public/language/sr/admin/appearance/themes.json
trans.sv = public/language/sv/admin/appearance/themes.json
trans.th = public/language/th/admin/appearance/themes.json
@@ -1825,7 +1790,6 @@ trans.rw = public/language/rw/admin/development/info.json
trans.sc = public/language/sc/admin/development/info.json
trans.sk = public/language/sk/admin/development/info.json
trans.sl = public/language/sl/admin/development/info.json
trans.sq_AL = public/language/sq-AL/admin/development/info.json
trans.sr = public/language/sr/admin/development/info.json
trans.sv = public/language/sv/admin/development/info.json
trans.th = public/language/th/admin/development/info.json
@@ -1876,7 +1840,6 @@ trans.rw = public/language/rw/admin/development/logger.json
trans.sc = public/language/sc/admin/development/logger.json
trans.sk = public/language/sk/admin/development/logger.json
trans.sl = public/language/sl/admin/development/logger.json
trans.sq_AL = public/language/sq-AL/admin/development/logger.json
trans.sr = public/language/sr/admin/development/logger.json
trans.sv = public/language/sv/admin/development/logger.json
trans.th = public/language/th/admin/development/logger.json
@@ -1927,7 +1890,6 @@ trans.rw = public/language/rw/admin/extend/plugins.json
trans.sc = public/language/sc/admin/extend/plugins.json
trans.sk = public/language/sk/admin/extend/plugins.json
trans.sl = public/language/sl/admin/extend/plugins.json
trans.sq_AL = public/language/sq-AL/admin/extend/plugins.json
trans.sr = public/language/sr/admin/extend/plugins.json
trans.sv = public/language/sv/admin/extend/plugins.json
trans.th = public/language/th/admin/extend/plugins.json
@@ -1978,7 +1940,6 @@ trans.rw = public/language/rw/admin/extend/rewards.json
trans.sc = public/language/sc/admin/extend/rewards.json
trans.sk = public/language/sk/admin/extend/rewards.json
trans.sl = public/language/sl/admin/extend/rewards.json
trans.sq_AL = public/language/sq-AL/admin/extend/rewards.json
trans.sr = public/language/sr/admin/extend/rewards.json
trans.sv = public/language/sv/admin/extend/rewards.json
trans.th = public/language/th/admin/extend/rewards.json
@@ -2029,7 +1990,6 @@ trans.rw = public/language/rw/admin/extend/widgets.json
trans.sc = public/language/sc/admin/extend/widgets.json
trans.sk = public/language/sk/admin/extend/widgets.json
trans.sl = public/language/sl/admin/extend/widgets.json
trans.sq_AL = public/language/sq-AL/admin/extend/widgets.json
trans.sr = public/language/sr/admin/extend/widgets.json
trans.sv = public/language/sv/admin/extend/widgets.json
trans.th = public/language/th/admin/extend/widgets.json
@@ -2080,7 +2040,6 @@ trans.rw = public/language/rw/admin/dashboard.json
trans.sc = public/language/sc/admin/dashboard.json
trans.sk = public/language/sk/admin/dashboard.json
trans.sl = public/language/sl/admin/dashboard.json
trans.sq_AL = public/language/sq-AL/admin/dashboard.json
trans.sr = public/language/sr/admin/dashboard.json
trans.sv = public/language/sv/admin/dashboard.json
trans.th = public/language/th/admin/dashboard.json
@@ -2131,7 +2090,6 @@ trans.rw = public/language/rw/admin/settings/homepage.json
trans.sc = public/language/sc/admin/settings/homepage.json
trans.sk = public/language/sk/admin/settings/homepage.json
trans.sl = public/language/sl/admin/settings/homepage.json
trans.sq_AL = public/language/sq-AL/admin/settings/homepage.json
trans.sr = public/language/sr/admin/settings/homepage.json
trans.sv = public/language/sv/admin/settings/homepage.json
trans.th = public/language/th/admin/settings/homepage.json
@@ -2182,7 +2140,6 @@ trans.rw = public/language/rw/admin/settings/languages.json
trans.sc = public/language/sc/admin/settings/languages.json
trans.sk = public/language/sk/admin/settings/languages.json
trans.sl = public/language/sl/admin/settings/languages.json
trans.sq_AL = public/language/sq-AL/admin/settings/languages.json
trans.sr = public/language/sr/admin/settings/languages.json
trans.sv = public/language/sv/admin/settings/languages.json
trans.th = public/language/th/admin/settings/languages.json
@@ -2233,7 +2190,6 @@ trans.rw = public/language/rw/admin/settings/navigation.json
trans.sc = public/language/sc/admin/settings/navigation.json
trans.sk = public/language/sk/admin/settings/navigation.json
trans.sl = public/language/sl/admin/settings/navigation.json
trans.sq_AL = public/language/sq-AL/admin/settings/navigation.json
trans.sr = public/language/sr/admin/settings/navigation.json
trans.sv = public/language/sv/admin/settings/navigation.json
trans.th = public/language/th/admin/settings/navigation.json
@@ -2284,7 +2240,6 @@ trans.rw = public/language/rw/admin/settings/social.json
trans.sc = public/language/sc/admin/settings/social.json
trans.sk = public/language/sk/admin/settings/social.json
trans.sl = public/language/sl/admin/settings/social.json
trans.sq_AL = public/language/sq-AL/admin/settings/social.json
trans.sr = public/language/sr/admin/settings/social.json
trans.sv = public/language/sv/admin/settings/social.json
trans.th = public/language/th/admin/settings/social.json
@@ -2335,7 +2290,6 @@ trans.rw = public/language/rw/admin/settings/sounds.json
trans.sc = public/language/sc/admin/settings/sounds.json
trans.sk = public/language/sk/admin/settings/sounds.json
trans.sl = public/language/sl/admin/settings/sounds.json
trans.sq_AL = public/language/sq-AL/admin/settings/sounds.json
trans.sr = public/language/sr/admin/settings/sounds.json
trans.sv = public/language/sv/admin/settings/sounds.json
trans.th = public/language/th/admin/settings/sounds.json
@@ -2386,7 +2340,6 @@ trans.rw = public/language/rw/admin/manage/admins-mods.json
trans.sc = public/language/sc/admin/manage/admins-mods.json
trans.sk = public/language/sk/admin/manage/admins-mods.json
trans.sl = public/language/sl/admin/manage/admins-mods.json
trans.sq_AL = public/language/sq-AL/admin/manage/admins-mods.json
trans.sr = public/language/sr/admin/manage/admins-mods.json
trans.sv = public/language/sv/admin/manage/admins-mods.json
trans.th = public/language/th/admin/manage/admins-mods.json
@@ -2437,7 +2390,6 @@ trans.rw = public/language/rw/admin/manage/categories.json
trans.sc = public/language/sc/admin/manage/categories.json
trans.sk = public/language/sk/admin/manage/categories.json
trans.sl = public/language/sl/admin/manage/categories.json
trans.sq_AL = public/language/sq-AL/admin/manage/categories.json
trans.sr = public/language/sr/admin/manage/categories.json
trans.sv = public/language/sv/admin/manage/categories.json
trans.th = public/language/th/admin/manage/categories.json
@@ -2488,7 +2440,6 @@ trans.rw = public/language/rw/admin/manage/groups.json
trans.sc = public/language/sc/admin/manage/groups.json
trans.sk = public/language/sk/admin/manage/groups.json
trans.sl = public/language/sl/admin/manage/groups.json
trans.sq_AL = public/language/sq-AL/admin/manage/groups.json
trans.sr = public/language/sr/admin/manage/groups.json
trans.sv = public/language/sv/admin/manage/groups.json
trans.th = public/language/th/admin/manage/groups.json
@@ -2539,7 +2490,6 @@ trans.rw = public/language/rw/admin/manage/privileges.json
trans.sc = public/language/sc/admin/manage/privileges.json
trans.sk = public/language/sk/admin/manage/privileges.json
trans.sl = public/language/sl/admin/manage/privileges.json
trans.sq_AL = public/language/sq-AL/admin/manage/privileges.json
trans.sr = public/language/sr/admin/manage/privileges.json
trans.sv = public/language/sv/admin/manage/privileges.json
trans.th = public/language/th/admin/manage/privileges.json
@@ -2590,7 +2540,6 @@ trans.rw = public/language/rw/admin/manage/registration.json
trans.sc = public/language/sc/admin/manage/registration.json
trans.sk = public/language/sk/admin/manage/registration.json
trans.sl = public/language/sl/admin/manage/registration.json
trans.sq_AL = public/language/sq-AL/admin/manage/registration.json
trans.sr = public/language/sr/admin/manage/registration.json
trans.sv = public/language/sv/admin/manage/registration.json
trans.th = public/language/th/admin/manage/registration.json
@@ -2641,7 +2590,6 @@ trans.rw = public/language/rw/admin/manage/tags.json
trans.sc = public/language/sc/admin/manage/tags.json
trans.sk = public/language/sk/admin/manage/tags.json
trans.sl = public/language/sl/admin/manage/tags.json
trans.sq_AL = public/language/sq-AL/admin/manage/tags.json
trans.sr = public/language/sr/admin/manage/tags.json
trans.sv = public/language/sv/admin/manage/tags.json
trans.th = public/language/th/admin/manage/tags.json
@@ -2692,7 +2640,6 @@ trans.rw = public/language/rw/admin/manage/uploads.json
trans.sc = public/language/sc/admin/manage/uploads.json
trans.sk = public/language/sk/admin/manage/uploads.json
trans.sl = public/language/sl/admin/manage/uploads.json
trans.sq_AL = public/language/sq-AL/admin/manage/uploads.json
trans.sr = public/language/sr/admin/manage/uploads.json
trans.sv = public/language/sv/admin/manage/uploads.json
trans.th = public/language/th/admin/manage/uploads.json
@@ -2743,7 +2690,6 @@ trans.rw = public/language/rw/admin/manage/users.json
trans.sc = public/language/sc/admin/manage/users.json
trans.sk = public/language/sk/admin/manage/users.json
trans.sl = public/language/sl/admin/manage/users.json
trans.sq_AL = public/language/sq-AL/admin/manage/users.json
trans.sr = public/language/sr/admin/manage/users.json
trans.sv = public/language/sv/admin/manage/users.json
trans.th = public/language/th/admin/manage/users.json
@@ -2794,7 +2740,6 @@ trans.rw = public/language/rw/admin/manage/digest.json
trans.sc = public/language/sc/admin/manage/digest.json
trans.sk = public/language/sk/admin/manage/digest.json
trans.sl = public/language/sl/admin/manage/digest.json
trans.sq_AL = public/language/sq-AL/admin/manage/digest.json
trans.sr = public/language/sr/admin/manage/digest.json
trans.sv = public/language/sv/admin/manage/digest.json
trans.th = public/language/th/admin/manage/digest.json
@@ -2845,7 +2790,6 @@ trans.rw = public/language/rw/admin/settings/advanced.json
trans.sc = public/language/sc/admin/settings/advanced.json
trans.sk = public/language/sk/admin/settings/advanced.json
trans.sl = public/language/sl/admin/settings/advanced.json
trans.sq_AL = public/language/sq-AL/admin/settings/advanced.json
trans.sr = public/language/sr/admin/settings/advanced.json
trans.sv = public/language/sv/admin/settings/advanced.json
trans.th = public/language/th/admin/settings/advanced.json
@@ -2896,7 +2840,6 @@ trans.rw = public/language/rw/admin/settings/cookies.json
trans.sc = public/language/sc/admin/settings/cookies.json
trans.sk = public/language/sk/admin/settings/cookies.json
trans.sl = public/language/sl/admin/settings/cookies.json
trans.sq_AL = public/language/sq-AL/admin/settings/cookies.json
trans.sr = public/language/sr/admin/settings/cookies.json
trans.sv = public/language/sv/admin/settings/cookies.json
trans.th = public/language/th/admin/settings/cookies.json
@@ -2947,7 +2890,6 @@ trans.rw = public/language/rw/admin/settings/general.json
trans.sc = public/language/sc/admin/settings/general.json
trans.sk = public/language/sk/admin/settings/general.json
trans.sl = public/language/sl/admin/settings/general.json
trans.sq_AL = public/language/sq-AL/admin/settings/general.json
trans.sr = public/language/sr/admin/settings/general.json
trans.sv = public/language/sv/admin/settings/general.json
trans.th = public/language/th/admin/settings/general.json
@@ -2998,7 +2940,6 @@ trans.rw = public/language/rw/admin/settings/guest.json
trans.sc = public/language/sc/admin/settings/guest.json
trans.sk = public/language/sk/admin/settings/guest.json
trans.sl = public/language/sl/admin/settings/guest.json
trans.sq_AL = public/language/sq-AL/admin/settings/guest.json
trans.sr = public/language/sr/admin/settings/guest.json
trans.sv = public/language/sv/admin/settings/guest.json
trans.th = public/language/th/admin/settings/guest.json
@@ -3049,7 +2990,6 @@ trans.rw = public/language/rw/admin/settings/pagination.json
trans.sc = public/language/sc/admin/settings/pagination.json
trans.sk = public/language/sk/admin/settings/pagination.json
trans.sl = public/language/sl/admin/settings/pagination.json
trans.sq_AL = public/language/sq-AL/admin/settings/pagination.json
trans.sr = public/language/sr/admin/settings/pagination.json
trans.sv = public/language/sv/admin/settings/pagination.json
trans.th = public/language/th/admin/settings/pagination.json
@@ -3100,7 +3040,6 @@ trans.rw = public/language/rw/admin/settings/reputation.json
trans.sc = public/language/sc/admin/settings/reputation.json
trans.sk = public/language/sk/admin/settings/reputation.json
trans.sl = public/language/sl/admin/settings/reputation.json
trans.sq_AL = public/language/sq-AL/admin/settings/reputation.json
trans.sr = public/language/sr/admin/settings/reputation.json
trans.sv = public/language/sv/admin/settings/reputation.json
trans.th = public/language/th/admin/settings/reputation.json
@@ -3151,7 +3090,6 @@ trans.rw = public/language/rw/admin/settings/tags.json
trans.sc = public/language/sc/admin/settings/tags.json
trans.sk = public/language/sk/admin/settings/tags.json
trans.sl = public/language/sl/admin/settings/tags.json
trans.sq_AL = public/language/sq-AL/admin/settings/tags.json
trans.sr = public/language/sr/admin/settings/tags.json
trans.sv = public/language/sv/admin/settings/tags.json
trans.th = public/language/th/admin/settings/tags.json
@@ -3202,7 +3140,6 @@ trans.rw = public/language/rw/admin/settings/user.json
trans.sc = public/language/sc/admin/settings/user.json
trans.sk = public/language/sk/admin/settings/user.json
trans.sl = public/language/sl/admin/settings/user.json
trans.sq_AL = public/language/sq-AL/admin/settings/user.json
trans.sr = public/language/sr/admin/settings/user.json
trans.sv = public/language/sv/admin/settings/user.json
trans.th = public/language/th/admin/settings/user.json
@@ -3253,7 +3190,6 @@ trans.rw = public/language/rw/admin/settings/chat.json
trans.sc = public/language/sc/admin/settings/chat.json
trans.sk = public/language/sk/admin/settings/chat.json
trans.sl = public/language/sl/admin/settings/chat.json
trans.sq_AL = public/language/sq-AL/admin/settings/chat.json
trans.sr = public/language/sr/admin/settings/chat.json
trans.sv = public/language/sv/admin/settings/chat.json
trans.th = public/language/th/admin/settings/chat.json
@@ -3304,7 +3240,6 @@ trans.rw = public/language/rw/admin/settings/email.json
trans.sc = public/language/sc/admin/settings/email.json
trans.sk = public/language/sk/admin/settings/email.json
trans.sl = public/language/sl/admin/settings/email.json
trans.sq_AL = public/language/sq-AL/admin/settings/email.json
trans.sr = public/language/sr/admin/settings/email.json
trans.sv = public/language/sv/admin/settings/email.json
trans.th = public/language/th/admin/settings/email.json
@@ -3355,7 +3290,6 @@ trans.rw = public/language/rw/admin/settings/group.json
trans.sc = public/language/sc/admin/settings/group.json
trans.sk = public/language/sk/admin/settings/group.json
trans.sl = public/language/sl/admin/settings/group.json
trans.sq_AL = public/language/sq-AL/admin/settings/group.json
trans.sr = public/language/sr/admin/settings/group.json
trans.sv = public/language/sv/admin/settings/group.json
trans.th = public/language/th/admin/settings/group.json
@@ -3406,7 +3340,6 @@ trans.rw = public/language/rw/admin/settings/notifications.json
trans.sc = public/language/sc/admin/settings/notifications.json
trans.sk = public/language/sk/admin/settings/notifications.json
trans.sl = public/language/sl/admin/settings/notifications.json
trans.sq_AL = public/language/sq-AL/admin/settings/notifications.json
trans.sr = public/language/sr/admin/settings/notifications.json
trans.sv = public/language/sv/admin/settings/notifications.json
trans.th = public/language/th/admin/settings/notifications.json
@@ -3457,7 +3390,6 @@ trans.rw = public/language/rw/admin/settings/api.json
trans.sc = public/language/sc/admin/settings/api.json
trans.sk = public/language/sk/admin/settings/api.json
trans.sl = public/language/sl/admin/settings/api.json
trans.sq_AL = public/language/sq-AL/admin/settings/api.json
trans.sr = public/language/sr/admin/settings/api.json
trans.sv = public/language/sv/admin/settings/api.json
trans.th = public/language/th/admin/settings/api.json
@@ -3508,7 +3440,6 @@ trans.rw = public/language/rw/admin/settings/post.json
trans.sc = public/language/sc/admin/settings/post.json
trans.sk = public/language/sk/admin/settings/post.json
trans.sl = public/language/sl/admin/settings/post.json
trans.sq_AL = public/language/sq-AL/admin/settings/post.json
trans.sr = public/language/sr/admin/settings/post.json
trans.sv = public/language/sv/admin/settings/post.json
trans.th = public/language/th/admin/settings/post.json
@@ -3559,7 +3490,6 @@ trans.rw = public/language/rw/admin/settings/sockets.json
trans.sc = public/language/sc/admin/settings/sockets.json
trans.sk = public/language/sk/admin/settings/sockets.json
trans.sl = public/language/sl/admin/settings/sockets.json
trans.sq_AL = public/language/sq-AL/admin/settings/sockets.json
trans.sr = public/language/sr/admin/settings/sockets.json
trans.sv = public/language/sv/admin/settings/sockets.json
trans.th = public/language/th/admin/settings/sockets.json
@@ -3610,7 +3540,6 @@ trans.rw = public/language/rw/admin/settings/uploads.json
trans.sc = public/language/sc/admin/settings/uploads.json
trans.sk = public/language/sk/admin/settings/uploads.json
trans.sl = public/language/sl/admin/settings/uploads.json
trans.sq_AL = public/language/sq-AL/admin/settings/uploads.json
trans.sr = public/language/sr/admin/settings/uploads.json
trans.sv = public/language/sv/admin/settings/uploads.json
trans.th = public/language/th/admin/settings/uploads.json
@@ -3661,7 +3590,6 @@ trans.rw = public/language/rw/admin/settings/web-crawler.json
trans.sc = public/language/sc/admin/settings/web-crawler.json
trans.sk = public/language/sk/admin/settings/web-crawler.json
trans.sl = public/language/sl/admin/settings/web-crawler.json
trans.sq_AL = public/language/sq-AL/admin/settings/web-crawler.json
trans.sr = public/language/sr/admin/settings/web-crawler.json
trans.sv = public/language/sv/admin/settings/web-crawler.json
trans.th = public/language/th/admin/settings/web-crawler.json

View File

@@ -1,698 +1,3 @@
#### v2.2.5 (2022-07-21)
##### Chores
* **deps-dev:**
* bump eslint from 8.19.0 to 8.20.0 in /install (8d109fef)
* bump @commitlint/config-angular in /install (2a88a50f)
* **deps:**
* bump cron from 2.0.0 to 2.1.0 in /install (4c1bda32)
* bump jquery-ui from 1.13.1 to 1.13.2 in /install (abb19e98)
* bump nodebb-theme-persona in /install (9e52b8c6)
* bump ioredis from 5.1.0 to 5.2.0 in /install (8c20fdad)
* incrementing version number - v2.2.4 (d1d63e6b)
* update changelog for v2.2.4 (52f7ed64)
* incrementing version number - v2.2.3 (f80476b9)
* incrementing version number - v2.2.2 (343ffa66)
* incrementing version number - v2.2.1 (efc77b2a)
* incrementing version number - v2.2.0 (eecb836d)
##### Bug Fixes
* expire email validation tokens on password change (c93bd010)
* remove extraneous console.log (0d58e8a6)
* **deps:** update dependency mongodb to v4.8.0 (bff239da)
#### v2.2.4 (2022-07-12)
##### Chores
* **deps:**
* update docker/metadata-action action to v4 (42a45a71)
* bump ace-builds from 1.5.3 to 1.7.1 in /install (d568d2f5)
* bump winston from 3.8.0 to 3.8.1 in /install (26b73b39)
* bump ioredis from 5.0.6 to 5.1.0 in /install (0d55c42d)
* bump nodemailer from 6.7.5 to 6.7.7 in /install (bd37b286)
* **deps-dev:**
* bump @commitlint/cli from 17.0.2 to 17.0.3 in /install (9e44cdad)
* bump eslint from 8.18.0 to 8.19.0 in /install (7139ad5f)
* incrementing version number - v2.2.3 (f80476b9)
* update changelog for v2.2.3 (8719a93f)
* incrementing version number - v2.2.2 (343ffa66)
* incrementing version number - v2.2.1 (efc77b2a)
* incrementing version number - v2.2.0 (eecb836d)
##### Bug Fixes
* **deps:** update dependency diff to v5.1.0 (452e5bf7)
* #10733, extraneous apostrophes in plugin upgrader (3c41ae04)
* get version from install/package.json instead (60114219)
* #10739, always re-add theme to active plugins, on theme set (8d701ec3)
#### v2.2.3 (2022-07-05)
##### Chores
* incrementing version number - v2.2.2 (343ffa66)
* update changelog for v2.2.2 (f59ddc34)
* incrementing version number - v2.2.1 (efc77b2a)
* incrementing version number - v2.2.0 (eecb836d)
##### Bug Fixes
* move call to `ajaxify.parseData` out to root level (b778e38c)
* move `ajaxify.parseData` back out to DOMContentLoaded (2582cb53)
##### Refactors
* rewrite ajaxify.parseData in vanilla (165b804d)
#### v2.2.2 (2022-06-30)
##### Chores
* **deps-dev:**
* bump eslint from 8.17.0 to 8.18.0 in /install (bfd626b0)
* bump jsdom from 19.0.0 to 20.0.0 in /install (d037c2c9)
* incrementing version number - v2.2.1 (efc77b2a)
* update changelog for v2.2.1 (667780cf)
* incrementing version number - v2.2.0 (eecb836d)
##### Bug Fixes
* improper handling of single vs. multiple inputs for hidePrivateData (f38b2a73)
* observe user-specific and ACP-specific hiding rules for fullname (ecf0e8ce)
##### Refactors
* allow user.hidePrivateData() to handle an array of `userData` (3f5ae893)
#### v2.2.1 (2022-06-24)
##### Chores
* **i18n:**
* fallback strings for new resources: nodebb.admin-settings-uploads (da481163)
* fallback strings for new resources: nodebb.admin-settings-advanced (34d75e96)
* add in warning in language directories about not editing files directly (06074e8c)
* incrementing version number - v2.2.0 (eecb836d)
* update changelog for v2.2.0 (bb3766df)
##### Documentation Changes
* remove the redundant security policy template (7f5b285e)
##### New Features
* cross origin opener policy options (#10710) (88132358)
##### Bug Fixes
* **deps:**
* update dependency winston to v3.8.0 (#10725) (d4a5039e)
* update dependency sharp to v0.30.7 (#10724) (0a07c2c0)
* handle ENOENT on file deletion, closes #10645 (43f9e6c8)
##### Tests
* fix i18n tests (05c30677)
#### v2.2.0 (2022-06-15)
##### Chores
* **i18n:**
* fallback strings for new resources: nodebb.admin-settings-uploads (f5afb5c3)
* fallback strings for new resources: nodebb.admin-manage-users (b1dc0531)
* fallback strings for new resources: nodebb.topic (d7d32a8a)
* remove unnecessary `affected` set from deprecated plugin hook (bef236f3)
* bump persona, #10699 (c7fa73b1)
* bump vanilla (d90fc18b)
* bump persona, closes #10566 (5bc972df)
* update changelog for v2.1.1 (ca038b84)
* **deps:**
* bump less from 4.1.2 to 4.1.3 in /install (#10685) (78322636)
* bump nodebb-plugin-2factor from 5.0.0 to 5.0.1 in /install (#10686) (701d8d76)
* bump spdx-license-list from 6.5.0 to 6.6.0 in /install (c82d34c8)
##### New Features
* new cronjob and ACP option to delete orphans after configurable number of days, closes #10659 (88aee439)
* allowed plugins to modify email verification details prior to db saving or email send/plugin fire (b9d4724e)
* pass absolute url to post into post tools response, #10566 (ece733ed)
##### Bug Fixes
* no need to pass in empty Set in deprecated hooks (3a015eb8)
* #10696, fix alert for password reset email (2da188fe)
* #10692 (b6f8e2fd)
* #10690, all uploads in `uploads/files` showing orphaned (a04da673)
* bug where post associations are not shown when the directory is `files` (7f870beb)
##### Refactors
* move orphan cleaning logic to its own method, added tests for getOrphans and cleanOrphans (22368b99)
##### Tests
* add more asserts to failing test (ea1ed667)
#### v2.1.1 (2022-06-08)
##### Chores
* **deps:**
* bump nodebb-theme-persona from 12.0.8 to 12.0.9 in /install (bb39dfba)
* bump mongodb from 4.6.0 to 4.7.0 in /install (a8987856)
* bump async from 3.2.3 to 3.2.4 in /install (ce38f711)
* bump xregexp from 5.1.0 to 5.1.1 in /install (eb9a46f8)
* bump webpack from 5.72.1 to 5.73.0 in /install (#10677) (6239a1ff)
* bump nodebb-theme-slick from 2.0.1 to 2.0.2 in /install (557648e6)
* **deps-dev:**
* bump @commitlint/config-angular in /install (e5e788d2)
* bump eslint from 8.16.0 to 8.17.0 in /install (52c86dba)
* incrementing version number - v2.1.0 (a3114d33)
* update changelog for v2.1.0 (7121949d)
##### Documentation Changes
* fix changelog to more accurately reflect new changes (a9744416)
##### Bug Fixes
* #10675, don't ajaxify to /assets/ urls (48564cfa)
##### Other Changes
* //github.com/pichalite/nodebb-theme-slick/issues/60 (6a0339de)
#### v2.1.0 (2022-06-02)
##### Chores
* update changelog for v2.1.0 (7121949d)
* incrementing version number - v2.1.0 (987045c3)
* bump persona (91f32487)
* update changelog for v2.0.1 (abd8e216)
* incrementing version number - v2.0.1 (768427d4)
* remove optional `middleware` parameter from setupPageRoute and setupAdminPageRoute calls (54ff768f)
* add note re: sort module (5aca106b)
* up emoji (265a0139)
* update changelog for v2.0.0 (60fc3f5d)
* incrementing version number - v2.0.0 (f23c3ff5)
* **deps:**
* bump nodebb-plugin-2factor from 4.0.1 to 5.0.0 in /install (6e95e5c5)
* update dependency lint-staged to v12.5.0 (01f607a5)
* update dependency lint-staged to v12.4.3 (8885d228)
* update dependency eslint to v8.16.0 (#10654) (f6728404)
* bump sharp from 0.30.4 to 0.30.5 in /install (#10651) (d9f2096d)
* bump postcss from 8.4.13 to 8.4.14 in /install (#10652) (0772ec07)
* bump socket.io-client from 4.5.0 to 4.5.1 in /install (#10653) (a13a523b)
* update dependency lint-staged to v12.4.2 (#10647) (18e76c21)
* bump nodebb-plugin-mentions in /install (#10648) (e894147c)
* bump helmet from 5.0.2 to 5.1.0 in /install (#10641) (5faaf6a1)
* bump socket.io from 4.5.0 to 4.5.1 in /install (#10639) (9d9b3f4e)
* bump ioredis from 5.0.4 to 5.0.5 in /install (#10637) (f9c9ac9c)
* bump ace-builds from 1.4.14 to 1.5.1 in /install (#10636) (acf188b0)
* bump yargs from 17.4.1 to 17.5.1 in /install (#10624) (c7aefe9c)
* update dependency @commitlint/cli to v16.3.0 (1dc96717)
* bump mongodb from 4.5.0 to 4.6.0 in /install (#10603) (aee74bd6)
* bump express-session from 1.17.2 to 1.17.3 in /install (#10604) (b1967681)
* bump webpack from 5.72.0 to 5.72.1 in /install (#10600) (06edb6e6)
* **deps-dev:**
* bump @commitlint/cli from 17.0.1 to 17.0.2 in /install (#10672) (5f6e9f67)
* bump @commitlint/cli from 16.3.0 to 17.0.1 in /install (#10644) (fe873182)
* bump @commitlint/config-angular in /install (#10614) (9c4ef133)
* bump husky from 8.0.0 to 8.0.1 in /install (#10595) (54876583)
* bump grunt from 1.5.2 to 1.5.3 in /install (fcb6c191)
* bump husky from 7.0.4 to 8.0.0 in /install (#10591) (03453a62)
* bump eslint from 8.14.0 to 8.15.0 in /install (#10592) (0d75c6cb)
* **i18n:**
* fallback strings for new resources: nodebb.user (2bace634)
* fallback strings for new resources: nodebb.admin-manage-admins-mods (192aa2d3)
##### New Features
* add clipboard to runtime modules (39d61061)
* add mute history, closes #10596 (c926358d)
* allow unban/unmute on flag details page. closes #10593 (9acdc680)
* paginaton for admins-mods, closes #10610 (b860c260)
* fix typo, show route in deprecation notice for third-param removal in `setupPageRoute` (14110596)
* add button to see category children, closes #10606 (a5831412)
* closes #10601, ability to prevent alerts on topic list (dc320c89)
* add post to hook params (f07b4484)
* add sorted-list.parse (e904f438)
* add new hook that fires when sorted-set list modal is shown (8faa6f23)
* #10585, ability to mute from flag details (7867ccd7)
* send back missing parameters as array of missing properties, in API response (0c19b1e5)
* add hook for user invite (323dbc97)
##### Bug Fixes
* **deps:**
* update dependency ace-builds to v1.5.3 (#10667) (e7fd1861)
* update dependency ioredis to v5.0.6 (#10668) (5bafab79)
* update dependency nodebb-theme-persona to v12.0.8 (#10669) (e47a63f0)
* update dependency nodebb-plugin-2factor to v4.0.1 (#10665) (356f9a18)
* update dependency ace-builds to v1.5.2 (#10664) (7b5f53fc)
* update dependency nodebb-theme-persona to v12.0.7 (#10666) (a9a26836)
* update dependency sharp to v0.30.6 (#10662) (23232508)
* update dependency nodebb-theme-persona to v12.0.5 (#10649) (1fd68281)
* update dependency cron to v2 (#10568) (ad370202)
* update dependency clipboard to v2.0.11 (#10574) (db67a50a)
* update dependency nodebb-theme-slick to v2.0.1 (#10578) (d98f4ea9)
* update dependency nodebb-theme-persona to v12.0.2 (#10577) (930aefcf)
* update dependency nodemailer to v6.7.5 (#10573) (6eef08f9)
* buildBreadcrumbs naively prepending relative path even if absolute paths are passed in (a3564260)
* more generic copy for notif/chat button labels (f6a7582c)
* #10642, fix order of dom ready events (2bfccac7)
* get rid of math.random in utils.generateUUID (e802fab8)
* #10528, gray out disabled nav items (7e4d2852)
* encode privilege name for API call (92abb352)
* #10631, fix user digest setting display acp (0084b563)
* translate api error messages to user lang, closes #10623, (b17a81bf)
* alert template error. closes #10620 (24a640d9)
* closes #10621, convert \r\n to \n so it isn't counted as 2 characters (3a009f96)
* remove ev, hooks don't pass event, closes #10611 (082a9e1d)
* 'unread' postIndex regression closes #10607 (0e60a704)
* clear dragging on mouseup as well (70ad4a52)
* #10588 exit code 1 on failed plugin activation (e2ff1e39)
* #10584, dont show backlinks if you dont have read privilege (5e7d366f)
* #10586, fix webinstaller folders (1928a186)
* closes #10583, replace removed socket method with api method (5e82cf23)
* add missing fs-extra, #10580 (e7077393)
##### Other Changes
* unnecessary escape (60eeae95)
* fix semicolon (3a77e714)
##### Refactors
* return module if it doesn't have default export (12b58fcf)
* deprecate middleware param (#10513) (84f27263)
##### Tests
* fix tests again (191fb9f4)
* fix UUID test (6677efd7)
#### v2.0.1 (2022-05-28)
##### Bug Fixes
* get rid of math.random in utils.generateUUID (a4ab49c2)
#### v2.0.0 (2022-05-04)
##### Chores
* incrementing version number - v2.0.0 (f23c3ff5)
* update changelog for v1.19.7 (a764df52)
* **deps:**
* update dependency mocha to v10 (a7986773)
* bump nodebb-plugin-dbsearch from 5.1.3 to 5.1.4 in /install (#10545) (a2e263a1)
* update dependency smtp-server to v3.11.0 (62f1c78a)
* **i18n:**
* fallback strings for new resources: nodebb.post-queue (d617c665)
* fallback strings for new resources: nodebb.post-queue (3492dd11)
* fallback strings for new resources: nodebb.error, nodebb.flags (72d47a0b)
##### New Features
* show number of selected posts in reject confirm (012860a4)
* post queue bulk actions closes #10520, fix #10555, (23175110)
* output canonical URL as last line on NodeBB boot (e4a9c078)
##### Bug Fixes
* **deps:**
* update dependency @socket.io/redis-adapter to v7.2.0 (#10571) (c3c77915)
* update dependency autoprefixer to v10.4.7 (#10563) (68168a7d)
* update dependency nodebb-theme-persona to v12.0.1 (#10561) (1d446e14)
* update dependency nodebb-plugin-mentions to v3.0.10 (#10560) (eb3c398e)
* update dependency nodebb-plugin-dbsearch to v5.1.5 (#10559) (c3ff28ff)
* update dependency nodebb-plugin-mentions to v3.0.9 (#10554) (1acbe4c1)
* update dependency postcss to v8.4.13 (#10553) (6217db00)
* update dependency express to v4.18.1 (#10550) (b0dc5615)
* pin dependency webpack to 5.72.0 (#10549) (672ab25a)
* update dependency cron to v1.8.3 (#10543) (d6843294)
* update dependency bootbox to v5.5.3 (#10531) (8d47f352)
* update dependency nodemailer to v6.7.4 (#10540) (afefee08)
* #10569, fix category move event text (ea01ba01)
##### Refactors
* not used anymore (d2e6f317)
#### v1.19.7 (2022-04-28)
##### Breaking Changes
* #10443, regression where sorted-list items did not render into the DOM in the predicted order [breaking] (46fbe156)
##### Chores
* incrementing version number - v1.19.7 (0c4850e2)
* update changelog for v1.19.6 (acca7811)
* **deps:**
* update commitlint monorepo to v16.2.4 (0d9179f7)
* update dependency lint-staged to v12.4.1 (#10527) (804542e4)
* bump socket.io from 4.4.1 to 4.5.0 in /install (#10523) (0c2d015c)
* update dependency eslint to v8.14.0 (#10514) (40b7ff4b)
* update dependency lint-staged to v12.4.0 (fff818c6)
* update dependency lint-staged to v12.3.8 (7c1d98c7)
* **i18n:** fallback strings for new resources: nodebb.admin-settings-reputation, nodebb.error (01e65395)
##### New Features
* make it simpler to use redis sentinels (82389469)
* closes #10501, minimum reputation to chat (b28f9f77)
##### Bug Fixes
* typo in hook name (21dbd476)
* upload test for latest sharp (424db9ff)
* #10502, allow unblocking admin/mod (b9f91643)
* **deps:**
* update dependency express to v4.18.0 (#10526) (5ae690a6)
* update socket.io packages to v4.5.0 (#10522) (d86c447a)
* update dependency autoprefixer to v10.4.5 (#10521) (5ce4c874)
* update dependency nodebb-plugin-2factor to v3.0.7 (#10510) (b81a0cfe)
* update dependency nodebb-widget-essentials to v5.0.11 (#10517) (a767d623)
* update dependency sharp to v0.30.4 (#10504) (a36911fc)
* update dependency prompt to v1.3.0 (#10487) (07678fb5)
* update dependency nconf to v0.12.0 (#10496) (fe492b11)
* update dependency archiver to v5.3.1 (#10500) (6c727859)
##### Refactors
* closes #10509 (7f241dbb)
* show invalid uri (ac125538)
* skip content length check if submitting from post-queue (a8e642ad)
##### Tests
* remove node18 until nodemailer is fixed (50658a82)
* remove node 12, add 18 (976914e7)
#### v1.19.6 (2022-04-13)
##### Chores
* incrementing version number - v1.19.6 (283a0072)
* update changelog for v1.19.5 (05032ca2)
* **deps:**
* bump semver from 7.3.6 to 7.3.7 in /install (#10493) (65cec8d0)
* update dependency grunt to v1.5.2 (9f496659)
* update dependency grunt to v1.5.1 (0a8bf44e)
* update dependency grunt to v1.5.0 (e82d8bb6)
* update dependency eslint to v8.13.0 (bc3aabb4)
* update dependency eslint-plugin-import to v2.26.0 (a2ebf53b)
* bump nodebb-theme-persona from 11.4.3 to 11.4.4 in /install (#10437) (5b1789c1)
* bump nodebb-plugin-composer-default in /install (#10438) (c8c42933)
* update dependency eslint to v8.12.0 (a6590e20)
* update dependency lint-staged to v12.3.7 (#10407) (5f36ad39)
* **i18n:** fallback strings for new resources: nodebb.post-queue (a06d1246)
##### New Features
* #10460, add cutoff to suggested topics (799e94e0)
* add response:helpers.notAllowed (e8058ca3)
* add filter:image.stripEXIF (b8765df5)
* add confirm to reject, closes #10427 (538ad9e1)
* allow client-side hook registration chaining (b88bb3cf)
* delete flagId field from post/user on flag purge (31251282)
* add flags.purge (3b529b84)
* new admin events, closes #10405 (421ba6e1)
* add Albanian localisation :tada: (309968bf)
##### Bug Fixes
* dont add caller to arrays (5316029f)
* #10491, don't leak deleted message in cleanedContent (c52401da)
* #10473, trim trailing slashes on config url (9f91db16)
* closes #10436, fix DST issue on acp dashboard (39877763)
* delete history as well (002a241c)
* handle purge posts as well (93b60532)
* byCid removal, targetCid not stored in flagObj (03fdb5be)
* upgrade script (55be4202)
* column counts for other privileges (2b9b2b4a)
* **deps:**
* update dependency nodebb-plugin-mentions to v3.0.8 (#10490) (7c733e9c)
* update dependency winston to v3.7.2 (#10454) (dc03a2f9)
* update dependency nconf to v0.11.4 (#10481) (f253bbdd)
* update dependency yargs to v17.4.1 (#10480) (bbf2b73e)
* update dependency ioredis to v5.0.4 (#10479) (88200ec1)
* update dependency html-to-text to v8.2.0 (#10471) (91026e5f)
* update dependency semver to v7.3.6 (#10466) (c50de911)
* update dependency html-to-text to v8.1.1 (#10470) (b3ec8059)
* update dependency nodebb-widget-essentials to v5.0.10 (#10461) (b6517cfd)
* update dependency body-parser to v1.20.0 (#10450) (26511185)
* update dependency spdx-license-list to v6.5.0 (#10452) (5e37f34e)
* update dependency graceful-fs to v4.2.10 (#10457) (947fa193)
* update dependency mongodb to v4.5.0 (#10458) (30f728ca)
* update dependency ioredis to v5.0.3 (#10446) (0d744d30)
* update dependency ioredis to v5 (#10434) (060ad1b0)
* update dependency nodebb-plugin-2factor to v3.0.6 (#10435) (0ac426e0)
* update dependency nodebb-plugin-composer-default to v7.0.21 (#10429) (898e0e89)
* update dependency nodebb-plugin-spam-be-gone to v0.8.1 (#10425) (47399bfe)
* update dependency sortablejs to v1.15.0 (#10418) (12cd1df2)
* update dependency nodemailer to v6.7.3 (#10421) (7e542495)
* update dependency yargs to v17.4.0 (#10416) (eaa05517)
* update dependency nodebb-theme-persona to v11.4.3 (#10414) (720a9dba)
* update dependency connect-redis to v6.1.3 (#10390) (06594131)
* **security:**
* explicitly declare cache-control header instead of using middleware (38ca73c4)
* cache-control on all pages using setupPageRoute or setupApiRoute, and 404 controllers. (1f6f389f)
* explicitly set cache-control 'private' on any page where a header is built (e39cdd49)
##### Performance Improvements
* WIP #10449, allow array of pids for posts.purge (#10465) (76797371)
* #10410, faster upgrade script (dab22d5f)
##### Refactors
* replace deprecated String.prototype.substr() (#10432) (200f0b2e)
* remove some verbose logging (9abe22a0)
* :trollface: (29b86b32)
* shorter generateTopicClass (f76c0e89)
#### v1.19.5 (2022-03-16)
##### Chores
* incrementing version number - v1.19.5 (48d6eb4f)
* update changelog for v1.19.4 (0e6e49b2)
* **deps:**
* bump less from 3.13.1 to 4.1.2 in /install (#9856) (d33485f6)
* bump autoprefixer from 10.4.2 to 10.4.4 in /install (#10403) (90094935)
* update dependency lint-staged to v12.3.6 (0a4522a2)
* update commitlint monorepo to v16.2.3 (0a97015d)
* bump nodebb-plugin-spam-be-gone in /install (#10387) (445e3d70)
* bump connect-redis from 6.1.1 to 6.1.2 in /install (#10391) (145621f7)
* update dependency eslint to v8.11.0 (feaf3068)
* update dependency mocha to v9.2.2 (#10383) (4ffbd78d)
* **i18n:**
* fallback strings for new resources: nodebb.admin-manage-users (2f09c22c)
* fallback strings for new resources: nodebb.admin-manage-privileges, nodebb.admin-manage-users, nodebb.error, nodebb.user (15508bac)
* fallback strings for new resources: nodebb.admin-settings-reputation, nodebb.error (5274a6aa)
##### New Features
* collect hook logs in order to reduce console noise, flush on ajaxify loadScript completion (935704a8)
* add support for PATCH method in api module (4b79dfd2)
* on online users page override timeago cutoff to 24 hours (7c946570)
* ability to mute users (be6bbabd)
* min:rep:upvote, and other limits similar to downvotes (3414a23b)
* post-queue hooks, closes #10381 (2056ac04)
##### Bug Fixes
* topic events if there is a blocked user in topic (3935a86b)
* topic events disappearing if there are queued posts (2808c952)
* #10393, move 'Create User' control to overflow menu (cd687cff)
* don't append to history on refresh or ajaxify to same url (c83987bd)
* global privs (7d063d73)
* #10384 -- mixed up sizes for fallback touch icons (cb113208)
* #10377, remove logging of env vars (997ab7d4)
* **deps:**
* update dependency postcss to v8.4.12 (#10396) (bdbc168d)
* update dependency sharp to v0.30.3 (#10389) (b4213859)
##### Refactors
* closes #10301 (c8e986d6)
##### Tests
* skip i18n tests if the github event is a pull request (e578c605)
* fix middleware test (24c1f879)
* fix category tests (6344c3b6)
* fix one more test (a5511425)
#### v1.19.4 (2022-03-09)
##### Chores
* incrementing version number - v1.19.4 (67282057)
* delay `filter:email.send` removal to v2.0.0 (83fd4311)
* up persona (c23b2089)
* incrementing version number - v1.19.3 (09cb11c8)
* update changelog for v1.19.3 (0b48ec54)
* **deps:**
* bump postcss from 8.4.7 to 8.4.8 in /install (#10372) (d7a4ae1f)
* update dependency lint-staged to v12.3.5 (517ae926)
* bump nodebb-plugin-spam-be-gone in /install (81e7ca20)
* update dependency eslint to v8.10.0 (e83c8be2)
* bump postcss from 8.4.6 to 8.4.7 in /install (52ee5ce8)
* bump json2csv from 5.0.6 to 5.0.7 in /install (e44cbb24)
* update dependency smtp-server to v3.10.0 (67e4df78)
* update dependency mocha to v9.2.1 (00eebf10)
* bump prompt from 1.2.1 to 1.2.2 in /install (21913b5b)
* bump express from 4.17.2 to 4.17.3 in /install (5321ba4d)
* **i18n:**
* fallback strings for new resources: nodebb.admin-settings-reputation, nodebb.flags (a5fe8350)
* fallback strings for new resources: nodebb.topic (dc0f9a73)
##### New Features
* add hook filter:posts.getUserInfoForPosts (df46ab48)
* add translateKeys (e841d59a)
* post auto flagging on downvotes #10029 (#10367) (62187caa)
* closes #10324, show recently online users as well (eac9cd03)
* resolve paths for staticDirs as well (e0b1c374)
* ability to go through your posts in a topic (b517b376)
* **sorted-list:** add new client-side hook `filter:settings.sorted-list.loadItem` (92d613e4)
##### Bug Fixes
* apply some DRY (a3b4c668)
* optional params (e9a86cb9)
* #10374, use quick search in setting (70e613f8)
* #10366, remove dupe /files (371b4658)
* always show self on /users?online (56345777)
* db call (21cd1e61)
* lastonline timestamps and display for guests (cc665fd6)
* #10357 (7ee4e4e0)
* #10358, bad uploads path (5479f364)
* #10360, only take top level posts (37ef8366)
* #10354, flag actions regression (fec907d9)
* dont overwrite asset_base_url if its set (0e12f82d)
* allow calls to api module without a defined payload (914733e4)
* #10334, use the correct env vars for web install (6b22d0e1)
* persona test fail (10a5901e)
* #10316, fix quoting regression (0b813d60)
* #10322 (5694e62e)
* #10329, select elements in sorted-list not showing proper values (1fa41342)
* allow translation keys in `label` attributes (52836f3a)
* don't load setup.json into nconf if setup.json doesn't exist (6e156daa)
* regression caused by 94b79ce4024f72a3eee2cfa06b05d8f66898149f (4164898d)
* **deps:**
* update dependency nodebb-plugin-markdown to v9.0.10 (bcb68ee9)
* update dependency mongodb to v4.4.1 (#10364) (4b730df9)
* update dependency nodebb-theme-persona to v11.4.2 (#10361) (4d590f65)
* update dependency body-parser to v1.19.2 (#10298) (c75714b7)
* update dependency sharp to v0.30.2 (#10359) (1a6c2c55)
* update dependency nodebb-plugin-mentions to v3.0.7 (#10355) (3e5a0f0d)
* update dependency nodebb-plugin-2factor to v3.0.5 (f30c65a4)
* update dependency nodebb-theme-persona to v11.4.1 (#10337) (b84e61d5)
* update dependency nodebb-theme-persona to v11.4.0 (#10325) (244d8801)
* update dependency nodebb-plugin-mentions to v3.0.6 (#10328) (31cbff19)
* update dependency nodebb-plugin-dbsearch to v5.1.3 (#10330) (1c1062e1)
* update dependency nodebb-plugin-markdown to v9.0.8 (#10327) (c17b9bd4)
* update dependency mongodb to v4.4.0 (#10319) (afd2993d)
* update dependency nodebb-plugin-emoji to v3.5.17 (#10314) (04900291)
* update dependency nodebb-plugin-dbsearch to v5.1.2 (#10313) (0e30362b)
* update dependency nodebb-widget-essentials to v5.0.9 (#10307) (5666c103)
* update dependency nodebb-widget-essentials to v5.0.8 (#10306) (636f1baf)
* **sorted-list:**
* call loadItem hook on add/edit items as well as on item retrieval, refactor edit to call parse() (1c8d1d23)
* only call `.stripHTMLTags()` on string values (fb4f89f3)
##### Refactors
* show a louder deprecation notice, alert once for each hook, not per plugin per hook (93b80f17)
* move header unread code to separate module (40230725)
* remove code that doesn't do anything (4a1e761a)
* wrap around if at end (3acd2ac8)
* change lang string (94961196)
##### Tests
* possible fix random psql test failure (50ed3a32)
* log configJSON (9db90a30)
* check contents of config.json in tests (32f69301)
#### v1.19.3 (2022-02-16)
##### Chores
* **i18n:**
* fallback strings for new resources: nodebb.admin-settings-uploads (4043f179)
* fallback strings for new resources: nodebb.user (775d9077)
* **deps:**
* update dependency lint-staged to v12.3.4 (9577ef8d)
* update commitlint monorepo to v16.2.1 (2290cee5)
* update dependency eslint to v8.9.0 (763cd193)
* remove punycode dep (e9cb1452)
* incrementing version number - v1.19.2 (e49b31f0)
* update changelog for v1.19.2 (f012984d)
##### New Features
* delete diffs on post purge, closes #10291 (e9e48a75)
* closes #10296 (58b5781c)
* deleting a user upload dissociates from posts, and vice versa (d5ed8736)
* #10276, dont change/revert theme if its current (398d25c2)
##### Bug Fixes
* #10302, fix regression (503e27f7)
* one last try (9205169f)
* doggy.gif (2f64d633)
* one more fix (cfdfbf32)
* dupe key errors (770fcd9e)
* #10292, delete missing fields (dbf7a458)
* local deleteUploads() method in `src/user/delete.js` to call `User.deleteUpload()` (b9edee14)
* #10144, automatically delete uploads from disk on post purge, ACP option to keep uploads on disk if desired (84dfda59)
* four-space indents in package.json (9aa3e442)
* #10289, remove lodash dependency in src/cli/package-install.js (81fa2e22)
* non-functional upgrade script (1c7fb8fe)
* language keys (350052ec)
* #10273, properly calculate item count for best/controversial (d70ce3a9)
* **deps:**
* update dependency nodebb-plugin-emoji to v3.5.16 (#10297) (b47ca86d)
* update dependency nodebb-plugin-markdown to v9.0.7 (#10293) (5b0d4a8e)
* update dependency nodebb-plugin-emoji to v3.5.14 (#10295) (7af057fa)
* update dependency nodebb-plugin-mentions to v3.0.5 (#10294) (55a98183)
* update dependency winston to v3.6.0 (#10285) (22da7a10)
* update dependency nodebb-plugin-markdown to v9.0.6 (3225a1af)
* update dependency nodebb-plugin-spam-be-gone to v0.7.13 (#10280) (3dc108d3)
* update dependency nodebb-plugin-emoji to v3.5.12 (#10279) (2c0b6322)
* update dependency nodebb-plugin-emoji to v3.5.11 (#10274) (766ef4e5)
##### Refactors
* lazy load slugify (946d351f)
* .deleteUpload() to accept array of paths (7ef9c7d2)
* fix user uploads paths, and associate uid with user uploads (ea36016d)
* change the post uploads' hash seeds to have the `files/` prefix (6489e9fd)
* abstract some common code out to local utility methods (aad0c5fd)
* move post upload tests to its own file (d92da828)
* remove extra zset remove, closes #10277 (489c0d30)
##### Code Style Changes
* linting errors (5d7e1ebc)
##### Tests
* fix topic thumb tests and topic thumbs to work properly with post upload assoc. (fb78570c)
* user uploads.js tests (8c2752ba)
* testing user upload methods, already fixed one bug (11275d68)
#### v1.19.2 (2022-02-09)
##### Chores

View File

@@ -20,7 +20,6 @@ const prestart = require('./src/prestart');
prestart.loadConfig(configFile);
const db = require('./src/database');
const plugins = require('./src/plugins');
module.exports = function (grunt) {
const args = [];
@@ -41,35 +40,35 @@ module.exports = function (grunt) {
grunt.registerTask('init', async function () {
const done = this.async();
let pluginList = [];
let plugins = [];
if (!process.argv.includes('--core')) {
await db.init();
pluginList = await plugins.getActive();
addBaseThemes(pluginList);
if (!pluginList.includes('nodebb-plugin-composer-default')) {
pluginList.push('nodebb-plugin-composer-default');
plugins = await db.getSortedSetRange('plugins:active', 0, -1);
addBaseThemes(plugins);
if (!plugins.includes('nodebb-plugin-composer-default')) {
plugins.push('nodebb-plugin-composer-default');
}
if (!pluginList.includes('nodebb-theme-persona')) {
pluginList.push('nodebb-theme-persona');
if (!plugins.includes('nodebb-theme-persona')) {
plugins.push('nodebb-theme-persona');
}
}
const styleUpdated_Client = pluginList.map(p => `node_modules/${p}/*.less`)
.concat(pluginList.map(p => `node_modules/${p}/*.css`))
.concat(pluginList.map(p => `node_modules/${p}/+(public|static|less)/**/*.less`))
.concat(pluginList.map(p => `node_modules/${p}/+(public|static)/**/*.css`));
const styleUpdated_Client = plugins.map(p => `node_modules/${p}/*.less`)
.concat(plugins.map(p => `node_modules/${p}/*.css`))
.concat(plugins.map(p => `node_modules/${p}/+(public|static|less)/**/*.less`))
.concat(plugins.map(p => `node_modules/${p}/+(public|static)/**/*.css`));
const styleUpdated_Admin = pluginList.map(p => `node_modules/${p}/*.less`)
.concat(pluginList.map(p => `node_modules/${p}/*.css`))
.concat(pluginList.map(p => `node_modules/${p}/+(public|static|less)/**/*.less`))
.concat(pluginList.map(p => `node_modules/${p}/+(public|static)/**/*.css`));
const styleUpdated_Admin = plugins.map(p => `node_modules/${p}/*.less`)
.concat(plugins.map(p => `node_modules/${p}/*.css`))
.concat(plugins.map(p => `node_modules/${p}/+(public|static|less)/**/*.less`))
.concat(plugins.map(p => `node_modules/${p}/+(public|static)/**/*.css`));
const clientUpdated = pluginList.map(p => `node_modules/${p}/+(public|static)/**/*.js`);
const serverUpdated = pluginList.map(p => `node_modules/${p}/*.js`)
.concat(pluginList.map(p => `node_modules/${p}/+(lib|src)/**/*.js`));
const clientUpdated = plugins.map(p => `node_modules/${p}/+(public|static)/**/*.js`);
const serverUpdated = plugins.map(p => `node_modules/${p}/*.js`)
.concat(plugins.map(p => `node_modules/${p}/+(lib|src)/**/*.js`));
const templatesUpdated = pluginList.map(p => `node_modules/${p}/+(public|static|templates)/**/*.tpl`);
const langUpdated = pluginList.map(p => `node_modules/${p}/+(public|static|languages)/**/*.json`);
const templatesUpdated = plugins.map(p => `node_modules/${p}/+(public|static|templates)/**/*.tpl`);
const langUpdated = plugins.map(p => `node_modules/${p}/+(public|static|languages)/**/*.json`);
grunt.config(['watch'], {
styleUpdated_Client: {
@@ -106,9 +105,9 @@ module.exports = function (grunt) {
'app.js',
'install/*.js',
'src/**/*.js',
'public/src/modules/translator.common.js',
'public/src/modules/helpers.common.js',
'public/src/utils.common.js',
'public/src/modules/translator.js',
'public/src/modules/helpers.js',
'public/src/utils.js',
serverUpdated,
'!src/upgrades/**',
],
@@ -138,10 +137,9 @@ module.exports = function (grunt) {
});
const build = require('./src/meta/build');
if (!grunt.option('skip')) {
await build.build(true, { webpack: false });
await build.build(true);
}
run();
await build.webpack({ watch: true });
done();
});
@@ -185,7 +183,7 @@ module.exports = function (grunt) {
return run();
}
require('./src/meta/build').build([compiling], { webpack: false }, (err) => {
require('./src/meta/build').build([compiling], (err) => {
if (err) {
winston.error(err.stack);
}
@@ -196,10 +194,10 @@ module.exports = function (grunt) {
});
};
function addBaseThemes(pluginList) {
let themeId = pluginList.find(p => p.includes('nodebb-theme-'));
function addBaseThemes(plugins) {
let themeId = plugins.find(p => p.includes('nodebb-theme-'));
if (!themeId) {
return pluginList;
return plugins;
}
let baseTheme;
do {
@@ -210,9 +208,9 @@ function addBaseThemes(pluginList) {
}
if (baseTheme) {
pluginList.push(baseTheme);
plugins.push(baseTheme);
themeId = baseTheme;
}
} while (baseTheme);
return pluginList;
return plugins;
}

2
app.js
View File

@@ -71,7 +71,7 @@ if (nconf.get('setup') || nconf.get('install')) {
});
} else if (nconf.get('activate')) {
require('./src/cli/manage').activate(nconf.get('activate'));
} else if (nconf.get('plugins') && typeof nconf.get('plugins') !== 'object') {
} else if (nconf.get('plugins')) {
require('./src/cli/manage').listPlugins();
} else if (nconf.get('build')) {
require('./src/cli/manage').build(nconf.get('build'));

View File

@@ -45,7 +45,6 @@
"allowMultipleBadges": 0,
"maximumFileSize": 2048,
"stripEXIFData": 1,
"orphanExpiryDays": 0,
"resizeImageWidthThreshold": 2000,
"resizeImageWidth": 760,
"rejectImageWidth": 5000,
@@ -78,13 +77,9 @@
"reputation:disabled": 0,
"downvote:disabled": 0,
"disableSignatures": 0,
"upvotesPerDay": 20,
"upvotesPerUserPerDay": 6,
"downvotesPerDay": 10,
"downvotesPerUserPerDay": 3,
"min:rep:chat": 0,
"min:rep:downvote": 0,
"min:rep:upvote": 0,
"min:rep:flag": 0,
"min:rep:profile-picture": 0,
"min:rep:cover-picture": 0,
@@ -92,7 +87,6 @@
"min:rep:aboutme": 0,
"min:rep:signature": 0,
"flags:limitPerTarget": 0,
"flags:autoFlagOnDownvoteThreshold": 0,
"notificationType_upvote": "notification",
"notificationType_new-topic": "notification",
"notificationType_new-reply": "notification",
@@ -154,7 +148,6 @@
"digestHour": 17,
"passwordExpiryDays": 0,
"cross-origin-embedder-policy": 0,
"cross-origin-opener-policy": "same-origin",
"cross-origin-resource-policy": "same-origin",
"hsts-maxage": 31536000,
"hsts-subdomains": 0,

View File

@@ -2,7 +2,7 @@
"name": "nodebb",
"license": "GPL-3.0",
"description": "NodeBB Forum",
"version": "2.3.0",
"version": "1.19.3",
"homepage": "http://www.nodebb.org",
"repository": {
"type": "git",
@@ -29,19 +29,19 @@
},
"dependencies": {
"@adactive/bootstrap-tagsinput": "0.8.2",
"ace-builds": "1.8.1",
"archiver": "5.3.1",
"async": "3.2.4",
"autoprefixer": "10.4.7",
"ace-builds": "1.4.14",
"archiver": "5.3.0",
"async": "3.2.3",
"autoprefixer": "10.4.2",
"bcryptjs": "2.4.3",
"benchpressjs": "2.4.3",
"body-parser": "1.20.0",
"bootbox": "5.5.3",
"body-parser": "1.19.1",
"bootbox": "5.5.2",
"bootstrap": "3.4.1",
"chalk": "4.1.2",
"chart.js": "2.9.4",
"cli-graph": "3.2.2",
"clipboard": "2.0.11",
"clipboard": "2.0.10",
"colors": "1.4.0",
"commander": "7.2.0",
"compare-versions": "4.1.3",
@@ -50,84 +50,83 @@
"connect-mongo": "4.6.0",
"connect-multiparty": "2.2.0",
"connect-pg-simple": "7.0.0",
"connect-redis": "6.1.3",
"connect-redis": "6.1.1",
"cookie-parser": "1.4.6",
"cron": "2.1.0",
"cron": "1.8.2",
"cropperjs": "1.5.12",
"csurf": "1.11.0",
"daemon": "1.1.0",
"diff": "5.1.0",
"express": "4.18.1",
"express-session": "1.17.3",
"diff": "5.0.0",
"express": "4.17.2",
"express-session": "1.17.2",
"express-useragent": "1.0.15",
"file-loader": "6.2.0",
"fs-extra": "10.1.0",
"graceful-fs": "4.2.10",
"helmet": "5.1.1",
"html-to-text": "8.2.0",
"graceful-fs": "4.2.9",
"helmet": "5.0.2",
"html-to-text": "8.1.0",
"ipaddr.js": "2.0.1",
"jquery": "3.6.0",
"jquery-deserialize": "2.0.0",
"jquery-form": "4.3.0",
"jquery-serializeobject": "1.0.0",
"jquery-ui": "1.13.2",
"jquery-ui": "1.13.1",
"jsesc": "3.0.2",
"json2csv": "5.0.7",
"json2csv": "5.0.6",
"jsonwebtoken": "8.5.1",
"less": "4.1.3",
"less": "3.13.1",
"lodash": "4.17.21",
"logrotate-stream": "0.2.8",
"lru-cache": "6.0.0",
"material-design-lite": "1.3.0",
"mime": "3.0.0",
"mkdirp": "1.0.4",
"mongodb": "4.8.1",
"mongodb": "4.3.1",
"morgan": "1.10.0",
"mousetrap": "1.6.5",
"multiparty": "4.2.3",
"@nodebb/bootswatch": "3.4.2",
"nconf": "0.12.0",
"nodebb-plugin-2factor": "5.0.1",
"nodebb-plugin-composer-default": "8.0.0",
"nodebb-plugin-dbsearch": "5.1.5",
"nodebb-plugin-emoji": "4.0.4",
"nodebb-plugin-emoji-android": "3.0.0",
"nodebb-plugin-markdown": "10.0.0",
"nodebb-plugin-mentions": "3.0.11",
"nodebb-plugin-spam-be-gone": "1.0.0",
"nconf": "0.11.3",
"nodebb-plugin-2factor": "3.0.4",
"nodebb-plugin-composer-default": "7.0.20",
"nodebb-plugin-dbsearch": "5.1.1",
"nodebb-plugin-emoji": "3.5.16",
"nodebb-plugin-emoji-android": "2.0.5",
"nodebb-plugin-markdown": "9.0.7",
"nodebb-plugin-mentions": "3.0.5",
"nodebb-plugin-spam-be-gone": "0.7.13",
"nodebb-rewards-essentials": "0.2.1",
"nodebb-theme-lavender": "6.0.0",
"nodebb-theme-persona": "12.0.12",
"nodebb-theme-slick": "2.0.2",
"nodebb-theme-vanilla": "12.1.18",
"nodebb-widget-essentials": "6.0.0",
"nodemailer": "6.7.7",
"nodebb-theme-lavender": "5.3.2",
"nodebb-theme-persona": "11.3.38",
"nodebb-theme-slick": "1.4.23",
"nodebb-theme-vanilla": "12.1.17",
"nodebb-widget-essentials": "5.0.7",
"nodemailer": "6.7.2",
"nprogress": "0.2.0",
"passport": "0.5.2",
"passport-http-bearer": "1.0.1",
"passport-local": "1.0.0",
"pg": "8.7.3",
"pg-cursor": "2.7.3",
"postcss": "8.4.14",
"postcss": "8.4.6",
"postcss-clean": "1.2.0",
"prompt": "1.3.0",
"ioredis": "5.2.2",
"prompt": "1.2.1",
"ioredis": "4.28.5",
"request": "2.88.2",
"request-promise-native": "1.0.9",
"requirejs": "2.3.6",
"rimraf": "3.0.2",
"rss": "1.2.2",
"sanitize-html": "2.7.0",
"semver": "7.3.7",
"semver": "7.3.5",
"serve-favicon": "2.5.0",
"sharp": "0.30.7",
"sharp": "0.30.1",
"sitemap": "7.1.1",
"slideout": "1.0.1",
"socket.io": "4.5.1",
"socket.io": "4.4.1",
"socket.io-adapter-cluster": "1.0.1",
"socket.io-client": "4.5.1",
"@socket.io/redis-adapter": "7.2.0",
"sortablejs": "1.15.0",
"spdx-license-list": "6.6.0",
"socket.io-client": "4.4.1",
"@socket.io/redis-adapter": "7.1.0",
"sortablejs": "1.14.0",
"spdx-license-list": "6.4.0",
"spider-detector": "2.0.0",
"textcomplete": "0.18.2",
"textcomplete.contenteditable": "0.1.1",
@@ -137,32 +136,30 @@
"uglify-es": "3.3.9",
"validator": "13.7.0",
"visibilityjs": "2.0.2",
"webpack": "5.73.0",
"webpack-merge": "5.8.0",
"winston": "3.8.1",
"winston": "3.6.0",
"xml": "1.0.1",
"xregexp": "5.1.1",
"yargs": "17.5.1",
"xregexp": "5.1.0",
"yargs": "17.3.1",
"zxcvbn": "4.4.2"
},
"devDependencies": {
"@apidevtools/swagger-parser": "10.0.3",
"@commitlint/cli": "17.0.3",
"@commitlint/config-angular": "17.0.3",
"@commitlint/cli": "16.2.1",
"@commitlint/config-angular": "16.2.1",
"coveralls": "3.1.1",
"eslint": "8.20.0",
"eslint": "8.9.0",
"eslint-config-nodebb": "0.1.1",
"eslint-plugin-import": "2.26.0",
"grunt": "1.5.3",
"eslint-plugin-import": "2.25.4",
"grunt": "1.4.1",
"grunt-contrib-watch": "1.1.0",
"husky": "8.0.1",
"jsdom": "20.0.0",
"lint-staged": "13.0.3",
"mocha": "10.0.0",
"husky": "7.0.4",
"jsdom": "19.0.0",
"lint-staged": "12.3.4",
"mocha": "9.2.0",
"mocha-lcov-reporter": "1.3.0",
"mockdate": "3.0.5",
"nyc": "15.1.0",
"smtp-server": "3.11.0"
"smtp-server": "3.9.0"
},
"bugs": {
"url": "https://github.com/NodeBB/NodeBB/issues"

View File

@@ -8,7 +8,7 @@ const path = require('path');
const childProcess = require('child_process');
const less = require('less');
const webpack = require('webpack');
const uglify = require('uglify-es');
const nconf = require('nconf');
const Benchpress = require('benchpressjs');
@@ -46,6 +46,16 @@ winston.configure({
});
const web = module.exports;
const scripts = [
'node_modules/jquery/dist/jquery.js',
'node_modules/xregexp/xregexp-all.js',
'public/src/modules/slugify.js',
'public/src/utils.js',
'public/src/installer/install.js',
'node_modules/zxcvbn/dist/zxcvbn.js',
];
let installing = false;
let success = false;
let error = false;
@@ -58,8 +68,6 @@ web.install = async function (port) {
winston.info(`Launching web installer on port ${port}`);
app.use(express.static('public', {}));
app.use('/assets', express.static(path.join(__dirname, '../build/public'), {}));
app.engine('tpl', (filepath, options, callback) => {
filepath = filepath.replace(/\.tpl$/, '.js');
@@ -74,7 +82,7 @@ web.install = async function (port) {
await Promise.all([
compileTemplate(),
compileLess(),
runWebpack(),
compileJS(),
copyCSS(),
loadDefaults(),
]);
@@ -85,13 +93,6 @@ web.install = async function (port) {
}
};
async function runWebpack() {
const util = require('util');
const webpackCfg = require('../webpack.installer');
const compiler = webpack(webpackCfg);
const webpackRun = util.promisify(compiler.run).bind(compiler);
await webpackRun();
}
function launchExpress(port) {
server = app.listen(port, () => {
@@ -112,7 +113,7 @@ function ping(req, res) {
}
function welcome(req, res) {
const dbs = ['mongo', 'redis', 'postgres'];
const dbs = ['redis', 'mongo', 'postgres'];
const databases = dbs.map((databaseName) => {
const questions = require(`../src/database/${databaseName}`).questions.filter(question => question && !question.hideOnWebInstall);
@@ -145,27 +146,29 @@ function install(req, res) {
}
req.setTimeout(0);
installing = true;
const setupEnvVars = nconf.get();
for (const [key, value] of Object.entries(req.body)) {
if (!process.env.hasOwnProperty(key)) {
setupEnvVars[key.replace(':', '__')] = value;
}
}
const database = nconf.get('database') || req.body.database || 'mongo';
const setupEnvVars = {
...process.env,
NODEBB_URL: nconf.get('url') || req.body.url || (`${req.protocol}://${req.get('host')}`),
NODEBB_PORT: nconf.get('port') || 4567,
NODEBB_ADMIN_USERNAME: nconf.get('admin:username') || req.body['admin:username'],
NODEBB_ADMIN_PASSWORD: nconf.get('admin:password') || req.body['admin:password'],
NODEBB_ADMIN_EMAIL: nconf.get('admin:email') || req.body['admin:email'],
NODEBB_DB: database,
NODEBB_DB_HOST: nconf.get(`${database}:host`) || req.body[`${database}:host`],
NODEBB_DB_PORT: nconf.get(`${database}:port`) || req.body[`${database}:port`],
NODEBB_DB_USER: nconf.get(`${database}:username`) || req.body[`${database}:username`],
NODEBB_DB_PASSWORD: nconf.get(`${database}:password`) || req.body[`${database}:password`],
NODEBB_DB_NAME: nconf.get(`${database}:database`) || req.body[`${database}:database`],
NODEBB_DB_SSL: nconf.get(`${database}:ssl`) || req.body[`${database}:ssl`],
defaultPlugins: JSON.stringify(nconf.get('defaultplugins') || nconf.get('defaultPlugins') || []),
// Flatten any objects in setupEnvVars
const pushToRoot = function (parentKey, key) {
setupEnvVars[`${parentKey}__${key}`] = setupEnvVars[parentKey][key];
};
for (const [parentKey, value] of Object.entries(setupEnvVars)) {
if (typeof value === 'object' && value !== null && !Array.isArray(value)) {
Object.keys(value).forEach(key => pushToRoot(parentKey, key));
delete setupEnvVars[parentKey];
} else if (Array.isArray(value)) {
setupEnvVars[parentKey] = JSON.stringify(value);
}
}
winston.info('Starting setup process');
launchUrl = setupEnvVars.NODEBB_URL;
winston.info(setupEnvVars);
launchUrl = setupEnvVars.url;
const child = require('child_process').fork('app', ['--setup'], {
env: setupEnvVars,
@@ -206,20 +209,15 @@ async function launch(req, res) {
}
const filesToDelete = [
path.join(__dirname, '../public', 'installer.css'),
path.join(__dirname, '../public', 'bootstrap.min.css'),
path.join(__dirname, '../build/public', 'installer.min.js'),
'installer.css',
'installer.min.js',
'bootstrap.min.css',
];
try {
await Promise.all(
filesToDelete.map(
filename => fs.promises.unlink(filename)
)
);
} catch (err) {
console.log(err.stack);
}
await Promise.all(
filesToDelete.map(
filename => fs.promises.unlink(path.join(__dirname, '../public', filename))
)
);
child.unref();
process.exit(0);
} catch (err) {
@@ -259,6 +257,23 @@ async function compileLess() {
}
}
async function compileJS() {
let code = '';
for (const srcPath of scripts) {
// eslint-disable-next-line no-await-in-loop
const buffer = await fs.promises.readFile(path.join(__dirname, '..', srcPath));
code += buffer.toString();
}
const minified = uglify.minify(code, {
compress: false,
});
if (!minified.code) {
throw new Error('[[error:failed-to-minify]]');
}
await fs.promises.writeFile(path.join(__dirname, '../public/installer.min.js'), minified.code);
}
async function copyCSS() {
const src = await fs.promises.readFile(
path.join(__dirname, '../node_modules/bootstrap/dist/css/bootstrap.min.css'), 'utf8'
@@ -269,15 +284,12 @@ async function copyCSS() {
async function loadDefaults() {
const setupDefaultsPath = path.join(__dirname, '../setup.json');
try {
// eslint-disable-next-line no-bitwise
await fs.promises.access(setupDefaultsPath, fs.constants.F_OK | fs.constants.R_OK);
await fs.promises.access(setupDefaultsPath, fs.constants.F_OK + fs.constants.R_OK);
} catch (err) {
// setup.json not found or inaccessible, proceed with no defaults
if (err.code !== 'ENOENT') {
throw err;
}
return;
}
winston.info('[installer] Found setup.json, populating default values');
nconf.file({

View File

@@ -1,3 +0,0 @@
# The files here are not meant to be edited directly
Please see the &rarr; [Internalization README](../README.md).

View File

@@ -1,10 +1,8 @@
{
"administrators": "Administrators",
"global-moderators": "Global Moderators",
"moderators": "Moderators",
"no-global-moderators": "No Global Moderators",
"no-sub-categories": "No subcategories",
"subcategories": "%1 subcategories",
"moderators-of-category": "%1 Moderators",
"no-moderators": "No Moderators",
"add-administrator": "Add Administrator",
"add-global-moderator": "Add Global Moderator",

View File

@@ -10,7 +10,6 @@
"upload-files": "Upload Files",
"signature": "Signature",
"ban": "Ban",
"mute": "Mute",
"invite": "Invite",
"search-content": "Search Content",
"search-users": "Search Users",

View File

@@ -18,8 +18,7 @@
"download-csv": "Download CSV",
"manage-groups": "Manage Groups",
"add-group": "Add Group",
"create": "Create User",
"invite": "Invite by Email",
"invite": "Invite",
"new": "New User",
"filter-by": "Filter by",
"pills.unvalidated": "Not Validated",
@@ -63,7 +62,7 @@
"create.password": "Password",
"create.password-confirm": "Confirm Password",
"temp-ban.length": "Length",
"temp-ban.length": "Ban Length",
"temp-ban.reason": "Reason <span class=\"text-muted\">(Optional)</span>",
"temp-ban.hours": "Hours",
"temp-ban.days": "Days",
@@ -91,7 +90,6 @@
"alerts.validate-email-success": "Emails validated",
"alerts.validate-force-password-reset-success": "User(s) passwords have been reset and their existing sessions have been revoked.",
"alerts.password-reset-confirm": "Do you want to send password reset email(s) to these user(s)?",
"alerts.password-reset-email-sent": "Password reset email sent.",
"alerts.confirm-delete": "<strong>Warning!</strong><p>Do you really want to delete <strong>user(s)</strong>?</p><p>This action is not reversible! Only the user account will be deleted, their posts and topics will remain.</p>",
"alerts.delete-success": "User(s) Deleted!",
"alerts.confirm-delete-content": "<strong>Warning!</strong><p>Do you really want to delete these user(s) <strong>content</strong>?</p><p>This action is not reversible! The users' accounts will remain, but their posts and topics will be deleted.</p>",

View File

@@ -17,7 +17,6 @@
"headers.acah": "Access-Control-Allow-Headers",
"headers.coep": "Cross-Origin-Embedder-Policy",
"headers.coep-help": "When enabled (default), will set the header to <code>require-corp</code>",
"headers.coop": "Cross-Origin-Opener-Policy",
"headers.corp": "Cross-Origin-Resource-Policy",
"hsts": "Strict Transport Security",
"hsts.enabled": "Enabled HSTS (recommended)",

View File

@@ -4,13 +4,9 @@
"disable-down-voting": "Disable Down Voting",
"votes-are-public": "All Votes Are Public",
"thresholds": "Activity Thresholds",
"min-rep-upvote": "Minimum reputation to upvote posts",
"upvotes-per-day": "Upvotes per day (set to 0 for unlimited upvotes)",
"upvotes-per-user-per-day": "Upvotes per user per day (set to 0 for unlimited upvotes)",
"min-rep-downvote": "Minimum reputation to downvote posts",
"downvotes-per-day": "Downvotes per day (set to 0 for unlimited downvotes)",
"downvotes-per-user-per-day": "Downvotes per user per day (set to 0 for unlimited downvotes)",
"min-rep-chat": "Minimum reputation to send chat messages",
"min-rep-flag": "Minimum reputation to flag posts",
"min-rep-website": "Minimum reputation to add \"Website\" to user profile",
"min-rep-aboutme": "Minimum reputation to add \"About me\" to user profile",
@@ -22,6 +18,5 @@
"flags.limit-per-target": "Maximum number of times something can be flagged",
"flags.limit-per-target-placeholder": "Default: 0",
"flags.limit-per-target-help": "When a post or user is flagged multiple times, each additional flag is considered a &quot;report&quot; and added to the original flag. Set this option to a number other than zero to limit the number of reports an item can receive.",
"flags.auto-flag-on-downvote-threshold": "Number of downvotes to auto flag posts (Set to 0 to disable, default: 0)",
"flags.auto-resolve-on-ban": "Automatically resolve all of a user's tickets when they are banned"
}

View File

@@ -1,11 +1,8 @@
{
"posts": "المشاركات",
"orphans": "Orphaned Files",
"private": "جعل الملفات التي تم رفعها خاصة",
"strip-exif-data": "Strip EXIF Data",
"preserve-orphaned-uploads": "Keep uploaded files on disk after a post is purged",
"orphanExpiryDays": "Days to keep orphaned files",
"orphanExpiryDays-help": "After this many days, orphaned uploads will be deleted from the file system.<br />Set 0 or leave blank to disable.",
"private-extensions": "File extensions to make private",
"private-uploads-extensions-help": "Enter comma-separated list of file extensions to make private here (e.g. <code>pdf,xls,doc</code>). An empty list means all files are private.",
"resize-image-width-threshold": "Resize images if they are wider than specified width",

View File

@@ -61,7 +61,6 @@
"no-group": "مجموعة غير موجودة",
"no-user": "اسم مستخدم غير موجود",
"no-teaser": "مقتطف غير موجود",
"no-flag": "Flag does not exist",
"no-privileges": "لاتملك الصلاحيات اللازمة للقيام بهذه العملية",
"category-disabled": "قائمة معطلة",
"topic-locked": "الموضوع مقفول",
@@ -108,9 +107,6 @@
"already-bookmarked": "You have already bookmarked this post",
"already-unbookmarked": "You have already unbookmarked this post",
"cant-ban-other-admins": "لايمكن حظر مدبر نظام آخر.",
"cant-mute-other-admins": "You can't mute other admins!",
"user-muted-for-hours": "You have been muted, you will be able to post in %1 hour(s)",
"user-muted-for-minutes": "You have been muted, you will be able to post in %1 minute(s)",
"cant-make-banned-users-admin": "You can't make banned users admin.",
"cant-remove-last-admin": "رجاءًا ، أضف مدير أخر قبل حذف صلاحيات الإدارة من حسابك.",
"account-deletion-disabled": "Account deletion is disabled",
@@ -158,23 +154,19 @@
"already-voting-for-this-post": "لقد شاركت بالتصويت ، ألا تذكر؟",
"reputation-system-disabled": "نظام السمعة معطل",
"downvoting-disabled": "التصويتات السلبية معطلة",
"not-enough-reputation-to-chat": "You need %1 reputation to chat",
"not-enough-reputation-to-upvote": "You need %1 reputation to upvote",
"not-enough-reputation-to-downvote": "You need %1 reputation to downvote",
"not-enough-reputation-to-flag": "You need %1 reputation to flag this post",
"not-enough-reputation-min-rep-website": "You need %1 reputation to add a website",
"not-enough-reputation-min-rep-aboutme": "You need %1 reputation to add an about me",
"not-enough-reputation-min-rep-signature": "You need %1 reputation to add a signature",
"not-enough-reputation-min-rep-profile-picture": "You need %1 reputation to add a profile picture",
"not-enough-reputation-min-rep-cover-picture": "You need %1 reputation to add a cover picture",
"not-enough-reputation-to-downvote": "ليس لديك سمعة تكفي لإضافة صوت سلبي لهذا الموضوع",
"not-enough-reputation-to-flag": "ليس لديك سمعة تكفي للإشعار بموضوع مخل",
"not-enough-reputation-min-rep-website": "You do not have enough reputation to add a website",
"not-enough-reputation-min-rep-aboutme": "You do not have enough reputation to add an about me",
"not-enough-reputation-min-rep-signature": "You do not have enough reputation to add a signature",
"not-enough-reputation-min-rep-profile-picture": "You do not have enough reputation to add a profile picture",
"not-enough-reputation-min-rep-cover-picture": "You do not have enough reputation to add a cover picture",
"post-already-flagged": "You have already flagged this post",
"user-already-flagged": "You have already flagged this user",
"post-flagged-too-many-times": "This post has been flagged by others already",
"user-flagged-too-many-times": "This user has been flagged by others already",
"cant-flag-privileged": "You are not allowed to flag the profiles or content of privileged users (moderators/global moderators/admins)",
"self-vote": "You cannot vote on your own post",
"too-many-upvotes-today": "You can only upvote %1 times a day",
"too-many-upvotes-today-user": "You can only upvote a user %1 times a day",
"too-many-downvotes-today": "You can only downvote %1 times a day",
"too-many-downvotes-today-user": "You can only downvote a user %1 times a day",
"reload-failed": "المنتدى واجه مشكلة أثناء إعادة التحميل: \"%1\". سيواصل المنتدى خدمة العملاء السابقين لكن يجب عليك إلغاء أي تغيير قمت به قبل إعادة التحميل.",
@@ -205,8 +197,6 @@
"no-connection": "There seems to be a problem with your internet connection",
"socket-reconnect-failed": "Unable to reach the server at this time. Click here to try again, or try again later",
"plugin-not-whitelisted": "Unable to install plugin &ndash; only plugins whitelisted by the NodeBB Package Manager can be installed via the ACP",
"plugins-set-in-configuration": "You are not allowed to change plugin state as they are defined at runtime (config.json, environmental variables or terminal arguments), please modify the configuration instead.",
"theme-not-set-in-configuration": "When defining active plugins in configuration, changing themes requires adding the new theme to the list of active plugins before updating it in the ACP",
"topic-event-unrecognized": "Topic event '%1' unrecognized",
"cant-set-child-as-parent": "Can't set child as parent category",
"cant-set-self-as-parent": "Can't set self as parent category",

View File

@@ -38,7 +38,6 @@
"delete-post": "حذف المشاركة",
"purge-post": "Purge Post",
"restore-post": "استرجاع المشاركة",
"delete": "Delete Flag",
"user-view": "مشاهدة الملف الشخصي",
"user-edit": "تعديل الملف الشخصي",
@@ -47,10 +46,8 @@
"add-note": "اضافة ملاحظة",
"no-notes": "No shared notes.",
"delete-note-confirm": "Are you sure you want to delete this flag note?",
"delete-flag-confirm": "Are you sure you want to delete this flag?",
"note-added": "Note Added",
"note-deleted": "Note Deleted",
"flag-deleted": "Flag Deleted",
"history": "Account &amp; Flag History",
"no-history": "No flag history.",
@@ -84,6 +81,5 @@
"bulk-actions": "Bulk Actions",
"bulk-resolve": "Resolve Flag(s)",
"bulk-success": "%1 flags updated",
"flagged-timeago-readable": "Flagged <span class=\"timeago\" title=\"%1\"></span> (%2)",
"auto-flagged": "[Auto Flagged] Received %1 downvotes."
"flagged-timeago-readable": "Flagged <span class=\"timeago\" title=\"%1\"></span> (%2)"
}

View File

@@ -23,7 +23,7 @@
"close": "أغلق",
"pagination": "الصفحات",
"pagination.out_of": "%1 من %2",
"pagination.enter_index": "Go to post index",
"pagination.enter_index": "أدخل الرقم التسلسلي",
"header.admin": "مدير النظام",
"header.categories": "الأقسام",
"header.recent": "حديث",

View File

@@ -6,8 +6,8 @@
"chat.no_active": "لا يوجد لديك دردشات نشطة.",
"chat.user_typing": "%1 يكتب رسالة...",
"chat.user_has_messaged_you": "%1 أرسل لك رسالة.",
"chat.see_all": "All chats",
"chat.mark_all_read": "Mark all read",
"chat.see_all": "عرض كل المحادثات",
"chat.mark_all_read": "Mark all chats read",
"chat.no-messages": "المرجو اختيار مرسل إليه لمعاينة تاريخ الدردشات",
"chat.no-users-in-room": "No users in this room",
"chat.recent-chats": "آخر الدردشات",

View File

@@ -1,8 +1,8 @@
{
"title": "التنبيهات",
"no_notifs": "ليس لديك أية تنبيهات جديدة",
"see_all": "All notifications",
"mark_all_read": "Mark all read",
"see_all": "عرض كل التنبيهات",
"mark_all_read": "اجعل كل التنبيهات مقروءة",
"back_to_home": "عودة إلى %1",
"outgoing_link": "رابط خارجي",
"outgoing_link_message": "أنت تغادر اﻻن %1",

View File

@@ -17,15 +17,5 @@
"reject": "Reject",
"remove": "Remove",
"notify": "Notify",
"notify-user": "Notify User",
"confirm-reject": "Do you want to reject this post?",
"bulk-actions": "Bulk Actions",
"accept-all": "Accept All",
"accept-selected": "Accept Selected",
"reject-all": "Reject All",
"reject-all-confirm": "Do you want to reject all posts?",
"reject-selected": "Reject Selected",
"reject-selected-confirm": "Do you want to reject %1 selected posts?",
"bulk-accept-success": "%1 posts accepted",
"bulk-reject-success": "%1 posts rejected"
"notify-user": "Notify User"
}

View File

@@ -113,7 +113,6 @@
"bookmark": "Bookmark",
"bookmarks": "Bookmarks",
"bookmarks.has_no_bookmarks": "You haven't bookmarked any posts yet.",
"copy-permalink": "Copy Permalink",
"loading_more_posts": "تحميل المزيد من المشاركات",
"move_topic": "نقل الموضوع",
"move_topics": "نقل المواضيع",
@@ -182,7 +181,5 @@
"timeago_earlier": "%1 earlier",
"first-post": "First post",
"last-post": "Last post",
"go-to-my-next-post": "Go to my next post",
"no-more-next-post": "You don't have more posts in this topic",
"post-quick-reply": "Post quick reply"
}

View File

@@ -1,6 +1,5 @@
{
"banned": "محظور",
"muted": "Muted",
"offline": "غير متصل",
"deleted": "محذوف",
"username": "إسم المستخدم",
@@ -13,8 +12,6 @@
"ban_account": "حظر الحساب",
"ban_account_confirm": "هل تريد حقاً حظر هاذا العضو؟",
"unban_account": "إزالة حظر الحساب",
"mute_account": "Mute Account",
"unmute_account": "Unmute Account",
"delete_account": "حذف الحساب",
"delete_account_as_admin": "Delete <strong>Account</strong>",
"delete_content": "Delete Account <strong>Content</strong>",
@@ -157,11 +154,6 @@
"info.banned-permanently": "محظور بشكل دائم",
"info.banned-reason-label": "سبب",
"info.banned-no-reason": "لم يتم إعطاء سبب.",
"info.mute-history": "Recent Mute History",
"info.no-mute-history": "This user has never been muted",
"info.muted-until": "Muted until %1",
"info.muted-expiry": "Expiry",
"info.muted-no-reason": "No reason given.",
"info.username-history": "سجل اسم المستخدم",
"info.email-history": "سجل البريد الإلكتروني",
"info.moderation-note": "ملاحظة الإشراف",

View File

@@ -1,3 +0,0 @@
# The files here are not meant to be edited directly
Please see the &rarr; [Internalization README](../README.md).

View File

@@ -1,10 +1,8 @@
{
"administrators": "Администратори",
"global-moderators": "Глобални модератори",
"moderators": "Модератори",
"no-global-moderators": "Няма глобални модератори",
"no-sub-categories": "Няма подкатегории",
"subcategories": "%1 подкатегории",
"moderators-of-category": "%1 модератори",
"no-moderators": "Няма модератори",
"add-administrator": "Добавяне на администратор",
"add-global-moderator": "Добавяне на глобален модератор",

View File

@@ -10,7 +10,6 @@
"upload-files": "Качване на файлове",
"signature": "Подпис",
"ban": "Блокиране",
"mute": "Заглушаване",
"invite": "Пращане на покана",
"search-content": "Търсене на съдържание",
"search-users": "Търсене на потребители",

View File

@@ -18,8 +18,7 @@
"download-csv": "Сваляне във формат „CSV“",
"manage-groups": "Управление на групите",
"add-group": "Добавяне на група",
"create": "Създаване на потребител",
"invite": "Поканване по е-поща",
"invite": "Покана",
"new": "Нов потребител",
"filter-by": "Филтриране по",
"pills.unvalidated": "Няма потвърдена е-поща",
@@ -63,7 +62,7 @@
"create.password": "Парола",
"create.password-confirm": "Потвърдете паролата",
"temp-ban.length": "Продължителност",
"temp-ban.length": "Продължителност на блокирането",
"temp-ban.reason": "Причина <span class=\"text-muted\">(незадължително)</span>",
"temp-ban.hours": "Часове",
"temp-ban.days": "Дни",
@@ -91,7 +90,6 @@
"alerts.validate-email-success": "Е-пощите са проверени",
"alerts.validate-force-password-reset-success": "Паролата на потребителя (или паролите на потребителите) беше подновена и сесията му беше прекратена.",
"alerts.password-reset-confirm": "Искате ли да изпратите е-писмо/а за възстановяване на паролата на този/тези потребител(и)?",
"alerts.password-reset-email-sent": "Е-писмото за възстановяване на паролата е изпратено.",
"alerts.confirm-delete": "<strong>ВНИМАНИЕ!</strong><p>Наистина ли искате да изтриете <strong>потребителя/ите</strong>?</p> <p>Това действие е необратимо! Ще бъде изтрит само профилът на потребителя/ите, неговите/техните публикациите и теми ще останат.</p>",
"alerts.delete-success": "Потребителят/ите е/са изтрит(и)!",
"alerts.confirm-delete-content": "<strong>ВНИМАНИЕ!</strong><p>Наистина ли искате да изтриете <strong>съдържанието</strong> на този потребител или тези потребители?</p> <p>Това действие е необратимо! Профилите на потребителите ще останат, но всички техни публикации и теми ще бъдат изтрити.</p>",

View File

@@ -17,7 +17,6 @@
"headers.acah": "Access-Control-Allow-Headers",
"headers.coep": "Cross-Origin-Embedder-Policy",
"headers.coep-help": "Когато е включено (по подразбиране), стойността на заглавката ще бъде <code>require-corp</code>",
"headers.coop": "Cross-Origin-Opener-Policy",
"headers.corp": "Cross-Origin-Resource-Policy",
"hsts": "Стриктна транспортна сигурност",
"hsts.enabled": "Включване на HSTS (препоръчително)",

View File

@@ -4,13 +4,9 @@
"disable-down-voting": "Забрана на отрицателното гласуване",
"votes-are-public": "Всички гласувания са публични",
"thresholds": "Ограничения на дейността",
"min-rep-upvote": "Минимална репутация, необходима за положително гласуване за публикации",
"upvotes-per-day": "Положителни гласувания за ден (задайте 0 за неограничен брой)",
"upvotes-per-user-per-day": "Положителни гласувания за потребител за ден (задайте 0 за неограничен брой)",
"min-rep-downvote": "Минимална репутация, необходима за отрицателно гласуване за публикации",
"downvotes-per-day": "Отрицателни гласувания за ден (задайте 0 за неограничен брой)",
"downvotes-per-user-per-day": "Отрицателни гласувания за потребител за ден (задайте 0 за неограничен брой)",
"min-rep-chat": "Минимална репутация, необходима за изпращане на съобщения в разговори",
"min-rep-flag": "Минимална репутация, необходима за докладване на публикации",
"min-rep-website": "Минимална репутация, необходима за добавяне на полето „Уебсайт“ към профила на потребителя",
"min-rep-aboutme": "Минимална репутация, необходима за добавяне на полето „За мен“ към профила на потребителя",
@@ -22,6 +18,5 @@
"flags.limit-per-target": "Максимален брой докладвания на едно и също нещо",
"flags.limit-per-target-placeholder": "По подразбиране: 0",
"flags.limit-per-target-help": "Когато публикация или потребител бъде докладван няколко пъти, това се добавя към един общ доклад. Задайте на тази настройка стойност по-голяма от нула, за да ограничите броя на докладванията, които могат да бъдат натрупани към една публикация или потребител.",
"flags.auto-flag-on-downvote-threshold": "Брой отрицателни гласове, при които публикациите да бъдат докладвани автоматично (0 = изключено, по подразбиране: 0)",
"flags.auto-resolve-on-ban": "Автоматично премахване на всички доклади за потребител, когато той бъде блокиран"
}

View File

@@ -1,11 +1,8 @@
{
"posts": "Публикации",
"orphans": "Неизползвани файлове",
"private": "Качените файлове да бъдат частни",
"strip-exif-data": "Премахване на данните EXIF",
"preserve-orphaned-uploads": "Запазване на качените файлове на диска дори след изтриването на публикацията",
"orphanExpiryDays": "Брой дни за съхранение на неизползваните файлове",
"orphanExpiryDays-help": "След толкова на брой дни неизползваните качени файлове ще бъдат изтривани.<br />Задайте 0 или оставете празно, за да изключите тази функционалност.",
"private-extensions": "Файлови разширения, които да бъдат частни",
"private-uploads-extensions-help": "Въведете списък от файлови разширения, разделени със запетаи, които искате да бъдат частни (например <code>pdf,xls,doc</code>). Ако оставите това поле празно, всички файлове ще бъдат частни.",
"resize-image-width-threshold": "Преоразмеряване на изображенията, ако са по-широки от определената ширина",

View File

@@ -23,7 +23,7 @@
"login-attempts": "Брой опити за вписване на час",
"login-attempts-help": "Ако опитите за вписване на потребител минат тази граница, акаунтът ще бъде заключен за определено време.",
"lockout-duration": "Продължителност на заключването на акаунта (в минути)",
"login-days": "Брой дни за помнене на сесията за вписване на потребителя",
"login-days": "Продължителност на запомнянето на сесията за вписване на потребителя (в дни)",
"password-expiry-days": "Изискване на промяна на паролата през определен период от дни",
"session-time": "Продължителност на сесията",
"session-time-days": "Дни",

View File

@@ -61,7 +61,6 @@
"no-group": "Групата не съществува",
"no-user": "Потребителят не съществува",
"no-teaser": "Резюмето не съществува",
"no-flag": "Докладът не съществува",
"no-privileges": "Нямате достатъчно права за това действие.",
"category-disabled": "Категорията е изключена",
"topic-locked": "Темата е заключена",
@@ -108,9 +107,6 @@
"already-bookmarked": "Вече имате отметка към тази публикация",
"already-unbookmarked": "Вече сте премахнали отметката си от тази публикация",
"cant-ban-other-admins": "Не можете да блокирате другите администратори!",
"cant-mute-other-admins": "Не можете да заглушавате другите администратори!",
"user-muted-for-hours": "Вие бяхте заглушен(а). Ще можете да пускате публикации отново след %1 час(а)",
"user-muted-for-minutes": "Вие бяхте заглушен(а). Ще можете да пускате публикации отново след %1 минута/и",
"cant-make-banned-users-admin": "Не можете да давате администраторски права на блокирани потребители.",
"cant-remove-last-admin": "Вие сте единственият администратор. Добавете друг потребител като администратор, преди да премахнете себе си като администратор",
"account-deletion-disabled": "Изтриването на акаунт е забранено",
@@ -158,23 +154,19 @@
"already-voting-for-this-post": "Вече сте дали глас за тази публикация.",
"reputation-system-disabled": "Системата за репутация е изключена.",
"downvoting-disabled": "Отрицателното гласуване е изключено",
"not-enough-reputation-to-chat": "Репутацията Ви трябва да бъде поне %1, за да участвате в разговори",
"not-enough-reputation-to-upvote": "Репутацията Ви трябва да бъде поне %1, за да гласувате положително",
"not-enough-reputation-to-downvote": "Репутацията Ви трябва да бъде поне %1, за да гласувате отрицателно",
"not-enough-reputation-to-flag": "Репутацията Ви трябва да бъде поне %1, за да докладвате тази публикация",
"not-enough-reputation-min-rep-website": "Репутацията Ви трябва да бъде поне %1, за да добавите уеб сайт",
"not-enough-reputation-min-rep-aboutme": "Репутацията Ви трябва да бъде поне %1, за да добавите информация за себе си",
"not-enough-reputation-min-rep-signature": "Репутацията Ви трябва да бъде поне %1, за да добавите подпис",
"not-enough-reputation-min-rep-profile-picture": "Репутацията Ви трябва да бъде поне %1, за да добавите снимка на профила си",
"not-enough-reputation-min-rep-cover-picture": "Репутацията Ви трябва да бъде поне %1, за да добавите снимка на корицата",
"not-enough-reputation-to-downvote": "Нямате достатъчно репутация, за да гласувате отрицателно за тази публикация",
"not-enough-reputation-to-flag": "Нямате достатъчно репутация, за да докладвате тази публикация",
"not-enough-reputation-min-rep-website": "Нямате достатъчно репутация, за да добавите уеб сайт",
"not-enough-reputation-min-rep-aboutme": "Нямате достатъчно репутация, за да добавите информация за себе си",
"not-enough-reputation-min-rep-signature": "Нямате достатъчно репутация, за да добавите подпис",
"not-enough-reputation-min-rep-profile-picture": "Нямате достатъчно репутация, за да добавите снимка на профила си",
"not-enough-reputation-min-rep-cover-picture": "Нямате достатъчно репутация, за да добавите снимка на корицата",
"post-already-flagged": "Вече сте докладвали тази публикация",
"user-already-flagged": "Вече сте докладвали този потребител",
"post-flagged-too-many-times": "Тази публикация вече е докладвана от други хора",
"user-flagged-too-many-times": "Този потребител вече е докладван от други хора",
"cant-flag-privileged": "Не можете да докладвате профилите или съдържанието от потребители с по-високи правомощия (модератори, глобални модератори, администратори)",
"self-vote": "Не можете да гласувате за собствената си публикация",
"too-many-upvotes-today": "Можете да гласувате положително не повече от %1 пъти на ден",
"too-many-upvotes-today-user": "Можете да гласувате положително за потребител не повече от %1 пъти на ден",
"too-many-downvotes-today": "Можете да гласувате отрицателно не повече от %1 пъти на ден",
"too-many-downvotes-today-user": "Можете да гласувате отрицателно за потребител не повече от %1 пъти на ден",
"reload-failed": "NodeBB срещна проблем при презареждането: „%1“. NodeBB ще продължи да поддържа съществуващите клиентски ресурси, но Вие трябва да отмените последните си действия преди презареждането.",
@@ -205,8 +197,6 @@
"no-connection": "Изглежда има проблем с връзката Ви с Интернет",
"socket-reconnect-failed": "В момента сървърът е недостъпен. Натиснете тук, за да опитате отново, или опитайте пак по-късно.",
"plugin-not-whitelisted": "Добавката не може да бъде инсталирана само добавки, одобрени от пакетния мениджър на NodeBB могат да бъдат инсталирани чрез ACP",
"plugins-set-in-configuration": "Не можете да променяте състоянието на добавката, тъй като то се определя по време на работата ѝ (чрез config.json, променливи на средата или аргументи при изпълнение). Вместо това може да промените конфигурацията.",
"theme-not-set-in-configuration": "Когато определяте активните добавки в конфигурацията, промяната на темите изисква да се добави новата тема към активните добавки, преди актуализирането ѝ в ACP",
"topic-event-unrecognized": "Събитието „%1“ на темата е неизвестно",
"cant-set-child-as-parent": "Дъщерна категория не може да се зададе като базова такава",
"cant-set-self-as-parent": "Категорията не може да се зададе като базова категория на себе си",

View File

@@ -38,7 +38,6 @@
"delete-post": "Изтриване на публикацията",
"purge-post": "Изчистване на публикацията",
"restore-post": "Възстановяване на публикацията",
"delete": "Изтриване на доклада",
"user-view": "Преглед на профила",
"user-edit": "Редактиране на профила",
@@ -47,10 +46,8 @@
"add-note": "Добавяне на бележка",
"no-notes": "Няма споделени бележки.",
"delete-note-confirm": "Наистина ли искате да изтриете тази бележка към доклада?",
"delete-flag-confirm": "Наистина ли искате да изтриете този доклад?",
"note-added": "Бележката е добавена",
"note-deleted": "Бележката е изтрита",
"flag-deleted": "Докладът е изтрит",
"history": "Акаунт и история на докладванията",
"no-history": "Няма история на доклада.",
@@ -84,6 +81,5 @@
"bulk-actions": "Групови действия",
"bulk-resolve": "Разрешаване на доклад(и)",
"bulk-success": "%1 доклада са обновени",
"flagged-timeago-readable": "Докладвано <span class=\"timeago\" title=\"%1\"></span> (%2)",
"auto-flagged": "[Авт. докладвано] Получени %1 отрицателни гласа."
"flagged-timeago-readable": "Докладвано <span class=\"timeago\" title=\"%1\"></span> (%2)"
}

View File

@@ -23,7 +23,7 @@
"close": "Затваряне",
"pagination": "Странициране",
"pagination.out_of": "%1 от %2",
"pagination.enter_index": "Към публикация номер",
"pagination.enter_index": "Въведете номер",
"header.admin": "Администратор",
"header.categories": "Категории",
"header.recent": "Скорошни",

View File

@@ -6,8 +6,8 @@
"chat.no_active": "Нямате текущи разговори.",
"chat.user_typing": "%1 пише...",
"chat.user_has_messaged_you": "%1 Ви написа съобщение.",
"chat.see_all": "Всички разговори",
"chat.mark_all_read": "Отбелязване на всички като прочетени",
"chat.see_all": "Вижте всички разговори",
"chat.mark_all_read": "Отбелязване на всички разговори като прочетени",
"chat.no-messages": "Моля, изберете получател, за да видите историята на съобщенията",
"chat.no-users-in-room": "Няма потребители в тази стая",
"chat.recent-chats": "Скорошни разговори",

View File

@@ -1,8 +1,8 @@
{
"title": "Известия",
"no_notifs": "Нямате нови известия",
"see_all": "Всички известия",
"mark_all_read": "Отбелязване на всички като прочетени",
"see_all": "Показване на всички известия",
"mark_all_read": "Отбелязване на всички известия като прочетени",
"back_to_home": "Назад към %1",
"outgoing_link": "Външна връзка",
"outgoing_link_message": "Напускате %1",

View File

@@ -17,15 +17,5 @@
"reject": "Отказване",
"remove": "Премахване",
"notify": "Известяване",
"notify-user": "Известяване на потребителя",
"confirm-reject": "Искате ли да отхвърлите тази публикация?",
"bulk-actions": "Групови действия",
"accept-all": "Приемане на всички",
"accept-selected": "Приемане на избраните",
"reject-all": "Отхвърляне на всички",
"reject-all-confirm": "Наистина ли искате да отхвърлите всички публикации?",
"reject-selected": "Отхвърляне на избраните",
"reject-selected-confirm": "Наистина ли искате да отхвърлите %1 избрани публикации?",
"bulk-accept-success": "Одобрени публикации: %1",
"bulk-reject-success": "Отхвърлени публикации: %1"
"notify-user": "Известяване на потребителя"
}

View File

@@ -113,7 +113,6 @@
"bookmark": "Отметка",
"bookmarks": "Отметки",
"bookmarks.has_no_bookmarks": "Все още не сте си запазвали отметки към никакви публикации.",
"copy-permalink": "Копиране на постоянна връзка",
"loading_more_posts": "Зареждане на още публикации",
"move_topic": "Преместване на темата",
"move_topics": "Преместване на темите",
@@ -182,7 +181,5 @@
"timeago_earlier": "%1 по-рано",
"first-post": "Първа публикация",
"last-post": "Последна публикация",
"go-to-my-next-post": "Към следващата ми публикация",
"no-more-next-post": "Нямате повече публикации в тази тема",
"post-quick-reply": "Пускане на бърза публикация"
}

View File

@@ -1,6 +1,5 @@
{
"banned": "Блокиран",
"muted": "Заглушен",
"offline": "Извън линия",
"deleted": "Изтрит",
"username": "Потребителско име",
@@ -13,8 +12,6 @@
"ban_account": "Блокиране на акаунта",
"ban_account_confirm": "Наистина ли искате да блокирате този потребител?",
"unban_account": "Деблокиране на акаунта",
"mute_account": "Заглушаване на акаунта",
"unmute_account": "Премахване на заглушаването на акаунта",
"delete_account": "Изтриване на акаунта",
"delete_account_as_admin": "Изтриване на <strong>акаунта</strong>",
"delete_content": "Изтриване на <strong>съдържанието</strong> на акаунта",
@@ -157,11 +154,6 @@
"info.banned-permanently": "Блокиран за постоянно",
"info.banned-reason-label": "Причина",
"info.banned-no-reason": "Няма посочена причина.",
"info.mute-history": "Скорошна история на заглушаванията",
"info.no-mute-history": "Този потребител никога не е бил заглушаван",
"info.muted-until": "Заглушен до %1",
"info.muted-expiry": "Давност",
"info.muted-no-reason": "Няма посочена причина.",
"info.username-history": "История на потребителските имена",
"info.email-history": "Историята на е-пощите",
"info.moderation-note": "Модераторска бележка",

View File

@@ -1,3 +0,0 @@
# The files here are not meant to be edited directly
Please see the &rarr; [Internalization README](../README.md).

View File

@@ -1,10 +1,8 @@
{
"administrators": "Administrators",
"global-moderators": "Global Moderators",
"moderators": "Moderators",
"no-global-moderators": "No Global Moderators",
"no-sub-categories": "No subcategories",
"subcategories": "%1 subcategories",
"moderators-of-category": "%1 Moderators",
"no-moderators": "No Moderators",
"add-administrator": "Add Administrator",
"add-global-moderator": "Add Global Moderator",

View File

@@ -10,7 +10,6 @@
"upload-files": "Upload Files",
"signature": "Signature",
"ban": "Ban",
"mute": "Mute",
"invite": "Invite",
"search-content": "Search Content",
"search-users": "Search Users",

View File

@@ -18,8 +18,7 @@
"download-csv": "Download CSV",
"manage-groups": "Manage Groups",
"add-group": "Add Group",
"create": "Create User",
"invite": "Invite by Email",
"invite": "Invite",
"new": "New User",
"filter-by": "Filter by",
"pills.unvalidated": "Not Validated",
@@ -63,7 +62,7 @@
"create.password": "Password",
"create.password-confirm": "Confirm Password",
"temp-ban.length": "Length",
"temp-ban.length": "Ban Length",
"temp-ban.reason": "Reason <span class=\"text-muted\">(Optional)</span>",
"temp-ban.hours": "Hours",
"temp-ban.days": "Days",
@@ -91,7 +90,6 @@
"alerts.validate-email-success": "Emails validated",
"alerts.validate-force-password-reset-success": "User(s) passwords have been reset and their existing sessions have been revoked.",
"alerts.password-reset-confirm": "Do you want to send password reset email(s) to these user(s)?",
"alerts.password-reset-email-sent": "Password reset email sent.",
"alerts.confirm-delete": "<strong>Warning!</strong><p>Do you really want to delete <strong>user(s)</strong>?</p><p>This action is not reversible! Only the user account will be deleted, their posts and topics will remain.</p>",
"alerts.delete-success": "User(s) Deleted!",
"alerts.confirm-delete-content": "<strong>Warning!</strong><p>Do you really want to delete these user(s) <strong>content</strong>?</p><p>This action is not reversible! The users' accounts will remain, but their posts and topics will be deleted.</p>",

View File

@@ -17,7 +17,6 @@
"headers.acah": "Access-Control-Allow-Headers",
"headers.coep": "Cross-Origin-Embedder-Policy",
"headers.coep-help": "When enabled (default), will set the header to <code>require-corp</code>",
"headers.coop": "Cross-Origin-Opener-Policy",
"headers.corp": "Cross-Origin-Resource-Policy",
"hsts": "Strict Transport Security",
"hsts.enabled": "Enabled HSTS (recommended)",

View File

@@ -4,13 +4,9 @@
"disable-down-voting": "Disable Down Voting",
"votes-are-public": "All Votes Are Public",
"thresholds": "Activity Thresholds",
"min-rep-upvote": "Minimum reputation to upvote posts",
"upvotes-per-day": "Upvotes per day (set to 0 for unlimited upvotes)",
"upvotes-per-user-per-day": "Upvotes per user per day (set to 0 for unlimited upvotes)",
"min-rep-downvote": "Minimum reputation to downvote posts",
"downvotes-per-day": "Downvotes per day (set to 0 for unlimited downvotes)",
"downvotes-per-user-per-day": "Downvotes per user per day (set to 0 for unlimited downvotes)",
"min-rep-chat": "Minimum reputation to send chat messages",
"min-rep-flag": "Minimum reputation to flag posts",
"min-rep-website": "Minimum reputation to add \"Website\" to user profile",
"min-rep-aboutme": "Minimum reputation to add \"About me\" to user profile",
@@ -22,6 +18,5 @@
"flags.limit-per-target": "Maximum number of times something can be flagged",
"flags.limit-per-target-placeholder": "Default: 0",
"flags.limit-per-target-help": "When a post or user is flagged multiple times, each additional flag is considered a &quot;report&quot; and added to the original flag. Set this option to a number other than zero to limit the number of reports an item can receive.",
"flags.auto-flag-on-downvote-threshold": "Number of downvotes to auto flag posts (Set to 0 to disable, default: 0)",
"flags.auto-resolve-on-ban": "Automatically resolve all of a user's tickets when they are banned"
}

View File

@@ -1,11 +1,8 @@
{
"posts": "Posts",
"orphans": "Orphaned Files",
"private": "Make uploaded files private",
"strip-exif-data": "Strip EXIF Data",
"preserve-orphaned-uploads": "Keep uploaded files on disk after a post is purged",
"orphanExpiryDays": "Days to keep orphaned files",
"orphanExpiryDays-help": "After this many days, orphaned uploads will be deleted from the file system.<br />Set 0 or leave blank to disable.",
"private-extensions": "File extensions to make private",
"private-uploads-extensions-help": "Enter comma-separated list of file extensions to make private here (e.g. <code>pdf,xls,doc</code>). An empty list means all files are private.",
"resize-image-width-threshold": "Resize images if they are wider than specified width",

View File

@@ -61,7 +61,6 @@
"no-group": "এই গ্রুপ অস্তিত্বহীন",
"no-user": "এই নামে কোন সদস্য নেই",
"no-teaser": "টিজারটি খুজে পাওয়া যায় নি",
"no-flag": "Flag does not exist",
"no-privileges": "এই কাজটির জন্য আপনার পর্যাপ্ত অধিকার নেই",
"category-disabled": "বিভাগটি নিষ্ক্রিয়",
"topic-locked": "টপিক বন্ধ",
@@ -108,9 +107,6 @@
"already-bookmarked": "You have already bookmarked this post",
"already-unbookmarked": "You have already unbookmarked this post",
"cant-ban-other-admins": "আপনি অন্য এ্যাডমিনদের নিষিদ্ধ করতে পারেন না!",
"cant-mute-other-admins": "You can't mute other admins!",
"user-muted-for-hours": "You have been muted, you will be able to post in %1 hour(s)",
"user-muted-for-minutes": "You have been muted, you will be able to post in %1 minute(s)",
"cant-make-banned-users-admin": "You can't make banned users admin.",
"cant-remove-last-admin": "You are the only administrator. Add another user as an administrator before removing yourself as admin",
"account-deletion-disabled": "Account deletion is disabled",
@@ -158,23 +154,19 @@
"already-voting-for-this-post": "You have already voted for this post.",
"reputation-system-disabled": "সম্মাননা ব্যাবস্থা নিস্ক্রীয় রাখা হয়েছে",
"downvoting-disabled": "ঋণাত্মক ভোট নিস্ক্রীয় রাখা হয়েছে।",
"not-enough-reputation-to-chat": "You need %1 reputation to chat",
"not-enough-reputation-to-upvote": "You need %1 reputation to upvote",
"not-enough-reputation-to-downvote": "You need %1 reputation to downvote",
"not-enough-reputation-to-flag": "You need %1 reputation to flag this post",
"not-enough-reputation-min-rep-website": "You need %1 reputation to add a website",
"not-enough-reputation-min-rep-aboutme": "You need %1 reputation to add an about me",
"not-enough-reputation-min-rep-signature": "You need %1 reputation to add a signature",
"not-enough-reputation-min-rep-profile-picture": "You need %1 reputation to add a profile picture",
"not-enough-reputation-min-rep-cover-picture": "You need %1 reputation to add a cover picture",
"not-enough-reputation-to-downvote": "আপনার এই পোস্ট downvote করার জন্য পর্যাপ্ত সম্মাননা নেই",
"not-enough-reputation-to-flag": "এই পোষ্টকে ফ্লাগ করার জন্য আপনার পর্যাপ্ত সম্মাননা নেই",
"not-enough-reputation-min-rep-website": "You do not have enough reputation to add a website",
"not-enough-reputation-min-rep-aboutme": "You do not have enough reputation to add an about me",
"not-enough-reputation-min-rep-signature": "You do not have enough reputation to add a signature",
"not-enough-reputation-min-rep-profile-picture": "You do not have enough reputation to add a profile picture",
"not-enough-reputation-min-rep-cover-picture": "You do not have enough reputation to add a cover picture",
"post-already-flagged": "You have already flagged this post",
"user-already-flagged": "You have already flagged this user",
"post-flagged-too-many-times": "This post has been flagged by others already",
"user-flagged-too-many-times": "This user has been flagged by others already",
"cant-flag-privileged": "You are not allowed to flag the profiles or content of privileged users (moderators/global moderators/admins)",
"self-vote": "You cannot vote on your own post",
"too-many-upvotes-today": "You can only upvote %1 times a day",
"too-many-upvotes-today-user": "You can only upvote a user %1 times a day",
"too-many-downvotes-today": "You can only downvote %1 times a day",
"too-many-downvotes-today-user": "You can only downvote a user %1 times a day",
"reload-failed": "\"%1\" রিলোড করতে সমস্যা হয়েছে। রিলোডের পূর্বে যা করা হয়েছিল সেটি আনডু করা সমীচীন। ",
@@ -205,8 +197,6 @@
"no-connection": "There seems to be a problem with your internet connection",
"socket-reconnect-failed": "Unable to reach the server at this time. Click here to try again, or try again later",
"plugin-not-whitelisted": "Unable to install plugin &ndash; only plugins whitelisted by the NodeBB Package Manager can be installed via the ACP",
"plugins-set-in-configuration": "You are not allowed to change plugin state as they are defined at runtime (config.json, environmental variables or terminal arguments), please modify the configuration instead.",
"theme-not-set-in-configuration": "When defining active plugins in configuration, changing themes requires adding the new theme to the list of active plugins before updating it in the ACP",
"topic-event-unrecognized": "Topic event '%1' unrecognized",
"cant-set-child-as-parent": "Can't set child as parent category",
"cant-set-self-as-parent": "Can't set self as parent category",

View File

@@ -38,7 +38,6 @@
"delete-post": "Delete Post",
"purge-post": "Purge Post",
"restore-post": "Restore Post",
"delete": "Delete Flag",
"user-view": "View Profile",
"user-edit": "Edit Profile",
@@ -47,10 +46,8 @@
"add-note": "Add Note",
"no-notes": "No shared notes.",
"delete-note-confirm": "Are you sure you want to delete this flag note?",
"delete-flag-confirm": "Are you sure you want to delete this flag?",
"note-added": "Note Added",
"note-deleted": "Note Deleted",
"flag-deleted": "Flag Deleted",
"history": "Account &amp; Flag History",
"no-history": "No flag history.",
@@ -84,6 +81,5 @@
"bulk-actions": "Bulk Actions",
"bulk-resolve": "Resolve Flag(s)",
"bulk-success": "%1 flags updated",
"flagged-timeago-readable": "Flagged <span class=\"timeago\" title=\"%1\"></span> (%2)",
"auto-flagged": "[Auto Flagged] Received %1 downvotes."
"flagged-timeago-readable": "Flagged <span class=\"timeago\" title=\"%1\"></span> (%2)"
}

View File

@@ -23,7 +23,7 @@
"close": "বন্ধ",
"pagination": "পাতা নং",
"pagination.out_of": "%2 এর মাঝে %1",
"pagination.enter_index": "Go to post index",
"pagination.enter_index": "সূচক লিখুন",
"header.admin": "অ্যাডমিন",
"header.categories": "বিভাগ",
"header.recent": "সাম্প্রতিক",

View File

@@ -6,8 +6,8 @@
"chat.no_active": "আপনার কোন সচল কথোপকথন নেই",
"chat.user_typing": "%1 লিখছেন",
"chat.user_has_messaged_you": "%1 আপনাকে বার্তা পাঠিয়েছেন",
"chat.see_all": "All chats",
"chat.mark_all_read": "Mark all read",
"chat.see_all": "See all chats",
"chat.mark_all_read": "Mark all chats read",
"chat.no-messages": "মেসেজ হিস্টোরী দেখতে প্রাপক নির্বাচন করুন",
"chat.no-users-in-room": "No users in this room",
"chat.recent-chats": "সাম্প্রতিক চ্যাটসমূহ",

View File

@@ -1,8 +1,8 @@
{
"title": "বিজ্ঞপ্তিগুলো",
"no_notifs": "আপনার নতুন কোন বিজ্ঞপ্তি নেই",
"see_all": "All notifications",
"mark_all_read": "Mark all read",
"see_all": "See all notifications",
"mark_all_read": "Mark all notifications read",
"back_to_home": "ফিরুন %1",
"outgoing_link": "বহির্গামী লিঙ্ক",
"outgoing_link_message": "You are now leaving %1",

View File

@@ -17,15 +17,5 @@
"reject": "Reject",
"remove": "Remove",
"notify": "Notify",
"notify-user": "Notify User",
"confirm-reject": "Do you want to reject this post?",
"bulk-actions": "Bulk Actions",
"accept-all": "Accept All",
"accept-selected": "Accept Selected",
"reject-all": "Reject All",
"reject-all-confirm": "Do you want to reject all posts?",
"reject-selected": "Reject Selected",
"reject-selected-confirm": "Do you want to reject %1 selected posts?",
"bulk-accept-success": "%1 posts accepted",
"bulk-reject-success": "%1 posts rejected"
"notify-user": "Notify User"
}

View File

@@ -113,7 +113,6 @@
"bookmark": "Bookmark",
"bookmarks": "Bookmarks",
"bookmarks.has_no_bookmarks": "You haven't bookmarked any posts yet.",
"copy-permalink": "Copy Permalink",
"loading_more_posts": "আরো পোষ্ট লোড করা হচ্ছে",
"move_topic": "টপিক সরান",
"move_topics": "টপিক সমূহ সরান",
@@ -182,7 +181,5 @@
"timeago_earlier": "%1 earlier",
"first-post": "First post",
"last-post": "Last post",
"go-to-my-next-post": "Go to my next post",
"no-more-next-post": "You don't have more posts in this topic",
"post-quick-reply": "Post quick reply"
}

View File

@@ -1,6 +1,5 @@
{
"banned": "নিষিদ্ধ",
"muted": "Muted",
"offline": "অফলাইন",
"deleted": "Deleted",
"username": "সদস্যের নাম",
@@ -13,8 +12,6 @@
"ban_account": "একাউন্ট নিষিদ্ধ করুন",
"ban_account_confirm": "আপনি কি নিশ্চিত যে এই সদস্যকে নিষিদ্ধ করতে চান ?",
"unban_account": "নিষেদ্ধাজ্ঞা তুলে নিন",
"mute_account": "Mute Account",
"unmute_account": "Unmute Account",
"delete_account": "একাউন্ট মুছে ফেলুন",
"delete_account_as_admin": "Delete <strong>Account</strong>",
"delete_content": "Delete Account <strong>Content</strong>",
@@ -157,11 +154,6 @@
"info.banned-permanently": "Banned permanently",
"info.banned-reason-label": "Reason",
"info.banned-no-reason": "No reason given.",
"info.mute-history": "Recent Mute History",
"info.no-mute-history": "This user has never been muted",
"info.muted-until": "Muted until %1",
"info.muted-expiry": "Expiry",
"info.muted-no-reason": "No reason given.",
"info.username-history": "Username History",
"info.email-history": "Email History",
"info.moderation-note": "Moderation Note",

View File

@@ -1,3 +0,0 @@
# The files here are not meant to be edited directly
Please see the &rarr; [Internalization README](../README.md).

View File

@@ -1,10 +1,8 @@
{
"administrators": "Správci",
"global-moderators": "Hlavní moderátoři",
"moderators": "Moderators",
"no-global-moderators": "Žádní hlavní moderátoři",
"no-sub-categories": "No subcategories",
"subcategories": "%1 subcategories",
"moderators-of-category": "%1 moderátorů",
"no-moderators": "Žádní moderátoři",
"add-administrator": "Přidat správce",
"add-global-moderator": "Přidat hlavního moderátora",

View File

@@ -10,7 +10,6 @@
"upload-files": "Náhrát soubory",
"signature": "Podpis",
"ban": "Blokovat",
"mute": "Mute",
"invite": "Invite",
"search-content": "Hledat obsah",
"search-users": "Hledat uživatele",

View File

@@ -18,8 +18,7 @@
"download-csv": "Stáhnout jako CSV",
"manage-groups": "Spravovat skupiny",
"add-group": "Přidat skupinu",
"create": "Create User",
"invite": "Invite by Email",
"invite": "Pozvat",
"new": "Nový uživatel",
"filter-by": "Filter by",
"pills.unvalidated": "Neověřeno",
@@ -63,7 +62,7 @@
"create.password": "Heslo",
"create.password-confirm": "Potvrdit heslo",
"temp-ban.length": "Length",
"temp-ban.length": "Trvání zákazu",
"temp-ban.reason": "Důvod <span class=\"text-muted\">(volitelné)</span>",
"temp-ban.hours": "Hodiny",
"temp-ban.days": "Dny",
@@ -91,7 +90,6 @@
"alerts.validate-email-success": "E-maily byly ověřeny",
"alerts.validate-force-password-reset-success": "Uživatelské heslo bylo resetováno a přihlašovací relace byla ukončena.",
"alerts.password-reset-confirm": "Chcete poslat těmto uživatelům e-mail pro resetování hesla?",
"alerts.password-reset-email-sent": "Password reset email sent.",
"alerts.confirm-delete": "<strong>Warning!</strong><p>Do you really want to delete <strong>user(s)</strong>?</p><p>This action is not reversible! Only the user account will be deleted, their posts and topics will remain.</p>",
"alerts.delete-success": "Uživatel byl odstraněn.",
"alerts.confirm-delete-content": "<strong>Warning!</strong><p>Do you really want to delete these user(s) <strong>content</strong>?</p><p>This action is not reversible! The users' accounts will remain, but their posts and topics will be deleted.</p>",

View File

@@ -17,7 +17,6 @@
"headers.acah": "Access-Control-Allow-Headers",
"headers.coep": "Cross-Origin-Embedder-Policy",
"headers.coep-help": "When enabled (default), will set the header to <code>require-corp</code>",
"headers.coop": "Cross-Origin-Opener-Policy",
"headers.corp": "Cross-Origin-Resource-Policy",
"hsts": "Přísné zabezpečení přenosu",
"hsts.enabled": "Povolit HSTS (doporučeno)",

View File

@@ -4,13 +4,9 @@
"disable-down-voting": "Zakázat hlasování",
"votes-are-public": "Všechna hlasování jsou veřejná",
"thresholds": "Omezení aktivity",
"min-rep-upvote": "Minimum reputation to upvote posts",
"upvotes-per-day": "Upvotes per day (set to 0 for unlimited upvotes)",
"upvotes-per-user-per-day": "Upvotes per user per day (set to 0 for unlimited upvotes)",
"min-rep-downvote": "Minimální reputace pro vyjádření nesouhlasu s příspěvkem",
"downvotes-per-day": "Downvotes per day (set to 0 for unlimited downvotes)",
"downvotes-per-user-per-day": "Downvotes per user per day (set to 0 for unlimited downvotes)",
"min-rep-chat": "Minimum reputation to send chat messages",
"min-rep-flag": "Minimální reputace pro označení příspěvků",
"min-rep-website": "Minimální reputace pro přidání „Webové stránky” do uživatelského profilu",
"min-rep-aboutme": "Minimální reputace pro přidání „O mně” do uživatelského profilu",
@@ -22,6 +18,5 @@
"flags.limit-per-target": "Maximum number of times something can be flagged",
"flags.limit-per-target-placeholder": "Default: 0",
"flags.limit-per-target-help": "When a post or user is flagged multiple times, each additional flag is considered a &quot;report&quot; and added to the original flag. Set this option to a number other than zero to limit the number of reports an item can receive.",
"flags.auto-flag-on-downvote-threshold": "Number of downvotes to auto flag posts (Set to 0 to disable, default: 0)",
"flags.auto-resolve-on-ban": "Automatically resolve all of a user's tickets when they are banned"
}

View File

@@ -1,11 +1,8 @@
{
"posts": "Příspěvky",
"orphans": "Orphaned Files",
"private": "Nahrané soubory jsou soukromé",
"strip-exif-data": "Nepoužít data EXIF",
"preserve-orphaned-uploads": "Keep uploaded files on disk after a post is purged",
"orphanExpiryDays": "Days to keep orphaned files",
"orphanExpiryDays-help": "After this many days, orphaned uploads will be deleted from the file system.<br />Set 0 or leave blank to disable.",
"private-extensions": "Přípona souborů je soukromá",
"private-uploads-extensions-help": "Pro nastavení soukromí, zde zadejte seznam souborů oddělený čárkou (tj. <code>pdf, xls,doc</code>). prázdný seznam znamená, že všechny soubory jsou soukromé.",
"resize-image-width-threshold": "Změnit velikost obrázků, jsou-li širší než určená šířka",

View File

@@ -61,7 +61,6 @@
"no-group": "Skupina neexistuje",
"no-user": "Uživatel neexistuje",
"no-teaser": "Chyták neexistuje",
"no-flag": "Flag does not exist",
"no-privileges": "Na tuto akci nemáte dostatečné oprávnění.",
"category-disabled": "Kategorie zakázána",
"topic-locked": "Téma uzamknuto",
@@ -108,9 +107,6 @@
"already-bookmarked": "Již jste tento příspěvek zazáložkoval",
"already-unbookmarked": "Již jste u tohoto příspěvku odebral záložku",
"cant-ban-other-admins": "Nemůžete zablokovat jiné správce.",
"cant-mute-other-admins": "You can't mute other admins!",
"user-muted-for-hours": "You have been muted, you will be able to post in %1 hour(s)",
"user-muted-for-minutes": "You have been muted, you will be able to post in %1 minute(s)",
"cant-make-banned-users-admin": "You can't make banned users admin.",
"cant-remove-last-admin": "Jste jediným správcem. Před vlastním odebráním oprávnění správce nejdříve přidejte jiného uživatele jako správce",
"account-deletion-disabled": "Account deletion is disabled",
@@ -158,23 +154,19 @@
"already-voting-for-this-post": "Již jste v tomto příspěvku hlasoval.",
"reputation-system-disabled": "Systém reputací je zakázán.",
"downvoting-disabled": "Systém nesouhlasu je zakázán",
"not-enough-reputation-to-chat": "You need %1 reputation to chat",
"not-enough-reputation-to-upvote": "You need %1 reputation to upvote",
"not-enough-reputation-to-downvote": "You need %1 reputation to downvote",
"not-enough-reputation-to-flag": "You need %1 reputation to flag this post",
"not-enough-reputation-min-rep-website": "You need %1 reputation to add a website",
"not-enough-reputation-min-rep-aboutme": "You need %1 reputation to add an about me",
"not-enough-reputation-min-rep-signature": "You need %1 reputation to add a signature",
"not-enough-reputation-min-rep-profile-picture": "You need %1 reputation to add a profile picture",
"not-enough-reputation-min-rep-cover-picture": "You need %1 reputation to add a cover picture",
"not-enough-reputation-to-downvote": "Nemáte dostatečnou reputaci pro vyjádření nesouhlasu u tohoto příspěvku",
"not-enough-reputation-to-flag": "Pro označení tohoto příspěvku nemáte dostatečnou reputaci",
"not-enough-reputation-min-rep-website": "Pro přidání webové stránky nemáte dostatek reputace",
"not-enough-reputation-min-rep-aboutme": "Pro přidání „O mně” nemáte dostatek reputace",
"not-enough-reputation-min-rep-signature": "Pro přidání podpisu nemáte dostatek reputace",
"not-enough-reputation-min-rep-profile-picture": "Pro přidání profilového obrázku nemáte dostatek reputace",
"not-enough-reputation-min-rep-cover-picture": "Pro přidání obrázku nemáte dostatek reputace",
"post-already-flagged": "You have already flagged this post",
"user-already-flagged": "You have already flagged this user",
"post-flagged-too-many-times": "This post has been flagged by others already",
"user-flagged-too-many-times": "This user has been flagged by others already",
"cant-flag-privileged": "You are not allowed to flag the profiles or content of privileged users (moderators/global moderators/admins)",
"self-vote": "U svého vlastního příspěvku nemůžete hlasovat",
"too-many-upvotes-today": "You can only upvote %1 times a day",
"too-many-upvotes-today-user": "You can only upvote a user %1 times a day",
"too-many-downvotes-today": "You can only downvote %1 times a day",
"too-many-downvotes-today-user": "You can only downvote a user %1 times a day",
"reload-failed": "Vyskytla se chyba v NodeBB při znovu načtení: \"%1\". NodeBB bude pokračovat v běhu na straně klienta, nicméně byste měl/a přenastavit zpět to, co jste udělal/a před opětovným načtením.",
@@ -205,8 +197,6 @@
"no-connection": "Zdá se, že nastal problém s připojením k internetu",
"socket-reconnect-failed": "Unable to reach the server at this time. Click here to try again, or try again later",
"plugin-not-whitelisted": "Unable to install plugin &ndash; only plugins whitelisted by the NodeBB Package Manager can be installed via the ACP",
"plugins-set-in-configuration": "You are not allowed to change plugin state as they are defined at runtime (config.json, environmental variables or terminal arguments), please modify the configuration instead.",
"theme-not-set-in-configuration": "When defining active plugins in configuration, changing themes requires adding the new theme to the list of active plugins before updating it in the ACP",
"topic-event-unrecognized": "Topic event '%1' unrecognized",
"cant-set-child-as-parent": "Can't set child as parent category",
"cant-set-self-as-parent": "Can't set self as parent category",

View File

@@ -38,7 +38,6 @@
"delete-post": "Delete Post",
"purge-post": "Purge Post",
"restore-post": "Restore Post",
"delete": "Delete Flag",
"user-view": "Zobrazit profil",
"user-edit": "Upravit profil",
@@ -47,10 +46,8 @@
"add-note": "Přidat poznámku",
"no-notes": "Žádné sdílené poznámky.",
"delete-note-confirm": "Are you sure you want to delete this flag note?",
"delete-flag-confirm": "Are you sure you want to delete this flag?",
"note-added": "Poznámka přidána",
"note-deleted": "Note Deleted",
"flag-deleted": "Flag Deleted",
"history": "Account &amp; Flag History",
"no-history": "Žádná historie označení.",
@@ -84,6 +81,5 @@
"bulk-actions": "Bulk Actions",
"bulk-resolve": "Resolve Flag(s)",
"bulk-success": "%1 flags updated",
"flagged-timeago-readable": "Flagged <span class=\"timeago\" title=\"%1\"></span> (%2)",
"auto-flagged": "[Auto Flagged] Received %1 downvotes."
"flagged-timeago-readable": "Flagged <span class=\"timeago\" title=\"%1\"></span> (%2)"
}

View File

@@ -23,7 +23,7 @@
"close": "Zrušit",
"pagination": "Stránkování",
"pagination.out_of": "%1 z %2",
"pagination.enter_index": "Go to post index",
"pagination.enter_index": "Zadejte index",
"header.admin": "Administrace",
"header.categories": "Kategorie",
"header.recent": "Nejnovější",

View File

@@ -6,8 +6,8 @@
"chat.no_active": "Nemáte žádné aktivní konverzace.",
"chat.user_typing": "%1 píše…",
"chat.user_has_messaged_you": "%1 Vám napsal.",
"chat.see_all": "All chats",
"chat.mark_all_read": "Mark all read",
"chat.see_all": "Prohlédnout všechny konverzace",
"chat.mark_all_read": "Označit vše jako přečtené",
"chat.no-messages": "Vyberte příjemce k prohlédnutí historie zpráv.",
"chat.no-users-in-room": "Žádní uživatelé v místnosti.",
"chat.recent-chats": "Aktuální konverzace",

View File

@@ -1,8 +1,8 @@
{
"title": "Upozornění",
"no_notifs": "Nemáte žádná nová upozornění.",
"see_all": "All notifications",
"mark_all_read": "Mark all read",
"see_all": "Zobrazit všechna upozornění",
"mark_all_read": "Označit všechna upozornění jako přečtená",
"back_to_home": "Zpět na %1",
"outgoing_link": "Odkaz mimo fórum",
"outgoing_link_message": "Opouštíte %1",

View File

@@ -17,15 +17,5 @@
"reject": "Reject",
"remove": "Remove",
"notify": "Notify",
"notify-user": "Notify User",
"confirm-reject": "Do you want to reject this post?",
"bulk-actions": "Bulk Actions",
"accept-all": "Accept All",
"accept-selected": "Accept Selected",
"reject-all": "Reject All",
"reject-all-confirm": "Do you want to reject all posts?",
"reject-selected": "Reject Selected",
"reject-selected-confirm": "Do you want to reject %1 selected posts?",
"bulk-accept-success": "%1 posts accepted",
"bulk-reject-success": "%1 posts rejected"
"notify-user": "Notify User"
}

View File

@@ -113,7 +113,6 @@
"bookmark": "Záložka",
"bookmarks": "Záložky",
"bookmarks.has_no_bookmarks": "Ještě jste nezazáložkoval žádný příspěvek.",
"copy-permalink": "Copy Permalink",
"loading_more_posts": "Načítání více příspěvků",
"move_topic": "Přesunout téma",
"move_topics": "Přesunout témata",
@@ -182,7 +181,5 @@
"timeago_earlier": "%1 dříve",
"first-post": "First post",
"last-post": "Last post",
"go-to-my-next-post": "Go to my next post",
"no-more-next-post": "You don't have more posts in this topic",
"post-quick-reply": "Post quick reply"
}

View File

@@ -1,6 +1,5 @@
{
"banned": "Zablokován",
"muted": "Muted",
"offline": "Nepřipojen",
"deleted": "Odstraněno",
"username": "Uživatelské jméno",
@@ -13,8 +12,6 @@
"ban_account": "Zablokovat účet",
"ban_account_confirm": "Opravdu chcete zablokovat tohoto uživatele?",
"unban_account": "Odblokovat účet",
"mute_account": "Mute Account",
"unmute_account": "Unmute Account",
"delete_account": "Odstranit účet",
"delete_account_as_admin": "Delete <strong>Account</strong>",
"delete_content": "Delete Account <strong>Content</strong>",
@@ -157,11 +154,6 @@
"info.banned-permanently": "Trvale zablokován",
"info.banned-reason-label": "Důvod",
"info.banned-no-reason": "Bez důvodu",
"info.mute-history": "Recent Mute History",
"info.no-mute-history": "This user has never been muted",
"info.muted-until": "Muted until %1",
"info.muted-expiry": "Expiry",
"info.muted-no-reason": "No reason given.",
"info.username-history": "Historie uživatelského jména",
"info.email-history": "E-mailová historie",
"info.moderation-note": "Poznámka moderace",

View File

@@ -1,3 +0,0 @@
# The files here are not meant to be edited directly
Please see the &rarr; [Internalization README](../README.md).

View File

@@ -1,10 +1,8 @@
{
"administrators": "Administrators",
"global-moderators": "Global Moderators",
"moderators": "Moderators",
"no-global-moderators": "No Global Moderators",
"no-sub-categories": "No subcategories",
"subcategories": "%1 subcategories",
"moderators-of-category": "%1 Moderators",
"no-moderators": "No Moderators",
"add-administrator": "Add Administrator",
"add-global-moderator": "Add Global Moderator",

View File

@@ -10,7 +10,6 @@
"upload-files": "Upload Files",
"signature": "Signature",
"ban": "Ban",
"mute": "Mute",
"invite": "Invite",
"search-content": "Search Content",
"search-users": "Search Users",

View File

@@ -18,8 +18,7 @@
"download-csv": "Download CSV",
"manage-groups": "Manage Groups",
"add-group": "Add Group",
"create": "Create User",
"invite": "Invite by Email",
"invite": "Invite",
"new": "New User",
"filter-by": "Filter by",
"pills.unvalidated": "Not Validated",
@@ -63,7 +62,7 @@
"create.password": "Password",
"create.password-confirm": "Confirm Password",
"temp-ban.length": "Length",
"temp-ban.length": "Ban Length",
"temp-ban.reason": "Reason <span class=\"text-muted\">(Optional)</span>",
"temp-ban.hours": "Hours",
"temp-ban.days": "Days",
@@ -91,7 +90,6 @@
"alerts.validate-email-success": "Emails validated",
"alerts.validate-force-password-reset-success": "User(s) passwords have been reset and their existing sessions have been revoked.",
"alerts.password-reset-confirm": "Do you want to send password reset email(s) to these user(s)?",
"alerts.password-reset-email-sent": "Password reset email sent.",
"alerts.confirm-delete": "<strong>Warning!</strong><p>Do you really want to delete <strong>user(s)</strong>?</p><p>This action is not reversible! Only the user account will be deleted, their posts and topics will remain.</p>",
"alerts.delete-success": "User(s) Deleted!",
"alerts.confirm-delete-content": "<strong>Warning!</strong><p>Do you really want to delete these user(s) <strong>content</strong>?</p><p>This action is not reversible! The users' accounts will remain, but their posts and topics will be deleted.</p>",

View File

@@ -17,7 +17,6 @@
"headers.acah": "Access-Control-Allow-Headers",
"headers.coep": "Cross-Origin-Embedder-Policy",
"headers.coep-help": "When enabled (default), will set the header to <code>require-corp</code>",
"headers.coop": "Cross-Origin-Opener-Policy",
"headers.corp": "Cross-Origin-Resource-Policy",
"hsts": "Strict Transport Security",
"hsts.enabled": "Enabled HSTS (recommended)",

View File

@@ -4,13 +4,9 @@
"disable-down-voting": "Disable Down Voting",
"votes-are-public": "All Votes Are Public",
"thresholds": "Activity Thresholds",
"min-rep-upvote": "Minimum reputation to upvote posts",
"upvotes-per-day": "Upvotes per day (set to 0 for unlimited upvotes)",
"upvotes-per-user-per-day": "Upvotes per user per day (set to 0 for unlimited upvotes)",
"min-rep-downvote": "Minimum reputation to downvote posts",
"downvotes-per-day": "Downvotes per day (set to 0 for unlimited downvotes)",
"downvotes-per-user-per-day": "Downvotes per user per day (set to 0 for unlimited downvotes)",
"min-rep-chat": "Minimum reputation to send chat messages",
"min-rep-flag": "Minimum reputation to flag posts",
"min-rep-website": "Minimum reputation to add \"Website\" to user profile",
"min-rep-aboutme": "Minimum reputation to add \"About me\" to user profile",
@@ -22,6 +18,5 @@
"flags.limit-per-target": "Maximum number of times something can be flagged",
"flags.limit-per-target-placeholder": "Default: 0",
"flags.limit-per-target-help": "When a post or user is flagged multiple times, each additional flag is considered a &quot;report&quot; and added to the original flag. Set this option to a number other than zero to limit the number of reports an item can receive.",
"flags.auto-flag-on-downvote-threshold": "Number of downvotes to auto flag posts (Set to 0 to disable, default: 0)",
"flags.auto-resolve-on-ban": "Automatically resolve all of a user's tickets when they are banned"
}

View File

@@ -1,11 +1,8 @@
{
"posts": "Posts",
"orphans": "Orphaned Files",
"private": "Make uploaded files private",
"strip-exif-data": "Strip EXIF Data",
"preserve-orphaned-uploads": "Keep uploaded files on disk after a post is purged",
"orphanExpiryDays": "Days to keep orphaned files",
"orphanExpiryDays-help": "After this many days, orphaned uploads will be deleted from the file system.<br />Set 0 or leave blank to disable.",
"private-extensions": "File extensions to make private",
"private-uploads-extensions-help": "Enter comma-separated list of file extensions to make private here (e.g. <code>pdf,xls,doc</code>). An empty list means all files are private.",
"resize-image-width-threshold": "Resize images if they are wider than specified width",

View File

@@ -61,7 +61,6 @@
"no-group": "Gruppen eksisterer ikke",
"no-user": "Brugeren eksisterer ikke",
"no-teaser": "Teaser eksisterer ikke",
"no-flag": "Flag does not exist",
"no-privileges": "Du har ikke nok rettigheder til at udføre denne handling",
"category-disabled": "Kategorien er deaktiveret",
"topic-locked": "Tråden er låst",
@@ -108,9 +107,6 @@
"already-bookmarked": "You have already bookmarked this post",
"already-unbookmarked": "You have already unbookmarked this post",
"cant-ban-other-admins": "Du kan ikke udlukke andre administatrorer!",
"cant-mute-other-admins": "You can't mute other admins!",
"user-muted-for-hours": "You have been muted, you will be able to post in %1 hour(s)",
"user-muted-for-minutes": "You have been muted, you will be able to post in %1 minute(s)",
"cant-make-banned-users-admin": "You can't make banned users admin.",
"cant-remove-last-admin": "Du er den eneste administrator. Tilføj en anden bruger som administrator før du fjerner dig selv som administrator",
"account-deletion-disabled": "Account deletion is disabled",
@@ -158,23 +154,19 @@
"already-voting-for-this-post": "You have already voted for this post.",
"reputation-system-disabled": "Vurderingssystem er slået fra.",
"downvoting-disabled": "Nedvurdering er slået fra",
"not-enough-reputation-to-chat": "You need %1 reputation to chat",
"not-enough-reputation-to-upvote": "You need %1 reputation to upvote",
"not-enough-reputation-to-downvote": "You need %1 reputation to downvote",
"not-enough-reputation-to-flag": "You need %1 reputation to flag this post",
"not-enough-reputation-min-rep-website": "You need %1 reputation to add a website",
"not-enough-reputation-min-rep-aboutme": "You need %1 reputation to add an about me",
"not-enough-reputation-min-rep-signature": "You need %1 reputation to add a signature",
"not-enough-reputation-min-rep-profile-picture": "You need %1 reputation to add a profile picture",
"not-enough-reputation-min-rep-cover-picture": "You need %1 reputation to add a cover picture",
"not-enough-reputation-to-downvote": "Du har ikke nok omdømme til at nedstemme dette indlæg",
"not-enough-reputation-to-flag": "Du har ikke nok omdømme til at vurdere dette indlæg",
"not-enough-reputation-min-rep-website": "You do not have enough reputation to add a website",
"not-enough-reputation-min-rep-aboutme": "You do not have enough reputation to add an about me",
"not-enough-reputation-min-rep-signature": "You do not have enough reputation to add a signature",
"not-enough-reputation-min-rep-profile-picture": "You do not have enough reputation to add a profile picture",
"not-enough-reputation-min-rep-cover-picture": "You do not have enough reputation to add a cover picture",
"post-already-flagged": "You have already flagged this post",
"user-already-flagged": "You have already flagged this user",
"post-flagged-too-many-times": "This post has been flagged by others already",
"user-flagged-too-many-times": "This user has been flagged by others already",
"cant-flag-privileged": "You are not allowed to flag the profiles or content of privileged users (moderators/global moderators/admins)",
"self-vote": "You cannot vote on your own post",
"too-many-upvotes-today": "You can only upvote %1 times a day",
"too-many-upvotes-today-user": "You can only upvote a user %1 times a day",
"too-many-downvotes-today": "You can only downvote %1 times a day",
"too-many-downvotes-today-user": "You can only downvote a user %1 times a day",
"reload-failed": "NodeBB stødte på et problem under genindlæsningen : \"%1\". NodeBB vil fortsætte med en ældre version, og det er nok god ide at genoptage fra lige før du genindlæste siden.",
@@ -205,8 +197,6 @@
"no-connection": "There seems to be a problem with your internet connection",
"socket-reconnect-failed": "Unable to reach the server at this time. Click here to try again, or try again later",
"plugin-not-whitelisted": "Unable to install plugin &ndash; only plugins whitelisted by the NodeBB Package Manager can be installed via the ACP",
"plugins-set-in-configuration": "You are not allowed to change plugin state as they are defined at runtime (config.json, environmental variables or terminal arguments), please modify the configuration instead.",
"theme-not-set-in-configuration": "When defining active plugins in configuration, changing themes requires adding the new theme to the list of active plugins before updating it in the ACP",
"topic-event-unrecognized": "Topic event '%1' unrecognized",
"cant-set-child-as-parent": "Can't set child as parent category",
"cant-set-self-as-parent": "Can't set self as parent category",

View File

@@ -38,7 +38,6 @@
"delete-post": "Delete Post",
"purge-post": "Purge Post",
"restore-post": "Restore Post",
"delete": "Delete Flag",
"user-view": "View Profile",
"user-edit": "Edit Profile",
@@ -47,10 +46,8 @@
"add-note": "Add Note",
"no-notes": "No shared notes.",
"delete-note-confirm": "Are you sure you want to delete this flag note?",
"delete-flag-confirm": "Are you sure you want to delete this flag?",
"note-added": "Note Added",
"note-deleted": "Note Deleted",
"flag-deleted": "Flag Deleted",
"history": "Account &amp; Flag History",
"no-history": "No flag history.",
@@ -84,6 +81,5 @@
"bulk-actions": "Bulk Actions",
"bulk-resolve": "Resolve Flag(s)",
"bulk-success": "%1 flags updated",
"flagged-timeago-readable": "Flagged <span class=\"timeago\" title=\"%1\"></span> (%2)",
"auto-flagged": "[Auto Flagged] Received %1 downvotes."
"flagged-timeago-readable": "Flagged <span class=\"timeago\" title=\"%1\"></span> (%2)"
}

View File

@@ -23,7 +23,7 @@
"close": "Luk",
"pagination": "Sidetal",
"pagination.out_of": "%1 ud af %2",
"pagination.enter_index": "Go to post index",
"pagination.enter_index": "Indtast indeks",
"header.admin": "Administrator",
"header.categories": "Kategorier",
"header.recent": "Seneste",

View File

@@ -6,8 +6,8 @@
"chat.no_active": "Du har ingen aktive chats.",
"chat.user_typing": "%1 skriver ...",
"chat.user_has_messaged_you": "%1 har skrevet til dig.",
"chat.see_all": "All chats",
"chat.mark_all_read": "Mark all read",
"chat.see_all": "Se alle chats",
"chat.mark_all_read": "Mark all chats read",
"chat.no-messages": "Vælg en modtager for at se beskedhistorikken",
"chat.no-users-in-room": "Ingen brugere i rummet",
"chat.recent-chats": "Seneste chats",

View File

@@ -1,8 +1,8 @@
{
"title": "Notifikationer",
"no_notifs": "Du har ingen nye notifkationer",
"see_all": "All notifications",
"mark_all_read": "Mark all read",
"see_all": "Se alle notifikationer",
"mark_all_read": "Marker alle notifikationer læst",
"back_to_home": "Tilbage til %1",
"outgoing_link": "Udgående link",
"outgoing_link_message": "Du forlader nu %1",

View File

@@ -17,15 +17,5 @@
"reject": "Reject",
"remove": "Remove",
"notify": "Notify",
"notify-user": "Notify User",
"confirm-reject": "Do you want to reject this post?",
"bulk-actions": "Bulk Actions",
"accept-all": "Accept All",
"accept-selected": "Accept Selected",
"reject-all": "Reject All",
"reject-all-confirm": "Do you want to reject all posts?",
"reject-selected": "Reject Selected",
"reject-selected-confirm": "Do you want to reject %1 selected posts?",
"bulk-accept-success": "%1 posts accepted",
"bulk-reject-success": "%1 posts rejected"
"notify-user": "Notify User"
}

View File

@@ -113,7 +113,6 @@
"bookmark": "Bogmærke",
"bookmarks": "Bogmærker",
"bookmarks.has_no_bookmarks": "Du har ikke bookmarked nogen indlæg.",
"copy-permalink": "Copy Permalink",
"loading_more_posts": "Indlæser flere indlæg",
"move_topic": "Flyt tråd",
"move_topics": "Flyt tråde",
@@ -182,7 +181,5 @@
"timeago_earlier": "%1 earlier",
"first-post": "First post",
"last-post": "Last post",
"go-to-my-next-post": "Go to my next post",
"no-more-next-post": "You don't have more posts in this topic",
"post-quick-reply": "Post quick reply"
}

View File

@@ -1,6 +1,5 @@
{
"banned": "Banlyst",
"muted": "Muted",
"offline": "Offline",
"deleted": "Deleted",
"username": "Brugernavn",
@@ -13,8 +12,6 @@
"ban_account": "Ban Konto",
"ban_account_confirm": "Ønsker du virkelig at banne denne konto?",
"unban_account": "Afban Konto",
"mute_account": "Mute Account",
"unmute_account": "Unmute Account",
"delete_account": "Slet konto",
"delete_account_as_admin": "Delete <strong>Account</strong>",
"delete_content": "Delete Account <strong>Content</strong>",
@@ -157,11 +154,6 @@
"info.banned-permanently": "Banned permanently",
"info.banned-reason-label": "Reason",
"info.banned-no-reason": "No reason given.",
"info.mute-history": "Recent Mute History",
"info.no-mute-history": "This user has never been muted",
"info.muted-until": "Muted until %1",
"info.muted-expiry": "Expiry",
"info.muted-no-reason": "No reason given.",
"info.username-history": "Username History",
"info.email-history": "Email History",
"info.moderation-note": "Moderation Note",

View File

@@ -1,3 +0,0 @@
# The files here are not meant to be edited directly
Please see the &rarr; [Internalization README](../README.md).

View File

@@ -1,6 +1,6 @@
{
"post-cache": "Post-Cache",
"post-cache": "Beitrags Cache",
"percent-full": "%1% Voll",
"post-cache-size": "Post-Cache-Größe",
"items-in-cache": "Elemente im Cache"
"post-cache-size": "Beitrags Cache Größe",
"items-in-cache": "Objekte im Cache"
}

View File

@@ -2,12 +2,12 @@
"x-b": "%1 B",
"x-mb": "%1 MB",
"x-gb": "%1 GB",
"uptime-seconds": "Betriebszeit in Sekunden",
"uptime-days": "Betriebszeit in Tagen",
"uptime-seconds": "Uptime in Sekunden",
"uptime-days": "Uptime in Tagen",
"mongo": "Mongo",
"mongo.version": "MongoDB Version",
"mongo.storage-engine": "Speicher-Engine",
"mongo.storage-engine": "Storage Engine",
"mongo.collections": "Collections",
"mongo.objects": "Objekte",
"mongo.avg-object-size": "Durchschnittliche Objektgröße",
@@ -34,16 +34,16 @@
"redis.blocked-clients": "Blockierte Clients",
"redis.used-memory": "Speicherverbrauch",
"redis.memory-frag-ratio": "Speicherfragmentierungsgrad",
"redis.total-connections-recieved": "Gesamtzahl der empfangenen Verbindungen",
"redis.total-commands-processed": "Gesamtzahl der verarbeiteten Befehle",
"redis.iops": "Sofortige Operationen. Pro Sekunde",
"redis.total-connections-recieved": "Gesamte empfangen Verbindungen",
"redis.total-commands-processed": "Insgesamt Kommandos ausgeführt",
"redis.iops": "Durchschnittliche Anzahl von Ein-/Ausgaben pro Sekunde",
"redis.iinput": "Sofortige Eingabe pro Sekunde",
"redis.ioutput": "Sofortige Ausgabe pro Sekunde",
"redis.total-input": "Gesamt Eingabe",
"redis.total-output": "Gesamt Ausgabe",
"redis.keyspace-hits": "Schlüsselraum-Treffer",
"redis.keyspace-misses": "Schlüsselraum-Verfehlungen",
"redis.keyspace-hits": "Schlüsselraum Treffer",
"redis.keyspace-misses": "Schlüsselraum Verfehlungen",
"redis.raw-info": "Redis Rohinfo",
"postgres": "Postgres",

View File

@@ -1,10 +1,10 @@
{
"figure-x": "Abbildung %1",
"error-events-per-day": "<code>%1</code> Ereignisse pro Tag",
"error.404": "404 Nicht gefunden",
"error.503": "503 Dienst nicht verfügbar",
"error.404": "404 Not Found",
"error.503": "503 Service Unavailable",
"manage-error-log": "Fehlerprotokoll verwalten",
"export-error-log": "Fehlerprotokoll (CSV) exportieren",
"export-error-log": "Exportiere das Fehlerprotokoll (CSV)",
"clear-error-log": "Fehlerprotokoll leeren",
"route": "Pfad",
"count": "Anzahl",

View File

@@ -1,13 +1,13 @@
{
"events": "Ereignisse",
"no-events": "Es gibt keine Ereignisse",
"control-panel": "Ereignissteuerung",
"control-panel": "Ereignis-Steuerung",
"delete-events": "Ereignisse löschen",
"confirm-delete-all-events": "Bist du sicher, dass du alle gespeicherten Events löschen möchtest?",
"filters": "Filter",
"filters-apply": "Filter anwenden",
"filter-type": "Ereignistyp",
"filter-start": "Anfangsdatum",
"filter-end": "Enddatum",
"filter-start": "Start-Datum",
"filter-end": "End-Datum",
"filter-perPage": "Pro Seite"
}

View File

@@ -1,6 +1,6 @@
{
"logs": "Protokolle",
"control-panel": "Logs-Systemsteuerung",
"control-panel": "Protokoll Steuerung",
"reload": "Protokolle neu laden",
"clear": "Protokolle löschen",
"clear-success": "Protokolle gelöscht"

View File

@@ -1,7 +1,7 @@
{
"custom-css": "Benutzerdefiniertes CSS/LESS",
"custom-css.description": "Füge deine eigenen CSS/LESS deklarationen hier ein, die nach allen anderen Styles angewandt werden.",
"custom-css.enable": "Benutzerdefiniertes CSS/LESS aktivieren",
"custom-css.enable": "Aktiviere benutzerdefiniertes CSS/LESS",
"custom-js": "Benutzerdefiniertes Javascript",
"custom-js.description": "Füge dein eigenes Javascipt hier ein.\nEs wird ausgeführt nachdem die Seite komplett geladen wurde.",

View File

@@ -1,6 +1,6 @@
{
"loading": "Skins werden geladen...",
"homepage": "Startseite",
"loading": "Lade Skins...",
"homepage": "Homepage",
"select-skin": "Skin auswählen",
"current-skin": "Aktueller Skin",
"skin-updated": "Skin aktualisiert",

View File

@@ -1,11 +1,11 @@
{
"checking-for-installed": "Auf installierte Themes wird geprüft...",
"homepage": "Startseite",
"select-theme": "Theme wählen",
"checking-for-installed": "Prüfe auf installierte Themes...",
"homepage": "Homepage",
"select-theme": "Wähle Theme",
"current-theme": "Aktuelles Theme",
"no-themes": "Keine installierten Theme gefunden.",
"revert-confirm": "Bist du sicher, dass du das standardmäßige NodeBB-Design wiederherstellen möchten?",
"revert-confirm": "Bist du dir sicher, dass du das standard NodeBB Theme wieder herstellen willst?",
"theme-changed": "Theme geändert",
"revert-success": "Du hast dein NodeBB erfolgreich wieder auf das Standard-Theme zurückgesetzt.",
"restart-to-activate": "Bitte builde und starte dein NodeBB neu um das Theme zu aktivieren."
"restart-to-activate": "Bitte baue und starte NodeBB neu um das Theme zu aktivieren."
}

View File

@@ -12,7 +12,7 @@
"page-views-custom": "Benutzerdefinierte Tagesspanne",
"page-views-custom-start": "Spannen-Anfang",
"page-views-custom-end": "Spannen-Ende",
"page-views-custom-help": "Gebe einen Datumsbereich für Seitenaufrufe ein, die du anzeigen möchtest. Wenn keine Datumsauswahl verfügbar ist, ist das akzeptierte Format <code>YYYY-MM-DD</code>",
"page-views-custom-help": "Gib eine Zeitspanne an, in dem du die Besichtigungszahlen ansehen willst. Sollte keine Kalenderauswahl verfügbar sein ist das akzeptierte format <code>YYYY-MM-DD</code>",
"page-views-custom-error": "Bitte gib eine gültige Zeitspanne im Format <code>YYYY-MM-DD</code> an",
"stats.yesterday": "Gestern",

Some files were not shown because too many files have changed in this diff Show More