mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-12-24 17:30:39 +01:00
Compare commits
35 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
49a9b5c9e8 | ||
|
|
963bfff3ad | ||
|
|
65284c142a | ||
|
|
98be042012 | ||
|
|
175d53421b | ||
|
|
a06c05c224 | ||
|
|
9fffce8741 | ||
|
|
1e541de7db | ||
|
|
b2bbc207a9 | ||
|
|
5061bf36c0 | ||
|
|
37c1fa17a9 | ||
|
|
fdf8cf5842 | ||
|
|
28c820a9ab | ||
|
|
9bcd66e52e | ||
|
|
81e3c1ba48 | ||
|
|
e0080d9005 | ||
|
|
addd701de2 | ||
|
|
24ba3e84cb | ||
|
|
70a0135209 | ||
|
|
a3ae8c48ce | ||
|
|
e5ca0232de | ||
|
|
8d5ef17248 | ||
|
|
40ce9af189 | ||
|
|
e4bd4f3107 | ||
|
|
4a87b3225c | ||
|
|
673fcfb052 | ||
|
|
3f13a69298 | ||
|
|
b60174f51e | ||
|
|
7388f111b7 | ||
|
|
4bd559deba | ||
|
|
ded19254ac | ||
|
|
5c89557155 | ||
|
|
04ce24e661 | ||
|
|
a24a108a66 | ||
|
|
aa77758afd |
@@ -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
32
.github/ISSUE_TEMPLATE.md
vendored
Normal 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! -->
|
||||
81
.github/ISSUE_TEMPLATE/bug-report.yml
vendored
81
.github/ISSUE_TEMPLATE/bug-report.yml
vendored
@@ -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!**"
|
||||
5
.github/ISSUE_TEMPLATE/config.yml
vendored
5
.github/ISSUE_TEMPLATE/config.yml
vendored
@@ -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
|
||||
24
.github/ISSUE_TEMPLATE/feature-request.yml
vendored
24
.github/ISSUE_TEMPLATE/feature-request.yml
vendored
@@ -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!**"
|
||||
6
.github/dependabot.yml
vendored
Normal file
6
.github/dependabot.yml
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
version: 2
|
||||
updates:
|
||||
- package-ecosystem: npm
|
||||
directory: "/install"
|
||||
schedule:
|
||||
interval: daily
|
||||
2
.github/workflows/docker.yml
vendored
2
.github/workflows/docker.yml
vendored
@@ -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: |
|
||||
|
||||
2
.github/workflows/test.yaml
vendored
2
.github/workflows/test.yaml
vendored
@@ -21,7 +21,7 @@ jobs:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: [ubuntu-latest]
|
||||
node: [14, 16, 18]
|
||||
node: [14, 16]
|
||||
database: [mongo-dev, mongo, redis, postgres]
|
||||
include:
|
||||
# only run coverage once
|
||||
|
||||
453
CHANGELOG.md
453
CHANGELOG.md
@@ -1,458 +1,19 @@
|
||||
#### v2.3.1 (2022-07-29)
|
||||
#### v1.19.11 (2022-11-28)
|
||||
|
||||
##### Chores
|
||||
|
||||
* **deps:**
|
||||
* bump sanitize-html from 2.7.0 to 2.7.1 in /install (7b606d2e)
|
||||
* bump webpack from 5.73.0 to 5.74.0 in /install (a9900625)
|
||||
* **i18n:** fallback strings for new resources: nodebb.admin-settings-advanced, nodebb.admin-menu, nodebb.error (17120e03)
|
||||
* incrementing version number - v2.3.0 (046ea120)
|
||||
* update changelog for v2.3.0 (a6f7fff0)
|
||||
* up version, closes #10812 (a06c05c2)
|
||||
* update composer-default (9fffce87)
|
||||
|
||||
##### New Features
|
||||
|
||||
* add emoji to startup logs, because procrastination. (5176fb15)
|
||||
* store topic title and tags in diffs (#10900) (175d5342)
|
||||
|
||||
##### Bug Fixes
|
||||
|
||||
* #10798, logic error in COEP header; helmet config (89173f17)
|
||||
* #10795, early return for selection tooltip based on calling user privilege (847d2b91)
|
||||
* **deps:** update persona to v12.0.14 (9f225e70)
|
||||
|
||||
#### v2.3.0 (2022-07-28)
|
||||
|
||||
##### Chores
|
||||
|
||||
* **deps:**
|
||||
* update dependency lint-staged to v13 (07ce0c39)
|
||||
* bump ace-builds from 1.7.1 to 1.8.1 in /install (f397d968)
|
||||
* bump ioredis from 5.2.0 to 5.2.2 in /install (067a5110)
|
||||
* have renovate work off of `develop` branch instead (f334e398)
|
||||
* update changelog for v2.2.5 (6c3ebf3b)
|
||||
|
||||
##### New Features
|
||||
|
||||
* add client side filter:chat.send, closes #10729 (b2da02d6)
|
||||
* UI changes for ACP > Manage > Categories (#10782) (820bc994)
|
||||
* show an informative message when no plugins are found after filtering (6840a742)
|
||||
* Allow defining active plugins in config (#10767) (23cb67a1)
|
||||
* allow plugins to toggle whether IPs are shown in the users CSV export (a6af47da)
|
||||
* fire hook to allow plugins to filter the pids returned in a user profile (c26be43a)
|
||||
* closes #10719, don't trim children if category is marked section (7e80cc10)
|
||||
|
||||
##### Bug Fixes
|
||||
|
||||
* **deps:**
|
||||
* update dependency mongodb to v4.8.1 (8384b7cf)
|
||||
* update dependency helmet to v5.1.1 (03a173bb)
|
||||
* bug where fallback to forum search was not working due to client-side error (25046642)
|
||||
* better looking placeholder text for ACP search (1b9c6819)
|
||||
* use `user.hidePrivateData();` more consistently across user retrieval endpoints (0529f2fb)
|
||||
* minor margin tweak for alert in acp header (4faf0cdf)
|
||||
* cannot turn off all networks (bbc7f2af)
|
||||
* cannot setting networks for sharing posts (2e088a8e)
|
||||
|
||||
##### Refactors
|
||||
|
||||
* invert helmet configuration (dcacd815)
|
||||
|
||||
#### 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)
|
||||
* prototype vulnerability in socket.io onMessage (963bfff3)
|
||||
* use admin:groups priv for groups (#10960) (65284c14)
|
||||
* broken flag history on flag update (98be0420)
|
||||
|
||||
#### v1.19.6 (2022-04-13)
|
||||
|
||||
|
||||
62
Gruntfile.js
62
Gruntfile.js
@@ -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;
|
||||
}
|
||||
|
||||
@@ -34,7 +34,7 @@ Our minimalist "Persona" theme gets you going right away, no coding experience r
|
||||
|
||||
* If you are a developer, feel free to check out the source and submit pull requests. We also have a wide array of [plugins](http://community.nodebb.org/category/7/nodebb-plugins) which would be a great starting point for learning the codebase.
|
||||
* If you are a designer, [NodeBB needs themes](http://community.nodebb.org/category/10/nodebb-themes)! NodeBB's theming system allows extension of the base templates as well as styling via LESS or CSS. NodeBB's base theme utilizes [Bootstrap 3](http://getbootstrap.com/) but themes can choose to use a different framework altogether.
|
||||
* If you know languages other than English you can help us translate NodeBB. We use [Transifex](https://explore.transifex.com/nodebb/nodebb/) for internationalization.
|
||||
* If you know languages other than English you can help us translate NodeBB. We use [Transifex](https://www.transifex.com/projects/p/nodebb/) for internationalization.
|
||||
* Please don't forget to **like**, **follow**, and **star our repo**! Join our growing [community](http://community.nodebb.org) to keep up to date with the latest NodeBB development.
|
||||
|
||||
## Requirements
|
||||
@@ -76,7 +76,7 @@ Interested in a sublicense agreement for use of NodeBB in a non-free/restrictive
|
||||
* [Demo](https://try.nodebb.org)
|
||||
* [Developer Community](http://community.nodebb.org)
|
||||
* [Documentation & Installation Instructions](http://docs.nodebb.org)
|
||||
* [Help translate NodeBB](https://explore.transifex.com/nodebb/nodebb/)
|
||||
* [Help translate NodeBB](https://www.transifex.com/projects/p/nodebb/)
|
||||
* [NodeBB Blog](http://blog.nodebb.org)
|
||||
* [Premium Hosting for NodeBB](http://www.nodebb.org/ "NodeBB")
|
||||
* Unofficial IRC community – channel `#nodebb` on Libera.chat
|
||||
|
||||
2
app.js
2
app.js
@@ -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'));
|
||||
|
||||
@@ -45,7 +45,6 @@
|
||||
"allowMultipleBadges": 0,
|
||||
"maximumFileSize": 2048,
|
||||
"stripEXIFData": 1,
|
||||
"orphanExpiryDays": 0,
|
||||
"resizeImageWidthThreshold": 2000,
|
||||
"resizeImageWidth": 760,
|
||||
"rejectImageWidth": 5000,
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
"name": "nodebb",
|
||||
"license": "GPL-3.0",
|
||||
"description": "NodeBB Forum",
|
||||
"version": "2.4.0",
|
||||
"version": "1.19.11",
|
||||
"homepage": "http://www.nodebb.org",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
@@ -29,22 +29,21 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@adactive/bootstrap-tagsinput": "0.8.2",
|
||||
"@isaacs/ttlcache": "^1.2.0",
|
||||
"ace-builds": "1.8.1",
|
||||
"ace-builds": "1.4.14",
|
||||
"archiver": "5.3.1",
|
||||
"async": "3.2.4",
|
||||
"autoprefixer": "10.4.8",
|
||||
"async": "3.2.3",
|
||||
"autoprefixer": "10.4.5",
|
||||
"bcryptjs": "2.4.3",
|
||||
"benchpressjs": "2.4.3",
|
||||
"body-parser": "1.20.0",
|
||||
"bootbox": "5.5.3",
|
||||
"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": "9.4.0",
|
||||
"commander": "7.2.0",
|
||||
"compare-versions": "4.1.3",
|
||||
"compression": "1.7.4",
|
||||
"connect-flash": "0.1.1",
|
||||
@@ -53,81 +52,81 @@
|
||||
"connect-pg-simple": "7.0.0",
|
||||
"connect-redis": "6.1.3",
|
||||
"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.18.0",
|
||||
"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.1",
|
||||
"helmet": "5.0.2",
|
||||
"html-to-text": "8.2.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",
|
||||
"jsonwebtoken": "8.5.1",
|
||||
"less": "4.1.3",
|
||||
"less": "4.1.2",
|
||||
"lodash": "4.17.21",
|
||||
"logrotate-stream": "0.2.8",
|
||||
"lru-cache": "7.13.1",
|
||||
"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.5.0",
|
||||
"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.2",
|
||||
"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.1.0",
|
||||
"nodebb-plugin-mentions": "3.0.11",
|
||||
"nodebb-plugin-spam-be-gone": "1.0.0",
|
||||
"nodebb-plugin-2factor": "3.0.7",
|
||||
"nodebb-plugin-composer-default": "7.0.23",
|
||||
"nodebb-plugin-dbsearch": "5.1.3",
|
||||
"nodebb-plugin-emoji": "3.5.17",
|
||||
"nodebb-plugin-emoji-android": "2.0.5",
|
||||
"nodebb-plugin-markdown": "9.0.10",
|
||||
"nodebb-plugin-mentions": "3.0.8",
|
||||
"nodebb-plugin-spam-be-gone": "0.8.1",
|
||||
"nodebb-rewards-essentials": "0.2.1",
|
||||
"nodebb-theme-lavender": "6.0.0",
|
||||
"nodebb-theme-persona": "12.1.0",
|
||||
"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.4.4",
|
||||
"nodebb-theme-slick": "1.4.23",
|
||||
"nodebb-theme-vanilla": "12.1.17",
|
||||
"nodebb-widget-essentials": "5.0.11",
|
||||
"nodemailer": "6.7.3",
|
||||
"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.12",
|
||||
"postcss-clean": "1.2.0",
|
||||
"prompt": "1.3.0",
|
||||
"ioredis": "5.2.2",
|
||||
"ioredis": "5.0.4",
|
||||
"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.1",
|
||||
"sanitize-html": "2.7.0",
|
||||
"semver": "7.3.7",
|
||||
"serve-favicon": "2.5.0",
|
||||
"sharp": "0.30.7",
|
||||
"sharp": "0.30.4",
|
||||
"sitemap": "7.1.1",
|
||||
"slideout": "1.0.1",
|
||||
"socket.io": "4.5.1",
|
||||
"socket.io-client": "4.5.1",
|
||||
"@socket.io/redis-adapter": "7.2.0",
|
||||
"socket.io": "4.5.0",
|
||||
"socket.io-adapter-cluster": "1.0.1",
|
||||
"socket.io-client": "4.5.0",
|
||||
"@socket.io/redis-adapter": "7.1.0",
|
||||
"sortablejs": "1.15.0",
|
||||
"spdx-license-list": "6.6.0",
|
||||
"spdx-license-list": "6.5.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.74.0",
|
||||
"webpack-merge": "5.8.0",
|
||||
"winston": "3.8.1",
|
||||
"winston": "3.7.2",
|
||||
"xml": "1.0.1",
|
||||
"xregexp": "5.1.1",
|
||||
"yargs": "17.5.1",
|
||||
"xregexp": "5.1.0",
|
||||
"yargs": "17.4.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.4",
|
||||
"@commitlint/config-angular": "16.2.4",
|
||||
"coveralls": "3.1.1",
|
||||
"eslint": "8.21.0",
|
||||
"eslint": "8.14.0",
|
||||
"eslint-config-nodebb": "0.1.1",
|
||||
"eslint-plugin-import": "2.26.0",
|
||||
"grunt": "1.5.3",
|
||||
"grunt": "1.5.2",
|
||||
"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.4.1",
|
||||
"mocha": "9.2.2",
|
||||
"mocha-lcov-reporter": "1.3.0",
|
||||
"mockdate": "3.0.5",
|
||||
"nyc": "15.1.0",
|
||||
"smtp-server": "3.11.0"
|
||||
"smtp-server": "3.10.0"
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://github.com/NodeBB/NodeBB/issues"
|
||||
@@ -187,4 +184,4 @@
|
||||
"url": "https://github.com/barisusakli"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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, () => {
|
||||
@@ -206,20 +207,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 +255,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'
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
The files here are read-only and overwritten daily (if there are changes) by the
|
||||
helper bot [Misty](https://github.com/nodebb-misty).
|
||||
|
||||
Our localisation efforts are handled via [our Transifex Project](https://explore.transifex.com/nodebb/nodebb/),
|
||||
Our localisation efforts are handled via [our Transifex Project](https://www.transifex.com/nodebb/nodebb/),
|
||||
and any pull requests made to this directory will be automatically closed because
|
||||
localisations can go out-of-sync when edited directly.
|
||||
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
# The files here are not meant to be edited directly
|
||||
|
||||
Please see the → [Internalization README](../README.md).
|
||||
@@ -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",
|
||||
|
||||
@@ -91,7 +91,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>",
|
||||
|
||||
@@ -76,7 +76,7 @@
|
||||
"logout": "Log out",
|
||||
"view-forum": "View Forum",
|
||||
|
||||
"search.placeholder": "Search settings",
|
||||
"search.placeholder": "Press "/" to search for settings",
|
||||
"search.no-results": "No results...",
|
||||
"search.search-forum": "Search the forum for <strong></strong>",
|
||||
"search.keep-typing": "Type more to see results...",
|
||||
|
||||
@@ -10,10 +10,9 @@
|
||||
"smtp-transport-help": "You can select from a list of well-known services or enter a custom one.",
|
||||
"smtp-transport.service": "Select a service",
|
||||
"smtp-transport.service-custom": "Custom Service",
|
||||
"smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select "Custom Service" and enter the details below.",
|
||||
"smtp-transport.gmail-warning1": "If you are using GMail as your email provider, you will have to generate an "App Password" in order for NodeBB to authenticate successfully. You can generate one at the <a href=\"https://myaccount.google.com/apppasswords\">App Passwords <i class=\"fa fa-external-link\"></i></a> page.",
|
||||
"smtp-transport.gmail-warning2": "For more information about this workaround, <a href=\"https://nodemailer.com/usage/using-gmail/\">please consult this NodeMailer article <i class=\"fa fa-external-link\"></i></a> on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. <a href=\"../extend/plugins\">Browse available plugins here</a>.",
|
||||
"smtp-transport.auto-enable-toast": "It looks like you're configuring an SMTP transport. We enabled the \"SMTP Transport\" option for you.",
|
||||
"smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select 'Custom Service' and enter the details below.",
|
||||
"smtp-transport.gmail-warning1": "There have been reports of the Gmail service not working on accounts with heightened security. In those scenarios, you will have to <a href=\"https://www.google.com/settings/security/lesssecureapps\">configure your GMail account to allow less secure apps</a>.",
|
||||
"smtp-transport.gmail-warning2": "For more information about this workaround, <a href=\"https://nodemailer.com/usage/using-gmail/\">please consult this NodeMailer article on the issue.</a> An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. <a href=\"../extend/plugins\">Browse available plugins here</a>.",
|
||||
"smtp-transport.host": "SMTP Host",
|
||||
"smtp-transport.port": "SMTP Port",
|
||||
"smtp-transport.security": "Connection security",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -61,7 +61,6 @@
|
||||
"no-group": "مجموعة غير موجودة",
|
||||
"no-user": "اسم مستخدم غير موجود",
|
||||
"no-teaser": "مقتطف غير موجود",
|
||||
"no-flag": "Flag does not exist",
|
||||
"no-privileges": "لاتملك الصلاحيات اللازمة للقيام بهذه العملية",
|
||||
"category-disabled": "قائمة معطلة",
|
||||
"topic-locked": "الموضوع مقفول",
|
||||
@@ -205,8 +204,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 – 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",
|
||||
|
||||
@@ -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 & Flag History",
|
||||
"no-history": "No flag history.",
|
||||
|
||||
@@ -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": "آخر الدردشات",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -18,14 +18,5 @@
|
||||
"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"
|
||||
"confirm-reject": "Do you want to reject this post?"
|
||||
}
|
||||
@@ -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": "نقل المواضيع",
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
{
|
||||
"banned": "محظور",
|
||||
"muted": "Muted",
|
||||
"offline": "غير متصل",
|
||||
"deleted": "محذوف",
|
||||
"username": "إسم المستخدم",
|
||||
@@ -157,10 +156,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": "سجل البريد الإلكتروني",
|
||||
@@ -194,6 +189,5 @@
|
||||
"emailUpdate.intro": "Please enter your email address below. This forum uses your email address for scheduled digest and notifications, as well as for account recovery in the event of a lost password.",
|
||||
"emailUpdate.optional": "<strong>This field is optional</strong>. You are not obligated to provide your email address, but without a validated email you will not be able to recover your account or login with your email.",
|
||||
"emailUpdate.required": "<strong>This field is required</strong>.",
|
||||
"emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page.",
|
||||
"emailUpdate.password-challenge": "Please enter your password in order to verify account ownership."
|
||||
"emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page."
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
# The files here are not meant to be edited directly
|
||||
|
||||
Please see the → [Internalization README](../README.md).
|
||||
@@ -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": "Добавяне на глобален модератор",
|
||||
|
||||
@@ -91,7 +91,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>",
|
||||
|
||||
@@ -76,7 +76,7 @@
|
||||
"logout": "Изход",
|
||||
"view-forum": "Преглед на форума",
|
||||
|
||||
"search.placeholder": "Търсене на настройки",
|
||||
"search.placeholder": "Натиснете „/“ за търсене на настройки",
|
||||
"search.no-results": "Няма резултати…",
|
||||
"search.search-forum": "Търсене във форума за <strong></strong>",
|
||||
"search.keep-typing": "Продължете да пишете, за да видите още резултати…",
|
||||
|
||||
@@ -11,9 +11,8 @@
|
||||
"smtp-transport.service": "Изберете услуга",
|
||||
"smtp-transport.service-custom": "Персонализирана услуга",
|
||||
"smtp-transport.service-help": "Изберете името на услугата по-горе, за да използвате известните данни за нея. Или изберете „Персонализирана услуга“ и въведете данните ѝ по-долу.",
|
||||
"smtp-transport.gmail-warning1": "Ако използвате GMail, ще трябва да създадете „Парола за приложение“, за да може NodeBB да използва данните за удостоверяване. Можете да създадете такава в страницата с <a href=\"https://myaccount.google.com/apppasswords\">Пароли за приложения<i class=\"fa fa-external-link\"></i></a>.",
|
||||
"smtp-transport.gmail-warning2": "За повече информация относно това обиколно решение, <a href=\"https://nodemailer.com/usage/using-gmail/\">моля, прегледайте тази статия за проблема в „NodeMailer“<i class=\"fa fa-external-link\"></i></a>. Друго решение би било използването на добавка за е-поща от трета страна, като например „SendGrid“, „Mailgun“ и т.н. <a href=\"../extend/plugins\">Вижте наличните добавки тук</a>.",
|
||||
"smtp-transport.auto-enable-toast": "Изглежда настройвате функционалност, която изисква транспорт чрез SMTP. Включихме настройката „Транспорт чрез SMTP“, за да не го правите Вие.",
|
||||
"smtp-transport.gmail-warning1": "Има доклади, че услугата на Gmail не работи за акаунти с подсилена защита. В тези случаи ще трябва да <a href=\"https://www.google.com/settings/security/lesssecureapps\">настроите своя акаунт в GMail така, че да позволява използването на по-малко защитени приложения</a>.",
|
||||
"smtp-transport.gmail-warning2": "За повече информация относно това обиколно решение, <a href=\"https://nodemailer.com/usage/using-gmail/\">моля, прегледайте тази статия за проблема в „NodeMailer“.</a> Друго решение би било използването на добавка за е-поща от трета страна, като например „SendGrid“, „Mailgun“ и т.н. <a href=\"../extend/plugins\">Вижте наличните добавки тук</a>.",
|
||||
"smtp-transport.host": "SMTP сървър",
|
||||
"smtp-transport.port": "SMTP порт",
|
||||
"smtp-transport.security": "Сигурност на връзката",
|
||||
|
||||
@@ -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": "Преоразмеряване на изображенията, ако са по-широки от определената ширина",
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
"login-attempts": "Брой опити за вписване на час",
|
||||
"login-attempts-help": "Ако опитите за вписване на потребител минат тази граница, акаунтът ще бъде заключен за определено време.",
|
||||
"lockout-duration": "Продължителност на заключването на акаунта (в минути)",
|
||||
"login-days": "Брой дни за помнене на сесията за вписване на потребителя",
|
||||
"login-days": "Продължителност на запомнянето на сесията за вписване на потребителя (в дни)",
|
||||
"password-expiry-days": "Изискване на промяна на паролата през определен период от дни",
|
||||
"session-time": "Продължителност на сесията",
|
||||
"session-time-days": "Дни",
|
||||
|
||||
@@ -61,7 +61,6 @@
|
||||
"no-group": "Групата не съществува",
|
||||
"no-user": "Потребителят не съществува",
|
||||
"no-teaser": "Резюмето не съществува",
|
||||
"no-flag": "Докладът не съществува",
|
||||
"no-privileges": "Нямате достатъчно права за това действие.",
|
||||
"category-disabled": "Категорията е изключена",
|
||||
"topic-locked": "Темата е заключена",
|
||||
@@ -205,8 +204,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": "Категорията не може да се зададе като базова категория на себе си",
|
||||
|
||||
@@ -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": "Няма история на доклада.",
|
||||
|
||||
@@ -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": "Скорошни разговори",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -18,14 +18,5 @@
|
||||
"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"
|
||||
"confirm-reject": "Искате ли да отхвърлите тази публикация?"
|
||||
}
|
||||
@@ -113,7 +113,6 @@
|
||||
"bookmark": "Отметка",
|
||||
"bookmarks": "Отметки",
|
||||
"bookmarks.has_no_bookmarks": "Все още не сте си запазвали отметки към никакви публикации.",
|
||||
"copy-permalink": "Копиране на постоянна връзка",
|
||||
"loading_more_posts": "Зареждане на още публикации",
|
||||
"move_topic": "Преместване на темата",
|
||||
"move_topics": "Преместване на темите",
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
{
|
||||
"banned": "Блокиран",
|
||||
"muted": "Заглушен",
|
||||
"offline": "Извън линия",
|
||||
"deleted": "Изтрит",
|
||||
"username": "Потребителско име",
|
||||
@@ -157,10 +156,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": "Историята на е-пощите",
|
||||
@@ -194,6 +189,5 @@
|
||||
"emailUpdate.intro": "Въведете е-пощата си по-долу. Този форум използва е-пощата за планирани резюмета и известия, както и за възстановяване на акаунта, в случай на забравена парола.",
|
||||
"emailUpdate.optional": "<strong>Това поле не е задължително</strong>. Не сте длъжен/на да предоставяте адрес на е-поща, но без проверена е-поща, няма да можете да възстановите акаунта си в случай на проблем, нито ще можете да се вписвате с е-пощата си.",
|
||||
"emailUpdate.required": "<strong>Това поле е задължително</strong>.",
|
||||
"emailUpdate.change-instructions": "Ще Ви изпратим е-писмо за потвърждение на посочената е-поща, което ще съдържа уникална връзка. Щом последвате тази връзка, притежанието Ви на тази е-поща ще бъде потвърдено и тя ще бъде свързана с акаунта Ви. Ще можете да промените тази е-поща по всяко време, от страницата на акаунта си.",
|
||||
"emailUpdate.password-challenge": "Въведете паролата си, за да потвърдите, че акаунтът е Ваш."
|
||||
"emailUpdate.change-instructions": "Ще Ви изпратим е-писмо за потвърждение на посочената е-поща, което ще съдържа уникална връзка. Щом последвате тази връзка, притежанието Ви на тази е-поща ще бъде потвърдено и тя ще бъде свързана с акаунта Ви. Ще можете да промените тази е-поща по всяко време, от страницата на акаунта си."
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
# The files here are not meant to be edited directly
|
||||
|
||||
Please see the → [Internalization README](../README.md).
|
||||
@@ -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",
|
||||
|
||||
@@ -91,7 +91,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>",
|
||||
|
||||
@@ -76,7 +76,7 @@
|
||||
"logout": "Log out",
|
||||
"view-forum": "View Forum",
|
||||
|
||||
"search.placeholder": "Search settings",
|
||||
"search.placeholder": "Press "/" to search for settings",
|
||||
"search.no-results": "No results...",
|
||||
"search.search-forum": "Search the forum for <strong></strong>",
|
||||
"search.keep-typing": "Type more to see results...",
|
||||
|
||||
@@ -10,10 +10,9 @@
|
||||
"smtp-transport-help": "You can select from a list of well-known services or enter a custom one.",
|
||||
"smtp-transport.service": "Select a service",
|
||||
"smtp-transport.service-custom": "Custom Service",
|
||||
"smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select "Custom Service" and enter the details below.",
|
||||
"smtp-transport.gmail-warning1": "If you are using GMail as your email provider, you will have to generate an "App Password" in order for NodeBB to authenticate successfully. You can generate one at the <a href=\"https://myaccount.google.com/apppasswords\">App Passwords <i class=\"fa fa-external-link\"></i></a> page.",
|
||||
"smtp-transport.gmail-warning2": "For more information about this workaround, <a href=\"https://nodemailer.com/usage/using-gmail/\">please consult this NodeMailer article <i class=\"fa fa-external-link\"></i></a> on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. <a href=\"../extend/plugins\">Browse available plugins here</a>.",
|
||||
"smtp-transport.auto-enable-toast": "It looks like you're configuring an SMTP transport. We enabled the \"SMTP Transport\" option for you.",
|
||||
"smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select 'Custom Service' and enter the details below.",
|
||||
"smtp-transport.gmail-warning1": "There have been reports of the Gmail service not working on accounts with heightened security. In those scenarios, you will have to <a href=\"https://www.google.com/settings/security/lesssecureapps\">configure your GMail account to allow less secure apps</a>.",
|
||||
"smtp-transport.gmail-warning2": "For more information about this workaround, <a href=\"https://nodemailer.com/usage/using-gmail/\">please consult this NodeMailer article on the issue.</a> An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. <a href=\"../extend/plugins\">Browse available plugins here</a>.",
|
||||
"smtp-transport.host": "SMTP Host",
|
||||
"smtp-transport.port": "SMTP Port",
|
||||
"smtp-transport.security": "Connection security",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -61,7 +61,6 @@
|
||||
"no-group": "এই গ্রুপ অস্তিত্বহীন",
|
||||
"no-user": "এই নামে কোন সদস্য নেই",
|
||||
"no-teaser": "টিজারটি খুজে পাওয়া যায় নি",
|
||||
"no-flag": "Flag does not exist",
|
||||
"no-privileges": "এই কাজটির জন্য আপনার পর্যাপ্ত অধিকার নেই",
|
||||
"category-disabled": "বিভাগটি নিষ্ক্রিয়",
|
||||
"topic-locked": "টপিক বন্ধ",
|
||||
@@ -205,8 +204,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 – 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",
|
||||
|
||||
@@ -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 & Flag History",
|
||||
"no-history": "No flag history.",
|
||||
|
||||
@@ -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": "সাম্প্রতিক চ্যাটসমূহ",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -18,14 +18,5 @@
|
||||
"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"
|
||||
"confirm-reject": "Do you want to reject this post?"
|
||||
}
|
||||
@@ -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": "টপিক সমূহ সরান",
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
{
|
||||
"banned": "নিষিদ্ধ",
|
||||
"muted": "Muted",
|
||||
"offline": "অফলাইন",
|
||||
"deleted": "Deleted",
|
||||
"username": "সদস্যের নাম",
|
||||
@@ -157,10 +156,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",
|
||||
@@ -194,6 +189,5 @@
|
||||
"emailUpdate.intro": "Please enter your email address below. This forum uses your email address for scheduled digest and notifications, as well as for account recovery in the event of a lost password.",
|
||||
"emailUpdate.optional": "<strong>This field is optional</strong>. You are not obligated to provide your email address, but without a validated email you will not be able to recover your account or login with your email.",
|
||||
"emailUpdate.required": "<strong>This field is required</strong>.",
|
||||
"emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page.",
|
||||
"emailUpdate.password-challenge": "Please enter your password in order to verify account ownership."
|
||||
"emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page."
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
# The files here are not meant to be edited directly
|
||||
|
||||
Please see the → [Internalization README](../README.md).
|
||||
@@ -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",
|
||||
|
||||
@@ -91,7 +91,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>",
|
||||
|
||||
@@ -76,7 +76,7 @@
|
||||
"logout": "Odhlásit",
|
||||
"view-forum": "Zobrazit fórum",
|
||||
|
||||
"search.placeholder": "Search settings",
|
||||
"search.placeholder": "Press "/" to search for settings",
|
||||
"search.no-results": "Žádné výsledky…",
|
||||
"search.search-forum": "Prohledat fórum pro <strong></strong>",
|
||||
"search.keep-typing": "Pište dále pro zobrazení výsledků…",
|
||||
|
||||
@@ -10,10 +10,9 @@
|
||||
"smtp-transport-help": "Ze seznamu můžete vybrat známé služby nebo zadat vlastní.",
|
||||
"smtp-transport.service": "Vyberte službu",
|
||||
"smtp-transport.service-custom": "Uživatelský služba",
|
||||
"smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select "Custom Service" and enter the details below.",
|
||||
"smtp-transport.gmail-warning1": "If you are using GMail as your email provider, you will have to generate an "App Password" in order for NodeBB to authenticate successfully. You can generate one at the <a href=\"https://myaccount.google.com/apppasswords\">App Passwords <i class=\"fa fa-external-link\"></i></a> page.",
|
||||
"smtp-transport.gmail-warning2": "For more information about this workaround, <a href=\"https://nodemailer.com/usage/using-gmail/\">please consult this NodeMailer article <i class=\"fa fa-external-link\"></i></a> on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. <a href=\"../extend/plugins\">Browse available plugins here</a>.",
|
||||
"smtp-transport.auto-enable-toast": "It looks like you're configuring an SMTP transport. We enabled the \"SMTP Transport\" option for you.",
|
||||
"smtp-transport.service-help": "Pro použití známých informací, vyberte název služby. Nebo vyberte „uživatelskou službu” a zadejte detaily níže.",
|
||||
"smtp-transport.gmail-warning1": "Někdy služba Gmail nefunguje správně s účty s nejvyšším zabezpečením. V těchto případech, musíte <a href=\"https://www.google.com/settings/security/lesssecureapps\">nakonfigurovat váš Gmail účet pro méně zabezpečené aplikace</a>.",
|
||||
"smtp-transport.gmail-warning2": "Další informace o tomto řešení, <a href=\"https://nodemailer.com/usage/using-gmail/\">konzultujte s NodeMailer.</a>Alternativou je použití e-mailového rozšíření třetích stran jako je SendGrid, Mailgun atd.<a href=\"../extend/plugins\">Dostupné rozšíření zde</a>.",
|
||||
"smtp-transport.host": "Hostitel SMTP",
|
||||
"smtp-transport.port": "Port SMTP",
|
||||
"smtp-transport.security": "Zabezpečení připojení",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
@@ -205,8 +204,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 – 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",
|
||||
|
||||
@@ -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 & Flag History",
|
||||
"no-history": "Žádná historie označení.",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -18,14 +18,5 @@
|
||||
"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"
|
||||
"confirm-reject": "Do you want to reject this post?"
|
||||
}
|
||||
@@ -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",
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
{
|
||||
"banned": "Zablokován",
|
||||
"muted": "Muted",
|
||||
"offline": "Nepřipojen",
|
||||
"deleted": "Odstraněno",
|
||||
"username": "Uživatelské jméno",
|
||||
@@ -157,10 +156,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",
|
||||
@@ -194,6 +189,5 @@
|
||||
"emailUpdate.intro": "Please enter your email address below. This forum uses your email address for scheduled digest and notifications, as well as for account recovery in the event of a lost password.",
|
||||
"emailUpdate.optional": "<strong>This field is optional</strong>. You are not obligated to provide your email address, but without a validated email you will not be able to recover your account or login with your email.",
|
||||
"emailUpdate.required": "<strong>This field is required</strong>.",
|
||||
"emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page.",
|
||||
"emailUpdate.password-challenge": "Please enter your password in order to verify account ownership."
|
||||
"emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page."
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
# The files here are not meant to be edited directly
|
||||
|
||||
Please see the → [Internalization README](../README.md).
|
||||
@@ -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",
|
||||
|
||||
@@ -91,7 +91,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>",
|
||||
|
||||
@@ -76,7 +76,7 @@
|
||||
"logout": "Log out",
|
||||
"view-forum": "View Forum",
|
||||
|
||||
"search.placeholder": "Search settings",
|
||||
"search.placeholder": "Press "/" to search for settings",
|
||||
"search.no-results": "No results...",
|
||||
"search.search-forum": "Search the forum for <strong></strong>",
|
||||
"search.keep-typing": "Type more to see results...",
|
||||
|
||||
@@ -10,10 +10,9 @@
|
||||
"smtp-transport-help": "You can select from a list of well-known services or enter a custom one.",
|
||||
"smtp-transport.service": "Select a service",
|
||||
"smtp-transport.service-custom": "Custom Service",
|
||||
"smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select "Custom Service" and enter the details below.",
|
||||
"smtp-transport.gmail-warning1": "If you are using GMail as your email provider, you will have to generate an "App Password" in order for NodeBB to authenticate successfully. You can generate one at the <a href=\"https://myaccount.google.com/apppasswords\">App Passwords <i class=\"fa fa-external-link\"></i></a> page.",
|
||||
"smtp-transport.gmail-warning2": "For more information about this workaround, <a href=\"https://nodemailer.com/usage/using-gmail/\">please consult this NodeMailer article <i class=\"fa fa-external-link\"></i></a> on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. <a href=\"../extend/plugins\">Browse available plugins here</a>.",
|
||||
"smtp-transport.auto-enable-toast": "It looks like you're configuring an SMTP transport. We enabled the \"SMTP Transport\" option for you.",
|
||||
"smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select 'Custom Service' and enter the details below.",
|
||||
"smtp-transport.gmail-warning1": "There have been reports of the Gmail service not working on accounts with heightened security. In those scenarios, you will have to <a href=\"https://www.google.com/settings/security/lesssecureapps\">configure your GMail account to allow less secure apps</a>.",
|
||||
"smtp-transport.gmail-warning2": "For more information about this workaround, <a href=\"https://nodemailer.com/usage/using-gmail/\">please consult this NodeMailer article on the issue.</a> An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. <a href=\"../extend/plugins\">Browse available plugins here</a>.",
|
||||
"smtp-transport.host": "SMTP Host",
|
||||
"smtp-transport.port": "SMTP Port",
|
||||
"smtp-transport.security": "Connection security",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
@@ -205,8 +204,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 – 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",
|
||||
|
||||
@@ -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 & Flag History",
|
||||
"no-history": "No flag history.",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -18,14 +18,5 @@
|
||||
"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"
|
||||
"confirm-reject": "Do you want to reject this post?"
|
||||
}
|
||||
@@ -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",
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
{
|
||||
"banned": "Banlyst",
|
||||
"muted": "Muted",
|
||||
"offline": "Offline",
|
||||
"deleted": "Deleted",
|
||||
"username": "Brugernavn",
|
||||
@@ -157,10 +156,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",
|
||||
@@ -194,6 +189,5 @@
|
||||
"emailUpdate.intro": "Please enter your email address below. This forum uses your email address for scheduled digest and notifications, as well as for account recovery in the event of a lost password.",
|
||||
"emailUpdate.optional": "<strong>This field is optional</strong>. You are not obligated to provide your email address, but without a validated email you will not be able to recover your account or login with your email.",
|
||||
"emailUpdate.required": "<strong>This field is required</strong>.",
|
||||
"emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page.",
|
||||
"emailUpdate.password-challenge": "Please enter your password in order to verify account ownership."
|
||||
"emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page."
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
# The files here are not meant to be edited directly
|
||||
|
||||
Please see the → [Internalization README](../README.md).
|
||||
@@ -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"
|
||||
}
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
@@ -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"
|
||||
|
||||
@@ -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.",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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."
|
||||
}
|
||||
@@ -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",
|
||||
|
||||
@@ -39,9 +39,9 @@
|
||||
"alert.upgraded": "Plugin aktualisiert",
|
||||
"alert.installed": "Plugin installiert",
|
||||
"alert.uninstalled": "Plugin deinstalliert",
|
||||
"alert.activate-success": "Bitte builde dein NodeBB neu auf und starte es neu, um dieses Plugin vollständig zu aktivieren",
|
||||
"alert.activate-success": "Bitte bauen Sie Ihr NodeBB neu auf und starten Sie es neu, um dieses Plugin vollständig zu aktivieren",
|
||||
"alert.deactivate-success": "Plugin erfolgreich deaktiviert",
|
||||
"alert.upgrade-success": "Bitte starte dein NodeBB neu um dieses Plugin völlständig zu upgraden.",
|
||||
"alert.upgrade-success": "Bitte Starte dein NodeBB neu um dieses Plugin völlständig zu upgraden.",
|
||||
"alert.install-success": "Plugin erfolgreich installiert. Bitte aktiviere das Plugin",
|
||||
"alert.uninstall-success": "Das Plugin wurde erfolgreich deaktiviert und deinstalliert.",
|
||||
"alert.suggest-error": "<p>NodeBB konnte den Paket-Manager nicht erreichen. Willst Du mit der Installation der neuesten Version fortfahren</p><div class=\"alert alert-danger\"><strong>Der Server meldete (%1)</strong>: %2</div>",
|
||||
@@ -49,7 +49,7 @@
|
||||
"alert.incompatible": "<p>NodeBB Version (v%1) ist nur für Aktualisierungen bis v%2 dieses Plugins bestimmt. Bitte aktualisiere NodeBB, wenn eine neuere Version dieses Plugins installiert werden soll.</p>",
|
||||
"alert.possibly-incompatible": "<div class=\"alert alert-warning\"><p><strong>Keine Kompatibilitätsinformationen gefunden</strong></p><p>Dieses Plugin legte keine spezifische NodeBB version fest, welche für die Installation benötigt wird. Volle Kompatibilität kann nicht gewährleistet werden, was dazu führen könnte, dass ihr NodeBB nicht mehr korrekt startet.</p></div><p>Für den Fall, dass NodeBB nicht mehr ordnungsgemäß startet:</p><pre><code>$ ./nodebb reset plugin=\"%1\"</code></pre><p>Soll mit der installation der neuesten Version dieses Plugins fortgefahren werden?</p>",
|
||||
"alert.reorder": "Plugins Neusortiert",
|
||||
"alert.reorder-success": "Bitte starte dein NodeBB neu um diesen Prozess vollständig abzuschließen.",
|
||||
"alert.reorder-success": "Bitte Starte dein NodeBB neu um diesen Prozess vollständig abzuschließen.",
|
||||
|
||||
"license.title": "Plugin-Lizenzinformation",
|
||||
"license.intro": "Das Plugin <strong>%1</strong>is unter der %2 lizenziert. Bitte ließ dir diese durch bevor du dieses Plugin aktivierst.",
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
{
|
||||
"rewards": "Belohnungen",
|
||||
"condition-if-users": "Wenn Benutzer",
|
||||
"condition-if-users": "Wenn des Benutzers",
|
||||
"condition-is": "Ist:",
|
||||
"condition-then": "Dann:",
|
||||
"max-claims": "Anzahl der Male von Belohnungen, die beansprucht werden können",
|
||||
"zero-infinite": "0 für unendlich eingeben",
|
||||
"delete": "Löschen",
|
||||
"max-claims": "Anzahl der male, die diese Belohnung beansprucht werden kann",
|
||||
"zero-infinite": "Gib 0 für unendlich ein",
|
||||
"delete": "Entfernen",
|
||||
"enable": "Aktivieren",
|
||||
"disable": "Deaktivieren",
|
||||
|
||||
"alert.delete-success": "Belohnung wurde erfolgreich gelöscht",
|
||||
"alert.delete-success": "Die Belohnung wurde erfolgreich gelöscht",
|
||||
"alert.no-inputs-found": "Ungültige Belohnung - keine Eingaben gefunden!",
|
||||
"alert.save-success": "Belohnungen erfolgreich gespeichert"
|
||||
}
|
||||
@@ -1,30 +1,30 @@
|
||||
{
|
||||
"available": "Verfügbare Widgets",
|
||||
"explanation": "Wähle ein Widget aus dem Dropdown-Menü aus und ziehe es per Drag-and-Drop in den Widget-Bereich einer Vorlage auf der linken Seite.",
|
||||
"none-installed": "Keine Widgets gefunden! Aktiviere das Widget Essentials-Plugin in der <a href=\"%1\">Plugin</a>-Systemsteuerung.",
|
||||
"explanation": "Widget vom Dropdown-Menu auswählen und anschließend links in den Widget-Bereich einer Vorlage ziehen.",
|
||||
"none-installed": "Keine Widgets gefunden! Aktivieren Sie das Widget Essentials Plugin im <a href=\"%1\">Plugin-Kontrollzentrum</a>.",
|
||||
"clone-from": "Klone Widget von",
|
||||
"containers.available": "Verfügbare Container",
|
||||
"containers.explanation": "Per Drag-and-Drop auf ein beliebiges aktives Widget ziehen",
|
||||
"containers.explanation": "Auf ein beliebiges aktives Widget ziehen",
|
||||
"containers.none": "Nichts",
|
||||
"container.well": "Well",
|
||||
"container.jumbotron": "Jumbotron",
|
||||
"container.panel": "Panel",
|
||||
"container.panel-header": "Panel-Kopfzeile",
|
||||
"container.panel-body": "Panel-Körper",
|
||||
"container.panel-header": "Panel Header",
|
||||
"container.panel-body": "Panel Körper",
|
||||
"container.alert": "Alarm",
|
||||
|
||||
"alert.confirm-delete": "Möchtest Du dieses Widget wirklich löschen?",
|
||||
"alert.confirm-delete": "Sind Sie sicher, dass Sie dieses Widget löschen wollen?",
|
||||
"alert.updated": "Widgets aktualisiert",
|
||||
"alert.update-success": "Widgets erfolgreich aktualisiert",
|
||||
"alert.clone-success": "Widgets erfolgreich geklont",
|
||||
"alert.clone-success": "Die Widgets wurden erfolgreich geklont",
|
||||
|
||||
"error.select-clone": "Bitte wähle eine Seite aus, von der geklont werden soll",
|
||||
"error.select-clone": "Bitte wähle eine Seite aus von der geklont werden soll",
|
||||
|
||||
"title": "Titel",
|
||||
"title.placeholder": "Titel (wird nur auf einigen Containern angezeigt)",
|
||||
"title.placeholder": "Titel (nur in bestimmten Bereichen zusehen)",
|
||||
"container": "Container",
|
||||
"container.placeholder": "Ziehe einen Container per Drag-and-Drop oder gebe hier HTML ein.",
|
||||
"show-to-groups": "Gruppen anzeigen",
|
||||
"hide-from-groups": "Vor Gruppen verstecken",
|
||||
"hide-on-mobile": "Auf dem Handy verstecken"
|
||||
"container.placeholder": "Ziehen Sie einen Container per Drag & Drop oder geben Sie hier HTML ein.",
|
||||
"show-to-groups": "Für Gruppen anzeigen",
|
||||
"hide-from-groups": "Für Gruppen verbergen",
|
||||
"hide-on-mobile": "Auf Mobile verbergen"
|
||||
}
|
||||
@@ -1,10 +1,8 @@
|
||||
{
|
||||
"administrators": "Administratoren",
|
||||
"global-moderators": "Globale Moderatoren",
|
||||
"moderators": "Moderatoren",
|
||||
"no-global-moderators": "Keine globalen Moderatoren",
|
||||
"no-sub-categories": "Keine Unterkategorien",
|
||||
"subcategories": "%1 Unterkategorien",
|
||||
"moderators-of-category": "%1 Moderatoren",
|
||||
"no-moderators": "Keine Moderatoren",
|
||||
"add-administrator": "Administrator hinzufügen",
|
||||
"add-global-moderator": "Globalen Moderator hinzufügen",
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
"parent-category": "Übergeordnete Kategorie",
|
||||
"optional-parent-category": "(Optional) Übergeordnete Kategorie",
|
||||
"top-level": "Top Level",
|
||||
"parent-category-none": "(Nichts)",
|
||||
"parent-category-none": "(Keine)",
|
||||
"copy-parent": "Übergeordnetes kopieren",
|
||||
"copy-settings": "Kopiere Einstellungen von",
|
||||
"optional-clone-settings": "(Optional) dubliziere Einstellungen von Kategorie",
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
"upload-files": "Dateien hochladen",
|
||||
"signature": "Signatur",
|
||||
"ban": "Bannen",
|
||||
"mute": "Stummschalten",
|
||||
"mute": "Mute",
|
||||
"invite": "Einladen",
|
||||
"search-content": "Inhalt durchsuchen",
|
||||
"search-users": "Benutzersuche",
|
||||
|
||||
@@ -1,20 +1,20 @@
|
||||
{
|
||||
"queue": "Warteschlange",
|
||||
"description": "Es befinden sich keine Benutzer in der Registrierungswarteschlange. <br>Um diese Funktion zu aktivieren, gehe zu <a href=\"%1\">Einstellungen → Benutzer → Benutzerregistrierung</a> und stelle den <strong>Registrierungstyp</strong> auf \"Admin-Genehmigung\" ein.",
|
||||
"description": "Es sind keine Benutzer in der Registrierungs-Warteschlange.<br> Um diese Funktion zu aktivieren, gehe zu <a href=\"%1\">Einstellungen → Benutzer → Benutzer erstellen</a> und ändern sie <strong>Registrierungsart</strong> auf \"Admin Genehmigung\".",
|
||||
|
||||
"list.name": "Name",
|
||||
"list.email": "E-Mail",
|
||||
"list.ip": "IP",
|
||||
"list.ip": "IP-Adresse",
|
||||
"list.time": "Zeit",
|
||||
"list.username-spam": "Häufigkeit: %1 Erscheint: %2 Vertrauen: %3",
|
||||
"list.username-spam": "Häufigkeit: %1 Erscheint: %2 Sicherheit: %3",
|
||||
"list.email-spam": "Häufigkeit: %1 Erscheint: %2",
|
||||
"list.ip-spam": "Häufigkeit: %1 Erscheint: %2",
|
||||
|
||||
"invitations": "Einladungen",
|
||||
"invitations.description": "Nachfolgend findest du eine vollständige Liste der gesendeten Einladungen. Verwende Strg-F, um die Liste nach E-Mail oder Benutzername zu durchsuchen. Der Benutzername wird rechts neben den E-Mails für Benutzer angezeigt, die ihre Einladungen eingelöst haben.",
|
||||
"invitations.description": "Unterhalb ist eine komplette Liste der versandten Einladungen. Benutze Strg+F um die Liste per Email oder Nutzername zu durchsuchen.<br><br> Der Nutzername wird für die Nutzer die ihre Einladung angenommen haben rechts von den E-Mails angezeigt.",
|
||||
"invitations.inviter-username": "Nutzername des Einladenden",
|
||||
"invitations.invitee-email": "E-Mail des Eingeladenen",
|
||||
"invitations.invitee-username": "Benutzername des Eingeladenen (falls registriert)",
|
||||
"invitations.invitee-email": "Email des eingeladenen",
|
||||
"invitations.invitee-username": "Nutzername des eingeladenen (Wenn registriert)",
|
||||
|
||||
"invitations.confirm-delete": "Möchtest du diese Einladung wirklich löschen?"
|
||||
"invitations.confirm-delete": "Sind Sie sicher, dass Sie diese Einladung löschen wollen?"
|
||||
}
|
||||
@@ -18,8 +18,8 @@
|
||||
"download-csv": "CSV herunterladen",
|
||||
"manage-groups": "Gruppen verwalten",
|
||||
"add-group": "Gruppe hinzufügen",
|
||||
"create": "Benutzer erstellen",
|
||||
"invite": "Einladung per E-Mail",
|
||||
"create": "Create User",
|
||||
"invite": "Invite by Email",
|
||||
"new": "Neuer Benutzer",
|
||||
"filter-by": "Filtern nach",
|
||||
"pills.unvalidated": "Nicht bestätigt",
|
||||
@@ -63,7 +63,7 @@
|
||||
"create.password": "Passwort",
|
||||
"create.password-confirm": "Passwort bestätigen",
|
||||
|
||||
"temp-ban.length": "Länge",
|
||||
"temp-ban.length": "Length",
|
||||
"temp-ban.reason": "Grund <span class=\"text-muted\">(optional)</span>",
|
||||
"temp-ban.hours": "Stunden",
|
||||
"temp-ban.days": "Tage",
|
||||
@@ -91,22 +91,21 @@
|
||||
"alerts.validate-email-success": "E-Mails bestätigt",
|
||||
"alerts.validate-force-password-reset-success": "Die Passwörter der Benutzer wurden zurückgesetzt und ihre bestehenden Sitzungen wurden widerrufen.",
|
||||
"alerts.password-reset-confirm": "Möchtest Du wirklich (eine) Passwort-Reset-Email(s) an diese(n) Benutzer schicken?",
|
||||
"alerts.password-reset-email-sent": "E-Mail zum Zurücksetzen des Passworts gesendet.",
|
||||
"alerts.confirm-delete": "<strong>Warnung!</strong><p>Möchtest Du wirklich <strong>Benutzer</strong> löschen?</p><p>Diese Aktion ist nicht umkehrbar! Lediglich das Nutzerkonto wird gelöscht, deren Beiträge und Themen bleiben bestehen</p>",
|
||||
"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": "Benutzer gelöscht!",
|
||||
"alerts.confirm-delete-content": "<strong>Warnung!</strong><p>Möchtest Du diese <strong>Benutzerinhalte</strong> wirklich löschen?</p><p>Diese Aktion kann nicht umgekehrt werden! Die Konten der Benutzer bleiben bestehen, aber ihre Beiträge und Themen werden gelöscht.</p>",
|
||||
"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>",
|
||||
"alerts.delete-content-success": "Beiträge des/der Nutzer(s) gelöscht!",
|
||||
"alerts.confirm-purge": "<strong>Warnung!</strong><p>Bist du sicher, dass Du den/die <strong>Nutzer und deren Beiträge</strong> löschen möchtest?</p><p>Diese Aktion kann nicht rückgängig gemacht werden! Alle Nutzerdaten und Beiträge werden dabei gelöscht!</p>",
|
||||
"alerts.create": "Benutzer erstellen",
|
||||
"alerts.create": "Nutzer Erstellen",
|
||||
"alerts.button-create": "Erstellen",
|
||||
"alerts.button-cancel": "Abbrechen",
|
||||
"alerts.error-passwords-different": "Die Passwörter müssen übereinstimmen",
|
||||
"alerts.error-x": "<strong>Fehler</strong><p>%1</p>",
|
||||
"alerts.create-success": "Benutzer erstellt!",
|
||||
"alerts.create-success": "Nutzer erstellt",
|
||||
|
||||
"alerts.prompt-email": "E-Mails:",
|
||||
"alerts.email-sent-to": "Eine Einladungsemail wurde an %1 gesendet",
|
||||
"alerts.x-users-found": "%1 Benutzer gefunden, (%2 Sekunden)",
|
||||
"export-users-started": "Der Export von Benutzern als CSV kann eine Weile dauern. Sie erhalten eine Benachrichtigung, wenn es abgeschlossen ist.",
|
||||
"export-users-completed": "Benutzer wurden als CSV exportiert, klicke hier, um sie herunterzuladen."
|
||||
"export-users-completed": "Benutzer wurden als CSV exportiert, klicken Sie hier, um sie herunterzuladen."
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user