mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-12-24 09:20:32 +01:00
Compare commits
205 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0a3ac7170a | ||
|
|
7969e62d06 | ||
|
|
29dbe92d6e | ||
|
|
e0515080a0 | ||
|
|
56ef2bdd67 | ||
|
|
83facb7df6 | ||
|
|
6214336ce1 | ||
|
|
17ea61a0ea | ||
|
|
2c0f8c913b | ||
|
|
5ef3e0f3a0 | ||
|
|
f491d43273 | ||
|
|
75abca912a | ||
|
|
6111db5a37 | ||
|
|
a40f54aa87 | ||
|
|
6bd22e5337 | ||
|
|
1d1f499bc0 | ||
|
|
2ef2750ded | ||
|
|
27c4851bb9 | ||
|
|
7a2b9639b2 | ||
|
|
fb53bbca1e | ||
|
|
135962d9c5 | ||
|
|
7a8116a471 | ||
|
|
c917acf612 | ||
|
|
88ff9f9d62 | ||
|
|
19602dcd5a | ||
|
|
339f62674a | ||
|
|
dc4f32af94 | ||
|
|
035ced852d | ||
|
|
49a510e925 | ||
|
|
d926d9dd51 | ||
|
|
6161ff0263 | ||
|
|
995b2de551 | ||
|
|
0716006201 | ||
|
|
7a64410a92 | ||
|
|
bc807c4629 | ||
|
|
185d61fce9 | ||
|
|
31fccc5946 | ||
|
|
f4f0eb30dc | ||
|
|
7a00944552 | ||
|
|
b8a52863d6 | ||
|
|
d3840280ec | ||
|
|
0fa115610a | ||
|
|
751a143e4d | ||
|
|
ed07cfccff | ||
|
|
b4023ff9f3 | ||
|
|
5264decaa5 | ||
|
|
36016ee138 | ||
|
|
4813772ce8 | ||
|
|
8fcfb18101 | ||
|
|
1e3a321da6 | ||
|
|
79cc9ad085 | ||
|
|
db76b815ca | ||
|
|
febeede50b | ||
|
|
ffd6d56b27 | ||
|
|
8f60603bda | ||
|
|
7ee4272470 | ||
|
|
ad708c9ff3 | ||
|
|
5eb8c90bf8 | ||
|
|
325d00ea94 | ||
|
|
c036786cba | ||
|
|
3f62b8927a | ||
|
|
d5bfe32e61 | ||
|
|
ca354e0b9d | ||
|
|
2a58d0996d | ||
|
|
88a5dfb7b7 | ||
|
|
dc35bf8bb5 | ||
|
|
c9a92555f0 | ||
|
|
983a35e638 | ||
|
|
466ad0d95c | ||
|
|
f764a3ea5c | ||
|
|
dad57e04de | ||
|
|
bc51968eaf | ||
|
|
19bd3eea5a | ||
|
|
af205cc48a | ||
|
|
d2175c6de3 | ||
|
|
57422420a2 | ||
|
|
fed5165ffb | ||
|
|
c73f759cf1 | ||
|
|
ce9e1cf19b | ||
|
|
3ca42ed3ee | ||
|
|
7d24b04b3b | ||
|
|
19f8a77ce2 | ||
|
|
b429045ff6 | ||
|
|
18a843bc1e | ||
|
|
7ad477af9c | ||
|
|
985663faae | ||
|
|
bde9136b92 | ||
|
|
d6d0ebd592 | ||
|
|
5e7ec5b6b8 | ||
|
|
f28923858e | ||
|
|
ce03680f04 | ||
|
|
d85aae38c3 | ||
|
|
418b025c92 | ||
|
|
c7930bb47a | ||
|
|
66a35490b4 | ||
|
|
da0888e611 | ||
|
|
0f97e16eb5 | ||
|
|
5b4471bf8b | ||
|
|
20f8ba78ad | ||
|
|
97519ca40d | ||
|
|
4c468b5c70 | ||
|
|
9daa7ccf3a | ||
|
|
d599493057 | ||
|
|
c4cb9d36ca | ||
|
|
37bdf75391 | ||
|
|
83a932e656 | ||
|
|
a2229e7154 | ||
|
|
f5c3d4e1cf | ||
|
|
fe028e0ad2 | ||
|
|
c5d20ba9e1 | ||
|
|
edfa402ae8 | ||
|
|
f192d92439 | ||
|
|
18eec14760 | ||
|
|
3042cf02d1 | ||
|
|
698b3a2a00 | ||
|
|
b804a3519d | ||
|
|
2bcd5239fb | ||
|
|
6237d5fe0f | ||
|
|
ee5c021c47 | ||
|
|
7033d11ede | ||
|
|
b61936294b | ||
|
|
01b3a06a5a | ||
|
|
499514a85c | ||
|
|
3d775c3e79 | ||
|
|
0f209fa49b | ||
|
|
1fef883ba3 | ||
|
|
97a649e35d | ||
|
|
8f771b6fe6 | ||
|
|
7a20681120 | ||
|
|
dde7a498b7 | ||
|
|
623ccc5386 | ||
|
|
1953277bca | ||
|
|
d24c414826 | ||
|
|
4fbe4c76e0 | ||
|
|
4d2c95caaa | ||
|
|
c778f6ebdb | ||
|
|
58c46541fa | ||
|
|
5aa7207659 | ||
|
|
a7d9811e74 | ||
|
|
213db951fd | ||
|
|
4030f18a04 | ||
|
|
73f985684c | ||
|
|
5c214930a8 | ||
|
|
af10aaaac3 | ||
|
|
deacf36645 | ||
|
|
26020f3559 | ||
|
|
8f9ac5c17a | ||
|
|
aef3ea18cf | ||
|
|
449c0fcd5f | ||
|
|
94d49682ad | ||
|
|
99df4a5c7e | ||
|
|
80a1a0e042 | ||
|
|
9a92832a4c | ||
|
|
7eb2e074d9 | ||
|
|
263ca1ca38 | ||
|
|
08be8f3c37 | ||
|
|
ca82d020bc | ||
|
|
23f4634587 | ||
|
|
2550f26f9e | ||
|
|
ace6f12f51 | ||
|
|
a27b999fe6 | ||
|
|
fa57b81f8a | ||
|
|
1a000eae57 | ||
|
|
4da1e9c464 | ||
|
|
15c7691ca3 | ||
|
|
1a8e985789 | ||
|
|
cb1c995b06 | ||
|
|
a8b631dd93 | ||
|
|
9c91f093e7 | ||
|
|
dc19c8407d | ||
|
|
c7a506a8e1 | ||
|
|
dc67f54e84 | ||
|
|
bf4f666ddb | ||
|
|
205a7119a6 | ||
|
|
91bedd7ee0 | ||
|
|
4a4648c2af | ||
|
|
41212e8f7b | ||
|
|
4e119783d0 | ||
|
|
93fb1e0fc1 | ||
|
|
6a7303122f | ||
|
|
0521941201 | ||
|
|
6d62e5921d | ||
|
|
896847864b | ||
|
|
69cf004c2f | ||
|
|
6f973e5e09 | ||
|
|
e807ed5287 | ||
|
|
b163264e44 | ||
|
|
3d095a6b61 | ||
|
|
d7a0874a3c | ||
|
|
817a546832 | ||
|
|
c375e2229f | ||
|
|
43f52737de | ||
|
|
83ca23ca37 | ||
|
|
bb29cafcf6 | ||
|
|
b7164acc9f | ||
|
|
6a7ac2f09e | ||
|
|
27d5aaa5af | ||
|
|
e3bc624f89 | ||
|
|
b9a1fc3f87 | ||
|
|
4f6a7ffe01 | ||
|
|
8d6ef3d50a | ||
|
|
4d18c38b08 | ||
|
|
98ff47ec08 | ||
|
|
a74bb1567e | ||
|
|
7c37f32dae |
0
.docker/.gitkeep
Normal file
0
.docker/.gitkeep
Normal file
0
.docker/build/.gitkeep
Normal file
0
.docker/build/.gitkeep
Normal file
0
.docker/config/.gitkeep
Normal file
0
.docker/config/.gitkeep
Normal file
0
.docker/database/mongo/data/.gitkeep
Normal file
0
.docker/database/mongo/data/.gitkeep
Normal file
0
.docker/database/postgresql/data/.gitkeep
Normal file
0
.docker/database/postgresql/data/.gitkeep
Normal file
0
.docker/database/redis/data/.gitkeep
Normal file
0
.docker/database/redis/data/.gitkeep
Normal file
0
.docker/public/uploads/.gitkeep
Normal file
0
.docker/public/uploads/.gitkeep
Normal file
17
.github/workflows/docker.yml
vendored
17
.github/workflows/docker.yml
vendored
@@ -21,8 +21,6 @@ jobs:
|
||||
steps:
|
||||
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v3
|
||||
@@ -37,6 +35,9 @@ jobs:
|
||||
username: ${{ github.repository_owner }}
|
||||
password: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Get current date in NST
|
||||
run: echo "CURRENT_DATE_NST=$(date +'%Y%m%d-%H%M%S' -d '-3 hours -30 minutes')" >> $GITHUB_ENV
|
||||
|
||||
- name: Docker meta
|
||||
id: meta
|
||||
uses: docker/metadata-action@v5
|
||||
@@ -48,12 +49,22 @@ jobs:
|
||||
type=semver,pattern={{major}}.x
|
||||
type=raw,value=latest,enable={{is_default_branch}}
|
||||
type=ref,event=branch,enable=${{ github.event.repository.default_branch != github.ref }}
|
||||
type=raw,value=${{ env.CURRENT_DATE_NST }}
|
||||
flavor: |
|
||||
latest=true
|
||||
|
||||
- name: Cache node_modules
|
||||
id: cache-node-modules
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: var-cache-node-modules
|
||||
key: var-cache-node-modules-${{ hashFiles('Dockerfile', 'install/package.json') }}
|
||||
|
||||
- name: Build and push Docker images
|
||||
uses: docker/build-push-action@v5
|
||||
with:
|
||||
cache-from: type=gha
|
||||
cache-to: type=gha,mode=max
|
||||
cache-to: type=gha,mode=min
|
||||
context: .
|
||||
file: ./Dockerfile
|
||||
platforms: linux/amd64,linux/arm64,linux/arm/v7
|
||||
|
||||
6
.github/workflows/test.yaml
vendored
6
.github/workflows/test.yaml
vendored
@@ -63,7 +63,7 @@ jobs:
|
||||
- 5432:5432
|
||||
|
||||
redis:
|
||||
image: 'redis:7.2.3'
|
||||
image: 'redis:7.2.4'
|
||||
# Set health checks to wait until redis has started
|
||||
options: >-
|
||||
--health-cmd "redis-cli ping"
|
||||
@@ -192,7 +192,7 @@ jobs:
|
||||
run: npm run coverage
|
||||
|
||||
- name: Test coverage
|
||||
uses: coverallsapp/github-action@3dfc5567390f6fa9267c0ee9c251e4c8c3f18949 # v2.2.3
|
||||
uses: coverallsapp/github-action@643bc377ffa44ace6394b2b5d0d3950076de9f63 # v2.3.0
|
||||
if: matrix.coverage
|
||||
with:
|
||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -206,7 +206,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Coveralls Finished
|
||||
uses: coverallsapp/github-action@3dfc5567390f6fa9267c0ee9c251e4c8c3f18949 # v2.2.3
|
||||
uses: coverallsapp/github-action@643bc377ffa44ace6394b2b5d0d3950076de9f63 # v2.3.0
|
||||
with:
|
||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
parallel-finished: true
|
||||
|
||||
3
.gitignore
vendored
3
.gitignore
vendored
@@ -71,4 +71,5 @@ package-lock.json
|
||||
link-plugins.sh
|
||||
test.sh
|
||||
|
||||
.docker/
|
||||
.docker/**
|
||||
!**/.gitkeep
|
||||
308
CHANGELOG.md
308
CHANGELOG.md
@@ -1,3 +1,311 @@
|
||||
#### v3.8.1 (2024-05-15)
|
||||
|
||||
##### Chores
|
||||
|
||||
* incrementing version number - v3.8.0 (e228a6eb)
|
||||
* update changelog for v3.8.0 (2ef2750d)
|
||||
* incrementing version number - v3.7.5 (6882894d)
|
||||
* incrementing version number - v3.7.4 (6678744c)
|
||||
* incrementing version number - v3.7.3 (2d62b6f6)
|
||||
* incrementing version number - v3.7.2 (cc257e7e)
|
||||
* incrementing version number - v3.7.1 (712365a5)
|
||||
* incrementing version number - v3.7.0 (9a6153d7)
|
||||
* incrementing version number - v3.6.7 (86a17e38)
|
||||
* incrementing version number - v3.6.6 (6604bf37)
|
||||
* incrementing version number - v3.6.5 (6c653625)
|
||||
* incrementing version number - v3.6.4 (83d131b4)
|
||||
* incrementing version number - v3.6.3 (fc7d2bfd)
|
||||
* incrementing version number - v3.6.2 (0f577a57)
|
||||
* incrementing version number - v3.6.1 (f1a69468)
|
||||
* incrementing version number - v3.6.0 (4cdf85f8)
|
||||
* incrementing version number - v3.5.3 (ed0e8783)
|
||||
* incrementing version number - v3.5.2 (52fbb2da)
|
||||
* incrementing version number - v3.5.1 (4c543488)
|
||||
* incrementing version number - v3.5.0 (d06fb4f0)
|
||||
* incrementing version number - v3.4.3 (5c984250)
|
||||
* incrementing version number - v3.4.2 (3f0dac38)
|
||||
* incrementing version number - v3.4.1 (01e69574)
|
||||
* incrementing version number - v3.4.0 (fd9247c5)
|
||||
* incrementing version number - v3.3.9 (5805e770)
|
||||
* incrementing version number - v3.3.8 (a5603565)
|
||||
* incrementing version number - v3.3.7 (b26f1744)
|
||||
* incrementing version number - v3.3.6 (7fb38792)
|
||||
* incrementing version number - v3.3.4 (a67f84ea)
|
||||
* incrementing version number - v3.3.3 (f94d239b)
|
||||
* incrementing version number - v3.3.2 (ec9dac97)
|
||||
* incrementing version number - v3.3.1 (151cc68f)
|
||||
* incrementing version number - v3.3.0 (fc1ad70f)
|
||||
* incrementing version number - v3.2.3 (b06d3e63)
|
||||
* incrementing version number - v3.2.2 (758ecfcd)
|
||||
* incrementing version number - v3.2.1 (20145074)
|
||||
* incrementing version number - v3.2.0 (9ecac38e)
|
||||
* incrementing version number - v3.1.7 (0b4e81ab)
|
||||
* incrementing version number - v3.1.6 (b3a3b130)
|
||||
* incrementing version number - v3.1.5 (ec19343a)
|
||||
* incrementing version number - v3.1.4 (2452783c)
|
||||
* incrementing version number - v3.1.3 (3b4e9d3f)
|
||||
* incrementing version number - v3.1.2 (40fa3489)
|
||||
* incrementing version number - v3.1.1 (40250733)
|
||||
* incrementing version number - v3.1.0 (0cb386bd)
|
||||
* incrementing version number - v3.0.1 (26f6ea49)
|
||||
* incrementing version number - v3.0.0 (224e08cd)
|
||||
|
||||
##### Bug Fixes
|
||||
|
||||
* wrong mention version (1d1f499b)
|
||||
|
||||
##### Tests
|
||||
|
||||
* use node 20 (a40f54aa)
|
||||
* remove node 18 (6bd22e53)
|
||||
|
||||
#### v3.8.0 (2024-05-15)
|
||||
|
||||
##### Chores
|
||||
|
||||
* **deps:**
|
||||
* update redis docker tag to v7.2.4 (#12272) (7a8116a4)
|
||||
* update actions/cache action to v4 (#12563) (88ff9f9d)
|
||||
* update postgres docker tag to v16.3 (#12560) (339f6267)
|
||||
* update dependency sass-embedded to v1.77.1 (#12565) (07160062)
|
||||
* update postgres docker tag to v16.3 (#12555) (b8a52863)
|
||||
* update dependency sass-embedded to v1.77.0 (#12548) (0fa11561)
|
||||
* update coverallsapp/github-action action to v2.3.0 (#12554) (b4023ff9)
|
||||
* update dependency sass-embedded to v1.76.0 (#12542) (7ee42724)
|
||||
* update commitlint monorepo to v19.3.0 (#12526) (dad57e04)
|
||||
* update commitlint monorepo to v19.2.2 (#12515) (97519ca4)
|
||||
* update dependency smtp-server to v3.13.4 (#12516) (4c468b5c)
|
||||
* update dependency sass-embedded to v1.75.0 (#12499) (a2229e71)
|
||||
* update dependency sass-embedded to v1.74.1 (#12468) (97a649e3)
|
||||
* update dependency mocha to v10.4.0 (#12445) (449c0fcd)
|
||||
* update dependency @commitlint/cli to v19.2.1 (#12420) (dc19c840)
|
||||
* update dependency @commitlint/cli to v19.2.0 (#12412) (41212e8f)
|
||||
* update dependency sass-embedded to v1.72.0 (#12406) (6d62e592)
|
||||
* update commitlint monorepo to v19.1.0 (#12403) (3d095a6b)
|
||||
* up themes (1e3a321d)
|
||||
* incrementing version number - v3.7.5 (6882894d)
|
||||
* update changelog for v3.7.5 (febeede5)
|
||||
* incrementing version number - v3.7.4 (6678744c)
|
||||
* incrementing version number - v3.7.3 (2d62b6f6)
|
||||
* incrementing version number - v3.7.2 (cc257e7e)
|
||||
* up harmony (80a1a0e0)
|
||||
* up harmony (1a000eae)
|
||||
* incrementing version number - v3.7.1 (712365a5)
|
||||
* incrementing version number - v3.7.0 (9a6153d7)
|
||||
* incrementing version number - v3.6.7 (86a17e38)
|
||||
* incrementing version number - v3.6.6 (6604bf37)
|
||||
* incrementing version number - v3.6.5 (6c653625)
|
||||
* incrementing version number - v3.6.4 (83d131b4)
|
||||
* incrementing version number - v3.6.3 (fc7d2bfd)
|
||||
* incrementing version number - v3.6.2 (0f577a57)
|
||||
* incrementing version number - v3.6.1 (f1a69468)
|
||||
* incrementing version number - v3.6.0 (4cdf85f8)
|
||||
* incrementing version number - v3.5.3 (ed0e8783)
|
||||
* incrementing version number - v3.5.2 (52fbb2da)
|
||||
* incrementing version number - v3.5.1 (4c543488)
|
||||
* incrementing version number - v3.5.0 (d06fb4f0)
|
||||
* incrementing version number - v3.4.3 (5c984250)
|
||||
* incrementing version number - v3.4.2 (3f0dac38)
|
||||
* incrementing version number - v3.4.1 (01e69574)
|
||||
* incrementing version number - v3.4.0 (fd9247c5)
|
||||
* incrementing version number - v3.3.9 (5805e770)
|
||||
* incrementing version number - v3.3.8 (a5603565)
|
||||
* incrementing version number - v3.3.7 (b26f1744)
|
||||
* incrementing version number - v3.3.6 (7fb38792)
|
||||
* incrementing version number - v3.3.4 (a67f84ea)
|
||||
* incrementing version number - v3.3.3 (f94d239b)
|
||||
* incrementing version number - v3.3.2 (ec9dac97)
|
||||
* incrementing version number - v3.3.1 (151cc68f)
|
||||
* incrementing version number - v3.3.0 (fc1ad70f)
|
||||
* incrementing version number - v3.2.3 (b06d3e63)
|
||||
* incrementing version number - v3.2.2 (758ecfcd)
|
||||
* incrementing version number - v3.2.1 (20145074)
|
||||
* incrementing version number - v3.2.0 (9ecac38e)
|
||||
* incrementing version number - v3.1.7 (0b4e81ab)
|
||||
* incrementing version number - v3.1.6 (b3a3b130)
|
||||
* incrementing version number - v3.1.5 (ec19343a)
|
||||
* incrementing version number - v3.1.4 (2452783c)
|
||||
* incrementing version number - v3.1.3 (3b4e9d3f)
|
||||
* incrementing version number - v3.1.2 (40fa3489)
|
||||
* incrementing version number - v3.1.1 (40250733)
|
||||
* incrementing version number - v3.1.0 (0cb386bd)
|
||||
* incrementing version number - v3.0.1 (26f6ea49)
|
||||
* incrementing version number - v3.0.0 (224e08cd)
|
||||
* **i18n:**
|
||||
* fallback strings for new resources: nodebb.flags, nodebb.user (19f8a77c)
|
||||
* fallback strings for new resources: nodebb.user (7ad477af)
|
||||
* fallback strings for new resources: nodebb.admin-settings-navigation (18eec147)
|
||||
* fallback strings for new resources: nodebb.admin-advanced-events (213db951)
|
||||
* fallback strings for new resources: nodebb.admin-manage-users (43f52737)
|
||||
|
||||
##### New Features
|
||||
|
||||
* track uid for email/username changes, closes #12454 (325d00ea)
|
||||
* closes #12477, allow editing moderation notes (af205cc4)
|
||||
* parse moderation notes as markdown (7d24b04b)
|
||||
* closes #12490, show profile flags on account info page (b429045f)
|
||||
* closes #12491, add unban & unmute history (985663fa)
|
||||
* new client-side hook to allow plugins to modify relogin url (c778f6eb)
|
||||
* closes #12453, filter events by user/group (4030f18a)
|
||||
* move all user profile pics to folder, closes #12449 (#12450) (8f9ac5c1)
|
||||
* allow customizing uploads.upload socket methods (dc67f54e)
|
||||
* allow custom fields in user csv export, closes #12401 (83ca23ca)
|
||||
|
||||
##### Bug Fixes
|
||||
|
||||
* **deps:**
|
||||
* update dependency ace-builds to v1.33.2 (#12572) (19602dcd)
|
||||
* update dependency esbuild to v0.21.2 (#12569) (dc4f32af)
|
||||
* update dependency rimraf to v5.0.7 (#12568) (035ced85)
|
||||
* update dependency sass to v1.77.1 (#12566) (7a64410a)
|
||||
* update dependency rimraf to v5.0.6 (#12562) (185d61fc)
|
||||
* update dependency validator to v13.12.0 (#12556) (7a009445)
|
||||
* update dependency sass to v1.77.0 (#12550) (d3840280)
|
||||
* update dependency mongodb to v6.6.1 (#12547) (751a143e)
|
||||
* update dependency esbuild to v0.21.1 (#12549) (ed07cfcc)
|
||||
* update dependency semver to v7.6.2 (#12552) (5264deca)
|
||||
* update dependency mongodb to v6.6.0 (#12544) (4813772c)
|
||||
* update dependency nodebb-plugin-composer-default to v10.2.35 (#12546) (8fcfb181)
|
||||
* update dependency sass to v1.76.0 (#12541) (8f60603b)
|
||||
* update dependency tough-cookie to v4.1.4 (#12540) (ad708c9f)
|
||||
* update dependency lru-cache to v10.2.2 (#12532) (c036786c)
|
||||
* update dependency jquery-ui to v1.13.3 (#12534) (3f62b892)
|
||||
* update dependency nodebb-widget-essentials to v7.0.16 (#12535) (d5bfe32e)
|
||||
* update dependency nodebb-plugin-composer-default to v10.2.34 (#12530) (bc51968e)
|
||||
* update dependency ace-builds to v1.33.1 (#12527) (18a843bc)
|
||||
* update fontsource monorepo (#12523) (bde9136b)
|
||||
* update dependency ipaddr.js to v2.2.0 (#12522) (d6d0ebd5)
|
||||
* update dependency cropperjs to v1.6.2 (#12524) (5e7ec5b6)
|
||||
* update dependency ioredis to v5.4.1 (#12520) (66a35490)
|
||||
* update dependency ioredis to v5.4.0 (#12519) (da0888e6)
|
||||
* update dependency nodebb-plugin-spam-be-gone to v2.2.2 (#12518) (5b4471bf)
|
||||
* update dependency nodebb-plugin-emoji to v5.1.15 (#12517) (20f8ba78)
|
||||
* update dependency nodebb-theme-harmony to v1.2.49 (#12497) (c4cb9d36)
|
||||
* update dependency nodebb-plugin-mentions to v4.5.2 (#12470) (37bdf753)
|
||||
* update dependency ace-builds to v1.33.0 (#12501) (83a932e6)
|
||||
* update dependency sass to v1.75.0 (#12500) (f5c3d4e1)
|
||||
* update dependency nodebb-theme-harmony to v1.2.47 (#12487) (2bcd5239)
|
||||
* update dependency cron to v3.1.7 (#12484) (6237d5fe)
|
||||
* update dependency workerpool to v9.1.1 (#12475) (b6193629)
|
||||
* update dependency nodebb-theme-persona to v13.3.13 (#12479) (01b3a06a)
|
||||
* update dependency nodebb-theme-harmony to v1.2.46 (#12478) (499514a8)
|
||||
* update dependency nodebb-theme-persona to v13.3.12 (#12467) (0f209fa4)
|
||||
* update dependency nodebb-theme-harmony to v1.2.45 (#12466) (1fef883b)
|
||||
* update dependency sass to v1.74.1 (#12469) (8f771b6f)
|
||||
* update dependency pg-cursor to v2.10.5 (#12462) (dde7a498)
|
||||
* update dependency pg to v8.11.5 (#12461) (623ccc53)
|
||||
* update dependency @fortawesome/fontawesome-free to v6.5.2 (#12460) (1953277b)
|
||||
* update dependency nodebb-plugin-mentions to v4.4.3 (#12463) (d24c4148)
|
||||
* update dependency pg to v8.11.4 (#12455) (a7d9811e)
|
||||
* update dependency @fontsource/poppins to v5.0.13 (#12457) (5c214930)
|
||||
* update dependency pg-cursor to v2.10.4 (#12456) (af10aaaa)
|
||||
* update dependency ace-builds to v1.32.9 (#12451) (deacf366)
|
||||
* update dependency express to v4.19.2 (#12441) (263ca1ca)
|
||||
* update dependency winston to v3.13.0 (#12440) (08be8f3c)
|
||||
* update dependency webpack to v5.91.0 (#12426) (ca82d020)
|
||||
* update dependency ace-builds to v1.32.8 (#12439) (23f46345)
|
||||
* update dependency sanitize-html to v2.13.0 (#12427) (2550f26f)
|
||||
* update dependency postcss to v8.4.38 (#12429) (ace6f12f)
|
||||
* update dependency express to v4.19.1 (#12425) (a27b999f)
|
||||
* update dependency autoprefixer to v10.4.19 (#12428) (fa57b81f)
|
||||
* update dependency nodebb-theme-lavender to v7.1.8 (15c7691c)
|
||||
* update dependency nodebb-plugin-mentions to v4.4.2 (#12410) (a8b631dd)
|
||||
* update dependency postcss to v8.4.37 (#12417) (9c91f093)
|
||||
* update dependency nodemailer to v6.9.13 (#12424) (c7a506a8)
|
||||
* update dependency nodebb-plugin-ntfy to v1.7.4 (#12414) (4e119783)
|
||||
* update dependency esbuild to v0.20.2 (#12411) (93fb1e0f)
|
||||
* update socket.io packages to v4.7.5 (#12409) (6a730312)
|
||||
* update dependency @socket.io/redis-adapter to v8.3.0 (#12405) (05219412)
|
||||
* update dependency sass to v1.72.0 (#12407) (89684786)
|
||||
* update dependency mongodb to v6.5.0 (#12402) (b163264e)
|
||||
* update dependency archiver to v7.0.1 (#12400) (817a5468)
|
||||
* update dependency nodemailer to v6.9.12 (#12398) (27d5aaa5)
|
||||
* update dependency nodebb-theme-harmony to v1.2.38 (#12397) (b9a1fc3f)
|
||||
* update fontsource monorepo (#12390) (8d6ef3d5)
|
||||
* update dependency nodebb-plugin-mentions to v4.4.1 (#12393) (4d18c38b)
|
||||
* update dependency winston to v3.12.0 (#12391) (98ff47ec)
|
||||
* chat message search, closes #12571 (49a510e9)
|
||||
* chat message search, closes #12571 (d926d9dd)
|
||||
* some issues with "small" docker improvements (#12564) (bc807c46)
|
||||
* use reference object for post summary v3 api call (2a58d099)
|
||||
* unintentional object pollution by buildForSelectCategories (88a5dfb7)
|
||||
* getCategoryById to return shallow clone of object (dc35bf8b)
|
||||
* #12533, go to post after changing owner (983a35e6)
|
||||
* topic selection in merge (f2892385)
|
||||
* closes #12474, fix search dropdown on mobile for merge (ce03680f)
|
||||
* #12481, remove priv groups from groupslug:groupname mapping (#12482) (7033d11e)
|
||||
* bump 2factor (4d2c95ca)
|
||||
* date on upgrade script (73f98568)
|
||||
* use CategoryObject in admins-mods schema def (4da1e9c4)
|
||||
* missing uid for modify event, closes #12394 (7c37f32d)
|
||||
* **docker:** support all previously used env variables correctly (#12567) (995b2de5)
|
||||
|
||||
##### Refactors
|
||||
|
||||
* add missing form-label class (36016ee1)
|
||||
* use groupslug:groupname for search and acp page (ee5c021c)
|
||||
|
||||
##### Tests
|
||||
|
||||
* fix schema (5eb8c90b)
|
||||
* fix redis tests (57422420)
|
||||
* fix moderation note test (fed5165f)
|
||||
* add back timestamp (c73f759c)
|
||||
|
||||
#### v3.7.5 (2024-05-03)
|
||||
|
||||
##### Chores
|
||||
|
||||
* incrementing version number - v3.7.4 (6678744c)
|
||||
* update changelog for v3.7.4 (8a1b281b)
|
||||
* incrementing version number - v3.7.3 (2d62b6f6)
|
||||
* incrementing version number - v3.7.2 (cc257e7e)
|
||||
* incrementing version number - v3.7.1 (712365a5)
|
||||
* incrementing version number - v3.7.0 (9a6153d7)
|
||||
* incrementing version number - v3.6.7 (86a17e38)
|
||||
* incrementing version number - v3.6.6 (6604bf37)
|
||||
* incrementing version number - v3.6.5 (6c653625)
|
||||
* incrementing version number - v3.6.4 (83d131b4)
|
||||
* incrementing version number - v3.6.3 (fc7d2bfd)
|
||||
* incrementing version number - v3.6.2 (0f577a57)
|
||||
* incrementing version number - v3.6.1 (f1a69468)
|
||||
* incrementing version number - v3.6.0 (4cdf85f8)
|
||||
* incrementing version number - v3.5.3 (ed0e8783)
|
||||
* incrementing version number - v3.5.2 (52fbb2da)
|
||||
* incrementing version number - v3.5.1 (4c543488)
|
||||
* incrementing version number - v3.5.0 (d06fb4f0)
|
||||
* incrementing version number - v3.4.3 (5c984250)
|
||||
* incrementing version number - v3.4.2 (3f0dac38)
|
||||
* incrementing version number - v3.4.1 (01e69574)
|
||||
* incrementing version number - v3.4.0 (fd9247c5)
|
||||
* incrementing version number - v3.3.9 (5805e770)
|
||||
* incrementing version number - v3.3.8 (a5603565)
|
||||
* incrementing version number - v3.3.7 (b26f1744)
|
||||
* incrementing version number - v3.3.6 (7fb38792)
|
||||
* incrementing version number - v3.3.4 (a67f84ea)
|
||||
* incrementing version number - v3.3.3 (f94d239b)
|
||||
* incrementing version number - v3.3.2 (ec9dac97)
|
||||
* incrementing version number - v3.3.1 (151cc68f)
|
||||
* incrementing version number - v3.3.0 (fc1ad70f)
|
||||
* incrementing version number - v3.2.3 (b06d3e63)
|
||||
* incrementing version number - v3.2.2 (758ecfcd)
|
||||
* incrementing version number - v3.2.1 (20145074)
|
||||
* incrementing version number - v3.2.0 (9ecac38e)
|
||||
* incrementing version number - v3.1.7 (0b4e81ab)
|
||||
* incrementing version number - v3.1.6 (b3a3b130)
|
||||
* incrementing version number - v3.1.5 (ec19343a)
|
||||
* incrementing version number - v3.1.4 (2452783c)
|
||||
* incrementing version number - v3.1.3 (3b4e9d3f)
|
||||
* incrementing version number - v3.1.2 (40fa3489)
|
||||
* incrementing version number - v3.1.1 (40250733)
|
||||
* incrementing version number - v3.1.0 (0cb386bd)
|
||||
* incrementing version number - v3.0.1 (26f6ea49)
|
||||
* incrementing version number - v3.0.0 (224e08cd)
|
||||
|
||||
##### Bug Fixes
|
||||
|
||||
* #12543, use PATCH (420c8999)
|
||||
|
||||
#### v3.7.4 (2024-04-17)
|
||||
|
||||
##### Chores
|
||||
|
||||
94
Dockerfile
94
Dockerfile
@@ -1,51 +1,75 @@
|
||||
FROM --platform=$BUILDPLATFORM node:lts as npm
|
||||
FROM node:lts as build
|
||||
|
||||
RUN mkdir -p /usr/src/build && \
|
||||
chown -R node:node /usr/src/build
|
||||
WORKDIR /usr/src/build
|
||||
ENV NODE_ENV=production \
|
||||
DAEMON=false \
|
||||
SILENT=false \
|
||||
USER=nodebb \
|
||||
UID=1001 \
|
||||
GID=1001
|
||||
|
||||
ARG NODE_ENV
|
||||
ENV NODE_ENV $NODE_ENV
|
||||
WORKDIR /usr/src/app/
|
||||
|
||||
COPY --chown=node:node install/package.json /usr/src/build/package.json
|
||||
COPY . /usr/src/app/
|
||||
|
||||
USER node
|
||||
# Install corepack to allow usage of other package managers
|
||||
RUN corepack enable
|
||||
|
||||
# Removing unnecessary files for us
|
||||
RUN find . -mindepth 1 -maxdepth 1 -name '.*' ! -name '.' ! -name '..' -exec bash -c 'echo "Deleting {}"; rm -rf {}' \;
|
||||
|
||||
# Prepage package.json
|
||||
RUN cp /usr/src/app/install/package.json /usr/src/app/
|
||||
|
||||
RUN apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive \
|
||||
apt-get -y --no-install-recommends install \
|
||||
tini
|
||||
|
||||
RUN groupadd --gid ${GID} ${USER} \
|
||||
&& useradd --uid ${UID} --gid ${GID} --home-dir /usr/src/app/ --shell /bin/bash ${USER} \
|
||||
&& chown -R ${USER}:${USER} /usr/src/app/
|
||||
|
||||
USER ${USER}
|
||||
|
||||
RUN npm install --omit=dev
|
||||
# TODO: generate lockfiles for each package manager
|
||||
## pnpm import \
|
||||
|
||||
FROM node:lts as rebuild
|
||||
FROM node:lts-slim AS final
|
||||
|
||||
ARG BUILDPLATFORM
|
||||
ARG TARGETPLATFORM
|
||||
ENV NODE_ENV=production \
|
||||
DAEMON=false \
|
||||
SILENT=false \
|
||||
USER=nodebb \
|
||||
UID=1001 \
|
||||
GID=1001
|
||||
|
||||
RUN mkdir -p /usr/src/build && \
|
||||
chown -R node:node /usr/src/build
|
||||
WORKDIR /usr/src/app/
|
||||
|
||||
COPY --from=npm /usr/src/build /usr/src/build
|
||||
RUN corepack enable \
|
||||
&& groupadd --gid ${GID} ${USER} \
|
||||
&& useradd --uid ${UID} --gid ${GID} --home-dir /usr/src/app/ --shell /bin/bash ${USER} \
|
||||
&& mkdir -p /usr/src/app/logs/ /opt/config/ \
|
||||
&& chown -R ${USER}:${USER} /usr/src/app/ /opt/config/
|
||||
|
||||
RUN if [ $BUILDPLATFORM != $TARGETPLATFORM ]; then \
|
||||
npm rebuild && \
|
||||
npm cache clean --force; fi
|
||||
COPY --from=build --chown=${USER}:${USER} /usr/src/app/ /usr/src/app/install/docker/setup.json /usr/src/app/
|
||||
COPY --from=build --chown=${USER}:${USER} /usr/bin/tini /usr/src/app/install/docker/entrypoint.sh /usr/local/bin/
|
||||
|
||||
FROM node:lts-slim as run
|
||||
RUN chmod +x /usr/local/bin/entrypoint.sh \
|
||||
&& chmod +x /usr/local/bin/tini
|
||||
|
||||
ARG NODE_ENV
|
||||
ENV NODE_ENV=$NODE_ENV \
|
||||
daemon=false \
|
||||
silent=false
|
||||
# TODO: Have docker-compose use environment variables to create files like setup.json and config.json.
|
||||
# COPY --from=hairyhenderson/gomplate:stable /gomplate /usr/local/bin/gomplate
|
||||
|
||||
RUN mkdir -p /usr/src/app && \
|
||||
chown -R node:node /usr/src/app
|
||||
|
||||
COPY --chown=node:node --from=rebuild /usr/src/build /usr/src/app
|
||||
|
||||
|
||||
WORKDIR /usr/src/app
|
||||
|
||||
USER node
|
||||
|
||||
COPY --chown=node:node . /usr/src/app
|
||||
USER ${USER}
|
||||
|
||||
EXPOSE 4567
|
||||
VOLUME ["/usr/src/app/node_modules", "/usr/src/app/build", "/usr/src/app/public/uploads", "/opt/config"]
|
||||
ENTRYPOINT ["./install/docker/entrypoint.sh"]
|
||||
|
||||
VOLUME ["/usr/src/app/node_modules", "/usr/src/app/build", "/usr/src/app/public/uploads", "/opt/config/"]
|
||||
|
||||
# Utilising tini as our init system within the Docker container for graceful start-up and termination.
|
||||
# Tini serves as an uncomplicated init system, adept at managing the reaping of zombie processes and forwarding signals.
|
||||
# This approach is crucial to circumvent issues with unmanaged subprocesses and signal handling in containerised environments.
|
||||
# By integrating tini, we enhance the reliability and stability of our Docker containers.
|
||||
# Ensures smooth start-up and shutdown processes, and reliable, safe handling of signal processing.
|
||||
ENTRYPOINT ["tini", "--", "entrypoint.sh"]
|
||||
77
dev.Dockerfile
Normal file
77
dev.Dockerfile
Normal file
@@ -0,0 +1,77 @@
|
||||
FROM node:lts AS git
|
||||
|
||||
ENV USER=nodebb \
|
||||
UID=1001 \
|
||||
GID=1001
|
||||
|
||||
WORKDIR /usr/src/app/
|
||||
|
||||
RUN groupadd --gid ${GID} ${USER} \
|
||||
&& useradd --uid ${UID} --gid ${GID} --home-dir /usr/src/app/ --shell /bin/bash ${USER} \
|
||||
&& chown -R ${USER}:${USER} /usr/src/app/
|
||||
|
||||
RUN apt-get update \
|
||||
&& apt-get -y --no-install-recommends install tini
|
||||
|
||||
USER ${USER}
|
||||
|
||||
# Change to the git branch you want to test
|
||||
RUN git clone --recurse-submodules -j8 --depth 1 https://github.com/NodeBB/NodeBB.git .
|
||||
|
||||
RUN find . -mindepth 1 -maxdepth 1 -name '.*' ! -name '.' ! -name '..' -exec bash -c 'echo "Deleting {}"; rm -rf {}' \;
|
||||
|
||||
FROM node:lts AS node_modules_touch
|
||||
|
||||
ENV NODE_ENV=development \
|
||||
USER=nodebb \
|
||||
UID=1001 \
|
||||
GID=1001
|
||||
|
||||
WORKDIR /usr/src/app/
|
||||
|
||||
RUN corepack enable \
|
||||
&& groupadd --gid ${GID} ${USER} \
|
||||
&& useradd --uid ${UID} --gid ${GID} --home-dir /usr/src/app/ --shell /bin/bash ${USER} \
|
||||
&& chown -R ${USER}:${USER} /usr/src/app/
|
||||
|
||||
COPY --from=git --chown=${USER}:${USER} /usr/src/app/install/package.json /usr/src/app/
|
||||
|
||||
USER ${USER}
|
||||
|
||||
RUN npm install
|
||||
|
||||
FROM node:lts-slim AS final
|
||||
|
||||
ENV NODE_ENV=development \
|
||||
DAEMON=false \
|
||||
SILENT=false \
|
||||
USER=nodebb \
|
||||
UID=1001 \
|
||||
GID=1001
|
||||
|
||||
WORKDIR /usr/src/app/
|
||||
|
||||
RUN corepack enable \
|
||||
&& groupadd --gid ${GID} ${USER} \
|
||||
&& useradd --uid ${UID} --gid ${GID} --home-dir /usr/src/app/ --shell /bin/bash ${USER} \
|
||||
&& mkdir -p /usr/src/app/logs/ /opt/config/ \
|
||||
&& chown -R ${USER}:${USER} /usr/src/app/ /opt/config/
|
||||
|
||||
COPY --from=build --chown=${USER}:${USER} /usr/src/app/ /usr/src/app/install/docker/setup.json /usr/src/app/
|
||||
COPY --from=build --chown=${USER}:${USER} /usr/bin/tini /usr/src/app/install/docker/entrypoint.sh /usr/local/bin/
|
||||
COPY --from=node_modules_touch --chown=${USER}:${USER} /usr/src/app/ /usr/src/app/
|
||||
COPY --from=git --chown=${USER}:${USER} /usr/src/app/ /usr/src/app/
|
||||
|
||||
RUN chmod +x /usr/local/bin/entrypoint.sh \
|
||||
&& chmod +x /usr/local/bin/tini
|
||||
|
||||
# TODO: Have docker-compose use environment variables to create files like setup.json and config.json.
|
||||
# COPY --from=hairyhenderson/gomplate:stable /gomplate /usr/local/bin/gomplate
|
||||
|
||||
USER ${USER}
|
||||
|
||||
EXPOSE 4567
|
||||
|
||||
VOLUME ["/usr/src/app/node_modules", "/usr/src/app/build", "/usr/src/app/public/uploads", "/opt/config/"]
|
||||
|
||||
ENTRYPOINT ["tini", "--", "entrypoint.sh"]
|
||||
70
docker-compose-pgsql.yml
Normal file
70
docker-compose-pgsql.yml
Normal file
@@ -0,0 +1,70 @@
|
||||
version: '3.8'
|
||||
|
||||
services:
|
||||
nodebb:
|
||||
build: .
|
||||
# image: ghcr.io/nodebb/nodebb:latest
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- '4567:4567' # comment this out if you don't want to expose NodeBB to the host, or change the first number to any port you want
|
||||
volumes:
|
||||
- nodebb-build:/usr/src/app/build
|
||||
- nodebb-uploads:/usr/src/app/public/uploads
|
||||
- nodebb-config:/opt/config
|
||||
- ./install/docker/setup.json:/usr/src/app/setup.json
|
||||
|
||||
postgres:
|
||||
image: postgres:16.3-alpine
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
POSTGRES_USER: nodebb
|
||||
POSTGRES_PASSWORD: nodebb
|
||||
POSTGRES_DB: nodebb
|
||||
volumes:
|
||||
- postgres-data:/var/lib/postgresql/data
|
||||
|
||||
redis:
|
||||
image: redis:7.2.4-alpine
|
||||
restart: unless-stopped
|
||||
command: ['redis-server', '--appendonly', 'yes', '--loglevel', 'warning']
|
||||
# command: ["redis-server", "--save", "60", "1", "--loglevel", "warning"] # uncomment if you want to use snapshotting instead of AOF
|
||||
volumes:
|
||||
- redis-data:/data
|
||||
profiles:
|
||||
- redis
|
||||
|
||||
volumes:
|
||||
postgres-data:
|
||||
driver: local
|
||||
driver_opts:
|
||||
o: bind
|
||||
type: none
|
||||
device: ./.docker/database/postgresql/data
|
||||
|
||||
redis-data:
|
||||
driver: local
|
||||
driver_opts:
|
||||
o: bind
|
||||
type: none
|
||||
device: ./.docker/database/redis
|
||||
|
||||
nodebb-build:
|
||||
driver: local
|
||||
driver_opts:
|
||||
o: bind
|
||||
type: none
|
||||
device: ./.docker/build
|
||||
|
||||
nodebb-uploads:
|
||||
driver: local
|
||||
driver_opts:
|
||||
o: bind
|
||||
type: none
|
||||
device: ./.docker/public/uploads
|
||||
|
||||
nodebb-config:
|
||||
driver: local
|
||||
driver_opts:
|
||||
o: bind
|
||||
type: none
|
||||
device: ./.docker/config
|
||||
51
docker-compose-redis.yml
Normal file
51
docker-compose-redis.yml
Normal file
@@ -0,0 +1,51 @@
|
||||
version: '3.8'
|
||||
|
||||
services:
|
||||
nodebb:
|
||||
build: .
|
||||
# image: ghcr.io/nodebb/nodebb:latest
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- '4567:4567' # comment this out if you don't want to expose NodeBB to the host, or change the first number to any port you want
|
||||
volumes:
|
||||
- nodebb-build:/usr/src/app/build
|
||||
- nodebb-uploads:/usr/src/app/public/uploads
|
||||
- nodebb-config:/opt/config
|
||||
- ./install/docker/setup.json:/usr/src/app/setup.json
|
||||
|
||||
redis:
|
||||
image: redis:7.2.4-alpine
|
||||
restart: unless-stopped
|
||||
command: ['redis-server', '--appendonly', 'yes', '--loglevel', 'warning']
|
||||
# command: ["redis-server", "--save", "60", "1", "--loglevel", "warning"] # uncomment if you want to use snapshotting instead of AOF
|
||||
volumes:
|
||||
- redis-data:/data
|
||||
|
||||
volumes:
|
||||
redis-data:
|
||||
driver: local
|
||||
driver_opts:
|
||||
o: bind
|
||||
type: none
|
||||
device: ./.docker/database/redis
|
||||
|
||||
nodebb-build:
|
||||
driver: local
|
||||
driver_opts:
|
||||
o: bind
|
||||
type: none
|
||||
device: ./.docker/build
|
||||
|
||||
nodebb-uploads:
|
||||
driver: local
|
||||
driver_opts:
|
||||
o: bind
|
||||
type: none
|
||||
device: ./.docker/public/uploads
|
||||
|
||||
nodebb-config:
|
||||
driver: local
|
||||
driver_opts:
|
||||
o: bind
|
||||
type: none
|
||||
device: ./.docker/config
|
||||
@@ -3,53 +3,89 @@ version: '3.8'
|
||||
services:
|
||||
nodebb:
|
||||
build: .
|
||||
# image: ghcr.io/nodebb/nodebb:latest
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "4567:4567/tcp" # comment this out if you don't want to expose NodeBB to the host, or change the first number to any port you want
|
||||
# uncomment if you want to use another container as a reverse proxy
|
||||
# expose:
|
||||
# - 4567
|
||||
- '4567:4567' # comment this out if you don't want to expose NodeBB to the host, or change the first number to any port you want
|
||||
volumes:
|
||||
- ./.docker/build:/usr/src/app/build
|
||||
- ./.docker/public/uploads:/usr/src/app/public/uploads
|
||||
- ./.docker:/opt/config
|
||||
- nodebb-build:/usr/src/app/build
|
||||
- nodebb-uploads:/usr/src/app/public/uploads
|
||||
- nodebb-config:/opt/config
|
||||
- ./install/docker/setup.json:/usr/src/app/setup.json
|
||||
|
||||
mongo:
|
||||
image: "mongo:7-jammy"
|
||||
image: 'mongo:7-jammy'
|
||||
restart: unless-stopped
|
||||
expose:
|
||||
- "27017"
|
||||
ports:
|
||||
- '27017:27017'
|
||||
environment:
|
||||
MONGO_INITDB_ROOT_USERNAME: nodebb
|
||||
MONGO_INITDB_ROOT_PASSWORD: nodebb
|
||||
MONGO_INITDB_DATABASE: nodebb
|
||||
volumes:
|
||||
- ./.docker/database/mongo/config:/etc/mongo
|
||||
- ./.docker/database/mongo/data:/data/db
|
||||
- mongo-data:/data/db
|
||||
- ./install/docker/mongodb-user-init.js:/docker-entrypoint-initdb.d/user-init.js
|
||||
profiles:
|
||||
- mongo
|
||||
postgres:
|
||||
image: postgres:16.2-alpine
|
||||
redis:
|
||||
image: redis:7.2.4-alpine
|
||||
restart: unless-stopped
|
||||
command: ['redis-server', '--appendonly', 'yes', '--loglevel', 'warning']
|
||||
# command: ['redis-server', '--save', '60', '1', '--loglevel', 'warning'] # uncomment if you want to use snapshotting instead of AOF
|
||||
volumes:
|
||||
- redis-data:/data
|
||||
profiles:
|
||||
- redis
|
||||
|
||||
postgres:
|
||||
image: postgres:16.1-alpine
|
||||
restart: unless-stopped
|
||||
expose:
|
||||
- "5432"
|
||||
environment:
|
||||
POSTGRES_USER: nodebb
|
||||
POSTGRES_PASSWORD: nodebb
|
||||
POSTGRES_DB: nodebb
|
||||
volumes:
|
||||
- ./.docker/database/postgresql/data:/var/lib/postgresql/data
|
||||
- postgres-data:/var/lib/postgresql/data
|
||||
profiles:
|
||||
- postgres
|
||||
redis:
|
||||
image: redis:7.2.3-alpine
|
||||
restart: unless-stopped
|
||||
command: ["redis-server", "--appendonly", "yes", "--loglevel", "warning"]
|
||||
# command: ["redis-server", "--save", "60", "1", "--loglevel", "warning"] # uncomment if you want to use snapshotting instead of AOF
|
||||
expose:
|
||||
- "6379"
|
||||
volumes:
|
||||
- ./.docker/database/redis:/data
|
||||
profiles:
|
||||
- redis
|
||||
|
||||
volumes:
|
||||
mongo-data:
|
||||
driver: local
|
||||
driver_opts:
|
||||
o: bind
|
||||
type: none
|
||||
device: ./.docker/database/mongo/data
|
||||
|
||||
redis-data:
|
||||
driver: local
|
||||
driver_opts:
|
||||
o: bind
|
||||
type: none
|
||||
device: ./.docker/database/redis
|
||||
|
||||
postgres-data:
|
||||
driver: local
|
||||
driver_opts:
|
||||
o: bind
|
||||
type: none
|
||||
device: ./.docker/database/postgresql/data
|
||||
|
||||
nodebb-build:
|
||||
driver: local
|
||||
driver_opts:
|
||||
o: bind
|
||||
type: none
|
||||
device: ./.docker/build
|
||||
|
||||
nodebb-uploads:
|
||||
driver: local
|
||||
driver_opts:
|
||||
o: bind
|
||||
type: none
|
||||
device: ./.docker/public/uploads
|
||||
|
||||
nodebb-config:
|
||||
driver: local
|
||||
driver_opts:
|
||||
o: bind
|
||||
type: none
|
||||
device: ./.docker/config
|
||||
|
||||
@@ -137,7 +137,7 @@
|
||||
"sitemapTopics": 500,
|
||||
"maintenanceMode": 0,
|
||||
"maintenanceModeStatus": 503,
|
||||
"votesArePublic": 0,
|
||||
"voteVisibility": "privileged",
|
||||
"maximumInvites": 0,
|
||||
"username:disableEdit": 0,
|
||||
"email:disableEdit": 0,
|
||||
|
||||
@@ -1,46 +1,198 @@
|
||||
#!/bin/bash
|
||||
|
||||
export CONFIG_DIR="${CONFIG_DIR:-/opt/config}"
|
||||
export CONFIG=$CONFIG_DIR/config.json
|
||||
export FORCE_BUILD_BEFORE_START="${FORCE_BUILD_BEFORE_START:-false}"
|
||||
set -e
|
||||
|
||||
# Supported verbs: install (web install), setup (interactive CLI session). Default: web install
|
||||
# TODO: constraint it using a hash set (or hash table)
|
||||
export NODEBB_INIT_VERB="${NODEBB_INIT_VERB:-install}"
|
||||
# Setup variable for backward compatibility, default: <empty>
|
||||
export SETUP="${SETUP:-}"
|
||||
# Function to set default values for environment variables
|
||||
set_defaults() {
|
||||
export CONFIG_DIR="${CONFIG_DIR:-/opt/config}"
|
||||
export CONFIG="$CONFIG_DIR/config.json"
|
||||
export NODEBB_INIT_VERB="${NODEBB_INIT_VERB:-install}"
|
||||
export NODEBB_BUILD_VERB="${NODEBB_BUILD_VERB:-build}"
|
||||
export START_BUILD="${START_BUILD:-${FORCE_BUILD_BEFORE_START:-false}}"
|
||||
export SETUP="${SETUP:-}"
|
||||
export PACKAGE_MANAGER="${PACKAGE_MANAGER:-npm}"
|
||||
export OVERRIDE_UPDATE_LOCK="${OVERRIDE_UPDATE_LOCK:-false}"
|
||||
}
|
||||
|
||||
mkdir -p $CONFIG_DIR
|
||||
|
||||
# if the folder is mounted as a volume this can fail, the check below is to ensure there is still write access
|
||||
chmod -fR 760 $CONFIG_DIR 2> /dev/null
|
||||
|
||||
if [[ ! -w $CONFIG_DIR ]]; then
|
||||
echo "panic: no write permission for $CONFIG_DIR"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
[[ -f $CONFIG_DIR/package.json ]] || cp install/package.json $CONFIG_DIR/package.json
|
||||
[[ -f $CONFIG_DIR/package-lock.json ]] || touch $CONFIG_DIR/package-lock.json
|
||||
|
||||
ln -fs $CONFIG_DIR/package.json package.json
|
||||
ln -fs $CONFIG_DIR/package-lock.json package-lock.json
|
||||
|
||||
npm install --omit=dev
|
||||
|
||||
if [[ -n $SETUP ]]; then
|
||||
echo "Setup environmental variable detected"
|
||||
echo "Starting setup session"
|
||||
./nodebb setup --config=$CONFIG
|
||||
elif [ -f $CONFIG ]; then
|
||||
echo "Config file exist at $CONFIG, assuming it is a valid config"
|
||||
echo "Starting forum"
|
||||
if [ "$FORCE_BUILD_BEFORE_START" = true ]; then
|
||||
./nodebb build --config=$CONFIG
|
||||
# Function to check if a directory exists and is writable
|
||||
check_directory() {
|
||||
local dir="$1"
|
||||
if [ ! -d "$dir" ]; then
|
||||
echo "Error: Directory $dir does not exist. Creating..."
|
||||
mkdir -p "$dir" || {
|
||||
echo "Error: Failed to create directory $dir"
|
||||
exit 1
|
||||
}
|
||||
fi
|
||||
./nodebb start --config=$CONFIG
|
||||
else
|
||||
echo "Config file not found at $CONFIG"
|
||||
if [ ! -w "$dir" ]; then
|
||||
echo "Warning: No write permission for directory $dir, attempting to fix..."
|
||||
chown -R $USER:$USER "$dir" || true # attempt to change ownership, do not exit on failure
|
||||
chmod -R 760 "$dir" || true # attempt to change permissions, do not exit on failure
|
||||
if [ ! -w "$dir" ]; then
|
||||
echo "Error: No write permission for directory $dir. Exiting..."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# Function to copy or link package.json and lock files based on package manager
|
||||
copy_or_link_files() {
|
||||
local src_dir="$1"
|
||||
local dest_dir="$2"
|
||||
local package_manager="$3"
|
||||
local lock_file
|
||||
|
||||
case "$package_manager" in
|
||||
yarn) lock_file="yarn.lock" ;;
|
||||
npm) lock_file="package-lock.json" ;;
|
||||
pnpm) lock_file="pnpm-lock.yaml" ;;
|
||||
*)
|
||||
echo "Unknown package manager: $package_manager"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# Check if source and destination files are the same
|
||||
if [ "$(realpath "$src_dir/package.json")" != "$(realpath "$dest_dir/package.json")" ] || [ "$OVERRIDE_UPDATE_LOCK" = true ]; then
|
||||
cp "$src_dir/package.json" "$dest_dir/package.json"
|
||||
fi
|
||||
|
||||
if [ "$(realpath "$src_dir/$lock_file")" != "$(realpath "$dest_dir/$lock_file")" ] || [ "$OVERRIDE_UPDATE_LOCK" = true ]; then
|
||||
cp "$src_dir/$lock_file" "$dest_dir/$lock_file"
|
||||
fi
|
||||
|
||||
# Remove unnecessary lock files in src_dir
|
||||
rm -f "$src_dir/"{yarn.lock,package-lock.json,pnpm-lock.yaml}
|
||||
|
||||
# Symbolically link the copied files in src_dir to dest_dir
|
||||
ln -fs "$dest_dir/package.json" "$src_dir/package.json"
|
||||
ln -fs "$dest_dir/$lock_file" "$src_dir/$lock_file"
|
||||
}
|
||||
|
||||
# Function to install dependencies using pnpm
|
||||
install_dependencies() {
|
||||
case "$PACKAGE_MANAGER" in
|
||||
yarn) yarn install || {
|
||||
echo "Failed to install dependencies with yarn"
|
||||
exit 1
|
||||
} ;;
|
||||
npm) npm install || {
|
||||
echo "Failed to install dependencies with npm"
|
||||
exit 1
|
||||
} ;;
|
||||
pnpm) pnpm install || {
|
||||
echo "Failed to install dependencies with pnpm"
|
||||
exit 1
|
||||
} ;;
|
||||
*)
|
||||
echo "Unknown package manager: $PACKAGE_MANAGER"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
# Function to start setup session
|
||||
start_setup_session() {
|
||||
local config="$1"
|
||||
echo "Starting setup session"
|
||||
exec /usr/src/app/nodebb setup --config="$config"
|
||||
}
|
||||
|
||||
# Handle building and upgrading NodeBB
|
||||
build_forum() {
|
||||
local config="$1"
|
||||
local start_build="$2"
|
||||
local package_hash=$(md5sum install/package.json | head -c 32)
|
||||
if [ "$package_hash" = "$(cat $CONFIG_DIR/install_hash.md5 || true)" ]; then
|
||||
echo "package.json was updated. Upgrading..."
|
||||
/usr/src/app/nodebb upgrade --config="$config" || {
|
||||
echo "Failed to build NodeBB. Exiting..."
|
||||
exit 1
|
||||
}
|
||||
elif [ "$start_build" = true ]; then
|
||||
echo "Build before start is enabled. Building..."
|
||||
/usr/src/app/nodebb "${NODEBB_BUILD_VERB}" --config="$config" || {
|
||||
echo "Failed to build NodeBB. Exiting..."
|
||||
exit 1
|
||||
}
|
||||
else
|
||||
echo "No changes in package.json. Skipping build..."
|
||||
return
|
||||
fi
|
||||
echo -n $package_hash > $CONFIG_DIR/install_hash.md5
|
||||
}
|
||||
|
||||
|
||||
# Function to start forum
|
||||
start_forum() {
|
||||
local config="$1"
|
||||
local start_build="$2"
|
||||
|
||||
build_forum "$config" "$start_build"
|
||||
|
||||
case "$PACKAGE_MANAGER" in
|
||||
yarn)
|
||||
yarn start --config="$config" --no-silent --no-daemon || {
|
||||
echo "Failed to start forum with yarn"
|
||||
exit 1
|
||||
}
|
||||
;;
|
||||
npm)
|
||||
npm start -- --config="$config" --no-silent --no-daemon || {
|
||||
echo "Failed to start forum with npm"
|
||||
exit 1
|
||||
}
|
||||
;;
|
||||
pnpm)
|
||||
pnpm start -- --config="$config" --no-silent --no-daemon || {
|
||||
echo "Failed to start forum with pnpm"
|
||||
exit 1
|
||||
}
|
||||
;;
|
||||
*)
|
||||
echo "Unknown package manager: $PACKAGE_MANAGER"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
# Function to start installation session
|
||||
start_installation_session() {
|
||||
local nodebb_init_verb="$1"
|
||||
local config="$2"
|
||||
|
||||
echo "Config file not found at $config"
|
||||
echo "Starting installation session"
|
||||
./nodebb "${NODEBB_INIT_VERB}" --config=$CONFIG
|
||||
fi
|
||||
exec /usr/src/app/nodebb "$nodebb_init_verb" --config="$config"
|
||||
}
|
||||
|
||||
# Function for debugging and logging
|
||||
debug_log() {
|
||||
local message="$1"
|
||||
echo "DEBUG: $message"
|
||||
}
|
||||
|
||||
# Main function
|
||||
main() {
|
||||
set_defaults
|
||||
check_directory "$CONFIG_DIR"
|
||||
copy_or_link_files /usr/src/app "$CONFIG_DIR" "$PACKAGE_MANAGER"
|
||||
install_dependencies
|
||||
|
||||
debug_log "PACKAGE_MANAGER: $PACKAGE_MANAGER"
|
||||
debug_log "CONFIG location: $CONFIG"
|
||||
debug_log "START_BUILD: $START_BUILD"
|
||||
|
||||
if [ -n "$SETUP" ]; then
|
||||
start_setup_session "$CONFIG"
|
||||
fi
|
||||
|
||||
if [ -f "$CONFIG" ]; then
|
||||
start_forum "$CONFIG" "$START_BUILD"
|
||||
else
|
||||
start_installation_session "$NODEBB_INIT_VERB" "$CONFIG"
|
||||
fi
|
||||
}
|
||||
|
||||
# Execute main function
|
||||
main "$@"
|
||||
|
||||
@@ -1,21 +1,23 @@
|
||||
{
|
||||
"mongo": {
|
||||
"host": "mongo",
|
||||
"port": 27017,
|
||||
"database": "nodebb",
|
||||
"username": "nodebb",
|
||||
"password": "nodebb"
|
||||
},
|
||||
"redis": {
|
||||
"host": "redis",
|
||||
"port": 6379,
|
||||
"database": 0
|
||||
},
|
||||
"postgres": {
|
||||
"host": "postgres",
|
||||
"port": 5432,
|
||||
"database": "nodebb",
|
||||
"username": "nodebb",
|
||||
"password": "nodebb"
|
||||
"defaults": {
|
||||
"mongo": {
|
||||
"host": "mongo",
|
||||
"port": 27017,
|
||||
"database": "nodebb",
|
||||
"username": "nodebb",
|
||||
"password": "nodebb"
|
||||
},
|
||||
"redis": {
|
||||
"host": "redis",
|
||||
"port": 6379,
|
||||
"database": 0
|
||||
},
|
||||
"postgres": {
|
||||
"host": "postgres",
|
||||
"port": 5432,
|
||||
"database": "nodebb",
|
||||
"username": "nodebb",
|
||||
"password": "nodebb"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2,7 +2,7 @@
|
||||
"name": "nodebb",
|
||||
"license": "GPL-3.0",
|
||||
"description": "NodeBB Forum",
|
||||
"version": "3.7.5",
|
||||
"version": "3.8.2",
|
||||
"homepage": "https://www.nodebb.org",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
@@ -29,15 +29,15 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@adactive/bootstrap-tagsinput": "0.8.2",
|
||||
"@fontsource/inter": "5.0.16",
|
||||
"@fontsource/poppins": "5.0.8",
|
||||
"@fortawesome/fontawesome-free": "6.5.1",
|
||||
"@fontsource/inter": "5.0.18",
|
||||
"@fontsource/poppins": "5.0.14",
|
||||
"@fortawesome/fontawesome-free": "6.5.2",
|
||||
"@isaacs/ttlcache": "1.4.1",
|
||||
"@popperjs/core": "2.11.8",
|
||||
"ace-builds": "1.32.7",
|
||||
"archiver": "7.0.0",
|
||||
"ace-builds": "1.33.2",
|
||||
"archiver": "7.0.1",
|
||||
"async": "3.2.5",
|
||||
"autoprefixer": "10.4.18",
|
||||
"autoprefixer": "10.4.19",
|
||||
"bcryptjs": "2.4.3",
|
||||
"benchpressjs": "2.5.1",
|
||||
"body-parser": "1.20.2",
|
||||
@@ -58,13 +58,13 @@
|
||||
"connect-pg-simple": "9.0.1",
|
||||
"connect-redis": "7.1.1",
|
||||
"cookie-parser": "1.4.6",
|
||||
"cron": "3.1.6",
|
||||
"cropperjs": "1.6.1",
|
||||
"cron": "3.1.7",
|
||||
"cropperjs": "1.6.2",
|
||||
"csrf-sync": "4.0.3",
|
||||
"daemon": "1.1.0",
|
||||
"diff": "5.2.0",
|
||||
"esbuild": "0.20.1",
|
||||
"express": "4.18.3",
|
||||
"esbuild": "0.21.2",
|
||||
"express": "4.19.2",
|
||||
"express-session": "1.18.0",
|
||||
"express-useragent": "1.0.15",
|
||||
"fetch-cookie": "3.0.1",
|
||||
@@ -74,64 +74,64 @@
|
||||
"helmet": "7.1.0",
|
||||
"html-to-text": "9.0.5",
|
||||
"imagesloaded": "5.0.0",
|
||||
"ipaddr.js": "2.1.0",
|
||||
"ipaddr.js": "2.2.0",
|
||||
"jquery": "3.7.1",
|
||||
"jquery-deserialize": "2.0.0",
|
||||
"jquery-form": "4.3.0",
|
||||
"jquery-serializeobject": "1.0.0",
|
||||
"jquery-ui": "1.13.2",
|
||||
"jquery-ui": "1.13.3",
|
||||
"jsesc": "3.0.2",
|
||||
"json2csv": "5.0.7",
|
||||
"jsonwebtoken": "9.0.2",
|
||||
"lodash": "4.17.21",
|
||||
"logrotate-stream": "0.2.9",
|
||||
"lru-cache": "10.2.0",
|
||||
"lru-cache": "10.2.2",
|
||||
"mime": "3.0.0",
|
||||
"mkdirp": "3.0.1",
|
||||
"mongodb": "6.5.0",
|
||||
"mongodb": "6.6.1",
|
||||
"morgan": "1.10.0",
|
||||
"mousetrap": "1.6.5",
|
||||
"multiparty": "4.2.3",
|
||||
"nconf": "0.12.1",
|
||||
"nodebb-plugin-2factor": "7.4.0",
|
||||
"nodebb-plugin-composer-default": "10.2.33",
|
||||
"nodebb-plugin-2factor": "7.5.1",
|
||||
"nodebb-plugin-composer-default": "10.2.36",
|
||||
"nodebb-plugin-dbsearch": "6.2.3",
|
||||
"nodebb-plugin-emoji": "5.1.13",
|
||||
"nodebb-plugin-emoji": "5.1.15",
|
||||
"nodebb-plugin-emoji-android": "4.0.0",
|
||||
"nodebb-plugin-markdown": "12.2.6",
|
||||
"nodebb-plugin-mentions": "4.4.0",
|
||||
"nodebb-plugin-mentions": "4.4.3",
|
||||
"nodebb-plugin-ntfy": "1.7.4",
|
||||
"nodebb-plugin-spam-be-gone": "2.2.1",
|
||||
"nodebb-plugin-spam-be-gone": "2.2.2",
|
||||
"nodebb-rewards-essentials": "1.0.0",
|
||||
"nodebb-theme-harmony": "1.2.49",
|
||||
"nodebb-theme-harmony": "1.2.57",
|
||||
"nodebb-theme-lavender": "7.1.8",
|
||||
"nodebb-theme-peace": "2.2.4",
|
||||
"nodebb-theme-persona": "13.3.14",
|
||||
"nodebb-widget-essentials": "7.0.15",
|
||||
"nodemailer": "6.9.11",
|
||||
"nodebb-theme-peace": "2.2.5",
|
||||
"nodebb-theme-persona": "13.3.20",
|
||||
"nodebb-widget-essentials": "7.0.16",
|
||||
"nodemailer": "6.9.13",
|
||||
"nprogress": "0.2.0",
|
||||
"passport": "0.7.0",
|
||||
"passport-http-bearer": "1.0.1",
|
||||
"passport-local": "1.0.0",
|
||||
"pg": "8.11.3",
|
||||
"pg-cursor": "2.10.3",
|
||||
"postcss": "8.4.35",
|
||||
"pg": "8.11.5",
|
||||
"pg-cursor": "2.10.5",
|
||||
"postcss": "8.4.38",
|
||||
"postcss-clean": "1.2.0",
|
||||
"progress-webpack-plugin": "1.0.16",
|
||||
"prompt": "1.3.0",
|
||||
"ioredis": "5.3.2",
|
||||
"rimraf": "5.0.5",
|
||||
"ioredis": "5.4.1",
|
||||
"rimraf": "5.0.7",
|
||||
"rss": "1.2.2",
|
||||
"rtlcss": "4.1.1",
|
||||
"sanitize-html": "2.12.1",
|
||||
"sass": "1.71.1",
|
||||
"semver": "7.6.0",
|
||||
"sanitize-html": "2.13.0",
|
||||
"sass": "1.77.1",
|
||||
"semver": "7.6.2",
|
||||
"serve-favicon": "2.5.0",
|
||||
"sharp": "0.32.6",
|
||||
"sitemap": "7.1.1",
|
||||
"socket.io": "4.7.4",
|
||||
"socket.io-client": "4.7.4",
|
||||
"@socket.io/redis-adapter": "8.2.1",
|
||||
"socket.io": "4.7.5",
|
||||
"socket.io-client": "4.7.5",
|
||||
"@socket.io/redis-adapter": "8.3.0",
|
||||
"sortablejs": "1.15.2",
|
||||
"spdx-license-list": "6.9.0",
|
||||
"spider-detector": "2.0.1",
|
||||
@@ -141,12 +141,12 @@
|
||||
"timeago": "1.6.7",
|
||||
"tinycon": "0.6.8",
|
||||
"toobusy-js": "0.5.1",
|
||||
"tough-cookie": "4.1.3",
|
||||
"validator": "13.11.0",
|
||||
"webpack": "5.90.3",
|
||||
"tough-cookie": "4.1.4",
|
||||
"validator": "13.12.0",
|
||||
"webpack": "5.91.0",
|
||||
"webpack-merge": "5.10.0",
|
||||
"winston": "3.11.0",
|
||||
"workerpool": "9.1.0",
|
||||
"winston": "3.13.0",
|
||||
"workerpool": "9.1.1",
|
||||
"xml": "1.0.1",
|
||||
"xregexp": "5.1.1",
|
||||
"yargs": "17.7.2",
|
||||
@@ -154,8 +154,8 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"@apidevtools/swagger-parser": "10.1.0",
|
||||
"@commitlint/cli": "19.0.3",
|
||||
"@commitlint/config-angular": "19.0.3",
|
||||
"@commitlint/cli": "19.3.0",
|
||||
"@commitlint/config-angular": "19.3.0",
|
||||
"coveralls": "3.1.1",
|
||||
"eslint": "8.57.0",
|
||||
"eslint-config-nodebb": "0.2.1",
|
||||
@@ -165,14 +165,14 @@
|
||||
"husky": "8.0.3",
|
||||
"jsdom": "24.0.0",
|
||||
"lint-staged": "15.2.2",
|
||||
"mocha": "10.3.0",
|
||||
"mocha": "10.4.0",
|
||||
"mocha-lcov-reporter": "1.3.0",
|
||||
"mockdate": "3.0.5",
|
||||
"nyc": "15.1.0",
|
||||
"smtp-server": "3.13.3"
|
||||
"smtp-server": "3.13.4"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"sass-embedded": "1.71.1"
|
||||
"sass-embedded": "1.77.1"
|
||||
},
|
||||
"resolutions": {
|
||||
"*/jquery": "3.7.1"
|
||||
|
||||
@@ -9,5 +9,9 @@
|
||||
"filter-type": "نوع الحدث",
|
||||
"filter-start": "تاريخ البدء",
|
||||
"filter-end": "تاريخ الانتهاء",
|
||||
"filter-user": "Filter by User",
|
||||
"filter-user.placeholder": "Type user name to filter...",
|
||||
"filter-group": "Filter by Group",
|
||||
"filter-group.placeholder": "Type group name to filter...",
|
||||
"filter-per-page": "لكل صفحة"
|
||||
}
|
||||
@@ -121,6 +121,28 @@
|
||||
"alerts.email-sent-to": "An invitation email has been sent to %1",
|
||||
"alerts.x-users-found": "%1 user(s) found, (%2 seconds)",
|
||||
"alerts.select-a-single-user-to-change-email": "Select a single user to change email",
|
||||
"export": "Export",
|
||||
"export-users-fields-title": "Select CSV Fields",
|
||||
"export-field-email": "Email",
|
||||
"export-field-username": "Username",
|
||||
"export-field-uid": "UID",
|
||||
"export-field-ip": "IP",
|
||||
"export-field-joindate": "Join date",
|
||||
"export-field-lastonline": "Last Online",
|
||||
"export-field-lastposttime": "Last Post Time",
|
||||
"export-field-reputation": "Reputation",
|
||||
"export-field-postcount": "Post Count",
|
||||
"export-field-topiccount": "Topic Count",
|
||||
"export-field-profileviews": "Profile Views",
|
||||
"export-field-followercount": "Follower Count",
|
||||
"export-field-followingcount": "Following Count",
|
||||
"export-field-fullname": "Full Name",
|
||||
"export-field-website": "Website",
|
||||
"export-field-location": "Location",
|
||||
"export-field-birthday": "Birthday",
|
||||
"export-field-signature": "Signature",
|
||||
"export-field-aboutme": "About Me",
|
||||
|
||||
"export-users-started": "Exporting users as csv, this might take a while. You will receive a notification when it is complete.",
|
||||
"export-users-completed": "Users exported as csv, click here to download.",
|
||||
"email": "Email",
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
"id": "ID: <small>optional</small>",
|
||||
|
||||
"properties": "Properties:",
|
||||
"groups": "Groups:",
|
||||
"show-to-groups": "Show to Groups:",
|
||||
"open-new-window": "Open in a new window",
|
||||
"dropdown": "Dropdown",
|
||||
"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/><li><a class="dropdown-item" href="https://myforum.com">Link 1</a></li>",
|
||||
|
||||
@@ -90,6 +90,6 @@
|
||||
"bulk-actions": "Bulk Actions",
|
||||
"bulk-resolve": "Resolve Flag(s)",
|
||||
"bulk-success": "%1 flags updated",
|
||||
"flagged-timeago-readable": "Flagged <span class=\"timeago\" title=\"%1\"></span> (%2)",
|
||||
"flagged-timeago": "Flagged <span class=\"timeago\" title=\"%1\"></span>",
|
||||
"auto-flagged": "[Auto Flagged] Received %1 downvotes."
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
{
|
||||
"title": "Top",
|
||||
"no-top-topics": "No top topics"
|
||||
"title": "أعلى الصفحة",
|
||||
"no-top-topics": "لا توجد مواضيع أعلى الصفحة"
|
||||
}
|
||||
@@ -1,7 +1,9 @@
|
||||
{
|
||||
"user-menu": "User menu",
|
||||
"banned": "محظور",
|
||||
"unbanned": "Unbanned",
|
||||
"muted": "كتم",
|
||||
"unmuted": "Unmuted",
|
||||
"offline": "غير متصل",
|
||||
"deleted": "محذوف",
|
||||
"username": "إسم المستخدم",
|
||||
@@ -162,11 +164,16 @@
|
||||
"sso.dissociate-confirm-title": "تأكيد الفصل",
|
||||
"sso.dissociate-confirm": "هل تريد بالتأكيد فصل حسابك عن %1؟",
|
||||
"info.latest-flags": "أحدث العلامات",
|
||||
"info.profile": "Profile",
|
||||
"info.post": "Post",
|
||||
"info.view-flag": "View flag",
|
||||
"info.reported-by": "Reported by:",
|
||||
"info.no-flags": "لم يتم العثور على مشاركات معلمة",
|
||||
"info.ban-history": "سجل الحظر الأحدث",
|
||||
"info.no-ban-history": "هذا المستخدم لم يتم حظره مطلقا",
|
||||
"info.banned-until": "محظور حتى %1",
|
||||
"info.banned-expiry": "Expiry",
|
||||
"info.ban-expired": "Ban expired",
|
||||
"info.banned-permanently": "محظور بشكل دائم",
|
||||
"info.banned-reason-label": "سبب",
|
||||
"info.banned-no-reason": "لم يتم إعطاء سبب.",
|
||||
|
||||
@@ -9,5 +9,9 @@
|
||||
"filter-type": "Вид събитие",
|
||||
"filter-start": "Начална дата",
|
||||
"filter-end": "Крайна дата",
|
||||
"filter-user": "Филтриране по потребител",
|
||||
"filter-user.placeholder": "Въведете име на потребител, за да филтрирате…",
|
||||
"filter-group": "Филтриране по група",
|
||||
"filter-group.placeholder": "Въведете име на група, за да филтрирате…",
|
||||
"filter-per-page": "На страница"
|
||||
}
|
||||
@@ -121,6 +121,28 @@
|
||||
"alerts.email-sent-to": "Беше изпратено е-писмо за потвърждение до %1",
|
||||
"alerts.x-users-found": "Намерени потребители: %1 (%2 секунди)",
|
||||
"alerts.select-a-single-user-to-change-email": "Изберете един потребител, чиято е-поща да промените",
|
||||
"export": "Изнасяне",
|
||||
"export-users-fields-title": "Изберете полета за CSV",
|
||||
"export-field-email": "Е-поща",
|
||||
"export-field-username": "Потребителско име",
|
||||
"export-field-uid": "Потребителски идентификатор",
|
||||
"export-field-ip": "IP адрес",
|
||||
"export-field-joindate": "Дата на присъединяване",
|
||||
"export-field-lastonline": "Последно на линия",
|
||||
"export-field-lastposttime": "Време на последния отговор",
|
||||
"export-field-reputation": "Репутация",
|
||||
"export-field-postcount": "Брой публикации",
|
||||
"export-field-topiccount": "Брой теми",
|
||||
"export-field-profileviews": "Преглеждания на профила",
|
||||
"export-field-followercount": "Брой последователи",
|
||||
"export-field-followingcount": "Брой последвани",
|
||||
"export-field-fullname": "Пълно име",
|
||||
"export-field-website": "Уеб сайт",
|
||||
"export-field-location": "Местоположение",
|
||||
"export-field-birthday": "Рождена дата",
|
||||
"export-field-signature": "Подпис",
|
||||
"export-field-aboutme": "За потребителя",
|
||||
|
||||
"export-users-started": "Изнасяне на потребителите във формат „csv“… Това може да отнеме известно време. Ще получите известие, когато е готово.",
|
||||
"export-users-completed": "Потребителите са изнесени във формат „csv“, щракнете за сваляне.",
|
||||
"email": "Е-поща",
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
"id": "Идентификатор: <small>незадължително</small>",
|
||||
|
||||
"properties": "Свойства:",
|
||||
"groups": "Групи:",
|
||||
"show-to-groups": "Показване на групите:",
|
||||
"open-new-window": "Отваряне в нов прозорец",
|
||||
"dropdown": "Падащо меню",
|
||||
"dropdown-placeholder": "Въведете елементите на падащото меню по-долу. Пример: <br/><li><a class="dropdown-item" href="https://myforum.com">Връзка 1</a></li>",
|
||||
|
||||
@@ -90,6 +90,6 @@
|
||||
"bulk-actions": "Групови действия",
|
||||
"bulk-resolve": "Разрешаване на доклад(и)",
|
||||
"bulk-success": "%1 доклада са обновени",
|
||||
"flagged-timeago-readable": "Докладвано <span class=\"timeago\" title=\"%1\"></span> (%2)",
|
||||
"flagged-timeago": "Докладвано <span class=\"timeago\" title=\"%1\"></span>",
|
||||
"auto-flagged": "[Авт. докладвано] Получени %1 отрицателни гласа."
|
||||
}
|
||||
@@ -1,7 +1,9 @@
|
||||
{
|
||||
"user-menu": "Потребителско меню",
|
||||
"banned": "Блокиран",
|
||||
"unbanned": "Деблокиран",
|
||||
"muted": "Заглушен",
|
||||
"unmuted": "Премахнато заглушаване",
|
||||
"offline": "Извън линия",
|
||||
"deleted": "Изтрит",
|
||||
"username": "Потребителско име",
|
||||
@@ -162,11 +164,16 @@
|
||||
"sso.dissociate-confirm-title": "Потвърждаване на прекъсването",
|
||||
"sso.dissociate-confirm": "Наистина ли искате да прекъснете връзката на акаунта си от „%1“?",
|
||||
"info.latest-flags": "Последни доклади",
|
||||
"info.profile": "Профил",
|
||||
"info.post": "Публикация",
|
||||
"info.view-flag": "Преглед на доклада",
|
||||
"info.reported-by": "Докладвано от:",
|
||||
"info.no-flags": "Не са намерени докладвани публикации",
|
||||
"info.ban-history": "Скорошна история на блокиранията",
|
||||
"info.no-ban-history": "Този потребител никога не е бил блокиран",
|
||||
"info.banned-until": "Блокиран до %1",
|
||||
"info.banned-expiry": "Давност",
|
||||
"info.ban-expired": "Блокирането е изтекло",
|
||||
"info.banned-permanently": "Блокиран за постоянно",
|
||||
"info.banned-reason-label": "Причина",
|
||||
"info.banned-no-reason": "Няма посочена причина.",
|
||||
|
||||
@@ -9,5 +9,9 @@
|
||||
"filter-type": "Event Type",
|
||||
"filter-start": "Start Date",
|
||||
"filter-end": "End Date",
|
||||
"filter-user": "Filter by User",
|
||||
"filter-user.placeholder": "Type user name to filter...",
|
||||
"filter-group": "Filter by Group",
|
||||
"filter-group.placeholder": "Type group name to filter...",
|
||||
"filter-per-page": "Per Page"
|
||||
}
|
||||
@@ -121,6 +121,28 @@
|
||||
"alerts.email-sent-to": "An invitation email has been sent to %1",
|
||||
"alerts.x-users-found": "%1 user(s) found, (%2 seconds)",
|
||||
"alerts.select-a-single-user-to-change-email": "Select a single user to change email",
|
||||
"export": "Export",
|
||||
"export-users-fields-title": "Select CSV Fields",
|
||||
"export-field-email": "Email",
|
||||
"export-field-username": "Username",
|
||||
"export-field-uid": "UID",
|
||||
"export-field-ip": "IP",
|
||||
"export-field-joindate": "Join date",
|
||||
"export-field-lastonline": "Last Online",
|
||||
"export-field-lastposttime": "Last Post Time",
|
||||
"export-field-reputation": "Reputation",
|
||||
"export-field-postcount": "Post Count",
|
||||
"export-field-topiccount": "Topic Count",
|
||||
"export-field-profileviews": "Profile Views",
|
||||
"export-field-followercount": "Follower Count",
|
||||
"export-field-followingcount": "Following Count",
|
||||
"export-field-fullname": "Full Name",
|
||||
"export-field-website": "Website",
|
||||
"export-field-location": "Location",
|
||||
"export-field-birthday": "Birthday",
|
||||
"export-field-signature": "Signature",
|
||||
"export-field-aboutme": "About Me",
|
||||
|
||||
"export-users-started": "Exporting users as csv, this might take a while. You will receive a notification when it is complete.",
|
||||
"export-users-completed": "Users exported as csv, click here to download.",
|
||||
"email": "Email",
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
"id": "ID: <small>optional</small>",
|
||||
|
||||
"properties": "Properties:",
|
||||
"groups": "Groups:",
|
||||
"show-to-groups": "Show to Groups:",
|
||||
"open-new-window": "Open in a new window",
|
||||
"dropdown": "Dropdown",
|
||||
"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/><li><a class="dropdown-item" href="https://myforum.com">Link 1</a></li>",
|
||||
|
||||
@@ -90,6 +90,6 @@
|
||||
"bulk-actions": "Bulk Actions",
|
||||
"bulk-resolve": "Resolve Flag(s)",
|
||||
"bulk-success": "%1 flags updated",
|
||||
"flagged-timeago-readable": "Flagged <span class=\"timeago\" title=\"%1\"></span> (%2)",
|
||||
"flagged-timeago": "Flagged <span class=\"timeago\" title=\"%1\"></span>",
|
||||
"auto-flagged": "[Auto Flagged] Received %1 downvotes."
|
||||
}
|
||||
@@ -1,7 +1,9 @@
|
||||
{
|
||||
"user-menu": "User menu",
|
||||
"banned": "নিষিদ্ধ",
|
||||
"unbanned": "Unbanned",
|
||||
"muted": "Muted",
|
||||
"unmuted": "Unmuted",
|
||||
"offline": "অফলাইন",
|
||||
"deleted": "Deleted",
|
||||
"username": "সদস্যের নাম",
|
||||
@@ -162,11 +164,16 @@
|
||||
"sso.dissociate-confirm-title": "Confirm Dissociation",
|
||||
"sso.dissociate-confirm": "Are you sure you wish to dissociate your account from %1?",
|
||||
"info.latest-flags": "Latest Flags",
|
||||
"info.profile": "Profile",
|
||||
"info.post": "Post",
|
||||
"info.view-flag": "View flag",
|
||||
"info.reported-by": "Reported by:",
|
||||
"info.no-flags": "No Flagged Posts Found",
|
||||
"info.ban-history": "Recent Ban History",
|
||||
"info.no-ban-history": "This user has never been banned",
|
||||
"info.banned-until": "Banned until %1",
|
||||
"info.banned-expiry": "Expiry",
|
||||
"info.ban-expired": "Ban expired",
|
||||
"info.banned-permanently": "Banned permanently",
|
||||
"info.banned-reason-label": "Reason",
|
||||
"info.banned-no-reason": "No reason given.",
|
||||
|
||||
@@ -9,5 +9,9 @@
|
||||
"filter-type": "Typ události",
|
||||
"filter-start": "Datum začátku",
|
||||
"filter-end": "Datum konce",
|
||||
"filter-user": "Filter by User",
|
||||
"filter-user.placeholder": "Type user name to filter...",
|
||||
"filter-group": "Filter by Group",
|
||||
"filter-group.placeholder": "Type group name to filter...",
|
||||
"filter-per-page": "Na stránku"
|
||||
}
|
||||
@@ -121,6 +121,28 @@
|
||||
"alerts.email-sent-to": "E-mail s pozvánkou byl odeslán na %1",
|
||||
"alerts.x-users-found": "%1 user(s) found, (%2 seconds)",
|
||||
"alerts.select-a-single-user-to-change-email": "Select a single user to change email",
|
||||
"export": "Export",
|
||||
"export-users-fields-title": "Select CSV Fields",
|
||||
"export-field-email": "Email",
|
||||
"export-field-username": "Username",
|
||||
"export-field-uid": "UID",
|
||||
"export-field-ip": "IP",
|
||||
"export-field-joindate": "Join date",
|
||||
"export-field-lastonline": "Last Online",
|
||||
"export-field-lastposttime": "Last Post Time",
|
||||
"export-field-reputation": "Reputation",
|
||||
"export-field-postcount": "Post Count",
|
||||
"export-field-topiccount": "Topic Count",
|
||||
"export-field-profileviews": "Profile Views",
|
||||
"export-field-followercount": "Follower Count",
|
||||
"export-field-followingcount": "Following Count",
|
||||
"export-field-fullname": "Full Name",
|
||||
"export-field-website": "Website",
|
||||
"export-field-location": "Location",
|
||||
"export-field-birthday": "Birthday",
|
||||
"export-field-signature": "Signature",
|
||||
"export-field-aboutme": "About Me",
|
||||
|
||||
"export-users-started": "Exporting users as csv, this might take a while. You will receive a notification when it is complete.",
|
||||
"export-users-completed": "Users exported as csv, click here to download.",
|
||||
"email": "Email",
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
"id": "ID: <small>doporučené</small>",
|
||||
|
||||
"properties": "Vlastnosti:",
|
||||
"groups": "Skupiny:",
|
||||
"show-to-groups": "Show to Groups:",
|
||||
"open-new-window": "Otevřít v novém okně",
|
||||
"dropdown": "Dropdown",
|
||||
"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/><li><a class="dropdown-item" href="https://myforum.com">Link 1</a></li>",
|
||||
|
||||
@@ -90,6 +90,6 @@
|
||||
"bulk-actions": "Bulk Actions",
|
||||
"bulk-resolve": "Resolve Flag(s)",
|
||||
"bulk-success": "%1 flags updated",
|
||||
"flagged-timeago-readable": "Flagged <span class=\"timeago\" title=\"%1\"></span> (%2)",
|
||||
"flagged-timeago": "Flagged <span class=\"timeago\" title=\"%1\"></span>",
|
||||
"auto-flagged": "[Auto Flagged] Received %1 downvotes."
|
||||
}
|
||||
@@ -1,7 +1,9 @@
|
||||
{
|
||||
"user-menu": "User menu",
|
||||
"banned": "Zablokován",
|
||||
"unbanned": "Unbanned",
|
||||
"muted": "Ztlumen",
|
||||
"unmuted": "Unmuted",
|
||||
"offline": "Nepřipojen",
|
||||
"deleted": "Odstraněno",
|
||||
"username": "Uživatelské jméno",
|
||||
@@ -162,11 +164,16 @@
|
||||
"sso.dissociate-confirm-title": "Potvrdit odloučení",
|
||||
"sso.dissociate-confirm": "Jste si jist/a, že chcete odloučit váš účet z %1?",
|
||||
"info.latest-flags": "Poslední označené",
|
||||
"info.profile": "Profile",
|
||||
"info.post": "Post",
|
||||
"info.view-flag": "View flag",
|
||||
"info.reported-by": "Reported by:",
|
||||
"info.no-flags": "Nebyly nalezeny žádné označené příspěvky",
|
||||
"info.ban-history": "Poslední historie blokovaných",
|
||||
"info.no-ban-history": "Tento uživatel nebyl nikdy zablokován",
|
||||
"info.banned-until": "Zablokován do %1",
|
||||
"info.banned-expiry": "Expiry",
|
||||
"info.ban-expired": "Ban expired",
|
||||
"info.banned-permanently": "Trvale zablokován",
|
||||
"info.banned-reason-label": "Důvod",
|
||||
"info.banned-no-reason": "Bez důvodu",
|
||||
|
||||
@@ -9,5 +9,9 @@
|
||||
"filter-type": "Event Type",
|
||||
"filter-start": "Start Date",
|
||||
"filter-end": "End Date",
|
||||
"filter-user": "Filter by User",
|
||||
"filter-user.placeholder": "Type user name to filter...",
|
||||
"filter-group": "Filter by Group",
|
||||
"filter-group.placeholder": "Type group name to filter...",
|
||||
"filter-per-page": "Per Page"
|
||||
}
|
||||
@@ -121,6 +121,28 @@
|
||||
"alerts.email-sent-to": "An invitation email has been sent to %1",
|
||||
"alerts.x-users-found": "%1 user(s) found, (%2 seconds)",
|
||||
"alerts.select-a-single-user-to-change-email": "Select a single user to change email",
|
||||
"export": "Export",
|
||||
"export-users-fields-title": "Select CSV Fields",
|
||||
"export-field-email": "Email",
|
||||
"export-field-username": "Username",
|
||||
"export-field-uid": "UID",
|
||||
"export-field-ip": "IP",
|
||||
"export-field-joindate": "Join date",
|
||||
"export-field-lastonline": "Last Online",
|
||||
"export-field-lastposttime": "Last Post Time",
|
||||
"export-field-reputation": "Reputation",
|
||||
"export-field-postcount": "Post Count",
|
||||
"export-field-topiccount": "Topic Count",
|
||||
"export-field-profileviews": "Profile Views",
|
||||
"export-field-followercount": "Follower Count",
|
||||
"export-field-followingcount": "Following Count",
|
||||
"export-field-fullname": "Full Name",
|
||||
"export-field-website": "Website",
|
||||
"export-field-location": "Location",
|
||||
"export-field-birthday": "Birthday",
|
||||
"export-field-signature": "Signature",
|
||||
"export-field-aboutme": "About Me",
|
||||
|
||||
"export-users-started": "Exporting users as csv, this might take a while. You will receive a notification when it is complete.",
|
||||
"export-users-completed": "Users exported as csv, click here to download.",
|
||||
"email": "Email",
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
"id": "ID: <small>optional</small>",
|
||||
|
||||
"properties": "Properties:",
|
||||
"groups": "Groups:",
|
||||
"show-to-groups": "Show to Groups:",
|
||||
"open-new-window": "Open in a new window",
|
||||
"dropdown": "Dropdown",
|
||||
"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/><li><a class="dropdown-item" href="https://myforum.com">Link 1</a></li>",
|
||||
|
||||
@@ -90,6 +90,6 @@
|
||||
"bulk-actions": "Bulk Actions",
|
||||
"bulk-resolve": "Resolve Flag(s)",
|
||||
"bulk-success": "%1 flags updated",
|
||||
"flagged-timeago-readable": "Flagged <span class=\"timeago\" title=\"%1\"></span> (%2)",
|
||||
"flagged-timeago": "Flagged <span class=\"timeago\" title=\"%1\"></span>",
|
||||
"auto-flagged": "[Auto Flagged] Received %1 downvotes."
|
||||
}
|
||||
@@ -1,7 +1,9 @@
|
||||
{
|
||||
"user-menu": "User menu",
|
||||
"banned": "Banlyst",
|
||||
"unbanned": "Unbanned",
|
||||
"muted": "Muted",
|
||||
"unmuted": "Unmuted",
|
||||
"offline": "Offline",
|
||||
"deleted": "Deleted",
|
||||
"username": "Brugernavn",
|
||||
@@ -162,11 +164,16 @@
|
||||
"sso.dissociate-confirm-title": "Confirm Dissociation",
|
||||
"sso.dissociate-confirm": "Are you sure you wish to dissociate your account from %1?",
|
||||
"info.latest-flags": "Latest Flags",
|
||||
"info.profile": "Profile",
|
||||
"info.post": "Post",
|
||||
"info.view-flag": "View flag",
|
||||
"info.reported-by": "Reported by:",
|
||||
"info.no-flags": "No Flagged Posts Found",
|
||||
"info.ban-history": "Recent Ban History",
|
||||
"info.no-ban-history": "This user has never been banned",
|
||||
"info.banned-until": "Banned until %1",
|
||||
"info.banned-expiry": "Expiry",
|
||||
"info.ban-expired": "Ban expired",
|
||||
"info.banned-permanently": "Banned permanently",
|
||||
"info.banned-reason-label": "Reason",
|
||||
"info.banned-no-reason": "No reason given.",
|
||||
|
||||
@@ -9,5 +9,9 @@
|
||||
"filter-type": "Ereignistyp",
|
||||
"filter-start": "Anfangsdatum",
|
||||
"filter-end": "Enddatum",
|
||||
"filter-user": "Filter by User",
|
||||
"filter-user.placeholder": "Type user name to filter...",
|
||||
"filter-group": "Filter by Group",
|
||||
"filter-group.placeholder": "Type group name to filter...",
|
||||
"filter-per-page": "Pro Seite"
|
||||
}
|
||||
@@ -95,7 +95,7 @@
|
||||
"expand-analytics": "Analytik erweitern",
|
||||
"clear-search-history": "Suchverlauf löschen",
|
||||
"clear-search-history-confirm": "Bist du dir sicher, dass du den gesamten Suchverlauf löschen möchten?",
|
||||
"search-term": "Term",
|
||||
"search-count": "Count",
|
||||
"view-all": "View all"
|
||||
"search-term": "Bezeichnung",
|
||||
"search-count": "Anzahl",
|
||||
"view-all": "Zeige alle"
|
||||
}
|
||||
|
||||
@@ -121,6 +121,28 @@
|
||||
"alerts.email-sent-to": "Eine Einladungsemail wurde an %1 gesendet",
|
||||
"alerts.x-users-found": "%1 Benutzer gefunden, (%2 Sekunden)",
|
||||
"alerts.select-a-single-user-to-change-email": "Wähle einen einzelnen Benutzer zum Ändern der E-Mail",
|
||||
"export": "Export",
|
||||
"export-users-fields-title": "Select CSV Fields",
|
||||
"export-field-email": "Email",
|
||||
"export-field-username": "Username",
|
||||
"export-field-uid": "UID",
|
||||
"export-field-ip": "IP",
|
||||
"export-field-joindate": "Join date",
|
||||
"export-field-lastonline": "Last Online",
|
||||
"export-field-lastposttime": "Last Post Time",
|
||||
"export-field-reputation": "Reputation",
|
||||
"export-field-postcount": "Post Count",
|
||||
"export-field-topiccount": "Topic Count",
|
||||
"export-field-profileviews": "Profile Views",
|
||||
"export-field-followercount": "Follower Count",
|
||||
"export-field-followingcount": "Following Count",
|
||||
"export-field-fullname": "Full Name",
|
||||
"export-field-website": "Website",
|
||||
"export-field-location": "Location",
|
||||
"export-field-birthday": "Birthday",
|
||||
"export-field-signature": "Signature",
|
||||
"export-field-aboutme": "About Me",
|
||||
|
||||
"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.",
|
||||
"email": "E-Mail",
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
"id": "ID: <small>optional</small>",
|
||||
|
||||
"properties": "Eigenschaften:",
|
||||
"groups": "Gruppen:",
|
||||
"show-to-groups": "Show to Groups:",
|
||||
"open-new-window": "In neuem Fenster öffnen",
|
||||
"dropdown": "Dropdown",
|
||||
"dropdown-placeholder": "Platziere deine Dropdown-Menüpunkte unten, d. h.:<br/><li><a class="dropdown-item" href="https://myforum.com">Link 1</a></li>",
|
||||
|
||||
@@ -90,6 +90,6 @@
|
||||
"bulk-actions": "Massenaktionen",
|
||||
"bulk-resolve": "Meldung(en) bereiningen",
|
||||
"bulk-success": "%1 Meldungen aktualisiert",
|
||||
"flagged-timeago-readable": "Gemeldet <span class=\"timeago\" title=\"%1\"></span>(%2)",
|
||||
"flagged-timeago": "Flagged <span class=\"timeago\" title=\"%1\"></span>",
|
||||
"auto-flagged": "[Automatisch gemeldet] %1 Abwertungen erhalten."
|
||||
}
|
||||
@@ -1,7 +1,9 @@
|
||||
{
|
||||
"user-menu": "User menu",
|
||||
"banned": "Gesperrt",
|
||||
"unbanned": "Unbanned",
|
||||
"muted": "Stummgeschaltet",
|
||||
"unmuted": "Unmuted",
|
||||
"offline": "Offline",
|
||||
"deleted": "Gelöscht",
|
||||
"username": "Benutzername",
|
||||
@@ -162,11 +164,16 @@
|
||||
"sso.dissociate-confirm-title": "Trennung bestätigen",
|
||||
"sso.dissociate-confirm": "Bist du sicher, dass du dein Konto von %1 trennen willst?",
|
||||
"info.latest-flags": "Neuste Meldungen",
|
||||
"info.profile": "Profile",
|
||||
"info.post": "Post",
|
||||
"info.view-flag": "View flag",
|
||||
"info.reported-by": "Reported by:",
|
||||
"info.no-flags": "Keine gemeldeten Beiträge gefunden",
|
||||
"info.ban-history": "Sperrungsverlauf",
|
||||
"info.no-ban-history": "Dieser Benutzer wurde noch nie gesperrt",
|
||||
"info.banned-until": "Gesperrt bis zum %1",
|
||||
"info.banned-expiry": "Ablauf",
|
||||
"info.ban-expired": "Ban expired",
|
||||
"info.banned-permanently": "Permanent gesperrt",
|
||||
"info.banned-reason-label": "Grund",
|
||||
"info.banned-no-reason": "Kein Grund angegeben.",
|
||||
|
||||
@@ -9,5 +9,9 @@
|
||||
"filter-type": "Event Type",
|
||||
"filter-start": "Start Date",
|
||||
"filter-end": "End Date",
|
||||
"filter-user": "Filter by User",
|
||||
"filter-user.placeholder": "Type user name to filter...",
|
||||
"filter-group": "Filter by Group",
|
||||
"filter-group.placeholder": "Type group name to filter...",
|
||||
"filter-per-page": "Per Page"
|
||||
}
|
||||
@@ -121,6 +121,28 @@
|
||||
"alerts.email-sent-to": "An invitation email has been sent to %1",
|
||||
"alerts.x-users-found": "%1 user(s) found, (%2 seconds)",
|
||||
"alerts.select-a-single-user-to-change-email": "Select a single user to change email",
|
||||
"export": "Export",
|
||||
"export-users-fields-title": "Select CSV Fields",
|
||||
"export-field-email": "Email",
|
||||
"export-field-username": "Username",
|
||||
"export-field-uid": "UID",
|
||||
"export-field-ip": "IP",
|
||||
"export-field-joindate": "Join date",
|
||||
"export-field-lastonline": "Last Online",
|
||||
"export-field-lastposttime": "Last Post Time",
|
||||
"export-field-reputation": "Reputation",
|
||||
"export-field-postcount": "Post Count",
|
||||
"export-field-topiccount": "Topic Count",
|
||||
"export-field-profileviews": "Profile Views",
|
||||
"export-field-followercount": "Follower Count",
|
||||
"export-field-followingcount": "Following Count",
|
||||
"export-field-fullname": "Full Name",
|
||||
"export-field-website": "Website",
|
||||
"export-field-location": "Location",
|
||||
"export-field-birthday": "Birthday",
|
||||
"export-field-signature": "Signature",
|
||||
"export-field-aboutme": "About Me",
|
||||
|
||||
"export-users-started": "Exporting users as csv, this might take a while. You will receive a notification when it is complete.",
|
||||
"export-users-completed": "Users exported as csv, click here to download.",
|
||||
"email": "Email",
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
"id": "ID: <small>optional</small>",
|
||||
|
||||
"properties": "Properties:",
|
||||
"groups": "Groups:",
|
||||
"show-to-groups": "Show to Groups:",
|
||||
"open-new-window": "Open in a new window",
|
||||
"dropdown": "Dropdown",
|
||||
"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/><li><a class="dropdown-item" href="https://myforum.com">Link 1</a></li>",
|
||||
|
||||
@@ -90,6 +90,6 @@
|
||||
"bulk-actions": "Bulk Actions",
|
||||
"bulk-resolve": "Resolve Flag(s)",
|
||||
"bulk-success": "%1 flags updated",
|
||||
"flagged-timeago-readable": "Flagged <span class=\"timeago\" title=\"%1\"></span> (%2)",
|
||||
"flagged-timeago": "Flagged <span class=\"timeago\" title=\"%1\"></span>",
|
||||
"auto-flagged": "[Auto Flagged] Received %1 downvotes."
|
||||
}
|
||||
@@ -1,7 +1,9 @@
|
||||
{
|
||||
"user-menu": "User menu",
|
||||
"banned": "Αποκλεισμένος/η",
|
||||
"unbanned": "Unbanned",
|
||||
"muted": "Muted",
|
||||
"unmuted": "Unmuted",
|
||||
"offline": "Εκτός Σύνδεσης",
|
||||
"deleted": "Deleted",
|
||||
"username": "Όνομα Χρήστη",
|
||||
@@ -162,11 +164,16 @@
|
||||
"sso.dissociate-confirm-title": "Confirm Dissociation",
|
||||
"sso.dissociate-confirm": "Are you sure you wish to dissociate your account from %1?",
|
||||
"info.latest-flags": "Latest Flags",
|
||||
"info.profile": "Profile",
|
||||
"info.post": "Post",
|
||||
"info.view-flag": "View flag",
|
||||
"info.reported-by": "Reported by:",
|
||||
"info.no-flags": "No Flagged Posts Found",
|
||||
"info.ban-history": "Recent Ban History",
|
||||
"info.no-ban-history": "This user has never been banned",
|
||||
"info.banned-until": "Banned until %1",
|
||||
"info.banned-expiry": "Expiry",
|
||||
"info.ban-expired": "Ban expired",
|
||||
"info.banned-permanently": "Banned permanently",
|
||||
"info.banned-reason-label": "Reason",
|
||||
"info.banned-no-reason": "No reason given.",
|
||||
|
||||
@@ -9,5 +9,9 @@
|
||||
"filter-type": "Event Type",
|
||||
"filter-start": "Start Date",
|
||||
"filter-end": "End Date",
|
||||
"filter-user": "Filter by User",
|
||||
"filter-user.placeholder": "Type user name to filter...",
|
||||
"filter-group": "Filter by Group",
|
||||
"filter-group.placeholder": "Type group name to filter...",
|
||||
"filter-per-page": "Per Page"
|
||||
}
|
||||
@@ -121,6 +121,28 @@
|
||||
"alerts.email-sent-to": "An invitation email has been sent to %1",
|
||||
"alerts.x-users-found": "%1 user(s) found, (%2 seconds)",
|
||||
"alerts.select-a-single-user-to-change-email": "Select a single user to change email",
|
||||
"export": "Export",
|
||||
"export-users-fields-title": "Select CSV Fields",
|
||||
"export-field-email": "Email",
|
||||
"export-field-username": "Username",
|
||||
"export-field-uid": "UID",
|
||||
"export-field-ip": "IP",
|
||||
"export-field-joindate": "Join date",
|
||||
"export-field-lastonline": "Last Online",
|
||||
"export-field-lastposttime": "Last Post Time",
|
||||
"export-field-reputation": "Reputation",
|
||||
"export-field-postcount": "Post Count",
|
||||
"export-field-topiccount": "Topic Count",
|
||||
"export-field-profileviews": "Profile Views",
|
||||
"export-field-followercount": "Follower Count",
|
||||
"export-field-followingcount": "Following Count",
|
||||
"export-field-fullname": "Full Name",
|
||||
"export-field-website": "Website",
|
||||
"export-field-location": "Location",
|
||||
"export-field-birthday": "Birthday",
|
||||
"export-field-signature": "Signature",
|
||||
"export-field-aboutme": "About Me",
|
||||
|
||||
"export-users-started": "Exporting users as csv, this might take a while. You will receive a notification when it is complete.",
|
||||
"export-users-completed": "Users exported as csv, click here to download.",
|
||||
"email": "Email",
|
||||
|
||||
@@ -2,7 +2,10 @@
|
||||
"reputation": "Reputation Settings",
|
||||
"disable": "Disable Reputation System",
|
||||
"disable-down-voting": "Disable Down Voting",
|
||||
"votes-are-public": "All Votes Are Public",
|
||||
"vote-visibility": "Vote visibility",
|
||||
"vote-visibility-all": "Everyone can see votes",
|
||||
"vote-visibility-loggedin": "Only logged in users can see votes",
|
||||
"vote-visibility-privileged": "Only privileged users like admins & moderators can see votes",
|
||||
"thresholds": "Activity Thresholds",
|
||||
"min-rep-upvote": "Minimum reputation to upvote posts",
|
||||
"upvotes-per-day": "Upvotes per day (set to 0 for unlimited upvotes)",
|
||||
|
||||
@@ -90,6 +90,6 @@
|
||||
"bulk-actions": "Bulk Actions",
|
||||
"bulk-resolve": "Resolve Flag(s)",
|
||||
"bulk-success": "%1 flags updated",
|
||||
"flagged-timeago-readable": "Flagged <span class=\"timeago\" title=\"%1\"></span> (%2)",
|
||||
"flagged-timeago": "Flagged <span class=\"timeago\" title=\"%1\"></span>",
|
||||
"auto-flagged": "[Auto Flagged] Received %1 downvotes."
|
||||
}
|
||||
@@ -1,7 +1,9 @@
|
||||
{
|
||||
"user-menu": "User menu",
|
||||
"banned": "Banned",
|
||||
"unbanned": "Unbanned",
|
||||
"muted": "Muted",
|
||||
"unmuted": "Unmuted",
|
||||
"offline": "Offline",
|
||||
"deleted": "Deleted",
|
||||
"username": "User Name",
|
||||
@@ -179,11 +181,16 @@
|
||||
"sso.dissociate-confirm": "Are you sure you wish to dissociate your account from %1?",
|
||||
|
||||
"info.latest-flags": "Latest Flags",
|
||||
"info.profile": "Profile",
|
||||
"info.post": "Post",
|
||||
"info.view-flag": "View flag",
|
||||
"info.reported-by": "Reported by:",
|
||||
"info.no-flags": "No Flagged Posts Found",
|
||||
"info.ban-history": "Recent Ban History",
|
||||
"info.no-ban-history": "This user has never been banned",
|
||||
"info.banned-until": "Banned until %1",
|
||||
"info.banned-expiry": "Expiry",
|
||||
"info.ban-expired": "Ban expired",
|
||||
"info.banned-permanently": "Banned permanently",
|
||||
"info.banned-reason-label": "Reason",
|
||||
"info.banned-no-reason": "No reason given.",
|
||||
|
||||
@@ -9,5 +9,9 @@
|
||||
"filter-type": "Event Type",
|
||||
"filter-start": "Start Date",
|
||||
"filter-end": "End Date",
|
||||
"filter-user": "Filter by User",
|
||||
"filter-user.placeholder": "Type user name to filter...",
|
||||
"filter-group": "Filter by Group",
|
||||
"filter-group.placeholder": "Type group name to filter...",
|
||||
"filter-per-page": "Per Page"
|
||||
}
|
||||
@@ -121,6 +121,28 @@
|
||||
"alerts.email-sent-to": "An invitation email has been sent to %1",
|
||||
"alerts.x-users-found": "%1 user(s) found, (%2 seconds)",
|
||||
"alerts.select-a-single-user-to-change-email": "Select a single user to change email",
|
||||
"export": "Export",
|
||||
"export-users-fields-title": "Select CSV Fields",
|
||||
"export-field-email": "Email",
|
||||
"export-field-username": "Username",
|
||||
"export-field-uid": "UID",
|
||||
"export-field-ip": "IP",
|
||||
"export-field-joindate": "Join date",
|
||||
"export-field-lastonline": "Last Online",
|
||||
"export-field-lastposttime": "Last Post Time",
|
||||
"export-field-reputation": "Reputation",
|
||||
"export-field-postcount": "Post Count",
|
||||
"export-field-topiccount": "Topic Count",
|
||||
"export-field-profileviews": "Profile Views",
|
||||
"export-field-followercount": "Follower Count",
|
||||
"export-field-followingcount": "Following Count",
|
||||
"export-field-fullname": "Full Name",
|
||||
"export-field-website": "Website",
|
||||
"export-field-location": "Location",
|
||||
"export-field-birthday": "Birthday",
|
||||
"export-field-signature": "Signature",
|
||||
"export-field-aboutme": "About Me",
|
||||
|
||||
"export-users-started": "Exporting users as csv, this might take a while. You will receive a notification when it is complete.",
|
||||
"export-users-completed": "Users exported as csv, click here to download.",
|
||||
"email": "Email",
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
"id": "ID: <small>optional</small>",
|
||||
|
||||
"properties": "Properties:",
|
||||
"groups": "Groups:",
|
||||
"show-to-groups": "Show to Groups:",
|
||||
"open-new-window": "Open in a new window",
|
||||
"dropdown": "Dropdown",
|
||||
"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/><li><a class="dropdown-item" href="https://myforum.com">Link 1</a></li>",
|
||||
|
||||
@@ -90,6 +90,6 @@
|
||||
"bulk-actions": "Bulk Actions",
|
||||
"bulk-resolve": "Resolve Flag(s)",
|
||||
"bulk-success": "%1 flags updated",
|
||||
"flagged-timeago-readable": "Flagged <span class=\"timeago\" title=\"%1\"></span> (%2)",
|
||||
"flagged-timeago": "Flagged <span class=\"timeago\" title=\"%1\"></span>",
|
||||
"auto-flagged": "[Auto Flagged] Received %1 downvotes."
|
||||
}
|
||||
@@ -1,7 +1,9 @@
|
||||
{
|
||||
"user-menu": "User menu",
|
||||
"banned": "Banned",
|
||||
"unbanned": "Unbanned",
|
||||
"muted": "Muted",
|
||||
"unmuted": "Unmuted",
|
||||
"offline": "Offline",
|
||||
"deleted": "Deleted",
|
||||
"username": "User Name",
|
||||
@@ -162,11 +164,16 @@
|
||||
"sso.dissociate-confirm-title": "Confirm Dissociation",
|
||||
"sso.dissociate-confirm": "Are you sure you wish to dissociate your account from %1?",
|
||||
"info.latest-flags": "Latest Flags",
|
||||
"info.profile": "Profile",
|
||||
"info.post": "Post",
|
||||
"info.view-flag": "View flag",
|
||||
"info.reported-by": "Reported by:",
|
||||
"info.no-flags": "No Flagged Posts Found",
|
||||
"info.ban-history": "Recent Ban History",
|
||||
"info.no-ban-history": "This user has never been banned",
|
||||
"info.banned-until": "Banned until %1",
|
||||
"info.banned-expiry": "Expiry",
|
||||
"info.ban-expired": "Ban expired",
|
||||
"info.banned-permanently": "Banned permanently",
|
||||
"info.banned-reason-label": "Reason",
|
||||
"info.banned-no-reason": "No reason given.",
|
||||
|
||||
@@ -9,5 +9,9 @@
|
||||
"filter-type": "Event Type",
|
||||
"filter-start": "Start Date",
|
||||
"filter-end": "End Date",
|
||||
"filter-user": "Filter by User",
|
||||
"filter-user.placeholder": "Type user name to filter...",
|
||||
"filter-group": "Filter by Group",
|
||||
"filter-group.placeholder": "Type group name to filter...",
|
||||
"filter-per-page": "Per Page"
|
||||
}
|
||||
@@ -121,6 +121,28 @@
|
||||
"alerts.email-sent-to": "An invitation email has been sent to %1",
|
||||
"alerts.x-users-found": "%1 user(s) found, (%2 seconds)",
|
||||
"alerts.select-a-single-user-to-change-email": "Select a single user to change email",
|
||||
"export": "Export",
|
||||
"export-users-fields-title": "Select CSV Fields",
|
||||
"export-field-email": "Email",
|
||||
"export-field-username": "Username",
|
||||
"export-field-uid": "UID",
|
||||
"export-field-ip": "IP",
|
||||
"export-field-joindate": "Join date",
|
||||
"export-field-lastonline": "Last Online",
|
||||
"export-field-lastposttime": "Last Post Time",
|
||||
"export-field-reputation": "Reputation",
|
||||
"export-field-postcount": "Post Count",
|
||||
"export-field-topiccount": "Topic Count",
|
||||
"export-field-profileviews": "Profile Views",
|
||||
"export-field-followercount": "Follower Count",
|
||||
"export-field-followingcount": "Following Count",
|
||||
"export-field-fullname": "Full Name",
|
||||
"export-field-website": "Website",
|
||||
"export-field-location": "Location",
|
||||
"export-field-birthday": "Birthday",
|
||||
"export-field-signature": "Signature",
|
||||
"export-field-aboutme": "About Me",
|
||||
|
||||
"export-users-started": "Exporting users as csv, this might take a while. You will receive a notification when it is complete.",
|
||||
"export-users-completed": "Users exported as csv, click here to download.",
|
||||
"email": "Email",
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
"id": "ID: <small>optional</small>",
|
||||
|
||||
"properties": "Properties:",
|
||||
"groups": "Groups:",
|
||||
"show-to-groups": "Show to Groups:",
|
||||
"open-new-window": "Open in a new window",
|
||||
"dropdown": "Dropdown",
|
||||
"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/><li><a class="dropdown-item" href="https://myforum.com">Link 1</a></li>",
|
||||
|
||||
@@ -90,6 +90,6 @@
|
||||
"bulk-actions": "Bulk Actions",
|
||||
"bulk-resolve": "Resolve Flag(s)",
|
||||
"bulk-success": "%1 flags updated",
|
||||
"flagged-timeago-readable": "Flagged <span class=\"timeago\" title=\"%1\"></span> (%2)",
|
||||
"flagged-timeago": "Flagged <span class=\"timeago\" title=\"%1\"></span>",
|
||||
"auto-flagged": "[Auto Flagged] Received %1 downvotes."
|
||||
}
|
||||
@@ -1,7 +1,9 @@
|
||||
{
|
||||
"user-menu": "User menu",
|
||||
"banned": "Blackmarked",
|
||||
"unbanned": "Unbanned",
|
||||
"muted": "Muted",
|
||||
"unmuted": "Unmuted",
|
||||
"offline": "Asleep at the wheel",
|
||||
"deleted": "Deleted",
|
||||
"username": "User Name",
|
||||
@@ -162,11 +164,16 @@
|
||||
"sso.dissociate-confirm-title": "Confirm Dissociation",
|
||||
"sso.dissociate-confirm": "Are you sure you wish to dissociate your account from %1?",
|
||||
"info.latest-flags": "Latest Flags",
|
||||
"info.profile": "Profile",
|
||||
"info.post": "Post",
|
||||
"info.view-flag": "View flag",
|
||||
"info.reported-by": "Reported by:",
|
||||
"info.no-flags": "No Flagged Posts Found",
|
||||
"info.ban-history": "Recent Ban History",
|
||||
"info.no-ban-history": "This user has never been banned",
|
||||
"info.banned-until": "Banned until %1",
|
||||
"info.banned-expiry": "Expiry",
|
||||
"info.ban-expired": "Ban expired",
|
||||
"info.banned-permanently": "Banned permanently",
|
||||
"info.banned-reason-label": "Reason",
|
||||
"info.banned-no-reason": "No reason given.",
|
||||
|
||||
@@ -9,5 +9,9 @@
|
||||
"filter-type": "Tipo de evento",
|
||||
"filter-start": "Fecha de inicio",
|
||||
"filter-end": "Fecha fin",
|
||||
"filter-user": "Filter by User",
|
||||
"filter-user.placeholder": "Type user name to filter...",
|
||||
"filter-group": "Filter by Group",
|
||||
"filter-group.placeholder": "Type group name to filter...",
|
||||
"filter-per-page": "por página"
|
||||
}
|
||||
@@ -121,6 +121,28 @@
|
||||
"alerts.email-sent-to": "Un email de invitación ha sido enviado a %1",
|
||||
"alerts.x-users-found": "%1 user(s) found, (%2 seconds)",
|
||||
"alerts.select-a-single-user-to-change-email": "Select a single user to change email",
|
||||
"export": "Export",
|
||||
"export-users-fields-title": "Select CSV Fields",
|
||||
"export-field-email": "Email",
|
||||
"export-field-username": "Username",
|
||||
"export-field-uid": "UID",
|
||||
"export-field-ip": "IP",
|
||||
"export-field-joindate": "Join date",
|
||||
"export-field-lastonline": "Last Online",
|
||||
"export-field-lastposttime": "Last Post Time",
|
||||
"export-field-reputation": "Reputation",
|
||||
"export-field-postcount": "Post Count",
|
||||
"export-field-topiccount": "Topic Count",
|
||||
"export-field-profileviews": "Profile Views",
|
||||
"export-field-followercount": "Follower Count",
|
||||
"export-field-followingcount": "Following Count",
|
||||
"export-field-fullname": "Full Name",
|
||||
"export-field-website": "Website",
|
||||
"export-field-location": "Location",
|
||||
"export-field-birthday": "Birthday",
|
||||
"export-field-signature": "Signature",
|
||||
"export-field-aboutme": "About Me",
|
||||
|
||||
"export-users-started": "Exporting users as csv, this might take a while. You will receive a notification when it is complete.",
|
||||
"export-users-completed": "Users exported as csv, click here to download.",
|
||||
"email": "Email",
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
"id": "ID: <small>opcional</small>",
|
||||
|
||||
"properties": "Propiedades:",
|
||||
"groups": "Grupos:",
|
||||
"show-to-groups": "Show to Groups:",
|
||||
"open-new-window": "Abrir en una ventana nueva",
|
||||
"dropdown": "Dropdown",
|
||||
"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/><li><a class="dropdown-item" href="https://myforum.com">Link 1</a></li>",
|
||||
|
||||
@@ -90,6 +90,6 @@
|
||||
"bulk-actions": "Bulk Actions",
|
||||
"bulk-resolve": "Resolve Flag(s)",
|
||||
"bulk-success": "%1 flags updated",
|
||||
"flagged-timeago-readable": "Flagged <span class=\"timeago\" title=\"%1\"></span> (%2)",
|
||||
"flagged-timeago": "Flagged <span class=\"timeago\" title=\"%1\"></span>",
|
||||
"auto-flagged": "[Auto Flagged] Received %1 downvotes."
|
||||
}
|
||||
@@ -1,7 +1,9 @@
|
||||
{
|
||||
"user-menu": "User menu",
|
||||
"banned": "Baneado",
|
||||
"unbanned": "Unbanned",
|
||||
"muted": "Muted",
|
||||
"unmuted": "Unmuted",
|
||||
"offline": "Desconectado",
|
||||
"deleted": "Borrado",
|
||||
"username": "Nombre de usuario",
|
||||
@@ -162,11 +164,16 @@
|
||||
"sso.dissociate-confirm-title": "Confirmar Disociación",
|
||||
"sso.dissociate-confirm": "Está seguro de que desea disociar su cuenta de %1?",
|
||||
"info.latest-flags": "Ultimos reportes",
|
||||
"info.profile": "Profile",
|
||||
"info.post": "Post",
|
||||
"info.view-flag": "View flag",
|
||||
"info.reported-by": "Reported by:",
|
||||
"info.no-flags": "Ningun mensaje reportado encontrado",
|
||||
"info.ban-history": "Histórico reciente de bans",
|
||||
"info.no-ban-history": "Este usuario nunca ha sido baneado",
|
||||
"info.banned-until": "Baneado hasta %1",
|
||||
"info.banned-expiry": "Expiry",
|
||||
"info.ban-expired": "Ban expired",
|
||||
"info.banned-permanently": "Baneado permanentemente",
|
||||
"info.banned-reason-label": "Motivo",
|
||||
"info.banned-no-reason": "Motivo no especificado",
|
||||
|
||||
@@ -9,5 +9,9 @@
|
||||
"filter-type": "Event Type",
|
||||
"filter-start": "Start Date",
|
||||
"filter-end": "End Date",
|
||||
"filter-user": "Filter by User",
|
||||
"filter-user.placeholder": "Type user name to filter...",
|
||||
"filter-group": "Filter by Group",
|
||||
"filter-group.placeholder": "Type group name to filter...",
|
||||
"filter-per-page": "Per Page"
|
||||
}
|
||||
@@ -121,6 +121,28 @@
|
||||
"alerts.email-sent-to": "Kutse on saadetud %1",
|
||||
"alerts.x-users-found": "%1 user(s) found, (%2 seconds)",
|
||||
"alerts.select-a-single-user-to-change-email": "Select a single user to change email",
|
||||
"export": "Export",
|
||||
"export-users-fields-title": "Select CSV Fields",
|
||||
"export-field-email": "Email",
|
||||
"export-field-username": "Username",
|
||||
"export-field-uid": "UID",
|
||||
"export-field-ip": "IP",
|
||||
"export-field-joindate": "Join date",
|
||||
"export-field-lastonline": "Last Online",
|
||||
"export-field-lastposttime": "Last Post Time",
|
||||
"export-field-reputation": "Reputation",
|
||||
"export-field-postcount": "Post Count",
|
||||
"export-field-topiccount": "Topic Count",
|
||||
"export-field-profileviews": "Profile Views",
|
||||
"export-field-followercount": "Follower Count",
|
||||
"export-field-followingcount": "Following Count",
|
||||
"export-field-fullname": "Full Name",
|
||||
"export-field-website": "Website",
|
||||
"export-field-location": "Location",
|
||||
"export-field-birthday": "Birthday",
|
||||
"export-field-signature": "Signature",
|
||||
"export-field-aboutme": "About Me",
|
||||
|
||||
"export-users-started": "Exporting users as csv, this might take a while. You will receive a notification when it is complete.",
|
||||
"export-users-completed": "Users exported as csv, click here to download.",
|
||||
"email": "Email",
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
"id": "ID: <small>optional</small>",
|
||||
|
||||
"properties": "Properties:",
|
||||
"groups": "Groups:",
|
||||
"show-to-groups": "Show to Groups:",
|
||||
"open-new-window": "Open in a new window",
|
||||
"dropdown": "Dropdown",
|
||||
"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/><li><a class="dropdown-item" href="https://myforum.com">Link 1</a></li>",
|
||||
|
||||
@@ -90,6 +90,6 @@
|
||||
"bulk-actions": "Bulk Actions",
|
||||
"bulk-resolve": "Resolve Flag(s)",
|
||||
"bulk-success": "%1 flags updated",
|
||||
"flagged-timeago-readable": "Flagged <span class=\"timeago\" title=\"%1\"></span> (%2)",
|
||||
"flagged-timeago": "Flagged <span class=\"timeago\" title=\"%1\"></span>",
|
||||
"auto-flagged": "[Auto Flagged] Received %1 downvotes."
|
||||
}
|
||||
@@ -1,7 +1,9 @@
|
||||
{
|
||||
"user-menu": "User menu",
|
||||
"banned": "Banned",
|
||||
"unbanned": "Unbanned",
|
||||
"muted": "Muted",
|
||||
"unmuted": "Unmuted",
|
||||
"offline": "Väljas",
|
||||
"deleted": "Deleted",
|
||||
"username": "Kasutajanimi",
|
||||
@@ -162,11 +164,16 @@
|
||||
"sso.dissociate-confirm-title": "Confirm Dissociation",
|
||||
"sso.dissociate-confirm": "Are you sure you wish to dissociate your account from %1?",
|
||||
"info.latest-flags": "Viimased raporteerimised",
|
||||
"info.profile": "Profile",
|
||||
"info.post": "Post",
|
||||
"info.view-flag": "View flag",
|
||||
"info.reported-by": "Reported by:",
|
||||
"info.no-flags": "Raporteeritud postitusi ei leitud",
|
||||
"info.ban-history": "Hiljutiste keeldude ajalugu",
|
||||
"info.no-ban-history": "Seda kasutajat pole kunagi keelustatud",
|
||||
"info.banned-until": "Keelustatud kuni %1",
|
||||
"info.banned-expiry": "Expiry",
|
||||
"info.ban-expired": "Ban expired",
|
||||
"info.banned-permanently": "Igavesti keelustatud",
|
||||
"info.banned-reason-label": "Reason",
|
||||
"info.banned-no-reason": "No reason given.",
|
||||
|
||||
@@ -9,5 +9,9 @@
|
||||
"filter-type": "Event Type",
|
||||
"filter-start": "Start Date",
|
||||
"filter-end": "End Date",
|
||||
"filter-user": "Filter by User",
|
||||
"filter-user.placeholder": "Type user name to filter...",
|
||||
"filter-group": "Filter by Group",
|
||||
"filter-group.placeholder": "Type group name to filter...",
|
||||
"filter-per-page": "Per Page"
|
||||
}
|
||||
@@ -121,6 +121,28 @@
|
||||
"alerts.email-sent-to": "An invitation email has been sent to %1",
|
||||
"alerts.x-users-found": "%1 user(s) found, (%2 seconds)",
|
||||
"alerts.select-a-single-user-to-change-email": "Select a single user to change email",
|
||||
"export": "Export",
|
||||
"export-users-fields-title": "Select CSV Fields",
|
||||
"export-field-email": "Email",
|
||||
"export-field-username": "Username",
|
||||
"export-field-uid": "UID",
|
||||
"export-field-ip": "IP",
|
||||
"export-field-joindate": "Join date",
|
||||
"export-field-lastonline": "Last Online",
|
||||
"export-field-lastposttime": "Last Post Time",
|
||||
"export-field-reputation": "Reputation",
|
||||
"export-field-postcount": "Post Count",
|
||||
"export-field-topiccount": "Topic Count",
|
||||
"export-field-profileviews": "Profile Views",
|
||||
"export-field-followercount": "Follower Count",
|
||||
"export-field-followingcount": "Following Count",
|
||||
"export-field-fullname": "Full Name",
|
||||
"export-field-website": "Website",
|
||||
"export-field-location": "Location",
|
||||
"export-field-birthday": "Birthday",
|
||||
"export-field-signature": "Signature",
|
||||
"export-field-aboutme": "About Me",
|
||||
|
||||
"export-users-started": "Exporting users as csv, this might take a while. You will receive a notification when it is complete.",
|
||||
"export-users-completed": "Users exported as csv, click here to download.",
|
||||
"email": "Email",
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
"id": "ID: <small>optional</small>",
|
||||
|
||||
"properties": "Properties:",
|
||||
"groups": "Groups:",
|
||||
"show-to-groups": "Show to Groups:",
|
||||
"open-new-window": "Open in a new window",
|
||||
"dropdown": "Dropdown",
|
||||
"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/><li><a class="dropdown-item" href="https://myforum.com">Link 1</a></li>",
|
||||
|
||||
@@ -90,6 +90,6 @@
|
||||
"bulk-actions": "عملیات گروهی",
|
||||
"bulk-resolve": "Resolve Flag(s)",
|
||||
"bulk-success": "%1 گزارش بروزرسانی شد",
|
||||
"flagged-timeago-readable": "گزارش شده <span class=\"timeago\" title=\"%1\"></span> (%2)",
|
||||
"flagged-timeago": "Flagged <span class=\"timeago\" title=\"%1\"></span>",
|
||||
"auto-flagged": "[Auto Flagged] Received %1 downvotes."
|
||||
}
|
||||
@@ -1,7 +1,9 @@
|
||||
{
|
||||
"user-menu": "User menu",
|
||||
"banned": "اخراج شده",
|
||||
"unbanned": "Unbanned",
|
||||
"muted": "Muted",
|
||||
"unmuted": "Unmuted",
|
||||
"offline": "آفلاین",
|
||||
"deleted": "حذف شده",
|
||||
"username": "نام کاربری",
|
||||
@@ -162,11 +164,16 @@
|
||||
"sso.dissociate-confirm-title": "Confirm Dissociation",
|
||||
"sso.dissociate-confirm": "آیا مطمئنی می خواهی اتصال %1 به حسابت را لغو کنی؟",
|
||||
"info.latest-flags": "آخرین نشانه گذاریها",
|
||||
"info.profile": "Profile",
|
||||
"info.post": "Post",
|
||||
"info.view-flag": "View flag",
|
||||
"info.reported-by": "Reported by:",
|
||||
"info.no-flags": "پست گزارش شده ای یافت نشد",
|
||||
"info.ban-history": "تاریخچه مسدودیت های اخیر",
|
||||
"info.no-ban-history": "این کاربر هرگز مسدود نشده است",
|
||||
"info.banned-until": "مسدود شده تا %1",
|
||||
"info.banned-expiry": "Expiry",
|
||||
"info.ban-expired": "Ban expired",
|
||||
"info.banned-permanently": "مسدود شده به طور دائم",
|
||||
"info.banned-reason-label": "دلیل",
|
||||
"info.banned-no-reason": "هیچ دلیلی ارایه نشد.",
|
||||
|
||||
@@ -9,5 +9,9 @@
|
||||
"filter-type": "Tapahtuman tyyppi",
|
||||
"filter-start": "Aloituspäivä",
|
||||
"filter-end": "Lopetuspäivä",
|
||||
"filter-user": "Filter by User",
|
||||
"filter-user.placeholder": "Type user name to filter...",
|
||||
"filter-group": "Filter by Group",
|
||||
"filter-group.placeholder": "Type group name to filter...",
|
||||
"filter-per-page": "Sivulla"
|
||||
}
|
||||
@@ -121,6 +121,28 @@
|
||||
"alerts.email-sent-to": "Kutsuviesti lähetettiin osoitteeseen %1",
|
||||
"alerts.x-users-found": "%1 user(s) found, (%2 seconds)",
|
||||
"alerts.select-a-single-user-to-change-email": "Select a single user to change email",
|
||||
"export": "Export",
|
||||
"export-users-fields-title": "Select CSV Fields",
|
||||
"export-field-email": "Email",
|
||||
"export-field-username": "Username",
|
||||
"export-field-uid": "UID",
|
||||
"export-field-ip": "IP",
|
||||
"export-field-joindate": "Join date",
|
||||
"export-field-lastonline": "Last Online",
|
||||
"export-field-lastposttime": "Last Post Time",
|
||||
"export-field-reputation": "Reputation",
|
||||
"export-field-postcount": "Post Count",
|
||||
"export-field-topiccount": "Topic Count",
|
||||
"export-field-profileviews": "Profile Views",
|
||||
"export-field-followercount": "Follower Count",
|
||||
"export-field-followingcount": "Following Count",
|
||||
"export-field-fullname": "Full Name",
|
||||
"export-field-website": "Website",
|
||||
"export-field-location": "Location",
|
||||
"export-field-birthday": "Birthday",
|
||||
"export-field-signature": "Signature",
|
||||
"export-field-aboutme": "About Me",
|
||||
|
||||
"export-users-started": "Käyttäjiä viedään CSV-muotoon ja tämä saatta kestää jonkin aikaa. Saat ilmoituksen kun se on suoritettu.",
|
||||
"export-users-completed": "Users exported as csv, click here to download.",
|
||||
"email": "Sähköposti",
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
"id": "ID: <small>optional</small>",
|
||||
|
||||
"properties": "Properties:",
|
||||
"groups": "Ryhmät:",
|
||||
"show-to-groups": "Show to Groups:",
|
||||
"open-new-window": "Open in a new window",
|
||||
"dropdown": "Dropdown",
|
||||
"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/><li><a class="dropdown-item" href="https://myforum.com">Link 1</a></li>",
|
||||
|
||||
@@ -90,6 +90,6 @@
|
||||
"bulk-actions": "Bulk Actions",
|
||||
"bulk-resolve": "Resolve Flag(s)",
|
||||
"bulk-success": "%1 flags updated",
|
||||
"flagged-timeago-readable": "Flagged <span class=\"timeago\" title=\"%1\"></span> (%2)",
|
||||
"flagged-timeago": "Flagged <span class=\"timeago\" title=\"%1\"></span>",
|
||||
"auto-flagged": "[Auto Flagged] Received %1 downvotes."
|
||||
}
|
||||
@@ -1,7 +1,9 @@
|
||||
{
|
||||
"user-menu": "User menu",
|
||||
"banned": "Bannattu",
|
||||
"unbanned": "Unbanned",
|
||||
"muted": "Muted",
|
||||
"unmuted": "Unmuted",
|
||||
"offline": "Offline",
|
||||
"deleted": "Poistettu",
|
||||
"username": "Käyttäjän nimi",
|
||||
@@ -162,11 +164,16 @@
|
||||
"sso.dissociate-confirm-title": "Confirm Dissociation",
|
||||
"sso.dissociate-confirm": "Are you sure you wish to dissociate your account from %1?",
|
||||
"info.latest-flags": "Latest Flags",
|
||||
"info.profile": "Profile",
|
||||
"info.post": "Post",
|
||||
"info.view-flag": "View flag",
|
||||
"info.reported-by": "Reported by:",
|
||||
"info.no-flags": "No Flagged Posts Found",
|
||||
"info.ban-history": "Estohistorian viimeisimmät",
|
||||
"info.no-ban-history": "This user has never been banned",
|
||||
"info.banned-until": "Banned until %1",
|
||||
"info.banned-expiry": "Expiry",
|
||||
"info.ban-expired": "Ban expired",
|
||||
"info.banned-permanently": "Banned permanently",
|
||||
"info.banned-reason-label": "Syy",
|
||||
"info.banned-no-reason": "Syytä ei ole annettu",
|
||||
|
||||
@@ -9,5 +9,9 @@
|
||||
"filter-type": "Évènements",
|
||||
"filter-start": "Date de début",
|
||||
"filter-end": "Date de fin",
|
||||
"filter-user": "Filtrer par Utilisateur",
|
||||
"filter-user.placeholder": "Tapez le nom d'utilisateur à filtrer...",
|
||||
"filter-group": "Filtrer par groupe",
|
||||
"filter-group.placeholder": "Tapez le nom du groupe à filtrer...",
|
||||
"filter-per-page": "Par page"
|
||||
}
|
||||
@@ -95,7 +95,7 @@
|
||||
"expand-analytics": "Développer les statistiques",
|
||||
"clear-search-history": "Effacer l'historique",
|
||||
"clear-search-history-confirm": "Êtes-vous sûr de vouloir effacer tout l'historique de recherche ?",
|
||||
"search-term": "Term",
|
||||
"search-count": "Count",
|
||||
"search-term": "Terme",
|
||||
"search-count": "Nombre",
|
||||
"view-all": "Voir tout"
|
||||
}
|
||||
|
||||
@@ -121,9 +121,31 @@
|
||||
"alerts.email-sent-to": "Un e-mail d'invitation a été envoyé à %1",
|
||||
"alerts.x-users-found": "%1 utilisateur(s) trouvé(s), (%2 secondes)",
|
||||
"alerts.select-a-single-user-to-change-email": "Sélectionner un utilisateur pour modifier l'adresse e-mail",
|
||||
"export": "Exporter",
|
||||
"export-users-fields-title": "Sélectionner champs CSV",
|
||||
"export-field-email": "E-mail",
|
||||
"export-field-username": "Nom d'utilisateur",
|
||||
"export-field-uid": "UID",
|
||||
"export-field-ip": "IP",
|
||||
"export-field-joindate": "Date d'inscription",
|
||||
"export-field-lastonline": "Dernière connexion",
|
||||
"export-field-lastposttime": "Dernier message",
|
||||
"export-field-reputation": "Réputation",
|
||||
"export-field-postcount": "Nombre de messages",
|
||||
"export-field-topiccount": "Nombre de sujets",
|
||||
"export-field-profileviews": "Vues",
|
||||
"export-field-followercount": "Abonnés",
|
||||
"export-field-followingcount": "Abonnements",
|
||||
"export-field-fullname": "Nom complet",
|
||||
"export-field-website": "Site Web",
|
||||
"export-field-location": "Localisation",
|
||||
"export-field-birthday": "Anniversaire",
|
||||
"export-field-signature": "Signature",
|
||||
"export-field-aboutme": "A propos",
|
||||
|
||||
"export-users-started": "L'exportation d'utilisateurs au format CSV peut prendre un certain temps. Vous recevrez une notification lorsqu'elle sera terminée.",
|
||||
"export-users-completed": "Utilisateurs exportés au format CSV, cliquer ici pour télécharger.",
|
||||
"email": "e-mail",
|
||||
"email": "E-mail",
|
||||
"password": "Mot de passe",
|
||||
"manage": "Gérer"
|
||||
}
|
||||
@@ -4,7 +4,7 @@
|
||||
"consent.message": "Message de notification",
|
||||
"consent.acceptance": "Message d'acceptation",
|
||||
"consent.link-text": "Texte du lien vers la politique de confidentialité",
|
||||
"consent.link-url": "URL du lien vers la politique",
|
||||
"consent.link-url": "Lien URL vers la politique",
|
||||
"consent.blank-localised-default": "Laisser vide pour utiliser les textes localisés par défaut de NodeBB",
|
||||
"settings": "Réglages",
|
||||
"cookie-domain": "Domaine de session du cookie",
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
"id": "ID : <small>optionnel</small>",
|
||||
|
||||
"properties": "Propriétés :",
|
||||
"groups": "Groupes :",
|
||||
"show-to-groups": "Show to Groups:",
|
||||
"open-new-window": "Ouvrir dans une nouvelle fenêtre",
|
||||
"dropdown": "Menu déroulant",
|
||||
"dropdown-placeholder": "Placer vos éléments de menu déroulant ci-dessous, par exemple : <br/>https://myforum.com",
|
||||
|
||||
@@ -4,11 +4,11 @@
|
||||
"sorting.post-default": "Tri des messages par défaut",
|
||||
"sorting.oldest-to-newest": "Du plus ancien au plus récent",
|
||||
"sorting.newest-to-oldest": "Du plus récent au plus ancien",
|
||||
"sorting.recently-replied": "Recently Replied",
|
||||
"sorting.recently-created": "Recently Created",
|
||||
"sorting.recently-replied": "Répondu récemment ",
|
||||
"sorting.recently-created": "Créé récemment ",
|
||||
"sorting.most-votes": "Avec le plus de votes",
|
||||
"sorting.most-posts": "Avec le plus de messages",
|
||||
"sorting.most-views": "Most Views",
|
||||
"sorting.most-views": "Les plus vus",
|
||||
"sorting.topic-default": "Tri des sujets par défaut",
|
||||
"length": "Longueur de message",
|
||||
"post-queue": "File d'attente",
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"post-sort-option": "Post sort option, %1",
|
||||
"topic-sort-option": "Topic sort option, %1",
|
||||
"user-avatar-for": "User avatar for %1",
|
||||
"user-watched-tags": "User watched tags",
|
||||
"delete-upload-button": "Delete upload button",
|
||||
"group-page-link-for": "Group page link for %1"
|
||||
"post-sort-option": "Option de tri des messages, %1",
|
||||
"topic-sort-option": "Option de tri des sujets, %1",
|
||||
"user-avatar-for": "Avatar de l'utilisateur pour %1",
|
||||
"user-watched-tags": "L'utilisateur a regardé les tags",
|
||||
"delete-upload-button": "Supprimer le bouton de téléchargement",
|
||||
"group-page-link-for": "Lien vers la page de groupe pour %1"
|
||||
}
|
||||
@@ -184,8 +184,8 @@
|
||||
"user-already-flagged": "Vous avez déjà signalé cet utilisateur",
|
||||
"post-flagged-too-many-times": "Ce message a déjà été signalé par d'autres",
|
||||
"user-flagged-too-many-times": "Cet utilisateur a déjà été signalé par d'autres",
|
||||
"too-many-post-flags-per-day": "You can only flag %1 post(s) per day",
|
||||
"too-many-user-flags-per-day": "You can only flag %1 user(s) per day",
|
||||
"too-many-post-flags-per-day": "Vous pouvez seulement signaler %1 message(s) par jour",
|
||||
"too-many-user-flags-per-day": "Vous pouvez seulement signaler %1 utilisateur(s) par jour",
|
||||
"cant-flag-privileged": "Vous n'êtes pas autorisé à signaler les profils ou le contenu des utilisateurs privilégiés (modérateurs / modérateurs globaux / administrateurs)",
|
||||
"cant-locate-flag-report": "Impossible de trouver le signalement",
|
||||
"self-vote": "Vous ne pouvez pas voter sur votre propre message",
|
||||
@@ -221,7 +221,7 @@
|
||||
"already-unblocked": "Cet utilisateur est déjà débloqué",
|
||||
"no-connection": "Il semble y avoir un problème avec votre connexion internet",
|
||||
"socket-reconnect-failed": "Serveur inaccessible pour le moment. Cliquez ici pour réessayer ou réessayez plus tard",
|
||||
"invalid-plugin-id": "Invalid plugin ID",
|
||||
"invalid-plugin-id": "ID de plugin invalide",
|
||||
"plugin-not-whitelisted": "Impossible d'installer le plugin, seuls les plugins mis en liste blanche dans le gestionnaire de packages NodeBB peuvent être installés via l'ACP",
|
||||
"plugins-set-in-configuration": "Vous n'êtes pas autorisé à modifier l'état des plugins car ils sont définis au moment de l'exécution (config.json, variables d'environnement ou arguments de terminal), veuillez plutôt modifier la configuration.",
|
||||
"theme-not-set-in-configuration": "Lors de la définition des plugins actifs, le changement de thème nécessite d'ajouter le nouveau thème à la liste des plugins actifs avant de le mettre à jour dans l'ACP",
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user