mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-12-16 21:40:23 +01:00
Compare commits
1 Commits
v4.0.6
...
socket-not
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b08259e534 |
19
.github/workflows/docker.yml
vendored
19
.github/workflows/docker.yml
vendored
@@ -21,6 +21,8 @@ jobs:
|
||||
steps:
|
||||
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v3
|
||||
@@ -35,9 +37,6 @@ 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
|
||||
@@ -49,22 +48,12 @@ 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@v6
|
||||
uses: docker/build-push-action@v5
|
||||
with:
|
||||
cache-from: type=gha
|
||||
cache-to: type=gha,mode=min
|
||||
cache-to: type=gha,mode=max
|
||||
context: .
|
||||
file: ./Dockerfile
|
||||
platforms: linux/amd64,linux/arm64,linux/arm/v7
|
||||
|
||||
10
.github/workflows/test.yaml
vendored
10
.github/workflows/test.yaml
vendored
@@ -48,7 +48,7 @@ jobs:
|
||||
|
||||
services:
|
||||
postgres:
|
||||
image: 'postgres:17-alpine'
|
||||
image: 'postgres:16-alpine'
|
||||
env:
|
||||
POSTGRES_USER: postgres
|
||||
POSTGRES_PASSWORD: postgres
|
||||
@@ -63,7 +63,7 @@ jobs:
|
||||
- 5432:5432
|
||||
|
||||
redis:
|
||||
image: 'redis:7.4.2'
|
||||
image: 'redis:7.2.3'
|
||||
# Set health checks to wait until redis has started
|
||||
options: >-
|
||||
--health-cmd "redis-cli ping"
|
||||
@@ -75,7 +75,7 @@ jobs:
|
||||
- 6379:6379
|
||||
|
||||
mongo:
|
||||
image: 'mongo:8.0'
|
||||
image: 'mongo:7.0'
|
||||
ports:
|
||||
# Maps port 27017 on service container to the host
|
||||
- 27017:27017
|
||||
@@ -192,7 +192,7 @@ jobs:
|
||||
run: npm run coverage
|
||||
|
||||
- name: Test coverage
|
||||
uses: coverallsapp/github-action@cfd0633edbd2411b532b808ba7a8b5e04f76d2c8 # v2.3.4
|
||||
uses: coverallsapp/github-action@3dfc5567390f6fa9267c0ee9c251e4c8c3f18949 # v2.2.3
|
||||
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@cfd0633edbd2411b532b808ba7a8b5e04f76d2c8 # v2.3.4
|
||||
uses: coverallsapp/github-action@3dfc5567390f6fa9267c0ee9c251e4c8c3f18949 # v2.2.3
|
||||
with:
|
||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
parallel-finished: true
|
||||
|
||||
3
.gitignore
vendored
3
.gitignore
vendored
@@ -71,5 +71,4 @@ package-lock.json
|
||||
link-plugins.sh
|
||||
test.sh
|
||||
|
||||
.docker/**
|
||||
!**/.gitkeep
|
||||
.docker/
|
||||
491
.tx/config
491
.tx/config
@@ -28,7 +28,6 @@ trans.fa_IR = public/language/fa-IR/admin/admin.json
|
||||
trans.id = public/language/id/admin/admin.json
|
||||
trans.ms = public/language/ms/admin/admin.json
|
||||
trans.nb = public/language/nb/admin/admin.json
|
||||
trans.nn_NO = public/language/nn-NO/admin/admin.json
|
||||
trans.sk = public/language/sk/admin/admin.json
|
||||
trans.cs = public/language/cs/admin/admin.json
|
||||
trans.fi = public/language/fi/admin/admin.json
|
||||
@@ -87,7 +86,6 @@ trans.bg = public/language/bg/admin/advanced/cache.json
|
||||
trans.cs = public/language/cs/admin/advanced/cache.json
|
||||
trans.lt = public/language/lt/admin/advanced/cache.json
|
||||
trans.nb = public/language/nb/admin/advanced/cache.json
|
||||
trans.nn_NO = public/language/nn-NO/admin/advanced/cache.json
|
||||
trans.uk = public/language/uk/admin/advanced/cache.json
|
||||
trans.el = public/language/el/admin/advanced/cache.json
|
||||
trans.pl = public/language/pl/admin/advanced/cache.json
|
||||
@@ -129,7 +127,6 @@ trans.zh_TW = public/language/zh-TW/admin/advanced/database.json
|
||||
trans.gl = public/language/gl/admin/advanced/database.json
|
||||
trans.it = public/language/it/admin/advanced/database.json
|
||||
trans.nb = public/language/nb/admin/advanced/database.json
|
||||
trans.nn_NO = public/language/nn-NO/admin/advanced/database.json
|
||||
trans.bn = public/language/bn/admin/advanced/database.json
|
||||
trans.da = public/language/da/admin/advanced/database.json
|
||||
trans.de = public/language/de/admin/advanced/database.json
|
||||
@@ -179,7 +176,6 @@ trans.vi = public/language/vi/admin/advanced/errors.json
|
||||
trans.de = public/language/de/admin/advanced/errors.json
|
||||
trans.ko = public/language/ko/admin/advanced/errors.json
|
||||
trans.nb = public/language/nb/admin/advanced/errors.json
|
||||
trans.nn_NO = public/language/nn-NO/admin/advanced/errors.json
|
||||
trans.sc = public/language/sc/admin/advanced/errors.json
|
||||
trans.sl = public/language/sl/admin/advanced/errors.json
|
||||
trans.tr = public/language/tr/admin/advanced/errors.json
|
||||
@@ -236,7 +232,6 @@ trans.fa_IR = public/language/fa-IR/admin/advanced/events.json
|
||||
trans.ms = public/language/ms/admin/advanced/events.json
|
||||
trans.tr = public/language/tr/admin/advanced/events.json
|
||||
trans.nb = public/language/nb/admin/advanced/events.json
|
||||
trans.nn_NO = public/language/nn-NO/admin/advanced/events.json
|
||||
trans.pt_PT = public/language/pt-PT/admin/advanced/events.json
|
||||
trans.sk = public/language/sk/admin/advanced/events.json
|
||||
trans.en@pirate = public/language/en-x-pirate/admin/advanced/events.json
|
||||
@@ -281,7 +276,6 @@ trans.hr = public/language/hr/admin/advanced/logs.json
|
||||
trans.ja = public/language/ja/admin/advanced/logs.json
|
||||
trans.lt = public/language/lt/admin/advanced/logs.json
|
||||
trans.nb = public/language/nb/admin/advanced/logs.json
|
||||
trans.nn_NO = public/language/nn-NO/admin/advanced/logs.json
|
||||
trans.rw = public/language/rw/admin/advanced/logs.json
|
||||
trans.es = public/language/es/admin/advanced/logs.json
|
||||
trans.sv = public/language/sv/admin/advanced/logs.json
|
||||
@@ -334,7 +328,6 @@ trans.bg = public/language/bg/admin/appearance/customise.json
|
||||
trans.he = public/language/he/admin/appearance/customise.json
|
||||
trans.lt = public/language/lt/admin/appearance/customise.json
|
||||
trans.nb = public/language/nb/admin/appearance/customise.json
|
||||
trans.nn_NO = public/language/nn-NO/admin/appearance/customise.json
|
||||
trans.pl = public/language/pl/admin/appearance/customise.json
|
||||
trans.sl = public/language/sl/admin/appearance/customise.json
|
||||
trans.zh_TW = public/language/zh-TW/admin/appearance/customise.json
|
||||
@@ -409,7 +402,6 @@ trans.en@pirate = public/language/en-x-pirate/admin/appearance/skins.json
|
||||
trans.it = public/language/it/admin/appearance/skins.json
|
||||
trans.ja = public/language/ja/admin/appearance/skins.json
|
||||
trans.nb = public/language/nb/admin/appearance/skins.json
|
||||
trans.nn_NO = public/language/nn-NO/admin/appearance/skins.json
|
||||
trans.fr = public/language/fr/admin/appearance/skins.json
|
||||
trans.fa_IR = public/language/fa-IR/admin/appearance/skins.json
|
||||
trans.gl = public/language/gl/admin/appearance/skins.json
|
||||
@@ -461,7 +453,6 @@ trans.hy = public/language/hy/admin/appearance/themes.json
|
||||
trans.id = public/language/id/admin/appearance/themes.json
|
||||
trans.ko = public/language/ko/admin/appearance/themes.json
|
||||
trans.nb = public/language/nb/admin/appearance/themes.json
|
||||
trans.nn_NO = public/language/nn-NO/admin/appearance/themes.json
|
||||
trans.pl = public/language/pl/admin/appearance/themes.json
|
||||
trans.pt_PT = public/language/pt-PT/admin/appearance/themes.json
|
||||
trans.tr = public/language/tr/admin/appearance/themes.json
|
||||
@@ -529,7 +520,6 @@ trans.fi = public/language/fi/admin/dashboard.json
|
||||
trans.hr = public/language/hr/admin/dashboard.json
|
||||
trans.it = public/language/it/admin/dashboard.json
|
||||
trans.nb = public/language/nb/admin/dashboard.json
|
||||
trans.nn_NO = public/language/nn-NO/admin/dashboard.json
|
||||
|
||||
[o:nodebb:p:nodebb:r:admin-development-info]
|
||||
file_filter = public/language/<lang>/admin/development/info.json
|
||||
@@ -566,7 +556,6 @@ trans.zh_CN = public/language/zh-CN/admin/development/info.json
|
||||
trans.cs = public/language/cs/admin/development/info.json
|
||||
trans.ja = public/language/ja/admin/development/info.json
|
||||
trans.nb = public/language/nb/admin/development/info.json
|
||||
trans.nn_NO = public/language/nn-NO/admin/development/info.json
|
||||
trans.sq_AL = public/language/sq-AL/admin/development/info.json
|
||||
trans.sv = public/language/sv/admin/development/info.json
|
||||
trans.bg = public/language/bg/admin/development/info.json
|
||||
@@ -602,7 +591,6 @@ trans.id = public/language/id/admin/development/logger.json
|
||||
trans.ko = public/language/ko/admin/development/logger.json
|
||||
trans.lt = public/language/lt/admin/development/logger.json
|
||||
trans.nb = public/language/nb/admin/development/logger.json
|
||||
trans.nn_NO = public/language/nn-NO/admin/development/logger.json
|
||||
trans.pt_BR = public/language/pt-BR/admin/development/logger.json
|
||||
trans.ro = public/language/ro/admin/development/logger.json
|
||||
trans.fi = public/language/fi/admin/development/logger.json
|
||||
@@ -654,7 +642,6 @@ trans.th = public/language/th/admin/extend/plugins.json
|
||||
trans.en_US = public/language/en-US/admin/extend/plugins.json
|
||||
trans.he = public/language/he/admin/extend/plugins.json
|
||||
trans.nb = public/language/nb/admin/extend/plugins.json
|
||||
trans.nn_NO = public/language/nn-NO/admin/extend/plugins.json
|
||||
trans.sk = public/language/sk/admin/extend/plugins.json
|
||||
trans.uk = public/language/uk/admin/extend/plugins.json
|
||||
trans.es = public/language/es/admin/extend/plugins.json
|
||||
@@ -715,7 +702,6 @@ trans.hr = public/language/hr/admin/extend/rewards.json
|
||||
trans.ja = public/language/ja/admin/extend/rewards.json
|
||||
trans.ko = public/language/ko/admin/extend/rewards.json
|
||||
trans.nb = public/language/nb/admin/extend/rewards.json
|
||||
trans.nn_NO = public/language/nn-NO/admin/extend/rewards.json
|
||||
trans.bg = public/language/bg/admin/extend/rewards.json
|
||||
trans.bn = public/language/bn/admin/extend/rewards.json
|
||||
trans.da = public/language/da/admin/extend/rewards.json
|
||||
@@ -752,7 +738,6 @@ trans.bn = public/language/bn/admin/extend/widgets.json
|
||||
trans.el = public/language/el/admin/extend/widgets.json
|
||||
trans.id = public/language/id/admin/extend/widgets.json
|
||||
trans.nb = public/language/nb/admin/extend/widgets.json
|
||||
trans.nn_NO = public/language/nn-NO/admin/extend/widgets.json
|
||||
trans.ro = public/language/ro/admin/extend/widgets.json
|
||||
trans.rw = public/language/rw/admin/extend/widgets.json
|
||||
trans.ar = public/language/ar/admin/extend/widgets.json
|
||||
@@ -803,7 +788,6 @@ source_lang = en_GB
|
||||
type = KEYVALUEJSON
|
||||
trans.hu = public/language/hu/admin/manage/admins-mods.json
|
||||
trans.nb = public/language/nb/admin/manage/admins-mods.json
|
||||
trans.nn_NO = public/language/nn-NO/admin/manage/admins-mods.json
|
||||
trans.ru = public/language/ru/admin/manage/admins-mods.json
|
||||
trans.fr = public/language/fr/admin/manage/admins-mods.json
|
||||
trans.he = public/language/he/admin/manage/admins-mods.json
|
||||
@@ -870,7 +854,6 @@ trans.en_US = public/language/en-US/admin/manage/categories.json
|
||||
trans.fr = public/language/fr/admin/manage/categories.json
|
||||
trans.it = public/language/it/admin/manage/categories.json
|
||||
trans.nb = public/language/nb/admin/manage/categories.json
|
||||
trans.nn_NO = public/language/nn-NO/admin/manage/categories.json
|
||||
trans.ru = public/language/ru/admin/manage/categories.json
|
||||
trans.sr = public/language/sr/admin/manage/categories.json
|
||||
trans.fa_IR = public/language/fa-IR/admin/manage/categories.json
|
||||
@@ -947,7 +930,6 @@ trans.zh_CN = public/language/zh-CN/admin/manage/digest.json
|
||||
trans.ar = public/language/ar/admin/manage/digest.json
|
||||
trans.ja = public/language/ja/admin/manage/digest.json
|
||||
trans.nb = public/language/nb/admin/manage/digest.json
|
||||
trans.nn_NO = public/language/nn-NO/admin/manage/digest.json
|
||||
trans.sk = public/language/sk/admin/manage/digest.json
|
||||
trans.pt_PT = public/language/pt-PT/admin/manage/digest.json
|
||||
trans.sc = public/language/sc/admin/manage/digest.json
|
||||
@@ -965,7 +947,6 @@ trans.tr = public/language/tr/admin/manage/groups.json
|
||||
trans.uk = public/language/uk/admin/manage/groups.json
|
||||
trans.zh_TW = public/language/zh-TW/admin/manage/groups.json
|
||||
trans.nb = public/language/nb/admin/manage/groups.json
|
||||
trans.nn_NO = public/language/nn-NO/admin/manage/groups.json
|
||||
trans.id = public/language/id/admin/manage/groups.json
|
||||
trans.lt = public/language/lt/admin/manage/groups.json
|
||||
trans.pl = public/language/pl/admin/manage/groups.json
|
||||
@@ -1037,7 +1018,6 @@ trans.hy = public/language/hy/admin/manage/privileges.json
|
||||
trans.sr = public/language/sr/admin/manage/privileges.json
|
||||
trans.ja = public/language/ja/admin/manage/privileges.json
|
||||
trans.nb = public/language/nb/admin/manage/privileges.json
|
||||
trans.nn_NO = public/language/nn-NO/admin/manage/privileges.json
|
||||
trans.nl = public/language/nl/admin/manage/privileges.json
|
||||
trans.sv = public/language/sv/admin/manage/privileges.json
|
||||
trans.et = public/language/et/admin/manage/privileges.json
|
||||
@@ -1081,7 +1061,6 @@ trans.da = public/language/da/admin/manage/registration.json
|
||||
trans.et = public/language/et/admin/manage/registration.json
|
||||
trans.it = public/language/it/admin/manage/registration.json
|
||||
trans.nb = public/language/nb/admin/manage/registration.json
|
||||
trans.nn_NO = public/language/nn-NO/admin/manage/registration.json
|
||||
trans.pt_BR = public/language/pt-BR/admin/manage/registration.json
|
||||
trans.hy = public/language/hy/admin/manage/registration.json
|
||||
trans.uk = public/language/uk/admin/manage/registration.json
|
||||
@@ -1125,7 +1104,6 @@ trans.da = public/language/da/admin/manage/tags.json
|
||||
trans.en_US = public/language/en-US/admin/manage/tags.json
|
||||
trans.hu = public/language/hu/admin/manage/tags.json
|
||||
trans.nb = public/language/nb/admin/manage/tags.json
|
||||
trans.nn_NO = public/language/nn-NO/admin/manage/tags.json
|
||||
trans.ru = public/language/ru/admin/manage/tags.json
|
||||
trans.sq_AL = public/language/sq-AL/admin/manage/tags.json
|
||||
trans.de = public/language/de/admin/manage/tags.json
|
||||
@@ -1174,7 +1152,6 @@ source_lang = en_GB
|
||||
type = KEYVALUEJSON
|
||||
trans.ms = public/language/ms/admin/manage/uploads.json
|
||||
trans.nb = public/language/nb/admin/manage/uploads.json
|
||||
trans.nn_NO = public/language/nn-NO/admin/manage/uploads.json
|
||||
trans.tr = public/language/tr/admin/manage/uploads.json
|
||||
trans.bg = public/language/bg/admin/manage/uploads.json
|
||||
trans.bn = public/language/bn/admin/manage/uploads.json
|
||||
@@ -1220,59 +1197,6 @@ trans.id = public/language/id/admin/manage/uploads.json
|
||||
trans.it = public/language/it/admin/manage/uploads.json
|
||||
trans.ja = public/language/ja/admin/manage/uploads.json
|
||||
|
||||
[o:nodebb:p:nodebb:r:admin-manage-user-custom-fields]
|
||||
file_filter = public/language/<lang>/admin/manage/user-custom-fields.json
|
||||
source_file = public/language/en-GB/admin/manage/user-custom-fields.json
|
||||
source_lang = en_GB
|
||||
type = KEYVALUEJSON
|
||||
trans.uk = public/language/uk/admin/manage/user-custom-fields.json
|
||||
trans.en@pirate = public/language/en-x-pirate/admin/manage/user-custom-fields.json
|
||||
trans.en_US = public/language/en-US/admin/manage/user-custom-fields.json
|
||||
trans.fr = public/language/fr/admin/manage/user-custom-fields.json
|
||||
trans.ko = public/language/ko/admin/manage/user-custom-fields.json
|
||||
trans.ms = public/language/ms/admin/manage/user-custom-fields.json
|
||||
trans.nb = public/language/nb/admin/manage/user-custom-fields.json
|
||||
trans.nn_NO = public/language/nn-NO/admin/manage/user-custom-fields.json
|
||||
trans.pt_BR = public/language/pt-BR/admin/manage/user-custom-fields.json
|
||||
trans.zh_CN = public/language/zh-CN/admin/manage/user-custom-fields.json
|
||||
trans.zh_TW = public/language/zh-TW/admin/manage/user-custom-fields.json
|
||||
trans.cs = public/language/cs/admin/manage/user-custom-fields.json
|
||||
trans.gl = public/language/gl/admin/manage/user-custom-fields.json
|
||||
trans.rw = public/language/rw/admin/manage/user-custom-fields.json
|
||||
trans.bg = public/language/bg/admin/manage/user-custom-fields.json
|
||||
trans.de = public/language/de/admin/manage/user-custom-fields.json
|
||||
trans.et = public/language/et/admin/manage/user-custom-fields.json
|
||||
trans.id = public/language/id/admin/manage/user-custom-fields.json
|
||||
trans.pt_PT = public/language/pt-PT/admin/manage/user-custom-fields.json
|
||||
trans.ru = public/language/ru/admin/manage/user-custom-fields.json
|
||||
trans.da = public/language/da/admin/manage/user-custom-fields.json
|
||||
trans.he = public/language/he/admin/manage/user-custom-fields.json
|
||||
trans.hu = public/language/hu/admin/manage/user-custom-fields.json
|
||||
trans.ro = public/language/ro/admin/manage/user-custom-fields.json
|
||||
trans.bn = public/language/bn/admin/manage/user-custom-fields.json
|
||||
trans.es = public/language/es/admin/manage/user-custom-fields.json
|
||||
trans.it = public/language/it/admin/manage/user-custom-fields.json
|
||||
trans.nl = public/language/nl/admin/manage/user-custom-fields.json
|
||||
trans.sq_AL = public/language/sq-AL/admin/manage/user-custom-fields.json
|
||||
trans.tr = public/language/tr/admin/manage/user-custom-fields.json
|
||||
trans.vi = public/language/vi/admin/manage/user-custom-fields.json
|
||||
trans.fi = public/language/fi/admin/manage/user-custom-fields.json
|
||||
trans.sc = public/language/sc/admin/manage/user-custom-fields.json
|
||||
trans.hy = public/language/hy/admin/manage/user-custom-fields.json
|
||||
trans.ja = public/language/ja/admin/manage/user-custom-fields.json
|
||||
trans.lt = public/language/lt/admin/manage/user-custom-fields.json
|
||||
trans.th = public/language/th/admin/manage/user-custom-fields.json
|
||||
trans.sl = public/language/sl/admin/manage/user-custom-fields.json
|
||||
trans.ar = public/language/ar/admin/manage/user-custom-fields.json
|
||||
trans.el = public/language/el/admin/manage/user-custom-fields.json
|
||||
trans.fa_IR = public/language/fa-IR/admin/manage/user-custom-fields.json
|
||||
trans.hr = public/language/hr/admin/manage/user-custom-fields.json
|
||||
trans.lv = public/language/lv/admin/manage/user-custom-fields.json
|
||||
trans.pl = public/language/pl/admin/manage/user-custom-fields.json
|
||||
trans.sk = public/language/sk/admin/manage/user-custom-fields.json
|
||||
trans.sr = public/language/sr/admin/manage/user-custom-fields.json
|
||||
trans.sv = public/language/sv/admin/manage/user-custom-fields.json
|
||||
|
||||
[o:nodebb:p:nodebb:r:admin-manage-users]
|
||||
file_filter = public/language/<lang>/admin/manage/users.json
|
||||
source_file = public/language/en-GB/admin/manage/users.json
|
||||
@@ -1285,7 +1209,6 @@ trans.fr = public/language/fr/admin/manage/users.json
|
||||
trans.ko = public/language/ko/admin/manage/users.json
|
||||
trans.ms = public/language/ms/admin/manage/users.json
|
||||
trans.nb = public/language/nb/admin/manage/users.json
|
||||
trans.nn_NO = public/language/nn-NO/admin/manage/users.json
|
||||
trans.pt_BR = public/language/pt-BR/admin/manage/users.json
|
||||
trans.zh_CN = public/language/zh-CN/admin/manage/users.json
|
||||
trans.zh_TW = public/language/zh-TW/admin/manage/users.json
|
||||
@@ -1374,7 +1297,6 @@ trans.el = public/language/el/admin/menu.json
|
||||
trans.gl = public/language/gl/admin/menu.json
|
||||
trans.lv = public/language/lv/admin/menu.json
|
||||
trans.nb = public/language/nb/admin/menu.json
|
||||
trans.nn_NO = public/language/nn-NO/admin/menu.json
|
||||
trans.pt_PT = public/language/pt-PT/admin/menu.json
|
||||
trans.bn = public/language/bn/admin/menu.json
|
||||
trans.et = public/language/et/admin/menu.json
|
||||
@@ -1402,7 +1324,6 @@ trans.rw = public/language/rw/admin/settings/advanced.json
|
||||
trans.sl = public/language/sl/admin/settings/advanced.json
|
||||
trans.it = public/language/it/admin/settings/advanced.json
|
||||
trans.nb = public/language/nb/admin/settings/advanced.json
|
||||
trans.nn_NO = public/language/nn-NO/admin/settings/advanced.json
|
||||
trans.pt_PT = public/language/pt-PT/admin/settings/advanced.json
|
||||
trans.sq_AL = public/language/sq-AL/admin/settings/advanced.json
|
||||
trans.sr = public/language/sr/admin/settings/advanced.json
|
||||
@@ -1432,59 +1353,6 @@ trans.ms = public/language/ms/admin/settings/advanced.json
|
||||
trans.nl = public/language/nl/admin/settings/advanced.json
|
||||
trans.th = public/language/th/admin/settings/advanced.json
|
||||
|
||||
[o:nodebb:p:nodebb:r:admin-settings-activitypub]
|
||||
file_filter = public/language/<lang>/admin/settings/activitypub.json
|
||||
source_file = public/language/en-GB/admin/settings/activitypub.json
|
||||
source_lang = en_GB
|
||||
type = KEYVALUEJSON
|
||||
trans.ko = public/language/ko/admin/settings/activitypub.json
|
||||
trans.sc = public/language/sc/admin/settings/activitypub.json
|
||||
trans.ar = public/language/ar/admin/settings/activitypub.json
|
||||
trans.bn = public/language/bn/admin/settings/activitypub.json
|
||||
trans.el = public/language/el/admin/settings/activitypub.json
|
||||
trans.fa_IR = public/language/fa-IR/admin/settings/activitypub.json
|
||||
trans.fr = public/language/fr/admin/settings/activitypub.json
|
||||
trans.hy = public/language/hy/admin/settings/activitypub.json
|
||||
trans.bg = public/language/bg/admin/settings/activitypub.json
|
||||
trans.lv = public/language/lv/admin/settings/activitypub.json
|
||||
trans.pt_BR = public/language/pt-BR/admin/settings/activitypub.json
|
||||
trans.en@pirate = public/language/en-x-pirate/admin/settings/activitypub.json
|
||||
trans.es = public/language/es/admin/settings/activitypub.json
|
||||
trans.id = public/language/id/admin/settings/activitypub.json
|
||||
trans.rw = public/language/rw/admin/settings/activitypub.json
|
||||
trans.sl = public/language/sl/admin/settings/activitypub.json
|
||||
trans.it = public/language/it/admin/settings/activitypub.json
|
||||
trans.nb = public/language/nb/admin/settings/activitypub.json
|
||||
trans.nn_NO = public/language/nn-NO/admin/settings/activitypub.json
|
||||
trans.pt_PT = public/language/pt-PT/admin/settings/activitypub.json
|
||||
trans.sq_AL = public/language/sq-AL/admin/settings/activitypub.json
|
||||
trans.sr = public/language/sr/admin/settings/activitypub.json
|
||||
trans.zh_CN = public/language/zh-CN/admin/settings/activitypub.json
|
||||
trans.zh_TW = public/language/zh-TW/admin/settings/activitypub.json
|
||||
trans.cs = public/language/cs/admin/settings/activitypub.json
|
||||
trans.en_US = public/language/en-US/admin/settings/activitypub.json
|
||||
trans.hr = public/language/hr/admin/settings/activitypub.json
|
||||
trans.pl = public/language/pl/admin/settings/activitypub.json
|
||||
trans.ru = public/language/ru/admin/settings/activitypub.json
|
||||
trans.sv = public/language/sv/admin/settings/activitypub.json
|
||||
trans.vi = public/language/vi/admin/settings/activitypub.json
|
||||
trans.de = public/language/de/admin/settings/activitypub.json
|
||||
trans.et = public/language/et/admin/settings/activitypub.json
|
||||
trans.fi = public/language/fi/admin/settings/activitypub.json
|
||||
trans.ro = public/language/ro/admin/settings/activitypub.json
|
||||
trans.sk = public/language/sk/admin/settings/activitypub.json
|
||||
trans.uk = public/language/uk/admin/settings/activitypub.json
|
||||
trans.da = public/language/da/admin/settings/activitypub.json
|
||||
trans.gl = public/language/gl/admin/settings/activitypub.json
|
||||
trans.he = public/language/he/admin/settings/activitypub.json
|
||||
trans.hu = public/language/hu/admin/settings/activitypub.json
|
||||
trans.ja = public/language/ja/admin/settings/activitypub.json
|
||||
trans.tr = public/language/tr/admin/settings/activitypub.json
|
||||
trans.lt = public/language/lt/admin/settings/activitypub.json
|
||||
trans.ms = public/language/ms/admin/settings/activitypub.json
|
||||
trans.nl = public/language/nl/admin/settings/activitypub.json
|
||||
trans.th = public/language/th/admin/settings/activitypub.json
|
||||
|
||||
[o:nodebb:p:nodebb:r:admin-settings-api]
|
||||
file_filter = public/language/<lang>/admin/settings/api.json
|
||||
source_file = public/language/en-GB/admin/settings/api.json
|
||||
@@ -1512,7 +1380,6 @@ trans.zh_TW = public/language/zh-TW/admin/settings/api.json
|
||||
trans.cs = public/language/cs/admin/settings/api.json
|
||||
trans.it = public/language/it/admin/settings/api.json
|
||||
trans.nb = public/language/nb/admin/settings/api.json
|
||||
trans.nn_NO = public/language/nn-NO/admin/settings/api.json
|
||||
trans.pt_PT = public/language/pt-PT/admin/settings/api.json
|
||||
trans.ru = public/language/ru/admin/settings/api.json
|
||||
trans.uk = public/language/uk/admin/settings/api.json
|
||||
@@ -1561,7 +1428,6 @@ trans.hr = public/language/hr/admin/settings/chat.json
|
||||
trans.ja = public/language/ja/admin/settings/chat.json
|
||||
trans.ko = public/language/ko/admin/settings/chat.json
|
||||
trans.nb = public/language/nb/admin/settings/chat.json
|
||||
trans.nn_NO = public/language/nn-NO/admin/settings/chat.json
|
||||
trans.nl = public/language/nl/admin/settings/chat.json
|
||||
trans.uk = public/language/uk/admin/settings/chat.json
|
||||
trans.he = public/language/he/admin/settings/chat.json
|
||||
@@ -1629,7 +1495,6 @@ trans.hr = public/language/hr/admin/settings/cookies.json
|
||||
trans.ja = public/language/ja/admin/settings/cookies.json
|
||||
trans.pt_PT = public/language/pt-PT/admin/settings/cookies.json
|
||||
trans.nb = public/language/nb/admin/settings/cookies.json
|
||||
trans.nn_NO = public/language/nn-NO/admin/settings/cookies.json
|
||||
trans.sc = public/language/sc/admin/settings/cookies.json
|
||||
trans.bg = public/language/bg/admin/settings/cookies.json
|
||||
trans.fi = public/language/fi/admin/settings/cookies.json
|
||||
@@ -1658,7 +1523,6 @@ trans.pt_PT = public/language/pt-PT/admin/settings/email.json
|
||||
trans.sr = public/language/sr/admin/settings/email.json
|
||||
trans.ms = public/language/ms/admin/settings/email.json
|
||||
trans.nb = public/language/nb/admin/settings/email.json
|
||||
trans.nn_NO = public/language/nn-NO/admin/settings/email.json
|
||||
trans.ru = public/language/ru/admin/settings/email.json
|
||||
trans.sk = public/language/sk/admin/settings/email.json
|
||||
trans.fr = public/language/fr/admin/settings/email.json
|
||||
@@ -1735,7 +1599,6 @@ trans.es = public/language/es/admin/settings/general.json
|
||||
trans.fa_IR = public/language/fa-IR/admin/settings/general.json
|
||||
trans.ms = public/language/ms/admin/settings/general.json
|
||||
trans.nb = public/language/nb/admin/settings/general.json
|
||||
trans.nn_NO = public/language/nn-NO/admin/settings/general.json
|
||||
trans.sr = public/language/sr/admin/settings/general.json
|
||||
trans.da = public/language/da/admin/settings/general.json
|
||||
trans.en@pirate = public/language/en-x-pirate/admin/settings/general.json
|
||||
@@ -1761,7 +1624,6 @@ trans.et = public/language/et/admin/settings/group.json
|
||||
trans.fr = public/language/fr/admin/settings/group.json
|
||||
trans.it = public/language/it/admin/settings/group.json
|
||||
trans.nb = public/language/nb/admin/settings/group.json
|
||||
trans.nn_NO = public/language/nn-NO/admin/settings/group.json
|
||||
trans.es = public/language/es/admin/settings/group.json
|
||||
trans.fa_IR = public/language/fa-IR/admin/settings/group.json
|
||||
trans.gl = public/language/gl/admin/settings/group.json
|
||||
@@ -1803,6 +1665,162 @@ trans.pt_BR = public/language/pt-BR/admin/settings/group.json
|
||||
trans.zh_CN = public/language/zh-CN/admin/settings/group.json
|
||||
trans.zh_TW = public/language/zh-TW/admin/settings/group.json
|
||||
|
||||
[o:nodebb:p:nodebb:r:admin-settings-guest]
|
||||
file_filter = public/language/<lang>/admin/settings/guest.json
|
||||
source_file = public/language/en-GB/admin/settings/guest.json
|
||||
source_lang = en_GB
|
||||
type = KEYVALUEJSON
|
||||
trans.cs = public/language/cs/admin/settings/guest.json
|
||||
trans.da = public/language/da/admin/settings/guest.json
|
||||
trans.en_US = public/language/en-US/admin/settings/guest.json
|
||||
trans.lt = public/language/lt/admin/settings/guest.json
|
||||
trans.ms = public/language/ms/admin/settings/guest.json
|
||||
trans.nl = public/language/nl/admin/settings/guest.json
|
||||
trans.ru = public/language/ru/admin/settings/guest.json
|
||||
trans.sc = public/language/sc/admin/settings/guest.json
|
||||
trans.sr = public/language/sr/admin/settings/guest.json
|
||||
trans.th = public/language/th/admin/settings/guest.json
|
||||
trans.en@pirate = public/language/en-x-pirate/admin/settings/guest.json
|
||||
trans.it = public/language/it/admin/settings/guest.json
|
||||
trans.lv = public/language/lv/admin/settings/guest.json
|
||||
trans.pt_BR = public/language/pt-BR/admin/settings/guest.json
|
||||
trans.sk = public/language/sk/admin/settings/guest.json
|
||||
trans.de = public/language/de/admin/settings/guest.json
|
||||
trans.es = public/language/es/admin/settings/guest.json
|
||||
trans.hr = public/language/hr/admin/settings/guest.json
|
||||
trans.pt_PT = public/language/pt-PT/admin/settings/guest.json
|
||||
trans.rw = public/language/rw/admin/settings/guest.json
|
||||
trans.sq_AL = public/language/sq-AL/admin/settings/guest.json
|
||||
trans.el = public/language/el/admin/settings/guest.json
|
||||
trans.tr = public/language/tr/admin/settings/guest.json
|
||||
trans.zh_CN = public/language/zh-CN/admin/settings/guest.json
|
||||
trans.bg = public/language/bg/admin/settings/guest.json
|
||||
trans.fi = public/language/fi/admin/settings/guest.json
|
||||
trans.hu = public/language/hu/admin/settings/guest.json
|
||||
trans.ja = public/language/ja/admin/settings/guest.json
|
||||
trans.nb = public/language/nb/admin/settings/guest.json
|
||||
trans.pl = public/language/pl/admin/settings/guest.json
|
||||
trans.sl = public/language/sl/admin/settings/guest.json
|
||||
trans.vi = public/language/vi/admin/settings/guest.json
|
||||
trans.bn = public/language/bn/admin/settings/guest.json
|
||||
trans.fa_IR = public/language/fa-IR/admin/settings/guest.json
|
||||
trans.fr = public/language/fr/admin/settings/guest.json
|
||||
trans.hy = public/language/hy/admin/settings/guest.json
|
||||
trans.ro = public/language/ro/admin/settings/guest.json
|
||||
trans.et = public/language/et/admin/settings/guest.json
|
||||
trans.gl = public/language/gl/admin/settings/guest.json
|
||||
trans.sv = public/language/sv/admin/settings/guest.json
|
||||
trans.uk = public/language/uk/admin/settings/guest.json
|
||||
trans.zh_TW = public/language/zh-TW/admin/settings/guest.json
|
||||
trans.ar = public/language/ar/admin/settings/guest.json
|
||||
trans.he = public/language/he/admin/settings/guest.json
|
||||
trans.id = public/language/id/admin/settings/guest.json
|
||||
trans.ko = public/language/ko/admin/settings/guest.json
|
||||
|
||||
[o:nodebb:p:nodebb:r:admin-settings-homepage]
|
||||
file_filter = public/language/<lang>/admin/settings/homepage.json
|
||||
source_file = public/language/en-GB/admin/settings/homepage.json
|
||||
source_lang = en_GB
|
||||
type = KEYVALUEJSON
|
||||
trans.nb = public/language/nb/admin/settings/homepage.json
|
||||
trans.tr = public/language/tr/admin/settings/homepage.json
|
||||
trans.vi = public/language/vi/admin/settings/homepage.json
|
||||
trans.et = public/language/et/admin/settings/homepage.json
|
||||
trans.fi = public/language/fi/admin/settings/homepage.json
|
||||
trans.hy = public/language/hy/admin/settings/homepage.json
|
||||
trans.ru = public/language/ru/admin/settings/homepage.json
|
||||
trans.sr = public/language/sr/admin/settings/homepage.json
|
||||
trans.es = public/language/es/admin/settings/homepage.json
|
||||
trans.id = public/language/id/admin/settings/homepage.json
|
||||
trans.lt = public/language/lt/admin/settings/homepage.json
|
||||
trans.sk = public/language/sk/admin/settings/homepage.json
|
||||
trans.sq_AL = public/language/sq-AL/admin/settings/homepage.json
|
||||
trans.th = public/language/th/admin/settings/homepage.json
|
||||
trans.en_US = public/language/en-US/admin/settings/homepage.json
|
||||
trans.lv = public/language/lv/admin/settings/homepage.json
|
||||
trans.pt_PT = public/language/pt-PT/admin/settings/homepage.json
|
||||
trans.sc = public/language/sc/admin/settings/homepage.json
|
||||
trans.fa_IR = public/language/fa-IR/admin/settings/homepage.json
|
||||
trans.he = public/language/he/admin/settings/homepage.json
|
||||
trans.ms = public/language/ms/admin/settings/homepage.json
|
||||
trans.cs = public/language/cs/admin/settings/homepage.json
|
||||
trans.el = public/language/el/admin/settings/homepage.json
|
||||
trans.en@pirate = public/language/en-x-pirate/admin/settings/homepage.json
|
||||
trans.gl = public/language/gl/admin/settings/homepage.json
|
||||
trans.ko = public/language/ko/admin/settings/homepage.json
|
||||
trans.ar = public/language/ar/admin/settings/homepage.json
|
||||
trans.bg = public/language/bg/admin/settings/homepage.json
|
||||
trans.bn = public/language/bn/admin/settings/homepage.json
|
||||
trans.rw = public/language/rw/admin/settings/homepage.json
|
||||
trans.zh_CN = public/language/zh-CN/admin/settings/homepage.json
|
||||
trans.hr = public/language/hr/admin/settings/homepage.json
|
||||
trans.it = public/language/it/admin/settings/homepage.json
|
||||
trans.ja = public/language/ja/admin/settings/homepage.json
|
||||
trans.nl = public/language/nl/admin/settings/homepage.json
|
||||
trans.ro = public/language/ro/admin/settings/homepage.json
|
||||
trans.da = public/language/da/admin/settings/homepage.json
|
||||
trans.de = public/language/de/admin/settings/homepage.json
|
||||
trans.fr = public/language/fr/admin/settings/homepage.json
|
||||
trans.sv = public/language/sv/admin/settings/homepage.json
|
||||
trans.hu = public/language/hu/admin/settings/homepage.json
|
||||
trans.pt_BR = public/language/pt-BR/admin/settings/homepage.json
|
||||
trans.sl = public/language/sl/admin/settings/homepage.json
|
||||
trans.pl = public/language/pl/admin/settings/homepage.json
|
||||
trans.uk = public/language/uk/admin/settings/homepage.json
|
||||
trans.zh_TW = public/language/zh-TW/admin/settings/homepage.json
|
||||
|
||||
[o:nodebb:p:nodebb:r:admin-settings-languages]
|
||||
file_filter = public/language/<lang>/admin/settings/languages.json
|
||||
source_file = public/language/en-GB/admin/settings/languages.json
|
||||
source_lang = en_GB
|
||||
type = KEYVALUEJSON
|
||||
trans.en@pirate = public/language/en-x-pirate/admin/settings/languages.json
|
||||
trans.fa_IR = public/language/fa-IR/admin/settings/languages.json
|
||||
trans.gl = public/language/gl/admin/settings/languages.json
|
||||
trans.ro = public/language/ro/admin/settings/languages.json
|
||||
trans.th = public/language/th/admin/settings/languages.json
|
||||
trans.hr = public/language/hr/admin/settings/languages.json
|
||||
trans.hy = public/language/hy/admin/settings/languages.json
|
||||
trans.sc = public/language/sc/admin/settings/languages.json
|
||||
trans.vi = public/language/vi/admin/settings/languages.json
|
||||
trans.tr = public/language/tr/admin/settings/languages.json
|
||||
trans.cs = public/language/cs/admin/settings/languages.json
|
||||
trans.et = public/language/et/admin/settings/languages.json
|
||||
trans.lv = public/language/lv/admin/settings/languages.json
|
||||
trans.pl = public/language/pl/admin/settings/languages.json
|
||||
trans.sr = public/language/sr/admin/settings/languages.json
|
||||
trans.sv = public/language/sv/admin/settings/languages.json
|
||||
trans.hu = public/language/hu/admin/settings/languages.json
|
||||
trans.it = public/language/it/admin/settings/languages.json
|
||||
trans.ja = public/language/ja/admin/settings/languages.json
|
||||
trans.sl = public/language/sl/admin/settings/languages.json
|
||||
trans.zh_TW = public/language/zh-TW/admin/settings/languages.json
|
||||
trans.da = public/language/da/admin/settings/languages.json
|
||||
trans.fr = public/language/fr/admin/settings/languages.json
|
||||
trans.he = public/language/he/admin/settings/languages.json
|
||||
trans.id = public/language/id/admin/settings/languages.json
|
||||
trans.sq_AL = public/language/sq-AL/admin/settings/languages.json
|
||||
trans.uk = public/language/uk/admin/settings/languages.json
|
||||
trans.bn = public/language/bn/admin/settings/languages.json
|
||||
trans.fi = public/language/fi/admin/settings/languages.json
|
||||
trans.ko = public/language/ko/admin/settings/languages.json
|
||||
trans.pt_BR = public/language/pt-BR/admin/settings/languages.json
|
||||
trans.sk = public/language/sk/admin/settings/languages.json
|
||||
trans.pt_PT = public/language/pt-PT/admin/settings/languages.json
|
||||
trans.ru = public/language/ru/admin/settings/languages.json
|
||||
trans.ar = public/language/ar/admin/settings/languages.json
|
||||
trans.bg = public/language/bg/admin/settings/languages.json
|
||||
trans.de = public/language/de/admin/settings/languages.json
|
||||
trans.el = public/language/el/admin/settings/languages.json
|
||||
trans.lt = public/language/lt/admin/settings/languages.json
|
||||
trans.nl = public/language/nl/admin/settings/languages.json
|
||||
trans.zh_CN = public/language/zh-CN/admin/settings/languages.json
|
||||
trans.en_US = public/language/en-US/admin/settings/languages.json
|
||||
trans.es = public/language/es/admin/settings/languages.json
|
||||
trans.ms = public/language/ms/admin/settings/languages.json
|
||||
trans.nb = public/language/nb/admin/settings/languages.json
|
||||
trans.rw = public/language/rw/admin/settings/languages.json
|
||||
|
||||
[o:nodebb:p:nodebb:r:admin-settings-navigation]
|
||||
file_filter = public/language/<lang>/admin/settings/navigation.json
|
||||
source_file = public/language/en-GB/admin/settings/navigation.json
|
||||
@@ -1849,7 +1867,6 @@ trans.hr = public/language/hr/admin/settings/navigation.json
|
||||
trans.id = public/language/id/admin/settings/navigation.json
|
||||
trans.ko = public/language/ko/admin/settings/navigation.json
|
||||
trans.nb = public/language/nb/admin/settings/navigation.json
|
||||
trans.nn_NO = public/language/nn-NO/admin/settings/navigation.json
|
||||
trans.pl = public/language/pl/admin/settings/navigation.json
|
||||
trans.sv = public/language/sv/admin/settings/navigation.json
|
||||
trans.el = public/language/el/admin/settings/navigation.json
|
||||
@@ -1896,7 +1913,6 @@ trans.zh_CN = public/language/zh-CN/admin/settings/notifications.json
|
||||
trans.ko = public/language/ko/admin/settings/notifications.json
|
||||
trans.lv = public/language/lv/admin/settings/notifications.json
|
||||
trans.nb = public/language/nb/admin/settings/notifications.json
|
||||
trans.nn_NO = public/language/nn-NO/admin/settings/notifications.json
|
||||
trans.pl = public/language/pl/admin/settings/notifications.json
|
||||
trans.bg = public/language/bg/admin/settings/notifications.json
|
||||
trans.da = public/language/da/admin/settings/notifications.json
|
||||
@@ -1958,7 +1974,6 @@ trans.zh_TW = public/language/zh-TW/admin/settings/pagination.json
|
||||
trans.bn = public/language/bn/admin/settings/pagination.json
|
||||
trans.hy = public/language/hy/admin/settings/pagination.json
|
||||
trans.nb = public/language/nb/admin/settings/pagination.json
|
||||
trans.nn_NO = public/language/nn-NO/admin/settings/pagination.json
|
||||
trans.sr = public/language/sr/admin/settings/pagination.json
|
||||
trans.sv = public/language/sv/admin/settings/pagination.json
|
||||
|
||||
@@ -1992,7 +2007,6 @@ trans.it = public/language/it/admin/settings/post.json
|
||||
trans.th = public/language/th/admin/settings/post.json
|
||||
trans.gl = public/language/gl/admin/settings/post.json
|
||||
trans.nb = public/language/nb/admin/settings/post.json
|
||||
trans.nn_NO = public/language/nn-NO/admin/settings/post.json
|
||||
trans.sc = public/language/sc/admin/settings/post.json
|
||||
trans.zh_CN = public/language/zh-CN/admin/settings/post.json
|
||||
trans.rw = public/language/rw/admin/settings/post.json
|
||||
@@ -2040,7 +2054,6 @@ trans.sc = public/language/sc/admin/settings/reputation.json
|
||||
trans.hr = public/language/hr/admin/settings/reputation.json
|
||||
trans.ko = public/language/ko/admin/settings/reputation.json
|
||||
trans.nb = public/language/nb/admin/settings/reputation.json
|
||||
trans.nn_NO = public/language/nn-NO/admin/settings/reputation.json
|
||||
trans.bn = public/language/bn/admin/settings/reputation.json
|
||||
trans.de = public/language/de/admin/settings/reputation.json
|
||||
trans.et = public/language/et/admin/settings/reputation.json
|
||||
@@ -2068,6 +2081,58 @@ trans.gl = public/language/gl/admin/settings/reputation.json
|
||||
trans.hu = public/language/hu/admin/settings/reputation.json
|
||||
trans.hy = public/language/hy/admin/settings/reputation.json
|
||||
|
||||
[o:nodebb:p:nodebb:r:admin-settings-social]
|
||||
file_filter = public/language/<lang>/admin/settings/social.json
|
||||
source_file = public/language/en-GB/admin/settings/social.json
|
||||
source_lang = en_GB
|
||||
type = KEYVALUEJSON
|
||||
trans.nl = public/language/nl/admin/settings/social.json
|
||||
trans.sc = public/language/sc/admin/settings/social.json
|
||||
trans.sv = public/language/sv/admin/settings/social.json
|
||||
trans.rw = public/language/rw/admin/settings/social.json
|
||||
trans.bn = public/language/bn/admin/settings/social.json
|
||||
trans.hr = public/language/hr/admin/settings/social.json
|
||||
trans.id = public/language/id/admin/settings/social.json
|
||||
trans.pt_PT = public/language/pt-PT/admin/settings/social.json
|
||||
trans.de = public/language/de/admin/settings/social.json
|
||||
trans.hu = public/language/hu/admin/settings/social.json
|
||||
trans.pt_BR = public/language/pt-BR/admin/settings/social.json
|
||||
trans.ja = public/language/ja/admin/settings/social.json
|
||||
trans.sq_AL = public/language/sq-AL/admin/settings/social.json
|
||||
trans.zh_TW = public/language/zh-TW/admin/settings/social.json
|
||||
trans.cs = public/language/cs/admin/settings/social.json
|
||||
trans.en_US = public/language/en-US/admin/settings/social.json
|
||||
trans.fi = public/language/fi/admin/settings/social.json
|
||||
trans.nb = public/language/nb/admin/settings/social.json
|
||||
trans.pl = public/language/pl/admin/settings/social.json
|
||||
trans.th = public/language/th/admin/settings/social.json
|
||||
trans.bg = public/language/bg/admin/settings/social.json
|
||||
trans.lt = public/language/lt/admin/settings/social.json
|
||||
trans.lv = public/language/lv/admin/settings/social.json
|
||||
trans.ko = public/language/ko/admin/settings/social.json
|
||||
trans.es = public/language/es/admin/settings/social.json
|
||||
trans.fr = public/language/fr/admin/settings/social.json
|
||||
trans.he = public/language/he/admin/settings/social.json
|
||||
trans.fa_IR = public/language/fa-IR/admin/settings/social.json
|
||||
trans.hy = public/language/hy/admin/settings/social.json
|
||||
trans.ms = public/language/ms/admin/settings/social.json
|
||||
trans.ru = public/language/ru/admin/settings/social.json
|
||||
trans.sk = public/language/sk/admin/settings/social.json
|
||||
trans.ar = public/language/ar/admin/settings/social.json
|
||||
trans.el = public/language/el/admin/settings/social.json
|
||||
trans.en@pirate = public/language/en-x-pirate/admin/settings/social.json
|
||||
trans.uk = public/language/uk/admin/settings/social.json
|
||||
trans.sl = public/language/sl/admin/settings/social.json
|
||||
trans.sr = public/language/sr/admin/settings/social.json
|
||||
trans.tr = public/language/tr/admin/settings/social.json
|
||||
trans.it = public/language/it/admin/settings/social.json
|
||||
trans.ro = public/language/ro/admin/settings/social.json
|
||||
trans.vi = public/language/vi/admin/settings/social.json
|
||||
trans.zh_CN = public/language/zh-CN/admin/settings/social.json
|
||||
trans.da = public/language/da/admin/settings/social.json
|
||||
trans.et = public/language/et/admin/settings/social.json
|
||||
trans.gl = public/language/gl/admin/settings/social.json
|
||||
|
||||
[o:nodebb:p:nodebb:r:admin-settings-sockets]
|
||||
file_filter = public/language/<lang>/admin/settings/sockets.json
|
||||
source_file = public/language/en-GB/admin/settings/sockets.json
|
||||
@@ -2096,7 +2161,6 @@ trans.fi = public/language/fi/admin/settings/sockets.json
|
||||
trans.it = public/language/it/admin/settings/sockets.json
|
||||
trans.ro = public/language/ro/admin/settings/sockets.json
|
||||
trans.nb = public/language/nb/admin/settings/sockets.json
|
||||
trans.nn_NO = public/language/nn-NO/admin/settings/sockets.json
|
||||
trans.sq_AL = public/language/sq-AL/admin/settings/sockets.json
|
||||
trans.bg = public/language/bg/admin/settings/sockets.json
|
||||
trans.bn = public/language/bn/admin/settings/sockets.json
|
||||
@@ -2147,7 +2211,6 @@ trans.en@pirate = public/language/en-x-pirate/admin/settings/sounds.json
|
||||
trans.fa_IR = public/language/fa-IR/admin/settings/sounds.json
|
||||
trans.fi = public/language/fi/admin/settings/sounds.json
|
||||
trans.nb = public/language/nb/admin/settings/sounds.json
|
||||
trans.nn_NO = public/language/nn-NO/admin/settings/sounds.json
|
||||
trans.th = public/language/th/admin/settings/sounds.json
|
||||
trans.ar = public/language/ar/admin/settings/sounds.json
|
||||
trans.da = public/language/da/admin/settings/sounds.json
|
||||
@@ -2203,7 +2266,6 @@ trans.bn = public/language/bn/admin/settings/tags.json
|
||||
trans.hr = public/language/hr/admin/settings/tags.json
|
||||
trans.ko = public/language/ko/admin/settings/tags.json
|
||||
trans.nb = public/language/nb/admin/settings/tags.json
|
||||
trans.nn_NO = public/language/nn-NO/admin/settings/tags.json
|
||||
trans.el = public/language/el/admin/settings/tags.json
|
||||
trans.et = public/language/et/admin/settings/tags.json
|
||||
trans.he = public/language/he/admin/settings/tags.json
|
||||
@@ -2241,7 +2303,6 @@ trans.fa_IR = public/language/fa-IR/admin/settings/uploads.json
|
||||
trans.he = public/language/he/admin/settings/uploads.json
|
||||
trans.ja = public/language/ja/admin/settings/uploads.json
|
||||
trans.nb = public/language/nb/admin/settings/uploads.json
|
||||
trans.nn_NO = public/language/nn-NO/admin/settings/uploads.json
|
||||
trans.nl = public/language/nl/admin/settings/uploads.json
|
||||
trans.zh_TW = public/language/zh-TW/admin/settings/uploads.json
|
||||
trans.ro = public/language/ro/admin/settings/uploads.json
|
||||
@@ -2293,7 +2354,6 @@ trans.sq_AL = public/language/sq-AL/admin/settings/user.json
|
||||
trans.gl = public/language/gl/admin/settings/user.json
|
||||
trans.hu = public/language/hu/admin/settings/user.json
|
||||
trans.nb = public/language/nb/admin/settings/user.json
|
||||
trans.nn_NO = public/language/nn-NO/admin/settings/user.json
|
||||
trans.sv = public/language/sv/admin/settings/user.json
|
||||
trans.uk = public/language/uk/admin/settings/user.json
|
||||
trans.cs = public/language/cs/admin/settings/user.json
|
||||
@@ -2372,7 +2432,6 @@ trans.ar = public/language/ar/admin/settings/web-crawler.json
|
||||
trans.de = public/language/de/admin/settings/web-crawler.json
|
||||
trans.hy = public/language/hy/admin/settings/web-crawler.json
|
||||
trans.nb = public/language/nb/admin/settings/web-crawler.json
|
||||
trans.nn_NO = public/language/nn-NO/admin/settings/web-crawler.json
|
||||
trans.ro = public/language/ro/admin/settings/web-crawler.json
|
||||
trans.sr = public/language/sr/admin/settings/web-crawler.json
|
||||
trans.zh_TW = public/language/zh-TW/admin/settings/web-crawler.json
|
||||
@@ -2419,7 +2478,6 @@ trans.zh_CN = public/language/zh-CN/themes/harmony.json
|
||||
trans.fi = public/language/fi/themes/harmony.json
|
||||
trans.ja = public/language/ja/themes/harmony.json
|
||||
trans.nb = public/language/nb/themes/harmony.json
|
||||
trans.nn_NO = public/language/nn-NO/themes/harmony.json
|
||||
trans.pl = public/language/pl/themes/harmony.json
|
||||
trans.zh_TW = public/language/zh-TW/themes/harmony.json
|
||||
trans.ar = public/language/ar/themes/harmony.json
|
||||
@@ -2472,7 +2530,6 @@ trans.zh_CN = public/language/zh-CN/themes/persona.json
|
||||
trans.fi = public/language/fi/themes/persona.json
|
||||
trans.ja = public/language/ja/themes/persona.json
|
||||
trans.nb = public/language/nb/themes/persona.json
|
||||
trans.nn_NO = public/language/nn-NO/themes/persona.json
|
||||
trans.pl = public/language/pl/themes/persona.json
|
||||
trans.zh_TW = public/language/zh-TW/themes/persona.json
|
||||
trans.ar = public/language/ar/themes/persona.json
|
||||
@@ -2492,59 +2549,6 @@ trans.et = public/language/et/themes/persona.json
|
||||
trans.it = public/language/it/themes/persona.json
|
||||
trans.rw = public/language/rw/themes/persona.json
|
||||
|
||||
[o:nodebb:p:nodebb:r:aria]
|
||||
file_filter = public/language/<lang>/aria.json
|
||||
source_file = public/language/en-GB/aria.json
|
||||
source_lang = en_GB
|
||||
type = KEYVALUEJSON
|
||||
trans.th = public/language/th/aria.json
|
||||
trans.bg = public/language/bg/aria.json
|
||||
trans.hr = public/language/hr/aria.json
|
||||
trans.hy = public/language/hy/aria.json
|
||||
trans.sk = public/language/sk/aria.json
|
||||
trans.sl = public/language/sl/aria.json
|
||||
trans.sq_AL = public/language/sq-AL/aria.json
|
||||
trans.sv = public/language/sv/aria.json
|
||||
trans.vi = public/language/vi/aria.json
|
||||
trans.da = public/language/da/aria.json
|
||||
trans.en_US = public/language/en-US/aria.json
|
||||
trans.gl = public/language/gl/aria.json
|
||||
trans.ko = public/language/ko/aria.json
|
||||
trans.lt = public/language/lt/aria.json
|
||||
trans.pt_BR = public/language/pt-BR/aria.json
|
||||
trans.hu = public/language/hu/aria.json
|
||||
trans.lv = public/language/lv/aria.json
|
||||
trans.ro = public/language/ro/aria.json
|
||||
trans.ru = public/language/ru/aria.json
|
||||
trans.sr = public/language/sr/aria.json
|
||||
trans.bn = public/language/bn/aria.json
|
||||
trans.he = public/language/he/aria.json
|
||||
trans.nl = public/language/nl/aria.json
|
||||
trans.sc = public/language/sc/aria.json
|
||||
trans.zh_CN = public/language/zh-CN/aria.json
|
||||
trans.fi = public/language/fi/aria.json
|
||||
trans.ja = public/language/ja/aria.json
|
||||
trans.nb = public/language/nb/aria.json
|
||||
trans.nn_NO = public/language/nn-NO/aria.json
|
||||
trans.pl = public/language/pl/aria.json
|
||||
trans.zh_TW = public/language/zh-TW/aria.json
|
||||
trans.ar = public/language/ar/aria.json
|
||||
trans.cs = public/language/cs/aria.json
|
||||
trans.fa_IR = public/language/fa-IR/aria.json
|
||||
trans.ms = public/language/ms/aria.json
|
||||
trans.pt_PT = public/language/pt-PT/aria.json
|
||||
trans.tr = public/language/tr/aria.json
|
||||
trans.en@pirate = public/language/en-x-pirate/aria.json
|
||||
trans.fr = public/language/fr/aria.json
|
||||
trans.id = public/language/id/aria.json
|
||||
trans.uk = public/language/uk/aria.json
|
||||
trans.de = public/language/de/aria.json
|
||||
trans.el = public/language/el/aria.json
|
||||
trans.es = public/language/es/aria.json
|
||||
trans.et = public/language/et/aria.json
|
||||
trans.it = public/language/it/aria.json
|
||||
trans.rw = public/language/rw/aria.json
|
||||
|
||||
[o:nodebb:p:nodebb:r:category]
|
||||
file_filter = public/language/<lang>/category.json
|
||||
source_file = public/language/en-GB/category.json
|
||||
@@ -2578,7 +2582,6 @@ trans.zh_CN = public/language/zh-CN/category.json
|
||||
trans.fi = public/language/fi/category.json
|
||||
trans.ja = public/language/ja/category.json
|
||||
trans.nb = public/language/nb/category.json
|
||||
trans.nn_NO = public/language/nn-NO/category.json
|
||||
trans.pl = public/language/pl/category.json
|
||||
trans.zh_TW = public/language/zh-TW/category.json
|
||||
trans.ar = public/language/ar/category.json
|
||||
@@ -2645,7 +2648,6 @@ trans.sr = public/language/sr/email.json
|
||||
trans.tr = public/language/tr/email.json
|
||||
trans.en_US = public/language/en-US/email.json
|
||||
trans.nb = public/language/nb/email.json
|
||||
trans.nn_NO = public/language/nn-NO/email.json
|
||||
trans.nl = public/language/nl/email.json
|
||||
trans.pt_BR = public/language/pt-BR/email.json
|
||||
trans.rw = public/language/rw/email.json
|
||||
@@ -2684,7 +2686,6 @@ trans.vi = public/language/vi/error.json
|
||||
trans.fa_IR = public/language/fa-IR/error.json
|
||||
trans.gl = public/language/gl/error.json
|
||||
trans.nb = public/language/nb/error.json
|
||||
trans.nn_NO = public/language/nn-NO/error.json
|
||||
trans.pl = public/language/pl/error.json
|
||||
trans.ro = public/language/ro/error.json
|
||||
trans.uk = public/language/uk/error.json
|
||||
@@ -2710,7 +2711,6 @@ source_file = public/language/en-GB/flags.json
|
||||
source_lang = en_GB
|
||||
type = KEYVALUEJSON
|
||||
trans.nb = public/language/nb/flags.json
|
||||
trans.nn_NO = public/language/nn-NO/flags.json
|
||||
trans.ru = public/language/ru/flags.json
|
||||
trans.sc = public/language/sc/flags.json
|
||||
trans.fi = public/language/fi/flags.json
|
||||
@@ -2781,7 +2781,6 @@ trans.sk = public/language/sk/global.json
|
||||
trans.sr = public/language/sr/global.json
|
||||
trans.tr = public/language/tr/global.json
|
||||
trans.nb = public/language/nb/global.json
|
||||
trans.nn_NO = public/language/nn-NO/global.json
|
||||
trans.pt_BR = public/language/pt-BR/global.json
|
||||
trans.pt_PT = public/language/pt-PT/global.json
|
||||
trans.bg = public/language/bg/global.json
|
||||
@@ -2825,7 +2824,6 @@ trans.hy = public/language/hy/groups.json
|
||||
trans.pt_PT = public/language/pt-PT/groups.json
|
||||
trans.ms = public/language/ms/groups.json
|
||||
trans.nb = public/language/nb/groups.json
|
||||
trans.nn_NO = public/language/nn-NO/groups.json
|
||||
trans.ro = public/language/ro/groups.json
|
||||
trans.vi = public/language/vi/groups.json
|
||||
trans.fa_IR = public/language/fa-IR/groups.json
|
||||
@@ -2888,7 +2886,6 @@ trans.fa_IR = public/language/fa-IR/ip-blacklist.json
|
||||
trans.fr = public/language/fr/ip-blacklist.json
|
||||
trans.gl = public/language/gl/ip-blacklist.json
|
||||
trans.nb = public/language/nb/ip-blacklist.json
|
||||
trans.nn_NO = public/language/nn-NO/ip-blacklist.json
|
||||
trans.sv = public/language/sv/ip-blacklist.json
|
||||
trans.th = public/language/th/ip-blacklist.json
|
||||
trans.bn = public/language/bn/ip-blacklist.json
|
||||
@@ -2934,7 +2931,6 @@ trans.en_US = public/language/en-US/language.json
|
||||
trans.et = public/language/et/language.json
|
||||
trans.ja = public/language/ja/language.json
|
||||
trans.nb = public/language/nb/language.json
|
||||
trans.nn_NO = public/language/nn-NO/language.json
|
||||
trans.sk = public/language/sk/language.json
|
||||
trans.el = public/language/el/language.json
|
||||
trans.es = public/language/es/language.json
|
||||
@@ -3011,7 +3007,6 @@ trans.en@pirate = public/language/en-x-pirate/login.json
|
||||
trans.hy = public/language/hy/login.json
|
||||
trans.id = public/language/id/login.json
|
||||
trans.nb = public/language/nb/login.json
|
||||
trans.nn_NO = public/language/nn-NO/login.json
|
||||
trans.ru = public/language/ru/login.json
|
||||
trans.rw = public/language/rw/login.json
|
||||
trans.th = public/language/th/login.json
|
||||
@@ -3039,7 +3034,6 @@ trans.fa_IR = public/language/fa-IR/modules.json
|
||||
trans.hr = public/language/hr/modules.json
|
||||
trans.lv = public/language/lv/modules.json
|
||||
trans.nb = public/language/nb/modules.json
|
||||
trans.nn_NO = public/language/nn-NO/modules.json
|
||||
trans.ro = public/language/ro/modules.json
|
||||
trans.sv = public/language/sv/modules.json
|
||||
trans.en@pirate = public/language/en-x-pirate/modules.json
|
||||
@@ -3121,7 +3115,6 @@ trans.ms = public/language/ms/notifications.json
|
||||
trans.hr = public/language/hr/notifications.json
|
||||
trans.id = public/language/id/notifications.json
|
||||
trans.nb = public/language/nb/notifications.json
|
||||
trans.nn_NO = public/language/nn-NO/notifications.json
|
||||
trans.ar = public/language/ar/notifications.json
|
||||
trans.da = public/language/da/notifications.json
|
||||
trans.en@pirate = public/language/en-x-pirate/notifications.json
|
||||
@@ -3134,7 +3127,6 @@ source_lang = en_GB
|
||||
type = KEYVALUEJSON
|
||||
trans.he = public/language/he/pages.json
|
||||
trans.nb = public/language/nb/pages.json
|
||||
trans.nn_NO = public/language/nn-NO/pages.json
|
||||
trans.sv = public/language/sv/pages.json
|
||||
trans.pt_BR = public/language/pt-BR/pages.json
|
||||
trans.tr = public/language/tr/pages.json
|
||||
@@ -3231,7 +3223,6 @@ trans.pt_PT = public/language/pt-PT/post-queue.json
|
||||
trans.fi = public/language/fi/post-queue.json
|
||||
trans.he = public/language/he/post-queue.json
|
||||
trans.nb = public/language/nb/post-queue.json
|
||||
trans.nn_NO = public/language/nn-NO/post-queue.json
|
||||
|
||||
[o:nodebb:p:nodebb:r:recent]
|
||||
file_filter = public/language/<lang>/recent.json
|
||||
@@ -3271,7 +3262,6 @@ trans.bn = public/language/bn/recent.json
|
||||
trans.en@pirate = public/language/en-x-pirate/recent.json
|
||||
trans.ja = public/language/ja/recent.json
|
||||
trans.nb = public/language/nb/recent.json
|
||||
trans.nn_NO = public/language/nn-NO/recent.json
|
||||
trans.nl = public/language/nl/recent.json
|
||||
trans.sv = public/language/sv/recent.json
|
||||
trans.th = public/language/th/recent.json
|
||||
@@ -3309,7 +3299,6 @@ trans.bg = public/language/bg/register.json
|
||||
trans.de = public/language/de/register.json
|
||||
trans.hr = public/language/hr/register.json
|
||||
trans.nb = public/language/nb/register.json
|
||||
trans.nn_NO = public/language/nn-NO/register.json
|
||||
trans.gl = public/language/gl/register.json
|
||||
trans.sk = public/language/sk/register.json
|
||||
trans.hy = public/language/hy/register.json
|
||||
@@ -3379,7 +3368,6 @@ trans.en_US = public/language/en-US/reset_password.json
|
||||
trans.lt = public/language/lt/reset_password.json
|
||||
trans.lv = public/language/lv/reset_password.json
|
||||
trans.nb = public/language/nb/reset_password.json
|
||||
trans.nn_NO = public/language/nn-NO/reset_password.json
|
||||
trans.sk = public/language/sk/reset_password.json
|
||||
trans.el = public/language/el/reset_password.json
|
||||
trans.es = public/language/es/reset_password.json
|
||||
@@ -3432,7 +3420,6 @@ trans.en_US = public/language/en-US/rewards.json
|
||||
trans.lt = public/language/lt/rewards.json
|
||||
trans.lv = public/language/lv/rewards.json
|
||||
trans.nb = public/language/nb/rewards.json
|
||||
trans.nn_NO = public/language/nn-NO/rewards.json
|
||||
trans.sk = public/language/sk/rewards.json
|
||||
trans.el = public/language/el/rewards.json
|
||||
trans.es = public/language/es/rewards.json
|
||||
@@ -3475,7 +3462,6 @@ trans.zh_TW = public/language/zh-TW/search.json
|
||||
trans.cs = public/language/cs/search.json
|
||||
trans.he = public/language/he/search.json
|
||||
trans.nb = public/language/nb/search.json
|
||||
trans.nn_NO = public/language/nn-NO/search.json
|
||||
trans.zh_CN = public/language/zh-CN/search.json
|
||||
trans.lv = public/language/lv/search.json
|
||||
trans.rw = public/language/rw/search.json
|
||||
@@ -3528,7 +3514,6 @@ trans.zh_TW = public/language/zh-TW/social.json
|
||||
trans.cs = public/language/cs/social.json
|
||||
trans.he = public/language/he/social.json
|
||||
trans.nb = public/language/nb/social.json
|
||||
trans.nn_NO = public/language/nn-NO/social.json
|
||||
trans.zh_CN = public/language/zh-CN/social.json
|
||||
trans.lv = public/language/lv/social.json
|
||||
trans.rw = public/language/rw/social.json
|
||||
@@ -3600,7 +3585,6 @@ trans.da = public/language/da/success.json
|
||||
trans.el = public/language/el/success.json
|
||||
trans.gl = public/language/gl/success.json
|
||||
trans.nb = public/language/nb/success.json
|
||||
trans.nn_NO = public/language/nn-NO/success.json
|
||||
trans.sr = public/language/sr/success.json
|
||||
trans.uk = public/language/uk/success.json
|
||||
|
||||
@@ -3644,7 +3628,6 @@ trans.gl = public/language/gl/tags.json
|
||||
trans.lv = public/language/lv/tags.json
|
||||
trans.ms = public/language/ms/tags.json
|
||||
trans.nb = public/language/nb/tags.json
|
||||
trans.nn_NO = public/language/nn-NO/tags.json
|
||||
trans.sv = public/language/sv/tags.json
|
||||
trans.sq_AL = public/language/sq-AL/tags.json
|
||||
trans.zh_TW = public/language/zh-TW/tags.json
|
||||
@@ -3703,7 +3686,6 @@ trans.sv = public/language/sv/top.json
|
||||
trans.th = public/language/th/top.json
|
||||
trans.it = public/language/it/top.json
|
||||
trans.nb = public/language/nb/top.json
|
||||
trans.nn_NO = public/language/nn-NO/top.json
|
||||
trans.sr = public/language/sr/top.json
|
||||
trans.tr = public/language/tr/top.json
|
||||
trans.zh_TW = public/language/zh-TW/top.json
|
||||
@@ -3718,7 +3700,6 @@ type = KEYVALUEJSON
|
||||
trans.et = public/language/et/topic.json
|
||||
trans.hu = public/language/hu/topic.json
|
||||
trans.nb = public/language/nb/topic.json
|
||||
trans.nn_NO = public/language/nn-NO/topic.json
|
||||
trans.nl = public/language/nl/topic.json
|
||||
trans.sk = public/language/sk/topic.json
|
||||
trans.ar = public/language/ar/topic.json
|
||||
@@ -3801,7 +3782,6 @@ trans.sk = public/language/sk/unread.json
|
||||
trans.bn = public/language/bn/unread.json
|
||||
trans.cs = public/language/cs/unread.json
|
||||
trans.nb = public/language/nb/unread.json
|
||||
trans.nn_NO = public/language/nn-NO/unread.json
|
||||
trans.rw = public/language/rw/unread.json
|
||||
trans.sq_AL = public/language/sq-AL/unread.json
|
||||
trans.tr = public/language/tr/unread.json
|
||||
@@ -3846,7 +3826,6 @@ trans.et = public/language/et/uploads.json
|
||||
trans.id = public/language/id/uploads.json
|
||||
trans.ms = public/language/ms/uploads.json
|
||||
trans.nb = public/language/nb/uploads.json
|
||||
trans.nn_NO = public/language/nn-NO/uploads.json
|
||||
trans.pt_PT = public/language/pt-PT/uploads.json
|
||||
trans.da = public/language/da/uploads.json
|
||||
trans.es = public/language/es/uploads.json
|
||||
@@ -3916,7 +3895,6 @@ trans.hr = public/language/hr/user.json
|
||||
trans.hy = public/language/hy/user.json
|
||||
trans.ja = public/language/ja/user.json
|
||||
trans.nb = public/language/nb/user.json
|
||||
trans.nn_NO = public/language/nn-NO/user.json
|
||||
trans.nl = public/language/nl/user.json
|
||||
trans.ro = public/language/ro/user.json
|
||||
trans.sc = public/language/sc/user.json
|
||||
@@ -3950,7 +3928,6 @@ trans.he = public/language/he/users.json
|
||||
trans.ja = public/language/ja/users.json
|
||||
trans.ko = public/language/ko/users.json
|
||||
trans.nb = public/language/nb/users.json
|
||||
trans.nn_NO = public/language/nn-NO/users.json
|
||||
trans.pt_PT = public/language/pt-PT/users.json
|
||||
trans.sr = public/language/sr/users.json
|
||||
trans.zh_CN = public/language/zh-CN/users.json
|
||||
@@ -3975,55 +3952,3 @@ trans.hu = public/language/hu/users.json
|
||||
trans.lv = public/language/lv/users.json
|
||||
trans.pt_BR = public/language/pt-BR/users.json
|
||||
|
||||
[o:nodebb:p:nodebb:r:world]
|
||||
file_filter = public/language/<lang>/world.json
|
||||
source_file = public/language/en-GB/world.json
|
||||
source_lang = en_GB
|
||||
type = KEYVALUEJSON
|
||||
trans.zh_TW = public/language/zh-TW/world.json
|
||||
trans.de = public/language/de/world.json
|
||||
trans.en@pirate = public/language/en-x-pirate/world.json
|
||||
trans.ru = public/language/ru/world.json
|
||||
trans.sc = public/language/sc/world.json
|
||||
trans.en_US = public/language/en-US/world.json
|
||||
trans.bn = public/language/bn/world.json
|
||||
trans.hy = public/language/hy/world.json
|
||||
trans.ro = public/language/ro/world.json
|
||||
trans.fi = public/language/fi/world.json
|
||||
trans.it = public/language/it/world.json
|
||||
trans.pl = public/language/pl/world.json
|
||||
trans.sk = public/language/sk/world.json
|
||||
trans.ar = public/language/ar/world.json
|
||||
trans.bg = public/language/bg/world.json
|
||||
trans.el = public/language/el/world.json
|
||||
trans.fa_IR = public/language/fa-IR/world.json
|
||||
trans.sq_AL = public/language/sq-AL/world.json
|
||||
trans.cs = public/language/cs/world.json
|
||||
trans.he = public/language/he/world.json
|
||||
trans.ja = public/language/ja/world.json
|
||||
trans.ko = public/language/ko/world.json
|
||||
trans.nb = public/language/nb/world.json
|
||||
trans.nn_NO = public/language/nn-NO/world.json
|
||||
trans.pt_PT = public/language/pt-PT/world.json
|
||||
trans.sr = public/language/sr/world.json
|
||||
trans.zh_CN = public/language/zh-CN/world.json
|
||||
trans.da = public/language/da/world.json
|
||||
trans.id = public/language/id/world.json
|
||||
trans.lt = public/language/lt/world.json
|
||||
trans.ms = public/language/ms/world.json
|
||||
trans.nl = public/language/nl/world.json
|
||||
trans.rw = public/language/rw/world.json
|
||||
trans.sl = public/language/sl/world.json
|
||||
trans.th = public/language/th/world.json
|
||||
trans.es = public/language/es/world.json
|
||||
trans.fr = public/language/fr/world.json
|
||||
trans.gl = public/language/gl/world.json
|
||||
trans.hr = public/language/hr/world.json
|
||||
trans.uk = public/language/uk/world.json
|
||||
trans.vi = public/language/vi/world.json
|
||||
trans.sv = public/language/sv/world.json
|
||||
trans.tr = public/language/tr/world.json
|
||||
trans.et = public/language/et/world.json
|
||||
trans.hu = public/language/hu/world.json
|
||||
trans.lv = public/language/lv/world.json
|
||||
trans.pt_BR = public/language/pt-BR/world.json
|
||||
|
||||
3720
CHANGELOG.md
3720
CHANGELOG.md
File diff suppressed because it is too large
Load Diff
87
Dockerfile
87
Dockerfile
@@ -1,76 +1,51 @@
|
||||
FROM node:lts as build
|
||||
FROM --platform=$BUILDPLATFORM node:lts as npm
|
||||
|
||||
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/build
|
||||
|
||||
WORKDIR /usr/src/app/
|
||||
ARG NODE_ENV
|
||||
ENV NODE_ENV $NODE_ENV
|
||||
|
||||
COPY . /usr/src/app/
|
||||
COPY --chown=node:node install/package.json /usr/src/build/package.json
|
||||
|
||||
# Install corepack to allow usage of other package managers
|
||||
RUN corepack enable
|
||||
USER node
|
||||
|
||||
# Removing unnecessary files for us
|
||||
RUN find . -mindepth 1 -maxdepth 1 -name '.*' ! -name '.' ! -name '..' -exec bash -c 'echo "Deleting {}"; rm -rf {}' \;
|
||||
RUN npm install --omit=dev
|
||||
|
||||
# Prepage package.json
|
||||
RUN cp /usr/src/app/install/package.json /usr/src/app/
|
||||
FROM node:lts as rebuild
|
||||
|
||||
RUN apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive \
|
||||
apt-get -y --no-install-recommends install \
|
||||
tini
|
||||
ARG BUILDPLATFORM
|
||||
ARG TARGETPLATFORM
|
||||
|
||||
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 mkdir -p /usr/src/build && \
|
||||
chown -R node:node /usr/src/build
|
||||
|
||||
USER ${USER}
|
||||
COPY --from=npm /usr/src/build /usr/src/build
|
||||
|
||||
RUN npm install --omit=dev \
|
||||
&& rm -rf .npm
|
||||
# TODO: generate lockfiles for each package manager
|
||||
## pnpm import \
|
||||
RUN if [ $BUILDPLATFORM != $TARGETPLATFORM ]; then \
|
||||
npm rebuild && \
|
||||
npm cache clean --force; fi
|
||||
|
||||
FROM node:lts-slim AS final
|
||||
FROM node:lts-slim as run
|
||||
|
||||
ENV NODE_ENV=production \
|
||||
DAEMON=false \
|
||||
SILENT=false \
|
||||
USER=nodebb \
|
||||
UID=1001 \
|
||||
GID=1001
|
||||
ARG NODE_ENV
|
||||
ENV NODE_ENV=$NODE_ENV \
|
||||
daemon=false \
|
||||
silent=false
|
||||
|
||||
WORKDIR /usr/src/app/
|
||||
RUN mkdir -p /usr/src/app && \
|
||||
chown -R node:node /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 --chown=node:node --from=rebuild /usr/src/build /usr/src/app
|
||||
|
||||
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/
|
||||
|
||||
RUN chmod +x /usr/local/bin/entrypoint.sh \
|
||||
&& chmod +x /usr/local/bin/tini
|
||||
WORKDIR /usr/src/app
|
||||
|
||||
# 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 node
|
||||
|
||||
USER ${USER}
|
||||
COPY --chown=node:node . /usr/src/app
|
||||
|
||||
EXPOSE 4567
|
||||
|
||||
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"]
|
||||
VOLUME ["/usr/src/app/node_modules", "/usr/src/app/build", "/usr/src/app/public/uploads", "/opt/config"]
|
||||
ENTRYPOINT ["./install/docker/entrypoint.sh"]
|
||||
@@ -39,7 +39,7 @@ Our minimalist "Harmony" theme gets you going right away, no coding experience r
|
||||
|
||||
NodeBB requires the following software to be installed:
|
||||
|
||||
* A version of Node.js at least 18 or greater ([installation/upgrade instructions](https://github.com/nodesource/distributions))
|
||||
* A version of Node.js at least 16 or greater ([installation/upgrade instructions](https://github.com/nodesource/distributions))
|
||||
* MongoDB, version 3.6 or greater **or** Redis, version 2.8.9 or greater
|
||||
* If you are using [clustering](https://docs.nodebb.org/configuring/scaling/) you need Redis installed and configured.
|
||||
* nginx, version 1.3.13 or greater (**only if** intending to use nginx to proxy requests to a NodeBB)
|
||||
|
||||
@@ -1,78 +0,0 @@
|
||||
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 \
|
||||
&& rm -rf .npm
|
||||
|
||||
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"]
|
||||
@@ -1,70 +0,0 @@
|
||||
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:17.2-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.4.2-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
|
||||
@@ -1,51 +0,0 @@
|
||||
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.4.2-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
|
||||
@@ -1,89 +1,55 @@
|
||||
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
|
||||
- "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
|
||||
volumes:
|
||||
- nodebb-build:/usr/src/app/build
|
||||
- nodebb-uploads:/usr/src/app/public/uploads
|
||||
- nodebb-config:/opt/config
|
||||
- ./.docker/build:/usr/src/app/build
|
||||
- ./.docker/public/uploads:/usr/src/app/public/uploads
|
||||
- ./.docker:/opt/config
|
||||
- ./install/docker/setup.json:/usr/src/app/setup.json
|
||||
|
||||
mongo:
|
||||
image: 'mongo:7-jammy'
|
||||
image: "mongo:7-jammy"
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- '27017:27017'
|
||||
expose:
|
||||
- "27017"
|
||||
environment:
|
||||
MONGO_INITDB_ROOT_USERNAME: nodebb
|
||||
MONGO_INITDB_ROOT_PASSWORD: nodebb
|
||||
MONGO_INITDB_DATABASE: nodebb
|
||||
volumes:
|
||||
- mongo-data:/data/db
|
||||
- ./.docker/database/mongo/config:/etc/mongo
|
||||
- ./.docker/database/mongo/data:/data/db
|
||||
- ./install/docker/mongodb-user-init.js:/docker-entrypoint-initdb.d/user-init.js
|
||||
redis:
|
||||
image: redis:7.4.2-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
|
||||
|
||||
- mongo
|
||||
postgres:
|
||||
image: postgres:17.2-alpine
|
||||
image: postgres:16.1-alpine
|
||||
restart: unless-stopped
|
||||
expose:
|
||||
- "5432"
|
||||
environment:
|
||||
POSTGRES_USER: nodebb
|
||||
POSTGRES_PASSWORD: nodebb
|
||||
POSTGRES_DB: nodebb
|
||||
volumes:
|
||||
- postgres-data:/var/lib/postgresql/data
|
||||
- ./.docker/database/postgresql/data:/var/lib/postgresql/data
|
||||
profiles:
|
||||
- postgres
|
||||
|
||||
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
|
||||
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
|
||||
@@ -42,17 +42,16 @@
|
||||
"registrationApprovalType": "normal",
|
||||
"allowAccountDelete": 1,
|
||||
"privateUploads": 0,
|
||||
"allowedFileExtensions": "png,jpg,bmp,txt,webp,webm,mp4,gif",
|
||||
"allowedFileExtensions": "png,jpg,bmp,txt",
|
||||
"uploadRateLimitThreshold": 10,
|
||||
"uploadRateLimitCooldown": 60,
|
||||
"allowUserHomePage": 1,
|
||||
"allowMultipleBadges": 1,
|
||||
"allowMultipleBadges": 0,
|
||||
"maximumFileSize": 2048,
|
||||
"stripEXIFData": 1,
|
||||
"orphanExpiryDays": 0,
|
||||
"resizeImageWidthThreshold": 2000,
|
||||
"resizeImageWidth": 760,
|
||||
"resizeImageKeepOriginal": 1,
|
||||
"rejectImageWidth": 5000,
|
||||
"rejectImageHeight": 5000,
|
||||
"resizeImageQuality": 80,
|
||||
@@ -100,21 +99,16 @@
|
||||
"min:rep:aboutme": 0,
|
||||
"min:rep:signature": 0,
|
||||
"flags:limitPerTarget": 0,
|
||||
"flags:postFlagsPerDay": 10,
|
||||
"flags:userFlagsPerDay": 10,
|
||||
"flags:autoFlagOnDownvoteThreshold": 0,
|
||||
"flags:actionOnResolve": "rescind",
|
||||
"flags:actionOnReject": "rescind",
|
||||
"notificationType_upvote": "notification",
|
||||
"notificationType_new-topic": "notification",
|
||||
"notificationType_new-topic-with-tag": "notification",
|
||||
"notificationType_new-topic-in-category": "notification",
|
||||
"notificationType_new-reply": "notification",
|
||||
"notificationType_post-edit": "notification",
|
||||
"notificationType_follow": "notification",
|
||||
"notificationType_new-chat": "notification",
|
||||
"notificationType_new-group-chat": "notification",
|
||||
"notificationType_new-public-chat": "none",
|
||||
"notificationType_group-invite": "notification",
|
||||
"notificationType_group-leave": "notification",
|
||||
"notificationType_group-request-membership": "notification",
|
||||
@@ -141,8 +135,7 @@
|
||||
"sitemapTopics": 500,
|
||||
"maintenanceMode": 0,
|
||||
"maintenanceModeStatus": 503,
|
||||
"upvoteVisibility": "all",
|
||||
"downvoteVisibility": "privileged",
|
||||
"votesArePublic": 0,
|
||||
"maximumInvites": 0,
|
||||
"username:disableEdit": 0,
|
||||
"email:disableEdit": 0,
|
||||
@@ -183,7 +176,7 @@
|
||||
"onlineCutoff": 30,
|
||||
"timeagoCutoff": 30,
|
||||
"necroThreshold": 7,
|
||||
"categoryWatchState": "tracking",
|
||||
"categoryWatchState": "watching",
|
||||
"submitPluginUsage": 1,
|
||||
"showAverageApprovalTime": 1,
|
||||
"autoApproveTime": 0,
|
||||
@@ -194,12 +187,5 @@
|
||||
"composer:allowPluginHelp": 1,
|
||||
"maxReconnectionAttempts": 5,
|
||||
"reconnectionDelay": 1500,
|
||||
"disableCustomUserSkins": 0,
|
||||
"activitypubEnabled": 1,
|
||||
"activitypubAllowLoopback": 0,
|
||||
"activitypubProbe": 1,
|
||||
"activitypubProbeTimeout": 2000,
|
||||
"activitypubContentPruneDays": 30,
|
||||
"activitypubUserPruneDays": 7,
|
||||
"activitypubFilter": 0
|
||||
}
|
||||
"disableCustomUserSkins": 0
|
||||
}
|
||||
@@ -41,14 +41,6 @@
|
||||
"textClass": "d-lg-none",
|
||||
"text": "[[global:header.popular]]"
|
||||
},
|
||||
{
|
||||
"route": "/world",
|
||||
"title": "[[global:header.world]]",
|
||||
"enabled": true,
|
||||
"iconClass": "fa-globe",
|
||||
"textClass": "d-lg-none",
|
||||
"text": "[[global:header.world]]"
|
||||
},
|
||||
{
|
||||
"route": "/users",
|
||||
"title": "[[global:header.users]]",
|
||||
|
||||
@@ -1,198 +1,46 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
export CONFIG_DIR="${CONFIG_DIR:-/opt/config}"
|
||||
export CONFIG=$CONFIG_DIR/config.json
|
||||
export FORCE_BUILD_BEFORE_START="${FORCE_BUILD_BEFORE_START:-false}"
|
||||
|
||||
# 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}"
|
||||
}
|
||||
# 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 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
|
||||
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
|
||||
}
|
||||
mkdir -p $CONFIG_DIR
|
||||
|
||||
# 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
|
||||
# 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
|
||||
|
||||
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
|
||||
if [[ ! -w $CONFIG_DIR ]]; then
|
||||
echo "panic: no write permission for $CONFIG_DIR"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 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
|
||||
[[ -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
|
||||
|
||||
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
|
||||
ln -fs $CONFIG_DIR/package.json package.json
|
||||
ln -fs $CONFIG_DIR/package-lock.json package-lock.json
|
||||
|
||||
# Remove unnecessary lock files in src_dir
|
||||
rm -f "$src_dir/"{yarn.lock,package-lock.json,pnpm-lock.yaml}
|
||||
npm install --omit=dev
|
||||
|
||||
# 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"
|
||||
if [[ -n $SETUP ]]; then
|
||||
echo "Setup environmental variable detected"
|
||||
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
|
||||
./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
|
||||
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"
|
||||
./nodebb start --config=$CONFIG
|
||||
else
|
||||
echo "Config file not found at $CONFIG"
|
||||
echo "Starting installation session"
|
||||
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 "$@"
|
||||
./nodebb "${NODEBB_INIT_VERB}" --config=$CONFIG
|
||||
fi
|
||||
@@ -1,23 +1,21 @@
|
||||
{
|
||||
"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"
|
||||
}
|
||||
"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": "4.0.6",
|
||||
"version": "3.5.1",
|
||||
"homepage": "https://www.nodebb.org",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
@@ -29,129 +29,124 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@adactive/bootstrap-tagsinput": "0.8.2",
|
||||
"@fontsource/inter": "5.1.1",
|
||||
"@fontsource/poppins": "5.1.1",
|
||||
"@fortawesome/fontawesome-free": "6.7.2",
|
||||
"@fontsource/inter": "5.0.15",
|
||||
"@fontsource/poppins": "5.0.8",
|
||||
"@fortawesome/fontawesome-free": "6.4.2",
|
||||
"@isaacs/ttlcache": "1.4.1",
|
||||
"@nodebb/spider-detector": "2.0.3",
|
||||
"@popperjs/core": "2.11.8",
|
||||
"@resvg/resvg-js": "2.6.2",
|
||||
"@textcomplete/contenteditable": "0.1.13",
|
||||
"@textcomplete/core": "0.1.13",
|
||||
"@textcomplete/textarea": "0.1.13",
|
||||
"ace-builds": "1.38.0",
|
||||
"archiver": "7.0.1",
|
||||
"async": "3.2.6",
|
||||
"autoprefixer": "10.4.20",
|
||||
"ace-builds": "1.31.2",
|
||||
"archiver": "6.0.1",
|
||||
"async": "3.2.5",
|
||||
"autoprefixer": "10.4.16",
|
||||
"bcryptjs": "2.4.3",
|
||||
"benchpressjs": "2.5.3",
|
||||
"body-parser": "1.20.3",
|
||||
"benchpressjs": "2.5.1",
|
||||
"body-parser": "1.20.2",
|
||||
"bootbox": "6.0.0",
|
||||
"bootstrap": "5.3.3",
|
||||
"bootswatch": "5.3.3",
|
||||
"bootstrap": "5.3.2",
|
||||
"bootswatch": "5.3.2",
|
||||
"chalk": "4.1.2",
|
||||
"chart.js": "4.4.8",
|
||||
"chart.js": "4.4.0",
|
||||
"cli-graph": "3.2.2",
|
||||
"clipboard": "2.0.11",
|
||||
"colors": "1.4.0",
|
||||
"commander": "12.1.0",
|
||||
"compare-versions": "6.1.1",
|
||||
"compression": "1.8.0",
|
||||
"commander": "11.1.0",
|
||||
"compare-versions": "6.1.0",
|
||||
"compression": "1.7.4",
|
||||
"connect-flash": "0.1.1",
|
||||
"connect-mongo": "5.1.0",
|
||||
"connect-multiparty": "2.2.0",
|
||||
"connect-pg-simple": "10.0.0",
|
||||
"connect-redis": "8.0.1",
|
||||
"cookie-parser": "1.4.7",
|
||||
"cron": "3.5.0",
|
||||
"cropperjs": "1.6.2",
|
||||
"csrf-sync": "4.0.3",
|
||||
"connect-pg-simple": "9.0.1",
|
||||
"connect-redis": "7.1.0",
|
||||
"cookie-parser": "1.4.6",
|
||||
"cron": "3.1.6",
|
||||
"cropperjs": "1.6.1",
|
||||
"csrf-sync": "4.0.1",
|
||||
"daemon": "1.1.0",
|
||||
"diff": "7.0.0",
|
||||
"esbuild": "0.25.0",
|
||||
"express": "4.21.2",
|
||||
"express-session": "1.18.1",
|
||||
"diff": "5.1.0",
|
||||
"esbuild": "0.19.5",
|
||||
"express": "4.18.2",
|
||||
"express-session": "1.17.3",
|
||||
"express-useragent": "1.0.15",
|
||||
"fetch-cookie": "3.1.0",
|
||||
"file-loader": "6.2.0",
|
||||
"fs-extra": "11.3.0",
|
||||
"fs-extra": "11.1.1",
|
||||
"graceful-fs": "4.2.11",
|
||||
"helmet": "7.2.0",
|
||||
"helmet": "7.1.0",
|
||||
"html-to-text": "9.0.5",
|
||||
"imagesloaded": "5.0.0",
|
||||
"ipaddr.js": "2.2.0",
|
||||
"ipaddr.js": "2.1.0",
|
||||
"jquery": "3.7.1",
|
||||
"jquery-deserialize": "2.0.0",
|
||||
"jquery-form": "4.3.0",
|
||||
"jquery-serializeobject": "1.0.0",
|
||||
"jquery-ui": "1.14.1",
|
||||
"jsesc": "3.1.0",
|
||||
"jquery-ui": "1.13.2",
|
||||
"jsesc": "3.0.2",
|
||||
"json2csv": "5.0.7",
|
||||
"jsonwebtoken": "9.0.2",
|
||||
"lodash": "4.17.21",
|
||||
"logrotate-stream": "0.2.9",
|
||||
"lru-cache": "10.4.3",
|
||||
"lru-cache": "10.0.2",
|
||||
"mime": "3.0.0",
|
||||
"mkdirp": "3.0.1",
|
||||
"mongodb": "6.13.1",
|
||||
"mongodb": "6.3.0",
|
||||
"morgan": "1.10.0",
|
||||
"mousetrap": "1.6.5",
|
||||
"multiparty": "4.2.3",
|
||||
"nconf": "0.12.1",
|
||||
"nodebb-plugin-2factor": "7.5.9",
|
||||
"nodebb-plugin-composer-default": "10.2.47",
|
||||
"nodebb-plugin-dbsearch": "6.2.13",
|
||||
"nodebb-plugin-emoji": "6.0.2",
|
||||
"nodebb-plugin-emoji-android": "4.1.1",
|
||||
"nodebb-plugin-markdown": "13.1.0",
|
||||
"nodebb-plugin-mentions": "4.7.0",
|
||||
"nodebb-plugin-spam-be-gone": "2.3.1",
|
||||
"nodebb-plugin-web-push": "0.7.3",
|
||||
"nodebb-rewards-essentials": "1.0.1",
|
||||
"nodebb-theme-harmony": "2.0.37",
|
||||
"nodebb-theme-lavender": "7.1.17",
|
||||
"nodebb-theme-peace": "2.2.39",
|
||||
"nodebb-theme-persona": "14.0.15",
|
||||
"nodebb-widget-essentials": "7.0.35",
|
||||
"nodemailer": "6.10.0",
|
||||
"nodebb-plugin-2factor": "7.4.0",
|
||||
"nodebb-plugin-composer-default": "10.2.27",
|
||||
"nodebb-plugin-dbsearch": "6.2.3",
|
||||
"nodebb-plugin-emoji": "5.1.13",
|
||||
"nodebb-plugin-emoji-android": "4.0.0",
|
||||
"nodebb-plugin-markdown": "12.2.5",
|
||||
"nodebb-plugin-mentions": "4.3.7",
|
||||
"nodebb-plugin-ntfy": "1.7.3",
|
||||
"nodebb-plugin-spam-be-gone": "2.2.0",
|
||||
"nodebb-rewards-essentials": "1.0.0",
|
||||
"nodebb-theme-harmony": "1.1.99",
|
||||
"nodebb-theme-lavender": "7.1.5",
|
||||
"nodebb-theme-peace": "2.1.25",
|
||||
"nodebb-theme-persona": "13.2.47",
|
||||
"nodebb-widget-essentials": "7.0.14",
|
||||
"nodemailer": "6.9.7",
|
||||
"nprogress": "0.2.0",
|
||||
"passport": "0.7.0",
|
||||
"passport": "0.6.0",
|
||||
"passport-http-bearer": "1.0.1",
|
||||
"passport-local": "1.0.0",
|
||||
"pg": "8.13.3",
|
||||
"pg-cursor": "2.12.3",
|
||||
"postcss": "8.5.3",
|
||||
"pg": "8.11.3",
|
||||
"pg-cursor": "2.10.3",
|
||||
"postcss": "8.4.31",
|
||||
"postcss-clean": "1.2.0",
|
||||
"progress-webpack-plugin": "1.0.16",
|
||||
"prompt": "1.3.0",
|
||||
"ioredis": "5.5.0",
|
||||
"rimraf": "5.0.10",
|
||||
"ioredis": "5.3.2",
|
||||
"request": "2.88.2",
|
||||
"request-promise-native": "1.0.9",
|
||||
"rimraf": "5.0.5",
|
||||
"rss": "1.2.2",
|
||||
"rtlcss": "4.3.0",
|
||||
"sanitize-html": "2.14.0",
|
||||
"sass": "1.85.0",
|
||||
"satori": "0.12.1",
|
||||
"semver": "7.7.1",
|
||||
"rtlcss": "4.1.1",
|
||||
"sanitize-html": "2.11.0",
|
||||
"sass": "1.69.5",
|
||||
"semver": "7.5.4",
|
||||
"serve-favicon": "2.5.0",
|
||||
"sharp": "0.32.6",
|
||||
"sitemap": "8.0.0",
|
||||
"socket.io": "4.8.1",
|
||||
"socket.io-client": "4.8.1",
|
||||
"@socket.io/redis-adapter": "8.3.0",
|
||||
"sortablejs": "1.15.6",
|
||||
"spdx-license-list": "6.9.0",
|
||||
"terser-webpack-plugin": "5.3.11",
|
||||
"sitemap": "7.1.1",
|
||||
"socket.io": "4.7.2",
|
||||
"socket.io-client": "4.7.2",
|
||||
"@socket.io/redis-adapter": "8.2.1",
|
||||
"sortablejs": "1.15.0",
|
||||
"spdx-license-list": "6.8.0",
|
||||
"spider-detector": "2.0.1",
|
||||
"terser-webpack-plugin": "5.3.9",
|
||||
"textcomplete": "0.18.2",
|
||||
"textcomplete.contenteditable": "0.1.1",
|
||||
"timeago": "1.6.7",
|
||||
"tinycon": "0.6.8",
|
||||
"toobusy-js": "0.5.1",
|
||||
"tough-cookie": "5.1.1",
|
||||
"validator": "13.12.0",
|
||||
"webpack": "5.98.0",
|
||||
"webpack-merge": "6.0.1",
|
||||
"winston": "3.17.0",
|
||||
"workerpool": "9.2.0",
|
||||
"validator": "13.11.0",
|
||||
"webpack": "5.89.0",
|
||||
"webpack-merge": "5.10.0",
|
||||
"winston": "3.11.0",
|
||||
"workerpool": "8.0.0",
|
||||
"xml": "1.0.1",
|
||||
"xregexp": "5.1.1",
|
||||
"yargs": "17.7.2",
|
||||
@@ -159,25 +154,25 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"@apidevtools/swagger-parser": "10.1.0",
|
||||
"@commitlint/cli": "19.6.1",
|
||||
"@commitlint/config-angular": "19.7.0",
|
||||
"@commitlint/cli": "18.4.2",
|
||||
"@commitlint/config-angular": "18.4.2",
|
||||
"coveralls": "3.1.1",
|
||||
"eslint": "8.57.1",
|
||||
"eslint": "8.54.0",
|
||||
"eslint-config-nodebb": "0.2.1",
|
||||
"eslint-plugin-import": "2.31.0",
|
||||
"eslint-plugin-import": "2.29.0",
|
||||
"grunt": "1.6.1",
|
||||
"grunt-contrib-watch": "1.1.0",
|
||||
"husky": "8.0.3",
|
||||
"jsdom": "26.0.0",
|
||||
"lint-staged": "15.4.0",
|
||||
"mocha": "11.0.1",
|
||||
"jsdom": "22.1.0",
|
||||
"lint-staged": "15.1.0",
|
||||
"mocha": "10.2.0",
|
||||
"mocha-lcov-reporter": "1.3.0",
|
||||
"mockdate": "3.0.5",
|
||||
"nyc": "17.1.0",
|
||||
"smtp-server": "3.13.6"
|
||||
"nyc": "15.1.0",
|
||||
"smtp-server": "3.13.0"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"sass-embedded": "1.83.4"
|
||||
"sass-embedded": "1.69.5"
|
||||
},
|
||||
"resolutions": {
|
||||
"*/jquery": "3.7.1"
|
||||
@@ -186,7 +181,7 @@
|
||||
"url": "https://github.com/NodeBB/NodeBB/issues"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
"node": ">=16"
|
||||
},
|
||||
"maintainers": [
|
||||
{
|
||||
@@ -200,4 +195,4 @@
|
||||
"url": "https://github.com/barisusakli"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
|
||||
const winston = require('winston');
|
||||
const express = require('express');
|
||||
const session = require('express-session');
|
||||
const bodyParser = require('body-parser');
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
@@ -14,10 +13,7 @@ const nconf = require('nconf');
|
||||
const Benchpress = require('benchpressjs');
|
||||
const { mkdirp } = require('mkdirp');
|
||||
const { paths } = require('../src/constants');
|
||||
const utils = require('../src/utils');
|
||||
|
||||
const sass = utils.getSass();
|
||||
const { generateToken, csrfSynchronisedProtection } = require('../src/middleware/csrf');
|
||||
const sass = require('../src/utils').getSass();
|
||||
|
||||
const app = express();
|
||||
let server;
|
||||
@@ -77,13 +73,6 @@ web.install = async function (port) {
|
||||
app.use(bodyParser.urlencoded({
|
||||
extended: true,
|
||||
}));
|
||||
|
||||
app.use(session({
|
||||
secret: utils.generateUUID(),
|
||||
resave: false,
|
||||
saveUninitialized: false,
|
||||
}));
|
||||
|
||||
try {
|
||||
await Promise.all([
|
||||
compileTemplate(),
|
||||
@@ -114,8 +103,8 @@ function launchExpress(port) {
|
||||
}
|
||||
|
||||
function setupRoutes() {
|
||||
app.get('/', csrfSynchronisedProtection, welcome);
|
||||
app.post('/', csrfSynchronisedProtection, install);
|
||||
app.get('/', welcome);
|
||||
app.post('/', install);
|
||||
app.get('/testdb', testDatabase);
|
||||
app.get('/ping', ping);
|
||||
app.get('/sping', ping);
|
||||
@@ -171,7 +160,6 @@ function welcome(req, res) {
|
||||
minimumPasswordStrength: defaults.minimumPasswordStrength,
|
||||
installing: installing,
|
||||
percentInstalled: installing ? ((Date.now() - timeStart) / totalTime * 100).toFixed(2) : 0,
|
||||
csrf_token: generateToken(req),
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -26,7 +26,7 @@ if (!fs.existsSync(logDir)) {
|
||||
mkdirp.sync(path.dirname(outputLogFilePath));
|
||||
}
|
||||
|
||||
const output = logrotate({ file: outputLogFilePath, size: '10m', keep: 3, compress: true });
|
||||
const output = logrotate({ file: outputLogFilePath, size: '1m', keep: 3, compress: true });
|
||||
const silent = nconf.get('silent') === 'false' ? false : nconf.get('silent') !== false;
|
||||
let numProcs;
|
||||
const workers = [];
|
||||
@@ -99,9 +99,7 @@ Loader.start = function () {
|
||||
function forkWorker(index, isPrimary) {
|
||||
const ports = getPorts();
|
||||
const args = [];
|
||||
if (nconf.get('max-memory')) {
|
||||
args.push(`--max-old-space-size=${nconf.get('max-memory')}`);
|
||||
}
|
||||
|
||||
if (!ports[index]) {
|
||||
return console.log(`[cluster] invalid port for worker : ${index} ports: ${ports.length}`);
|
||||
}
|
||||
|
||||
@@ -1,41 +0,0 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>Internal Server Error</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link rel="stylesheet" type="text/css" href="/assets/5xx.css" />
|
||||
|
||||
<script type="text/javascript">
|
||||
window.onload = function() {
|
||||
let count = 0;
|
||||
const bounce = document.getElementById('click-me');
|
||||
bounce.onclick = function() {
|
||||
count++;
|
||||
bounce.className = '';
|
||||
setTimeout(function() {
|
||||
bounce.className = 'animated bounce';
|
||||
}, 50);
|
||||
|
||||
if (count > 5) {
|
||||
document.getElementById('hide').className = '';
|
||||
}
|
||||
};
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="wrapper">
|
||||
<div class="center">
|
||||
<h1 id="click-me" class="animated bounce">500</h1>
|
||||
<p>
|
||||
<strong>Internal server error. </strong>
|
||||
</p>
|
||||
<p>
|
||||
{message}
|
||||
</p>
|
||||
<p>
|
||||
<small id="hide" class="hide">Alright. You can stop clicking... it's not going to make the site come back sooner!</small>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
141
public/503.html
141
public/503.html
@@ -2,12 +2,147 @@
|
||||
<head>
|
||||
<title>Excessive Load Warning</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link rel="stylesheet" type="text/css" href="/assets/5xx.css" />
|
||||
<style type="text/css">
|
||||
body {
|
||||
background: #00A9EA;
|
||||
color: white;
|
||||
font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", Helvetica, Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
|
||||
text-align: center;
|
||||
-webkit-transform-style: preserve-3d;
|
||||
-moz-transform-style: preserve-3d;
|
||||
transform-style: preserve-3d;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 250px;
|
||||
color: #fff;
|
||||
opacity: 0.5;
|
||||
margin: 10px;
|
||||
cursor: pointer;
|
||||
-moz-user-select: none;
|
||||
-khtml-user-select: none;
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
|
||||
p {
|
||||
font-size: 20px;
|
||||
}
|
||||
|
||||
p strong {
|
||||
font-size: 28px;
|
||||
}
|
||||
|
||||
@media (max-width: 640px) {
|
||||
h1 {
|
||||
font-size: 125px;
|
||||
}
|
||||
|
||||
p {
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
p strong {
|
||||
font-size: 20px;
|
||||
}
|
||||
}
|
||||
|
||||
.center {
|
||||
position: relative;
|
||||
top: 50%;
|
||||
-webkit-transform: translateY(50%);
|
||||
-ms-transform: translateY(50%);
|
||||
transform: translateY(50%);
|
||||
}
|
||||
|
||||
@-webkit-keyframes bounce {
|
||||
0%, 20%, 53%, 80%, 100% {
|
||||
-webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
|
||||
transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
|
||||
-webkit-transform: translate3d(0,0,0);
|
||||
transform: translate3d(0,0,0);
|
||||
}
|
||||
|
||||
40%, 43% {
|
||||
-webkit-transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
|
||||
transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
|
||||
-webkit-transform: translate3d(0, -30px, 0);
|
||||
transform: translate3d(0, -30px, 0);
|
||||
}
|
||||
|
||||
70% {
|
||||
-webkit-transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
|
||||
transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
|
||||
-webkit-transform: translate3d(0, -15px, 0);
|
||||
transform: translate3d(0, -15px, 0);
|
||||
}
|
||||
|
||||
90% {
|
||||
-webkit-transform: translate3d(0,-4px,0);
|
||||
transform: translate3d(0,-4px,0);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes bounce {
|
||||
0%, 20%, 53%, 80%, 100% {
|
||||
-webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
|
||||
transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
|
||||
-webkit-transform: translate3d(0,0,0);
|
||||
transform: translate3d(0,0,0);
|
||||
}
|
||||
|
||||
40%, 43% {
|
||||
-webkit-transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
|
||||
transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
|
||||
-webkit-transform: translate3d(0, -30px, 0);
|
||||
transform: translate3d(0, -30px, 0);
|
||||
}
|
||||
|
||||
70% {
|
||||
-webkit-transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
|
||||
transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
|
||||
-webkit-transform: translate3d(0, -15px, 0);
|
||||
transform: translate3d(0, -15px, 0);
|
||||
}
|
||||
|
||||
90% {
|
||||
-webkit-transform: translate3d(0,-4px,0);
|
||||
transform: translate3d(0,-4px,0);
|
||||
}
|
||||
}
|
||||
|
||||
.bounce {
|
||||
-webkit-animation-name: bounce;
|
||||
animation-name: bounce;
|
||||
-webkit-transform-origin: center bottom;
|
||||
-ms-transform-origin: center bottom;
|
||||
transform-origin: center bottom;
|
||||
}
|
||||
|
||||
.animated {
|
||||
-webkit-animation-duration: 1s;
|
||||
animation-duration: 1s;
|
||||
-webkit-animation-fill-mode: both;
|
||||
animation-fill-mode: both;
|
||||
}
|
||||
|
||||
.animated.infinite {
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
|
||||
.animated.hinge {
|
||||
-webkit-animation-duration: 2s;
|
||||
animation-duration: 2s;
|
||||
}
|
||||
|
||||
.hide {
|
||||
display: none;
|
||||
}
|
||||
</style>
|
||||
<script type="text/javascript">
|
||||
window.onload = function() {
|
||||
let count = 0;
|
||||
const bounce = document.getElementById('click-me');
|
||||
var count = 0,
|
||||
bounce = document.getElementById('click-me');
|
||||
bounce.onclick = function() {
|
||||
count++;
|
||||
bounce.className = '';
|
||||
|
||||
135
public/5xx.css
135
public/5xx.css
@@ -1,135 +0,0 @@
|
||||
body {
|
||||
background: #00A9EA;
|
||||
color: white;
|
||||
font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", Helvetica, Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
|
||||
text-align: center;
|
||||
-webkit-transform-style: preserve-3d;
|
||||
-moz-transform-style: preserve-3d;
|
||||
transform-style: preserve-3d;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 250px;
|
||||
color: #fff;
|
||||
opacity: 0.5;
|
||||
margin: 10px;
|
||||
cursor: pointer;
|
||||
-moz-user-select: none;
|
||||
-khtml-user-select: none;
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
|
||||
p {
|
||||
font-size: 20px;
|
||||
}
|
||||
|
||||
p strong {
|
||||
font-size: 28px;
|
||||
}
|
||||
|
||||
@media (max-width: 640px) {
|
||||
h1 {
|
||||
font-size: 125px;
|
||||
}
|
||||
|
||||
p {
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
p strong {
|
||||
font-size: 20px;
|
||||
}
|
||||
}
|
||||
|
||||
.center {
|
||||
position: relative;
|
||||
top: 50%;
|
||||
-webkit-transform: translateY(50%);
|
||||
-ms-transform: translateY(50%);
|
||||
transform: translateY(50%);
|
||||
}
|
||||
|
||||
@-webkit-keyframes bounce {
|
||||
0%, 20%, 53%, 80%, 100% {
|
||||
-webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
|
||||
transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
|
||||
-webkit-transform: translate3d(0,0,0);
|
||||
transform: translate3d(0,0,0);
|
||||
}
|
||||
|
||||
40%, 43% {
|
||||
-webkit-transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
|
||||
transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
|
||||
-webkit-transform: translate3d(0, -30px, 0);
|
||||
transform: translate3d(0, -30px, 0);
|
||||
}
|
||||
|
||||
70% {
|
||||
-webkit-transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
|
||||
transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
|
||||
-webkit-transform: translate3d(0, -15px, 0);
|
||||
transform: translate3d(0, -15px, 0);
|
||||
}
|
||||
|
||||
90% {
|
||||
-webkit-transform: translate3d(0,-4px,0);
|
||||
transform: translate3d(0,-4px,0);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes bounce {
|
||||
0%, 20%, 53%, 80%, 100% {
|
||||
-webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
|
||||
transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
|
||||
-webkit-transform: translate3d(0,0,0);
|
||||
transform: translate3d(0,0,0);
|
||||
}
|
||||
|
||||
40%, 43% {
|
||||
-webkit-transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
|
||||
transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
|
||||
-webkit-transform: translate3d(0, -30px, 0);
|
||||
transform: translate3d(0, -30px, 0);
|
||||
}
|
||||
|
||||
70% {
|
||||
-webkit-transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
|
||||
transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
|
||||
-webkit-transform: translate3d(0, -15px, 0);
|
||||
transform: translate3d(0, -15px, 0);
|
||||
}
|
||||
|
||||
90% {
|
||||
-webkit-transform: translate3d(0,-4px,0);
|
||||
transform: translate3d(0,-4px,0);
|
||||
}
|
||||
}
|
||||
|
||||
.bounce {
|
||||
-webkit-animation-name: bounce;
|
||||
animation-name: bounce;
|
||||
-webkit-transform-origin: center bottom;
|
||||
-ms-transform-origin: center bottom;
|
||||
transform-origin: center bottom;
|
||||
}
|
||||
|
||||
.animated {
|
||||
-webkit-animation-duration: 1s;
|
||||
animation-duration: 1s;
|
||||
-webkit-animation-fill-mode: both;
|
||||
animation-fill-mode: both;
|
||||
}
|
||||
|
||||
.animated.infinite {
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
|
||||
.animated.hinge {
|
||||
-webkit-animation-duration: 2s;
|
||||
animation-duration: 2s;
|
||||
}
|
||||
|
||||
.hide {
|
||||
display: none;
|
||||
}
|
||||
@@ -9,9 +9,5 @@
|
||||
"filter-type": "نوع الحدث",
|
||||
"filter-start": "تاريخ البدء",
|
||||
"filter-end": "تاريخ الانتهاء",
|
||||
"filter-user": "Filter by User",
|
||||
"filter-user.placeholder": "قم بكتابة اسم مستخدم للتصفية...",
|
||||
"filter-group": "Filter by Group",
|
||||
"filter-group.placeholder": "قم بكتابة اسم مجموعة للتصفية...",
|
||||
"filter-per-page": "لكل صفحة"
|
||||
}
|
||||
@@ -94,8 +94,5 @@
|
||||
"view-as-json": "View as JSON",
|
||||
"expand-analytics": "Expand analytics",
|
||||
"clear-search-history": "Clear Search History",
|
||||
"clear-search-history-confirm": "Are you sure you want to clear entire search history?",
|
||||
"search-term": "Term",
|
||||
"search-count": "Count",
|
||||
"view-all": "View all"
|
||||
"clear-search-history-confirm": "Are you sure you want to clear entire search history?"
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
"ip": "رقم الآي بي <strong> %1 </strong>",
|
||||
"nodes-responded": "عدد %1 نقطة/نقاط استجابوا خلال %2 جزء من الثانية.",
|
||||
"host": "المضيف",
|
||||
"primary": "primary / jobs",
|
||||
"primary": "primary / run jobs",
|
||||
"pid": "pid",
|
||||
"nodejs": "nodejs",
|
||||
"online": "online",
|
||||
@@ -19,7 +19,6 @@
|
||||
|
||||
"registered": "Registered",
|
||||
"sockets": "Sockets",
|
||||
"connection-count": "Connection Count",
|
||||
"guests": "Guests",
|
||||
|
||||
"info": "Info"
|
||||
|
||||
@@ -12,8 +12,6 @@
|
||||
"container.card": "Card",
|
||||
"container.card-header": "Card Header",
|
||||
"container.card-body": "Card Body",
|
||||
"container.title": "Title",
|
||||
"container.body": "Body",
|
||||
"container.alert": "Alert",
|
||||
|
||||
"alert.confirm-delete": "Are you sure you wish to delete this widget?",
|
||||
|
||||
@@ -7,8 +7,6 @@
|
||||
"privileges": "الصلاحيات",
|
||||
"back-to-categories": "Back to categories",
|
||||
"name": "Category Name",
|
||||
"handle": "Category Handle",
|
||||
"handle.help": "Your category handle is used as a representation of this category across other networks, similar to a username. A category handle must not match an existing username or user group.",
|
||||
"description": "Category Description",
|
||||
"bg-color": "Background Colour",
|
||||
"text-color": "Text Colour",
|
||||
@@ -39,7 +37,6 @@
|
||||
"disable": "Disable",
|
||||
"edit": "Edit",
|
||||
"analytics": "Analytics",
|
||||
"federation": "Federation",
|
||||
|
||||
"view-category": "View category",
|
||||
"set-order": "Set order",
|
||||
@@ -79,22 +76,6 @@
|
||||
"analytics.topics-daily": "<strong>Figure 3</strong> – Daily topics created in this category</small>",
|
||||
"analytics.posts-daily": "<strong>Figure 4</strong> – Daily posts made in this category</small>",
|
||||
|
||||
"federation.title": "Federation settings for \"%1\" category",
|
||||
"federation.disabled": "Federation is disabled site-wide, so category federation settings are currently unavailable.",
|
||||
"federation.disabled-cta": "Federation Settings →",
|
||||
"federation.syncing-header": "Synchronization",
|
||||
"federation.syncing-intro": "A category can follow a \"Group Actor\" via the ActivityPub protocol. If content is received from one of the actors listed below, it will be automatically added to this category.",
|
||||
"federation.syncing-caveat": "N.B. Setting up syncing here establishes a one-way synchronization. NodeBB attempts to subscribe/follow the actor, but the reverse cannot be assumed.",
|
||||
"federation.syncing-none": "This category is not currently following anybody.",
|
||||
"federation.syncing-add": "Synchronize with...",
|
||||
"federation.syncing-actorUri": "Actor",
|
||||
"federation.syncing-follow": "Follow",
|
||||
"federation.syncing-unfollow": "Unfollow",
|
||||
"federation.followers": "Remote users following this category",
|
||||
"federation.followers-handle": "Handle",
|
||||
"federation.followers-id": "ID",
|
||||
"federation.followers-none": "No followers.",
|
||||
|
||||
"alert.created": "Created",
|
||||
"alert.create-success": "Category successfully created!",
|
||||
"alert.none-active": "You have no active categories.",
|
||||
|
||||
@@ -1,28 +0,0 @@
|
||||
{
|
||||
"title": "Manage Custom User Fields",
|
||||
"create-field": "Create Field",
|
||||
"edit-field": "Edit Field",
|
||||
"manage-custom-fields": "Manage Custom Fields",
|
||||
"type-of-input": "Type of input",
|
||||
"key": "Key",
|
||||
"name": "Name",
|
||||
"icon": "Icon",
|
||||
"type": "Type",
|
||||
"min-rep": "Minimum Reputation",
|
||||
"input-type-text": "Input (Text)",
|
||||
"input-type-link": "Input (Link)",
|
||||
"input-type-number": "Input (Number)",
|
||||
"input-type-date": "Input (Date)",
|
||||
"input-type-select": "Select",
|
||||
"input-type-select-multi": "Select Multiple",
|
||||
"select-options": "Options",
|
||||
"select-options-help": "Add one option per line for the select element",
|
||||
"minimum-reputation": "Minimum reputation",
|
||||
"minimum-reputation-help": "If a user has less than this value they won't be able to use this field",
|
||||
"delete-field-confirm-x": "Do you really want to delete custom field \"%1\"?",
|
||||
"custom-fields-saved": "Custom fields saved",
|
||||
"visibility": "Visibility",
|
||||
"visibility-all": "Everyone can see the field",
|
||||
"visibility-loggedin": "Only logged in users can see the field",
|
||||
"visibility-privileged": "Only privileged users like admins & moderators can see the field"
|
||||
}
|
||||
@@ -22,7 +22,6 @@
|
||||
"delete-content": "Delete User(s) <strong>Content</strong>",
|
||||
"purge": "Delete <strong>User(s)</strong> and <strong>Content</strong>",
|
||||
"download-csv": "Download CSV",
|
||||
"custom-user-fields": "Custom User Fields",
|
||||
"manage-groups": "Manage Groups",
|
||||
"set-reputation": "Set Reputation",
|
||||
"add-group": "Add Group",
|
||||
@@ -122,28 +121,6 @@
|
||||
"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",
|
||||
|
||||
@@ -38,7 +38,6 @@
|
||||
"settings/tags": "الكلمات المفتاحية",
|
||||
"settings/notifications": "التنبيهات",
|
||||
"settings/api": "API Access",
|
||||
"settings/activitypub": "Federation (ActivityPub)",
|
||||
"settings/sounds": "Sounds",
|
||||
"settings/social": "Social",
|
||||
"settings/cookies": "Cookies",
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
{
|
||||
"intro-lead": "What is Federation?",
|
||||
"intro-body": "NodeBB is able to communicate with other NodeBB instances that support it. This is achieved through a protocol called <a href=\"https://activitypub.rocks/\">ActivityPub</a>. If enabled, NodeBB will also be able to communicate with other apps and websites that use ActivityPub (e.g. Mastodon, Peertube, etc.)",
|
||||
"general": "General",
|
||||
"pruning": "Content Pruning",
|
||||
"content-pruning": "Days to keep remote content",
|
||||
"content-pruning-help": "Note that remote content that has received engagement (a reply or a upvote/downvote) will be preserved. (0 for disabled)",
|
||||
"user-pruning": "Days to cache remote user accounts",
|
||||
"user-pruning-help": "Remote user accounts will only be pruned if they have no posts. Otherwise they will be re-retrieved. (0 for disabled)",
|
||||
"enabled": "Enable Federation",
|
||||
"enabled-help": "If enabled, will allow this NodeBB will be able to communicate with all Activitypub-enabled clients on the wider fediverse.",
|
||||
"allowLoopback": "Allow loopback processing",
|
||||
"allowLoopback-help": "Useful for debugging purposes only. You should probably leave this disabled.",
|
||||
|
||||
"probe": "Open in App",
|
||||
"probe-enabled": "Try to open ActivityPub-enabled resources in NodeBB",
|
||||
"probe-enabled-help": "If enabled, NodeBB will check every external link for an ActivityPub equivalent, and load it in NodeBB instead.",
|
||||
"probe-timeout": "Lookup Timeout (milliseconds)",
|
||||
"probe-timeout-help": "(Default: 2000) If the lookup query does not receive a response within the set timeframe, will send the user to the link directly instead. Adjust this number higher if sites are responding slowly and you wish to give extra time.",
|
||||
|
||||
"server-filtering": "Filtering",
|
||||
"count": "This NodeBB is currently aware of <strong>%1</strong> server(s)",
|
||||
"server.filter-help": "Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively <em>allow</em> federation with specific servers, instead. Both options are supported, although they are mutually exclusive.",
|
||||
"server.filter-help-hostname": "Enter just the instance hostname below (e.g. <code>example.org</code>), separated by line breaks.",
|
||||
"server.filter-allow-list": "Use this as an Allow List instead"
|
||||
}
|
||||
@@ -15,7 +15,7 @@
|
||||
"title-layout": "Title Layout",
|
||||
"title-layout-help": "Define how the browser title will be structured ie. {pageTitle} | {browserTitle}",
|
||||
"description.placeholder": "A short description about your community",
|
||||
"description": "Choose what page is shown when users navigate to the root URL of your forum.",
|
||||
"description": "وصف الموقع",
|
||||
"keywords": "الكلمات الدليله للموقع",
|
||||
"keywords-placeholder": "Keywords describing your community, comma-separated",
|
||||
"logo-and-icons": "Site Logo & Icons",
|
||||
@@ -48,15 +48,5 @@
|
||||
"background-color-help": "Color used for splash screen background when website is installed as a PWA",
|
||||
"undo-timeout": "Undo Timeout",
|
||||
"undo-timeout-help": "Some operations such as moving topics will allow for the moderator to undo their action within a certain timeframe. Set to 0 to disable undo completely.",
|
||||
"topic-tools": "Topic Tools",
|
||||
"home-page": "Home Page",
|
||||
"home-page-route": "Home Page Route",
|
||||
"custom-route": "Custom Route",
|
||||
"allow-user-home-pages": "Allow User Home Pages",
|
||||
"home-page-title": "Title of the home page (default \"Home\")",
|
||||
"default-language": "اللغة الافتراضية",
|
||||
"auto-detect": "الكشف عن إعدادات اللغة للزوار بشكل آلي",
|
||||
"default-language-help": "تُحدد اللغة الافتراضية إعدادات اللغة لجميع المستخدمين الذين يزورون المنتدى. <br />يمكن للأعضاء تجاوز اللغة الافتراضية من خلال صفحة إعدادات الحساب الخاصة بهم.",
|
||||
"post-sharing": "Post Sharing",
|
||||
"info-plugins-additional": "Plugins can add additional networks for sharing posts."
|
||||
}
|
||||
"topic-tools": "Topic Tools"
|
||||
}
|
||||
|
||||
8
public/language/ar/admin/settings/guest.json
Normal file
8
public/language/ar/admin/settings/guest.json
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"settings": "Settings",
|
||||
"guest-settings": "Guest Settings",
|
||||
"handles.enabled": "Allow guest handles",
|
||||
"handles.enabled-help": "This option exposes a new field that allows guests to pick a name to associate with each post they make. If disabled, they will simply be called \"Guest\"",
|
||||
"topic-views.enabled": "Allow guests to increase topic view counts",
|
||||
"reply-notifications.enabled": "Allow guests to generate reply notifications"
|
||||
}
|
||||
8
public/language/ar/admin/settings/homepage.json
Normal file
8
public/language/ar/admin/settings/homepage.json
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"home-page": "Home Page",
|
||||
"description": "Choose what page is shown when users navigate to the root URL of your forum.",
|
||||
"home-page-route": "Home Page Route",
|
||||
"custom-route": "Custom Route",
|
||||
"allow-user-home-pages": "Allow User Home Pages",
|
||||
"home-page-title": "Title of the home page (default \"Home\")"
|
||||
}
|
||||
6
public/language/ar/admin/settings/languages.json
Normal file
6
public/language/ar/admin/settings/languages.json
Normal file
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"language-settings": "اعدادات اللغة",
|
||||
"description": "تُحدد اللغة الافتراضية إعدادات اللغة لجميع المستخدمين الذين يزورون المنتدى. <br />يمكن للأعضاء تجاوز اللغة الافتراضية من خلال صفحة إعدادات الحساب الخاصة بهم.",
|
||||
"default-language": "اللغة الافتراضية",
|
||||
"auto-detect": "الكشف عن إعدادات اللغة للزوار بشكل آلي"
|
||||
}
|
||||
@@ -10,7 +10,7 @@
|
||||
"id": "ID: <small>optional</small>",
|
||||
|
||||
"properties": "Properties:",
|
||||
"show-to-groups": "Show to Groups:",
|
||||
"groups": "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>",
|
||||
|
||||
@@ -4,11 +4,8 @@
|
||||
"sorting.post-default": "Default Post Sorting",
|
||||
"sorting.oldest-to-newest": "Oldest to Newest",
|
||||
"sorting.newest-to-oldest": "Newest to Oldest",
|
||||
"sorting.recently-replied": "Recently Replied",
|
||||
"sorting.recently-created": "Recently Created",
|
||||
"sorting.most-votes": "Most Votes",
|
||||
"sorting.most-posts": "Most Posts",
|
||||
"sorting.most-views": "Most Views",
|
||||
"sorting.topic-default": "Default Topic Sorting",
|
||||
"length": "Post Length",
|
||||
"post-queue": "Post Queue",
|
||||
|
||||
@@ -2,14 +2,7 @@
|
||||
"reputation": "Reputation Settings",
|
||||
"disable": "Disable Reputation System",
|
||||
"disable-down-voting": "Disable Down Voting",
|
||||
"upvote-visibility": "Up Vote visibility",
|
||||
"upvote-visibility-all": "Everyone can see up votes",
|
||||
"upvote-visibility-loggedin": "Only logged in users can see up votes",
|
||||
"upvote-visibility-privileged": "Only privileged users like admins & moderators can see up votes",
|
||||
"downvote-visibility": "Down Vote visibility",
|
||||
"downvote-visibility-all": "Everyone can see down votes",
|
||||
"downvote-visibility-loggedin": "Only logged in users can see down votes",
|
||||
"downvote-visibility-privileged": "Only privileged users like admins & moderators can see down votes",
|
||||
"votes-are-public": "All Votes Are Public",
|
||||
"thresholds": "Activity Thresholds",
|
||||
"min-rep-upvote": "Minimum reputation to upvote posts",
|
||||
"upvotes-per-day": "Upvotes per day (set to 0 for unlimited upvotes)",
|
||||
@@ -20,6 +13,7 @@
|
||||
"min-rep-chat": "Minimum reputation to send chat messages",
|
||||
"min-rep-post-links": "Minimum reputation to post links",
|
||||
"min-rep-flag": "Minimum reputation to flag posts",
|
||||
"min-rep-website": "Minimum reputation to add \"Website\" to user profile",
|
||||
"min-rep-aboutme": "Minimum reputation to add \"About me\" to user profile",
|
||||
"min-rep-signature": "Minimum reputation to add \"Signature\" to user profile",
|
||||
"min-rep-profile-picture": "Minimum reputation to add \"Profile Picture\" to user profile",
|
||||
@@ -29,12 +23,7 @@
|
||||
"flags.limit-per-target": "Maximum number of times something can be flagged",
|
||||
"flags.limit-per-target-placeholder": "Default: 0",
|
||||
"flags.limit-per-target-help": "When a post or user is flagged multiple times, each additional flag is considered a "report" and added to the original flag. Set this option to a number other than zero to limit the number of reports an item can receive.",
|
||||
"flags.limit-post-flags-per-day": "Maximum number of times a user can flag posts in a day",
|
||||
"flags.limit-post-flags-per-day-help": "Set to 0 to disable, (default: 10)",
|
||||
"flags.limit-user-flags-per-day": "Maximum number of times a user can flag users in a day",
|
||||
"flags.limit-user-flags-per-day-help": "Set to 0 to disable, (default: 10)",
|
||||
"flags.auto-flag-on-downvote-threshold": "Number of downvotes to auto flag posts",
|
||||
"flags.auto-flag-on-downvote-threshold-help": "Set to 0 to disable, (default: 0)",
|
||||
"flags.auto-flag-on-downvote-threshold": "Number of downvotes to auto flag posts (Set to 0 to disable, default: 0)",
|
||||
"flags.auto-resolve-on-ban": "Automatically resolve all of a user's tickets when they are banned",
|
||||
"flags.action-on-resolve": "Do the following when a flag is resolved",
|
||||
"flags.action-on-reject": "Do the following when a flag is rejected",
|
||||
|
||||
4
public/language/ar/admin/settings/social.json
Normal file
4
public/language/ar/admin/settings/social.json
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"post-sharing": "Post Sharing",
|
||||
"info-plugins-additional": "Plugins can add additional networks for sharing posts."
|
||||
}
|
||||
@@ -9,10 +9,9 @@
|
||||
"private-extensions": "File extensions to make private",
|
||||
"private-uploads-extensions-help": "Enter comma-separated list of file extensions to make private here (e.g. <code>pdf,xls,doc</code>). An empty list means all files are private.",
|
||||
"resize-image-width-threshold": "Resize images if they are wider than specified width",
|
||||
"resize-image-width-threshold-help": "(in pixels, default: 2000 pixels, set to 0 to disable)",
|
||||
"resize-image-width-threshold-help": "(in pixels, default: 1520 pixels, set to 0 to disable)",
|
||||
"resize-image-width": "Resize images down to specified width",
|
||||
"resize-image-width-help": "(in pixels, default: 760 pixels, set to 0 to disable)",
|
||||
"resize-image-keep-original": "Keep original image after resize",
|
||||
"resize-image-quality": "Quality to use when resizing images",
|
||||
"resize-image-quality-help": "Use a lower quality setting to reduce the file size of resized images.",
|
||||
"max-file-size": "الحد الأقصى لحجم الملف (بالكيبيبايت)",
|
||||
|
||||
@@ -88,10 +88,5 @@
|
||||
"restrictions.seconds-before-new": "Seconds before a new user can make their first post",
|
||||
"restrictions.seconds-edit-after-new": "Number of seconds a post remains editable for new users (set to 0 to disable)",
|
||||
"restrictions.milliseconds-between-messages": "Time between chat messages for new users (ms)",
|
||||
"restrictions.groups-exempt-from-new-user-restrictions": "Select groups that should be exempt from the new user restrictions",
|
||||
"guest-settings": "Guest Settings",
|
||||
"handles.enabled": "Allow guest handles",
|
||||
"handles.enabled-help": "This option exposes a new field that allows guests to pick a name to associate with each post they make. If disabled, they will simply be called \"Guest\"",
|
||||
"topic-views.enabled": "Allow guests to increase topic view counts",
|
||||
"reply-notifications.enabled": "Allow guests to generate reply notifications"
|
||||
}
|
||||
"restrictions.groups-exempt-from-new-user-restrictions": "Select groups that should be exempt from the new user restrictions"
|
||||
}
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
{
|
||||
"post-sort-option": "Post sort option, %1",
|
||||
"topic-sort-option": "Topic sort option, %1",
|
||||
"user-avatar-for": "User avatar for %1",
|
||||
"profile-page-for": "Profile page for user %1",
|
||||
"user-watched-tags": "User watched tags",
|
||||
"delete-upload-button": "Delete upload button",
|
||||
"group-page-link-for": "Group page link for %1"
|
||||
}
|
||||
@@ -32,7 +32,7 @@
|
||||
"folder-exists": "Folder exists",
|
||||
"invalid-pagination-value": "رقم الصفحة غير صحيح ، يجب أن يكون بين %1 و %2 .",
|
||||
"username-taken": "اسم المستخدم مأخوذ",
|
||||
"email-taken": "Email address is already taken.",
|
||||
"email-taken": "البريد الالكتروني مأخوذ",
|
||||
"email-nochange": "The email entered is the same as the email already on file.",
|
||||
"email-invited": "Email was already invited",
|
||||
"email-not-confirmed": "Posting in some categories or topics is enabled once your email is confirmed, please click here to send a confirmation email.",
|
||||
@@ -153,7 +153,6 @@
|
||||
"about-me-too-long": "نأسف، ( عني ) لا يمكن أن يكون أكثر من %1 حرف.",
|
||||
"cant-chat-with-yourself": "لايمكنك فتح محادثة مع نفسك",
|
||||
"chat-restricted": "هذا المستخدم عطل المحادثات الواردة عليه. يجب أن يتبعك حتى تتمكن من فتح محادثة معه.",
|
||||
"chat-user-blocked": "You have been blocked by this user.",
|
||||
"chat-disabled": "نظام المحادثة معطل.",
|
||||
"too-many-messages": "لقد أرسلت الكثير من الرسائل، الرجاء اﻹنتظار قليلاً",
|
||||
"invalid-chat-message": "الرسالة غير صالحة.",
|
||||
@@ -181,20 +180,10 @@
|
||||
"not-enough-reputation-min-rep-signature": "You need %1 reputation to add a signature",
|
||||
"not-enough-reputation-min-rep-profile-picture": "You need %1 reputation to add a profile picture",
|
||||
"not-enough-reputation-min-rep-cover-picture": "You need %1 reputation to add a cover picture",
|
||||
"not-enough-reputation-custom-field": "You need %1 reputation for %2",
|
||||
"custom-user-field-value-too-long": "Custom field value too long, %1",
|
||||
"custom-user-field-select-value-invalid": "Custom field selected option is invalid, %1",
|
||||
"custom-user-field-invalid-text": "Custom field text is invalid, %1",
|
||||
"custom-user-field-invalid-link": "Custom field link is invalid, %1",
|
||||
"custom-user-field-invalid-number": "Custom field number is invalid, %1",
|
||||
"custom-user-field-invalid-date": "Custom field date is invalid, %1",
|
||||
"invalid-custom-user-field": "Invalid custom user field, \"%1\" is already used by NodeBB",
|
||||
"post-already-flagged": "You have already flagged this post",
|
||||
"user-already-flagged": "You have already flagged this user",
|
||||
"post-flagged-too-many-times": "This post has been flagged by others already",
|
||||
"user-flagged-too-many-times": "This user has been flagged by others already",
|
||||
"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",
|
||||
"cant-flag-privileged": "You are not allowed to flag the profiles or content of privileged users (moderators/global moderators/admins)",
|
||||
"cant-locate-flag-report": "Cannot locate flag report",
|
||||
"self-vote": "You cannot vote on your own post",
|
||||
@@ -230,12 +219,10 @@
|
||||
"already-unblocked": "This user is already unblocked",
|
||||
"no-connection": "There seems to be a problem with your internet connection",
|
||||
"socket-reconnect-failed": "Unable to reach the server at this time. Click here to try again, or try again later",
|
||||
"invalid-plugin-id": "Invalid plugin ID",
|
||||
"plugin-not-whitelisted": "Unable to install plugin – only plugins whitelisted by the NodeBB Package Manager can be installed via the ACP",
|
||||
"plugins-set-in-configuration": "You are not allowed to change plugin state as they are defined at runtime (config.json, environmental variables or terminal arguments), please modify the configuration instead.",
|
||||
"theme-not-set-in-configuration": "When defining active plugins in configuration, changing themes requires adding the new theme to the list of active plugins before updating it in the ACP",
|
||||
"topic-event-unrecognized": "Topic event '%1' unrecognized",
|
||||
"category.handle-taken": "Category handle is already taken, please choose another.",
|
||||
"cant-set-child-as-parent": "Can't set child as parent category",
|
||||
"cant-set-self-as-parent": "Can't set self as parent category",
|
||||
"api.master-token-no-uid": "A master token was received without a corresponding `_uid` in the request body",
|
||||
@@ -248,12 +235,5 @@
|
||||
"api.500": "An unexpected error was encountered while attempting to service your request.",
|
||||
"api.501": "The route you are trying to call is not implemented yet, please try again tomorrow",
|
||||
"api.503": "The route you are trying to call is not currently available due to a server configuration",
|
||||
"api.reauth-required": "The resource you are trying to access requires (re-)authentication.",
|
||||
"activitypub.not-enabled": "Federation is not enabled on this server",
|
||||
"activitypub.invalid-id": "Unable to resolve the input id, likely as it is malformed.",
|
||||
"activitypub.get-failed": "Unable to retrieve the specified resource.",
|
||||
"activitypub.pubKey-not-found": "Unable to resolve public key, so payload verification cannot take place.",
|
||||
"activitypub.origin-mismatch": "The received object's origin does not match the sender's origin",
|
||||
"activitypub.actor-mismatch": "The received activity is being carried out by an actor that is different from expected.",
|
||||
"activitypub.not-implemented": "The request was denied because it or an aspect of it is not implemented by the recipient server"
|
||||
"api.reauth-required": "The resource you are trying to access requires (re-)authentication."
|
||||
}
|
||||
@@ -84,18 +84,12 @@
|
||||
"modal-reason-offensive": "Offensive",
|
||||
"modal-reason-other": "Other (specify below)",
|
||||
"modal-reason-custom": "Reason for reporting this content...",
|
||||
"modal-notify-remote": "Forward this report to %1",
|
||||
"modal-submit": "Submit Report",
|
||||
"modal-submit-success": "Content has been flagged for moderation.",
|
||||
|
||||
"modal-confirm-rescind": "Rescind Report?",
|
||||
|
||||
"bulk-actions": "Bulk Actions",
|
||||
"bulk-resolve": "Resolve Flag(s)",
|
||||
"confirm-purge": "Are you sure you want to permanently delete these flags?",
|
||||
"purge-cancelled": "Flag Purge Cancelled",
|
||||
"bulk-purge": "Purge Flag(s)",
|
||||
"bulk-success": "%1 flags updated",
|
||||
"flagged-timeago": "Flagged <span class=\"timeago\" title=\"%1\"></span>",
|
||||
"flagged-timeago-readable": "Flagged <span class=\"timeago\" title=\"%1\"></span> (%2)",
|
||||
"auto-flagged": "[Auto Flagged] Received %1 downvotes."
|
||||
}
|
||||
@@ -24,15 +24,8 @@
|
||||
"cancel": "Cancel",
|
||||
"close": "أغلق",
|
||||
"pagination": "الصفحات",
|
||||
"pagination.previouspage": "Previous Page",
|
||||
"pagination.nextpage": "Next Page",
|
||||
"pagination.firstpage": "First Page",
|
||||
"pagination.lastpage": "Last Page",
|
||||
"pagination.out-of": "%1 من %2",
|
||||
"pagination.enter-index": "Go to post index",
|
||||
"pagination.go-to-page": "Go to page",
|
||||
"pagination.page-x": "Page %1",
|
||||
"header.brand-logo": "Brand Logo",
|
||||
"header.admin": "مدير النظام",
|
||||
"header.categories": "الأقسام",
|
||||
"header.recent": "حديث",
|
||||
@@ -50,11 +43,12 @@
|
||||
"header.navigation": "الاستكشاف",
|
||||
"header.manage": "Manage",
|
||||
"header.drafts": "Drafts",
|
||||
"header.world": "World",
|
||||
"notifications.loading": "تحميل التنبيهات",
|
||||
"chats.loading": "تحميل الدردشات",
|
||||
"drafts.loading": "Loading Drafts",
|
||||
"motd.welcome": "مرحبا بكم في NodeBB، منصة المناقشة المستقبلية.",
|
||||
"previouspage": "الصفحة السابقة",
|
||||
"nextpage": "الصفحة التالية",
|
||||
"alert.success": "نجاح",
|
||||
"alert.error": "خطأ",
|
||||
"alert.warning": "Warning",
|
||||
@@ -111,7 +105,6 @@
|
||||
"dnd": "عدم الإزعاج",
|
||||
"invisible": "مخفي",
|
||||
"offline": "غير متصل",
|
||||
"remote-user": "This user is from outside of this forum",
|
||||
"email": "عنوان البريد الإلكتروني",
|
||||
"language": "اللغة",
|
||||
"guest": "زائر",
|
||||
@@ -142,12 +135,9 @@
|
||||
"edited": "حُرِر",
|
||||
"disabled": "معطل",
|
||||
"select": "تحديد",
|
||||
"selected": "Selected",
|
||||
"copied": "Copied",
|
||||
"user-search-prompt": "Type something here to find users...",
|
||||
"hidden": "Hidden",
|
||||
"sort": "Sort",
|
||||
"actions": "Actions",
|
||||
"rss-feed": "RSS Feed",
|
||||
"skip-to-content": "Skip to content"
|
||||
"actions": "Actions"
|
||||
}
|
||||
@@ -1,9 +1,8 @@
|
||||
{
|
||||
"chat.room-id": "Room %1",
|
||||
"chat.chatting-with": "Chat with",
|
||||
"chat.placeholder": "Type chat message here, drag & drop images",
|
||||
"chat.placeholder.mobile": "Type chat message",
|
||||
"chat.placeholder.message-room": "Message #%1",
|
||||
"chat.placeholder": "Type chat message here, drag & drop images, press enter to send",
|
||||
"chat.placeholder.mobile": "Type chat message here",
|
||||
"chat.scroll-up-alert": "Go to most recent message",
|
||||
"chat.usernames-and-x-others": "%1 & %2 others",
|
||||
"chat.chat-with-usernames": "Chat with %1",
|
||||
@@ -115,8 +114,6 @@
|
||||
"composer.discard-all-drafts": "Discard all drafts",
|
||||
"composer.no-drafts": "You have no drafts",
|
||||
"composer.discard-draft-confirm": "Do you want to discard this draft?",
|
||||
"composer.remote-pid-editing": "Editing a remote post",
|
||||
"composer.remote-pid-content-immutable": "The content of remote posts cannot be edited. However, you are able change the topic title and tags.",
|
||||
"bootbox.ok": "OK",
|
||||
"bootbox.cancel": "إلغاء",
|
||||
"bootbox.confirm": "تأكيد",
|
||||
|
||||
@@ -52,10 +52,10 @@
|
||||
"user-posted-to-multiple": "<strong>%1</strong>, <strong>%2</strong> and %3 others have posted replies to: <strong>%4</strong>",
|
||||
"user-posted-topic": "<strong>%1</strong> أنشأ موضوعًا جديدًا: <strong>%2</strong>",
|
||||
"user-edited-post": "<strong>%1</strong> has edited a post in <strong>%2</strong>",
|
||||
"user-posted-topic-with-tag": "<strong>%1</strong> has posted <strong>%2</strong> (tagged %3)",
|
||||
"user-posted-topic-with-tag-dual": "<strong>%1</strong> has posted <strong>%2</strong> (tagged %3 and %4)",
|
||||
"user-posted-topic-with-tag-triple": "<strong>%1</strong> has posted <strong>%2</strong> (tagged %3, %4, and %5)",
|
||||
"user-posted-topic-with-tag-multiple": "<strong>%1</strong> has posted <strong>%2</strong> (tagged %3)",
|
||||
"user-posted-topic-with-tag": "<strong>%1</strong> has posted a new topic with tag <strong>%2</strong>",
|
||||
"user-posted-topic-with-tag-dual": "<strong>%1</strong> has posted a new topic with tags <strong>%2</strong> and <strong>%3</strong>",
|
||||
"user-posted-topic-with-tag-triple": "<strong>%1</strong> has posted a new topic with tags <strong>%2</strong>, <strong>%3</strong> and <strong>%4</strong>",
|
||||
"user-posted-topic-with-tag-multiple": "<strong>%1</strong> has posted a new topic with tags <strong>%2</strong>",
|
||||
"user-posted-topic-in-category": "<strong>%1</strong> has posted a new topic in <strong>%2</strong>",
|
||||
"user-started-following-you": "<strong>%1</strong> صار يتابعك.",
|
||||
"user-started-following-you-dual": "<strong>%1</strong> and <strong>%2</strong> started following you.",
|
||||
@@ -75,7 +75,6 @@
|
||||
"email-confirmed": "تم التحقق من عنوان البريد الإلكتروني",
|
||||
"email-confirmed-message": "شكرًا على إثبات صحة عنوان بريدك الإلكتروني. صار حسابك مفعلًا بالكامل.",
|
||||
"email-confirm-error-message": "حدث خطأ أثناء التحقق من عنوان بريدك الإلكتروني. ربما رمز التفعيل خاطئ أو انتهت صلاحيته.",
|
||||
"email-confirm-error-message-already-validated": "Your email address was already validated.",
|
||||
"email-confirm-sent": "تم إرسال بريد التفعيل.",
|
||||
"none": "None",
|
||||
"notification-only": "التنبيهات فقط",
|
||||
@@ -98,9 +97,5 @@
|
||||
"notificationType-post-queue": "When a new post is queued",
|
||||
"notificationType-new-post-flag": "When a post is flagged",
|
||||
"notificationType-new-user-flag": "When a user is flagged",
|
||||
"notificationType-new-reward": "When you earn a new reward",
|
||||
"activitypub.announce": "<strong>%1</strong> shared your post in <strong>%2</strong> to their followers.",
|
||||
"activitypub.announce-dual": "<strong>%1</strong> and <strong>%2</strong> shared your post in <strong>%3</strong> to their followers.",
|
||||
"activitypub.announce-triple": "<strong>%1</strong>, <strong>%2</strong> and <strong>%3</strong> shared your post in <strong>%4</strong> to their followers.",
|
||||
"activitypub.announce-multiple": "<strong>%1</strong>, <strong>%2</strong> and %3 others shared your post in <strong>%4</strong> to their followers."
|
||||
"notificationType-new-reward": "When you earn a new reward"
|
||||
}
|
||||
@@ -36,7 +36,6 @@
|
||||
"chat": "Chatting with %1",
|
||||
"flags": "Flags",
|
||||
"flag-details": "Flag %1 Details",
|
||||
"world": "World",
|
||||
"account/edit": "Editing \"%1\"",
|
||||
"account/edit/password": "Editing password of \"%1\"",
|
||||
"account/edit/username": "Editing username of \"%1\"",
|
||||
@@ -55,7 +54,6 @@
|
||||
"account/settings-of": "Changing settings of %1",
|
||||
"account/watched": "Topics watched by %1",
|
||||
"account/ignored": "Topics ignored by %1",
|
||||
"account/read": "Topics read by %1",
|
||||
"account/upvoted": "Posts upvoted by %1",
|
||||
"account/downvoted": "Posts downvoted by %1",
|
||||
"account/best": "Best posts made by %1",
|
||||
@@ -63,7 +61,6 @@
|
||||
"account/blocks": "Blocked users for %1",
|
||||
"account/uploads": "Uploads by %1",
|
||||
"account/sessions": "Login Sessions",
|
||||
"account/shares": "Topics shared by %1",
|
||||
"confirm": "تم التحقق من عنوان البريد الإلكتروني",
|
||||
"maintenance.text": "%1 is currently undergoing maintenance.<br/>Please come back another time.",
|
||||
"maintenance.messageIntro": "بالإضافة إلى ذلك، قام مدبر النظام بترك هذه الرسالة:",
|
||||
|
||||
@@ -38,6 +38,5 @@
|
||||
"remove-selected": "Remove Selected",
|
||||
"remove-selected-confirm": "Do you want to remove %1 selected posts?",
|
||||
"bulk-accept-success": "%1 posts accepted",
|
||||
"bulk-reject-success": "%1 posts rejected",
|
||||
"links-in-this-post": "Links in this post"
|
||||
"bulk-reject-success": "%1 posts rejected"
|
||||
}
|
||||
@@ -7,7 +7,5 @@
|
||||
"alltime": "دائمًا",
|
||||
"no-recent-topics": "لايوجد مواضيع جديدة",
|
||||
"no-popular-topics": "لا يوجد مواضيع شائعة",
|
||||
"load-new-posts": "Load new posts",
|
||||
"uncategorized.title": "All known topics",
|
||||
"uncategorized.intro": "This page shows a chronological listing of every topic that this forum has received.<br />The views and opinions expressed in the topics below are not moderated and may not represent the views and opinions of this website."
|
||||
"load-new-posts": "Load new posts"
|
||||
}
|
||||
@@ -7,7 +7,6 @@
|
||||
"in-titles": "In titles",
|
||||
"in-titles-posts": "In titles and posts",
|
||||
"in-posts": "In posts",
|
||||
"in-bookmarks": "In bookmarks",
|
||||
"in-categories": "In categories",
|
||||
"in-users": "In users",
|
||||
"in-tags": "In tags",
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
"no-tag-topics": "لا يوجد مواضيع بهذه الكلمة الدلالية.",
|
||||
"no-tags-found": "No tags found",
|
||||
"tags": "الكلمات الدلالية",
|
||||
"enter-tags-here": "Enter tags, %1 - %2 characters.",
|
||||
"enter-tags-here": "Enter tags here, between %1 and %2 characters each.",
|
||||
"enter-tags-here-short": "أدخل الكلمات الدلالية...",
|
||||
"no-tags": "لا يوجد كلمات دلالية بعد.",
|
||||
"select-tags": "Select Tags",
|
||||
|
||||
@@ -3,18 +3,13 @@
|
||||
"skins": "Skins",
|
||||
"collapse": "Collapse",
|
||||
"expand": "Expand",
|
||||
"sidebar-toggle": "Sidebar Toggle",
|
||||
"login-register-to-search": "Login or register to search.",
|
||||
"settings.title": "Theme settings",
|
||||
"settings.enableQuickReply": "Enable quick reply",
|
||||
"settings.enableBreadcrumbs": "Show breadcrumbs in Category and Topic pages",
|
||||
"settings.enableBreadcrumbs.why": "Breadcrumbs are visible in most pages for ease-of-navigation. The base design of the category and topic pages has alternative means to link back to parent pages, but the breadcrumb can be toggled off to reduce clutter.",
|
||||
"settings.centerHeaderElements": "Center header elements",
|
||||
"settings.mobileTopicTeasers": "Show topic teasers on mobile",
|
||||
"settings.stickyToolbar": "Sticky toolbar",
|
||||
"settings.stickyToolbar.help": "The toolbar on topic and category pages will stick to the top of the page",
|
||||
"settings.topicSidebarTools": "Topic sidebar tools",
|
||||
"settings.topicSidebarTools.help": "This option will move the topic tools to the sidebar on desktop",
|
||||
"settings.autohideBottombar": "Auto hide bottom bar",
|
||||
"settings.autohideBottombar.help": "The bottom bar on mobile view will be hidden when the page is scrolled down",
|
||||
"settings.openSidebars": "Open sidebars",
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{
|
||||
"title": "أعلى الصفحة",
|
||||
"no-top-topics": "لا توجد مواضيع أعلى الصفحة"
|
||||
"title": "Top",
|
||||
"no-top-topics": "No top topics"
|
||||
}
|
||||
@@ -15,7 +15,6 @@
|
||||
"replies-to-this-post": "%1 الردود",
|
||||
"one-reply-to-this-post": "1 رد",
|
||||
"last-reply-time": "آخر رد",
|
||||
"reply-options": "Reply options",
|
||||
"reply-as-topic": "رد بموضوع",
|
||||
"guest-login-reply": "يجب عليك تسجيل الدخول للرد",
|
||||
"login-to-view": "سجل الدخول للمشاهدة",
|
||||
@@ -27,7 +26,6 @@
|
||||
"restore": "استعادة",
|
||||
"move": "نقل",
|
||||
"change-owner": "Change Owner",
|
||||
"manage-editors": "Manage Editors",
|
||||
"fork": "فرع",
|
||||
"link": "رابط",
|
||||
"share": "نشر",
|
||||
@@ -36,7 +34,6 @@
|
||||
"pinned": "مثبت",
|
||||
"pinned-with-expiry": "مثبت حتى %1",
|
||||
"scheduled": "Scheduled",
|
||||
"deleted": "Deleted",
|
||||
"moved": "منقول",
|
||||
"moved-from": "Moved from %1",
|
||||
"copy-code": "Copy Code",
|
||||
@@ -61,8 +58,6 @@
|
||||
"user-restored-topic-on": "%1 restored this topic on %2",
|
||||
"user-moved-topic-from-ago": "%1 moved this topic from %2 %3",
|
||||
"user-moved-topic-from-on": "%1 moved this topic from %2 on %3",
|
||||
"user-shared-topic-ago": "%1 shared this topic %2",
|
||||
"user-shared-topic-on": "%1 shared this topic on %2",
|
||||
"user-queued-post-ago": "%1 <a href=\"%2\">queued</a> post for approval %3",
|
||||
"user-queued-post-on": "%1 <a href=\"%2\">queued</a> post for approval on %3",
|
||||
"user-referenced-topic-ago": "%1 <a href=\"%2\">referenced</a> this topic %3",
|
||||
@@ -106,7 +101,6 @@
|
||||
"thread-tools.move-posts": "Move Posts",
|
||||
"thread-tools.move-all": "نقل الكل",
|
||||
"thread-tools.change-owner": "Change Owner",
|
||||
"thread-tools.manage-editors": "Manage Editors",
|
||||
"thread-tools.select-category": "Select Category",
|
||||
"thread-tools.fork": "إنشاء فرع الموضوع",
|
||||
"thread-tools.tag": "Tag Topic",
|
||||
@@ -137,7 +131,6 @@
|
||||
"bookmarks": "Bookmarks",
|
||||
"bookmarks.has-no-bookmarks": "You haven't bookmarked any posts yet.",
|
||||
"copy-permalink": "Copy Permalink",
|
||||
"go-to-original": "View Original Post",
|
||||
"loading-more-posts": "تحميل المزيد من المشاركات",
|
||||
"move-topic": "نقل الموضوع",
|
||||
"move-topics": "نقل المواضيع",
|
||||
@@ -162,7 +155,6 @@
|
||||
"move-posts-instruction": "Click the posts you want to move then enter a topic ID or go to the target topic",
|
||||
"move-topic-instruction": "Select the target category and then click move",
|
||||
"change-owner-instruction": "Click the posts you want to assign to another user",
|
||||
"manage-editors-instruction": "Manage the users who can edit this post below.",
|
||||
"composer.title-placeholder": "أدخل عنوان موضوعك هنا...",
|
||||
"composer.handle-placeholder": "Enter your name/handle here",
|
||||
"composer.hide": "Hide",
|
||||
@@ -188,8 +180,6 @@
|
||||
"sort-by": "ترتيب حسب",
|
||||
"oldest-to-newest": "من الأقدم إلى الأحدث",
|
||||
"newest-to-oldest": "من الأحدث إلى الأقدم",
|
||||
"recently-replied": "Recently Replied",
|
||||
"recently-created": "Recently Created",
|
||||
"most-votes": "Most Votes",
|
||||
"most-posts": "Most Posts",
|
||||
"most-views": "Most Views",
|
||||
@@ -214,15 +204,7 @@
|
||||
"last-post": "Last post",
|
||||
"go-to-my-next-post": "Go to my next post",
|
||||
"no-more-next-post": "You don't have more posts in this topic",
|
||||
"open-composer": "Open composer",
|
||||
"post-quick-reply": "Quick reply",
|
||||
"navigator.index": "Post %1 of %2",
|
||||
"navigator.unread": "%1 unread",
|
||||
"upvote-post": "Upvote post",
|
||||
"downvote-post": "Downvote post",
|
||||
"post-tools": "Post tools",
|
||||
"unread-posts-link": "Unread posts link",
|
||||
"thumb-image": "Topic thumbnail image",
|
||||
"announcers": "Shares",
|
||||
"announcers-x": "Shares (%1)"
|
||||
"navigator.unread": "%1 unread"
|
||||
}
|
||||
@@ -3,7 +3,6 @@
|
||||
"no-unread-topics": "ليس هناك أي موضوع غير مقروء",
|
||||
"load-more": "حمل المزيد",
|
||||
"mark-as-read": "حدد غير مقروء",
|
||||
"mark-as-unread": "Mark as Unread",
|
||||
"selected": "المحددة",
|
||||
"all": "الكل",
|
||||
"all-categories": "كل الفئات",
|
||||
|
||||
@@ -1,9 +1,6 @@
|
||||
{
|
||||
"user-menu": "قائمة المستخدم",
|
||||
"banned": "محظور",
|
||||
"unbanned": "Unbanned",
|
||||
"muted": "كتم",
|
||||
"unmuted": "Unmuted",
|
||||
"offline": "غير متصل",
|
||||
"deleted": "محذوف",
|
||||
"username": "إسم المستخدم",
|
||||
@@ -16,7 +13,7 @@
|
||||
"ban-account": "حظر الحساب",
|
||||
"ban-account-confirm": "هل تريد حقاً حظر هاذا العضو؟",
|
||||
"unban-account": "إزالة حظر الحساب",
|
||||
"mute-account": "كتم الحساب",
|
||||
"mute-account": "Mute Account",
|
||||
"unmute-account": "Unmute Account",
|
||||
"delete-account": "حذف الحساب",
|
||||
"delete-account-as-admin": "Delete <strong>Account</strong>",
|
||||
@@ -39,15 +36,13 @@
|
||||
"reputation": "السمعة",
|
||||
"bookmarks": "المفضلات",
|
||||
"watched-categories": "الأقسام المُتابعة",
|
||||
"watched-tags": "الوسوم المُتابعة",
|
||||
"watched-tags": "Watched tags",
|
||||
"change-all": "غير الكل",
|
||||
"watched": "متابع",
|
||||
"ignored": "تم تجاهله",
|
||||
"read": "Read",
|
||||
"default-category-watch-state": "حالة مشاهدة اﻻقسام الافتراضية",
|
||||
"followers": "المتابعون",
|
||||
"following": "يتابع",
|
||||
"shares": "Shares",
|
||||
"blocks": "الكتل",
|
||||
"blocked-users": "Blocked users",
|
||||
"block-toggle": "تبديل الكتلة",
|
||||
@@ -60,10 +55,8 @@
|
||||
"chat-with": "متابعة الدردشة مع %1",
|
||||
"new-chat-with": "بدء دردشة جديدة مع %1",
|
||||
"flag-profile": "ضع علامة على الملف الشخصي",
|
||||
"profile-flagged": "Already flagged",
|
||||
"follow": "تابع",
|
||||
"unfollow": "إلغاء المتابعة",
|
||||
"cancel-follow": "Cancel follow request",
|
||||
"more": "المزيد",
|
||||
"profile-update-success": "تم تحديث الملف الشخصي بنجاح",
|
||||
"change-picture": "تغيير الصورة",
|
||||
@@ -78,11 +71,10 @@
|
||||
"upload-new-picture": "رفع صورة جديدة",
|
||||
"upload-new-picture-from-url": "رفع صورة جديدة من رابط",
|
||||
"current-password": "كلمة السر الحالية",
|
||||
"new-password": "كلمة السر الجديدة",
|
||||
"new-password": "New Password",
|
||||
"change-password": "تغيير كلمة السر",
|
||||
"change-password-error": "كلمة سر غير صحيحة",
|
||||
"change-password-error-wrong-current": "كلمة السر الحالية ليست صحيحة",
|
||||
"change-password-error-same-password": "كلمة السر الجديدة مطابقة لكلمة السر الحالية, فضلاً قم بإدخال كلمة سر جديدة.",
|
||||
"change-password-error-match": "كلمة السر غير مطابقة لتأكيد كلمة السر",
|
||||
"change-password-error-privileges": "ليس لديك الصلاحيات الكافية لتغيير كلمة السر هذه.",
|
||||
"change-password-success": "تم تحديث كلمة السر خاصتك.",
|
||||
@@ -118,12 +110,10 @@
|
||||
"has-no-topics": "هذا المستخدم لم يكتب أي موضوع حتى الآن.",
|
||||
"has-no-watched-topics": "هذا المستخدم لم يقم بمراقبة اية مواضيع حتى الآن.",
|
||||
"has-no-ignored-topics": "هذا المستخدم لم يقم بتجاهل اية مواضيع حتى الآن.",
|
||||
"has-no-read-topics": "هذا المستخدم لم يقم بقراءة أي مشاركة حتى الاّن.",
|
||||
"has-no-upvoted-posts": "هذا المستخدم لم يقم بالتصويت للأعلى لأي مشاركة حتى الآن.",
|
||||
"has-no-downvoted-posts": "هذا المستخدم لم يقم بالتصويت للأسفل لأي مشاركة حتى الآن.",
|
||||
"has-no-controversial-posts": "هذا المستخدم ﻻيمتلك تصويت للأسفل لأي مشاركة حتى الآن.",
|
||||
"has-no-blocks": "أنت لم تحظر اي مستخدم",
|
||||
"has-no-shares": "This user has not shared any topics.",
|
||||
"email-hidden": "البريد الإلكتروني مخفي",
|
||||
"hidden": "مخفي",
|
||||
"paginate-description": "عرض المواضيع والردود موزعة على صفحات عوضاً عن التمرير اللانهائي.",
|
||||
@@ -151,10 +141,6 @@
|
||||
"follow-topics-you-create": "متابعة المواضيع التي تقوم بإنشائها",
|
||||
"grouptitle": "عنوان المجموعة",
|
||||
"group-order-help": "Select a group and use the arrows to order titles",
|
||||
"show-group-title": "Show group title",
|
||||
"hide-group-title": "Hide group title",
|
||||
"order-group-up": "Order group up",
|
||||
"order-group-down": "Order group down",
|
||||
"no-group-title": "لا يوجد عنوان للمجموعة",
|
||||
"select-skin": "إختر سمة",
|
||||
"default": "Default (%1)",
|
||||
@@ -171,16 +157,11 @@
|
||||
"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": "لم يتم إعطاء سبب.",
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
{
|
||||
"all-users": "كل المستخدمين",
|
||||
"followed-users": "Followed Users",
|
||||
"all-users": "All Users",
|
||||
"latest-users": "أحدث الأعضاء",
|
||||
"top-posters": "اﻷكثر مشاركة",
|
||||
"most-reputation": "أعلى سمعة",
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
{
|
||||
"name": "World",
|
||||
"popular": "Popular topics",
|
||||
"recent": "All topics",
|
||||
"help": "Help",
|
||||
|
||||
"help.title": "What is this page?",
|
||||
"help.intro": "Welcome to your corner of the fediverse.",
|
||||
"help.fediverse": "The \"fediverse\" is a network of interconnected applications and websites that all talk to one another and whose users can see each other. This forum is federated, and can interact with that social web (or \"fediverse\"). This page is your corner of the fediverse. It consists solely of topics created by — and shared from — users <strong>you</strong> follow.",
|
||||
"help.build": "There might not be a lot of topics here to start; that's normal. You will start to see more content here over time when you start following other users.",
|
||||
"help.federating": "Likewise, if users from outside of this forum start following <em>you</em>, then your posts will start appearing on those apps and websites as well.",
|
||||
"help.next-generation": "This is the next generation of social media, start contributing today!",
|
||||
|
||||
"onboard.title": "Your window to the fediverse...",
|
||||
"onboard.what": "This is your personalized category made up of only content found outside of this forum. Whether something shows up in this page depends on whether you follow them, or whether that post was shared by someone you follow.",
|
||||
"onboard.why": "There's a lot that goes on outside of this forum, and not all of it is relevant to your interests. That's why following people is the best way to signal that you want to see more from someone.",
|
||||
"onboard.how": "In the meantime, you can click on the shortcut buttons at the top to see what else this forum knows about, and start discovering some new content!"
|
||||
}
|
||||
@@ -9,9 +9,5 @@
|
||||
"filter-type": "Вид събитие",
|
||||
"filter-start": "Начална дата",
|
||||
"filter-end": "Крайна дата",
|
||||
"filter-user": "Филтриране по потребител",
|
||||
"filter-user.placeholder": "Въведете име на потребител, за да филтрирате…",
|
||||
"filter-group": "Филтриране по група",
|
||||
"filter-group.placeholder": "Въведете име на група, за да филтрирате…",
|
||||
"filter-per-page": "На страница"
|
||||
}
|
||||
@@ -94,8 +94,5 @@
|
||||
"view-as-json": "Преглед като JSON",
|
||||
"expand-analytics": "Разгъване на данните за анализ",
|
||||
"clear-search-history": "Изчистване на историята на търсенията",
|
||||
"clear-search-history-confirm": "Наистина ли искате да изчистите историята на търсенията?",
|
||||
"search-term": "Фраза",
|
||||
"search-count": "Брой",
|
||||
"view-all": "Преглед на всички"
|
||||
"clear-search-history-confirm": "Наистина ли искате да изчистите историята на търсенията?"
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
"ip": "IP <strong>%1</strong>",
|
||||
"nodes-responded": "%1 възела отговориха в рамките на %2мсек!",
|
||||
"host": "сървър",
|
||||
"primary": "основен / задачи",
|
||||
"primary": "основен / изпълнение на задачите",
|
||||
"pid": "ид. на процеса",
|
||||
"nodejs": "nodejs",
|
||||
"online": "на линия",
|
||||
@@ -19,7 +19,6 @@
|
||||
|
||||
"registered": "Регистрирани",
|
||||
"sockets": "Сокети",
|
||||
"connection-count": "Брой връзки",
|
||||
"guests": "Гости",
|
||||
|
||||
"info": "Информация"
|
||||
|
||||
@@ -12,8 +12,6 @@
|
||||
"container.card": "Карта",
|
||||
"container.card-header": "Заглавна част на карта",
|
||||
"container.card-body": "Основна част на карта",
|
||||
"container.title": "Заглавие",
|
||||
"container.body": "Съдържание",
|
||||
"container.alert": "Предупреждение",
|
||||
|
||||
"alert.confirm-delete": "Наистина ли искате да изтриете джаджата?",
|
||||
|
||||
@@ -7,8 +7,6 @@
|
||||
"privileges": "Правомощия",
|
||||
"back-to-categories": "Назад към категориите",
|
||||
"name": "Име на категорията",
|
||||
"handle": "Идентификатор на категорията",
|
||||
"handle.help": "Идентификаторът на категорията се ползва за представяне на тази категория в други мрежи, подобно на потребителското име. Този идентификатор не трябва да съвпада със съществуващо потребителско име или потребителска група.",
|
||||
"description": "Описание на категорията",
|
||||
"bg-color": "Цвят на фона",
|
||||
"text-color": "Цвят на текста",
|
||||
@@ -39,7 +37,6 @@
|
||||
"disable": "Изключване",
|
||||
"edit": "Редактиране",
|
||||
"analytics": "Анализи",
|
||||
"federation": "Федериране",
|
||||
|
||||
"view-category": "Преглед на категорията",
|
||||
"set-order": "Запазване на реда",
|
||||
@@ -79,22 +76,6 @@
|
||||
"analytics.topics-daily": "<strong>Фигура 3</strong> – Брой теми в тази категория на ден</small>",
|
||||
"analytics.posts-daily": "<strong>Фигура 4</strong> – Брой публикации в тази категория на ден</small>",
|
||||
|
||||
"federation.title": "Настройки за федерирането на категорията „%1“",
|
||||
"federation.disabled": "Федерирането е изключено за целия уеб сайт, така че настройките за федерирането на категорията са недостъпни.",
|
||||
"federation.disabled-cta": "Настройки за федерирането →",
|
||||
"federation.syncing-header": "Синхронизиране",
|
||||
"federation.syncing-intro": "Една категория може да следва „група от източници“ чрез протокола ActivityPub. Ако бъде получено съдържание от който и да е източник от посочените по-долу, то ще бъде автоматично добавено в тази категория.",
|
||||
"federation.syncing-caveat": "Забележка: настройките за синхронизиране тук установяват еднопосочна синхронизация. NodeBB ще се опита да се абонира/следва източника, но обратното не бива да се подразбира.",
|
||||
"federation.syncing-none": "Тази категория в момента не следва никого.",
|
||||
"federation.syncing-add": "Синхронизиране с…",
|
||||
"federation.syncing-actorUri": "Източник",
|
||||
"federation.syncing-follow": "Следване",
|
||||
"federation.syncing-unfollow": "Спиране на следването",
|
||||
"federation.followers": "Отдалечени потребители, които следват тази категория",
|
||||
"federation.followers-handle": "Идентификатор",
|
||||
"federation.followers-id": "Ид.",
|
||||
"federation.followers-none": "Няма последователи.",
|
||||
|
||||
"alert.created": "Създадена",
|
||||
"alert.create-success": "Категорията е създадена успешно!",
|
||||
"alert.none-active": "Нямате активни категории.",
|
||||
|
||||
@@ -1,28 +0,0 @@
|
||||
{
|
||||
"title": "Управление на персонализираните потребителски полета",
|
||||
"create-field": "Създаване на поле",
|
||||
"edit-field": "Редактиране на полето",
|
||||
"manage-custom-fields": "Управление на персонализираните полета",
|
||||
"type-of-input": "Вид на входните данни",
|
||||
"key": "Ключ",
|
||||
"name": "Име",
|
||||
"icon": "Иконка",
|
||||
"type": "Тип",
|
||||
"min-rep": "Минимална репутация",
|
||||
"input-type-text": "Въвеждане (текст)",
|
||||
"input-type-link": "Въвеждане (връзка)",
|
||||
"input-type-number": "Въвеждане (число)",
|
||||
"input-type-date": "Въвеждане (дата)",
|
||||
"input-type-select": "Избиране",
|
||||
"input-type-select-multi": "Избиране на множество",
|
||||
"select-options": "Опции",
|
||||
"select-options-help": "Добавете по една опция на ред за избрания елемент",
|
||||
"minimum-reputation": "Минимална репутация",
|
||||
"minimum-reputation-help": "Ако потребителят има по-малко репутация от посочената, той няма да може да използва това поле",
|
||||
"delete-field-confirm-x": "Наистина ли искате да изтриете персонализираното поле „%1“?",
|
||||
"custom-fields-saved": "Персонализираните полета са запазени",
|
||||
"visibility": "Видимост",
|
||||
"visibility-all": "Всички могат да виждат полето",
|
||||
"visibility-loggedin": "Само вписаните потребители могат да виждат полето",
|
||||
"visibility-privileged": "Само потребителите с по-високи правомощия (като администратори и модератори) могат да виждат полето"
|
||||
}
|
||||
@@ -22,7 +22,6 @@
|
||||
"delete-content": "Изтриване на <strong>съдържанието</strong> на потребителя/ите",
|
||||
"purge": "Изтриване на <strong>потребителя/ите</strong> и <strong>съдържанието</strong>",
|
||||
"download-csv": "Сваляне във формат „CSV“",
|
||||
"custom-user-fields": "Персонализирани потребителски полета",
|
||||
"manage-groups": "Управление на групите",
|
||||
"set-reputation": "Задаване на репутация",
|
||||
"add-group": "Добавяне на група",
|
||||
@@ -122,28 +121,6 @@
|
||||
"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": "Е-поща",
|
||||
|
||||
@@ -38,7 +38,6 @@
|
||||
"settings/tags": "Етикети",
|
||||
"settings/notifications": "Известия",
|
||||
"settings/api": "Достъп чрез ППИ",
|
||||
"settings/activitypub": "Федериране (ActivityPub)",
|
||||
"settings/sounds": "Звуци",
|
||||
"settings/social": "Обществени",
|
||||
"settings/cookies": "Бисквитки",
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
{
|
||||
"intro-lead": "Какво представлява федерирането?",
|
||||
"intro-body": "NodeBB може да осъществява връзка с други инсталации на NodeBB, които поддържат това. Това се постига чрез протокол наречен <a href=\"https://activitypub.rocks/\">ActivityPub</a>. Ако е включено, NodeBB ще може да осъществява връзка и с други приложения и уеб сайтове, които ползват ActivityPub (например Мастодон, Peertube и т.н.)",
|
||||
"general": "Общи",
|
||||
"pruning": "Премахване на съдържанието",
|
||||
"content-pruning": "Брой дни за съхранение на отдалечено съдържание",
|
||||
"content-pruning-help": "Имайте предвид, че отдалеченото съдържание, за което е имало някакви действия (отговори или положителни/отрицателни гласове) ще бъде запазено. (0 = изключено)",
|
||||
"user-pruning": "Брой дни за кеширане на отдалечените потребителски акаунти",
|
||||
"user-pruning-help": "Отдалечените потребителски акаунти ще бъдат премахнати, само ако не са публикували нищо. Иначе ще бъдат извличани повторно. (0 = изключено)",
|
||||
"enabled": "Включване на федерирането",
|
||||
"enabled-help": "Ако е включено, този NodeBB ще може да осъществява връзка с всички клиенти ползващи ActivityPub в цялата федивселена.",
|
||||
"allowLoopback": "Разрешаване на обработката на локална обратна връзка",
|
||||
"allowLoopback-help": "Полезно само за дебъгване. Най-добре е това да бъде изключено",
|
||||
|
||||
"probe": "Отваряне в приложението",
|
||||
"probe-enabled": "Дали да се опитва отваряне на нещата поддържащи ActivityPub в NodeBB",
|
||||
"probe-enabled-help": "Ако е включено, NodeBB ще проверява всяка външна връзка дали поддържа ActivityPub и ако е така – ще я зарежда направо в NodeBB.",
|
||||
"probe-timeout": "Време за изчакване на проверката (милисекунди)",
|
||||
"probe-timeout-help": "(По подразбиране: 2000) Ако проверката не получи отговор в рамките на зададеното време, потребителят ще бъде изпратен директно на адреса на връзката. Задайте по-голямо число, ако уеб сайтовете отговарят по-бавно и искате да им дадете повече време.",
|
||||
|
||||
"server-filtering": "Филтриране",
|
||||
"count": "Този NodeBB в момента знае за наличието на <strong>%1</strong> сървър(а)",
|
||||
"server.filter-help": "Посочете сървърите, с които не искате Вашият NodeBB да осъществява връзка. Или можете вместо това да посочите конкретни сървъри, с които <em>разрешавате</em> връзката. И двете възможности са налични, но може да изберете само една от тях.",
|
||||
"server.filter-help-hostname": "Въведете само имената на сървърите по-долу (например <code>example.org</code>), като всеки сървър трябва да е на отделен ред.",
|
||||
"server.filter-allow-list": "Това да се ползва като списък с разрешените сървъри"
|
||||
}
|
||||
@@ -15,7 +15,7 @@
|
||||
"title-layout": "Разположение на заглавието",
|
||||
"title-layout-help": "Определете как ще бъде структурирано заглавието на браузъра, например: {pageTitle} | {browserTitle}",
|
||||
"description.placeholder": "Кратко описание на общността Ви",
|
||||
"description": "Изберете коя страница да бъде показана, когато потребителите отидат на главния адрес на форума.",
|
||||
"description": "Описание на уеб сайта",
|
||||
"keywords": "Ключови думи на уеб сайта",
|
||||
"keywords-placeholder": "Ключови думи, описващи общността Ви. Трябва да бъдат разделени със запетаи.",
|
||||
"logo-and-icons": "Лого и иконки на уеб сайта",
|
||||
@@ -48,15 +48,5 @@
|
||||
"background-color-help": "Цвят, който да се използва като фон за началния екран, когато уеб сайтът е инсталиран като приложение",
|
||||
"undo-timeout": "Време за отмяна",
|
||||
"undo-timeout-help": "Някои действия, като например преместването на теми, могат да бъдат отменени от модератора в рамките на определено време. Задайте 0, за да забраните изцяло отменянето.",
|
||||
"topic-tools": "Инструменти за темите",
|
||||
"home-page": "Начална страница",
|
||||
"home-page-route": "Път на началната страница",
|
||||
"custom-route": "Персонализиран път",
|
||||
"allow-user-home-pages": "Разрешаване на потребителските начални страници",
|
||||
"home-page-title": "Заглавие на началната страница (по подразбиране: „Начало“)",
|
||||
"default-language": "Език по подразбиране",
|
||||
"auto-detect": "Автоматично разпознаване на езика за гостите",
|
||||
"default-language-help": "Езикът по подразбиране определя езиковите настройки за всички потребители, които посещават Вашия форум. <br />Отделните потребители могат да сменят езика си от страницата с настройки на профила си.",
|
||||
"post-sharing": "Споделяне на публикации",
|
||||
"info-plugins-additional": "Добавките могат да добавят допълнителни мрежи за споделяне на публикации."
|
||||
}
|
||||
"topic-tools": "Инструменти за темите"
|
||||
}
|
||||
|
||||
8
public/language/bg/admin/settings/guest.json
Normal file
8
public/language/bg/admin/settings/guest.json
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"settings": "Настройки",
|
||||
"guest-settings": "Настройки за гостите",
|
||||
"handles.enabled": "Позволяване на имената за гостите",
|
||||
"handles.enabled-help": "Тази възможност предоставя ново поле, което позволява на гостите да си изберат име, което да се използва за всяка публикация, която правят. Ако е изключено, всички те просто ще имат името „Гост“.",
|
||||
"topic-views.enabled": "Гостите да допринасят за броя на преглеждания на темите",
|
||||
"reply-notifications.enabled": "Гостите да могат да предизвикват изпращането на известия за отговорите си"
|
||||
}
|
||||
8
public/language/bg/admin/settings/homepage.json
Normal file
8
public/language/bg/admin/settings/homepage.json
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"home-page": "Начална страница",
|
||||
"description": "Изберете коя страница да бъде показана, когато потребителите отидат на главния адрес на форума.",
|
||||
"home-page-route": "Път на началната страница",
|
||||
"custom-route": "Персонализиран път",
|
||||
"allow-user-home-pages": "Разрешаване на потребителските начални страници",
|
||||
"home-page-title": "Заглавие на началната страница (по подразбиране: „Начало“)"
|
||||
}
|
||||
6
public/language/bg/admin/settings/languages.json
Normal file
6
public/language/bg/admin/settings/languages.json
Normal file
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"language-settings": "Езикови настройки",
|
||||
"description": "Езикът по подразбиране определя езиковите настройки за всички потребители, които посещават Вашия форум. <br />Отделните потребители могат да сменят езика си от страницата с настройки на профила си.",
|
||||
"default-language": "Език по подразбиране",
|
||||
"auto-detect": "Автоматично разпознаване на езика за гостите"
|
||||
}
|
||||
@@ -10,7 +10,7 @@
|
||||
"id": "Идентификатор: <small>незадължително</small>",
|
||||
|
||||
"properties": "Свойства:",
|
||||
"show-to-groups": "Показване на групите:",
|
||||
"groups": "Групи:",
|
||||
"open-new-window": "Отваряне в нов прозорец",
|
||||
"dropdown": "Падащо меню",
|
||||
"dropdown-placeholder": "Въведете елементите на падащото меню по-долу. Пример: <br/><li><a class="dropdown-item" href="https://myforum.com">Връзка 1</a></li>",
|
||||
|
||||
@@ -4,11 +4,8 @@
|
||||
"sorting.post-default": "Подредба по подразбиране на публикациите",
|
||||
"sorting.oldest-to-newest": "Първо най-старите",
|
||||
"sorting.newest-to-oldest": "Първо най-новите",
|
||||
"sorting.recently-replied": "Първо тези с най-скорошни отговори",
|
||||
"sorting.recently-created": "Първо най-скоро създадените",
|
||||
"sorting.most-votes": "Първо тези с най-много гласове",
|
||||
"sorting.most-posts": "Първо тези с най-много публикации",
|
||||
"sorting.most-views": "Първо тези с най-много преглеждания",
|
||||
"sorting.topic-default": "Подредба по подразбиране на темите",
|
||||
"length": "Дължина на публикациите",
|
||||
"post-queue": "Опашка за публикации",
|
||||
|
||||
@@ -2,14 +2,7 @@
|
||||
"reputation": "Настройки за репутацията",
|
||||
"disable": "Изключване на системата за репутация",
|
||||
"disable-down-voting": "Забрана на отрицателното гласуване",
|
||||
"upvote-visibility": "Видимост на положителните гласове",
|
||||
"upvote-visibility-all": "Всички могат да виждат положителните гласове",
|
||||
"upvote-visibility-loggedin": "Само вписаните потребители могат да виждат положителните гласове",
|
||||
"upvote-visibility-privileged": "Само потребителите с по-високи правомощия (като администратори и модератори) могат да виждат положителните гласове",
|
||||
"downvote-visibility": "Видимост на отрицателните гласове",
|
||||
"downvote-visibility-all": "Всички могат да виждат отрицателните гласове",
|
||||
"downvote-visibility-loggedin": "Само вписаните потребители могат да виждат отрицателните гласове",
|
||||
"downvote-visibility-privileged": "Само потребителите с по-високи правомощия (като администратори и модератори) могат да виждат отрицателните гласове",
|
||||
"votes-are-public": "Всички гласувания са публични",
|
||||
"thresholds": "Ограничения на дейността",
|
||||
"min-rep-upvote": "Минимална репутация, необходима за положително гласуване за публикации",
|
||||
"upvotes-per-day": "Положителни гласувания за ден (задайте 0 за неограничен брой)",
|
||||
@@ -20,6 +13,7 @@
|
||||
"min-rep-chat": "Минимална репутация, необходима за изпращане на съобщения в разговори",
|
||||
"min-rep-post-links": "Минимална репутация, необходима за публикуване на връзки",
|
||||
"min-rep-flag": "Минимална репутация, необходима за докладване на публикации",
|
||||
"min-rep-website": "Минимална репутация, необходима за добавяне на полето „Уебсайт“ към профила на потребителя",
|
||||
"min-rep-aboutme": "Минимална репутация, необходима за добавяне на полето „За мен“ към профила на потребителя",
|
||||
"min-rep-signature": "Минимална репутация, необходима за добавяне на полето „Подпис“ към профила на потребителя",
|
||||
"min-rep-profile-picture": "Минимална репутация, необходима за добавяне на профилна снимка към профила на потребителя",
|
||||
@@ -29,12 +23,7 @@
|
||||
"flags.limit-per-target": "Максимален брой докладвания на едно и също нещо",
|
||||
"flags.limit-per-target-placeholder": "По подразбиране: 0",
|
||||
"flags.limit-per-target-help": "Когато публикация или потребител бъде докладван няколко пъти, това се добавя към един общ доклад. Задайте на тази настройка стойност по-голяма от нула, за да ограничите броя на докладванията, които могат да бъдат натрупани към една публикация или потребител.",
|
||||
"flags.limit-post-flags-per-day": "Максимален брой публикации, които потребител може да докладва в рамките на един ден",
|
||||
"flags.limit-post-flags-per-day-help": "Задайте 0 за изключване (по подразбиране: 10)",
|
||||
"flags.limit-user-flags-per-day": "Максимален брой потребители, които даден потребител може да докладва в рамките на един ден",
|
||||
"flags.limit-user-flags-per-day-help": "Задайте 0 за изключване (по подразбиране: 10)",
|
||||
"flags.auto-flag-on-downvote-threshold": "Брой отрицателни гласове за автоматично докладване на публикации",
|
||||
"flags.auto-flag-on-downvote-threshold-help": "Задайте 0 за изключване (по подразбиране: 0)",
|
||||
"flags.auto-flag-on-downvote-threshold": "Брой отрицателни гласове, при които публикациите да бъдат докладвани автоматично (0 = изключено, по подразбиране: 0)",
|
||||
"flags.auto-resolve-on-ban": "Автоматично премахване на всички доклади за потребител, когато той бъде блокиран",
|
||||
"flags.action-on-resolve": "Когато докладване бъде разрешено, да се направи следното",
|
||||
"flags.action-on-reject": "Когато докладване бъде отхвърлено, да се направи следното",
|
||||
|
||||
4
public/language/bg/admin/settings/social.json
Normal file
4
public/language/bg/admin/settings/social.json
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"post-sharing": "Споделяне на публикации",
|
||||
"info-plugins-additional": "Добавките могат да добавят допълнителни мрежи за споделяне на публикации."
|
||||
}
|
||||
@@ -9,10 +9,9 @@
|
||||
"private-extensions": "Файлови разширения, които да бъдат частни",
|
||||
"private-uploads-extensions-help": "Въведете списък от файлови разширения, разделени със запетаи, които искате да бъдат частни (например <code>pdf,xls,doc</code>). Ако оставите това поле празно, всички файлове ще бъдат частни.",
|
||||
"resize-image-width-threshold": "Преоразмеряване на изображенията, ако са по-широки от определената ширина",
|
||||
"resize-image-width-threshold-help": "(в пиксели; по подразбиране: 2000 пиксела. 0 = изключено)",
|
||||
"resize-image-width-threshold-help": "(в пиксели; по подразбиране: 1520 пиксела. 0 = изключено)",
|
||||
"resize-image-width": "Намаляване на размера на изображенията до определена ширина",
|
||||
"resize-image-width-help": "(в пиксели; по подразбиране: 760 пиксела. 0 = изключено)",
|
||||
"resize-image-keep-original": "Запазване на оригиналното изображение след преоразмеряване",
|
||||
"resize-image-quality": "Качество при преоразмеряване на изображенията",
|
||||
"resize-image-quality-help": "Използване на по-ниско качество за намаляване на размера на файловете за преоразмерените изображения.",
|
||||
"max-file-size": "Максимален размер на файловете (в КиБ)",
|
||||
|
||||
@@ -88,10 +88,5 @@
|
||||
"restrictions.seconds-before-new": "Брой секунди преди новите потребители да могат да публикуват за пръв път",
|
||||
"restrictions.seconds-edit-after-new": "Брой секунди, през които публикациите могат да бъдат редактирани от нови потребители. (0 = изключено)",
|
||||
"restrictions.milliseconds-between-messages": "Време между съобщенията в разговорите за нови потребители (мсек)",
|
||||
"restrictions.groups-exempt-from-new-user-restrictions": "Избиране на групи, за които да не важат ограниченията за нови потребители",
|
||||
"guest-settings": "Настройки за гостите",
|
||||
"handles.enabled": "Позволяване на имената за гостите",
|
||||
"handles.enabled-help": "Тази възможност предоставя ново поле, което позволява на гостите да си изберат име, което да се използва за всяка публикация, която правят. Ако е изключено, всички те просто ще имат името „Гост“.",
|
||||
"topic-views.enabled": "Гостите да допринасят за броя на преглеждания на темите",
|
||||
"reply-notifications.enabled": "Гостите да могат да предизвикват изпращането на известия за отговорите си"
|
||||
}
|
||||
"restrictions.groups-exempt-from-new-user-restrictions": "Избиране на групи, за които да не важат ограниченията за нови потребители"
|
||||
}
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
{
|
||||
"post-sort-option": "Настройка за подредбата на публикациите, %1",
|
||||
"topic-sort-option": "Настройка за подредбата на темите, %1",
|
||||
"user-avatar-for": "Изображение на потребителя за %1",
|
||||
"profile-page-for": "Профилна страница за потребителя %1",
|
||||
"user-watched-tags": "Наблюдавани от потребителя етикети",
|
||||
"delete-upload-button": "Бутон за изтриване на каченото",
|
||||
"group-page-link-for": "Връзка към груповата страница за %1"
|
||||
}
|
||||
@@ -32,7 +32,7 @@
|
||||
"folder-exists": "Вече има папка с това име",
|
||||
"invalid-pagination-value": "Грешен номер на странициране, трябва да бъде между %1 и %2",
|
||||
"username-taken": "Потребителското име е заето",
|
||||
"email-taken": "Адресът на е-пощата вече е зает.",
|
||||
"email-taken": "Е-пощата е заета",
|
||||
"email-nochange": "Въведената е-поща е същата като съществуващата.",
|
||||
"email-invited": "На тази е-поща вече е била изпратена покана",
|
||||
"email-not-confirmed": "Публикуването в някои категории и теми ще бъде възможно едва след като е-пощата Ви бъде потвърдена. Щръкнете тук, за да Ви изпратим е-писмо за потвърждение.",
|
||||
@@ -153,7 +153,6 @@
|
||||
"about-me-too-long": "Съжаляваме, но информацията за Вас трябва да съдържа не повече от %1 символ(а).",
|
||||
"cant-chat-with-yourself": "Не можете да пишете съобщение на себе си!",
|
||||
"chat-restricted": "Този потребител е ограничил съобщенията до себе си. Той трябва първо да Ви последва, преди да можете да си пишете с него.",
|
||||
"chat-user-blocked": "Бяхте блокиран(а) от този потребител.",
|
||||
"chat-disabled": "Системата за разговори е изключена",
|
||||
"too-many-messages": "Изпратили сте твърде много съобщения. Моля, изчакайте малко.",
|
||||
"invalid-chat-message": "Неправилно съобщение",
|
||||
@@ -181,20 +180,10 @@
|
||||
"not-enough-reputation-min-rep-signature": "Репутацията Ви трябва да бъде поне %1, за да добавите подпис",
|
||||
"not-enough-reputation-min-rep-profile-picture": "Репутацията Ви трябва да бъде поне %1, за да добавите снимка на профила си",
|
||||
"not-enough-reputation-min-rep-cover-picture": "Репутацията Ви трябва да бъде поне %1, за да добавите снимка на корицата",
|
||||
"not-enough-reputation-custom-field": "Репутацията Ви трябва да бъде поне %1 за %2",
|
||||
"custom-user-field-value-too-long": "Стойността в персонализираното поле е твърде дълга, %1",
|
||||
"custom-user-field-select-value-invalid": "Избраната опция в персонализираното поле е твърде неправилна, %1",
|
||||
"custom-user-field-invalid-text": "Текстът в персонализираното поле е неправилен, %1",
|
||||
"custom-user-field-invalid-link": "Връзката в персонализираното поле е неправилна, %1",
|
||||
"custom-user-field-invalid-number": "Числото в персонализираното поле е неправилно, %1",
|
||||
"custom-user-field-invalid-date": "Датата в персонализираното поле е неправилна, %1",
|
||||
"invalid-custom-user-field": "Неправилно персонализирано поле. „%1“ вече се ползва от NodeBB",
|
||||
"post-already-flagged": "Вече сте докладвали тази публикация",
|
||||
"user-already-flagged": "Вече сте докладвали този потребител",
|
||||
"post-flagged-too-many-times": "Тази публикация вече е докладвана от други хора",
|
||||
"user-flagged-too-many-times": "Този потребител вече е докладван от други хора",
|
||||
"too-many-post-flags-per-day": "Можете да докладвате най-много %1 публикации на ден",
|
||||
"too-many-user-flags-per-day": "Можете да докладвате най-много %1 потребител(и) на ден",
|
||||
"cant-flag-privileged": "Не можете да докладвате профилите или съдържанието от потребители с по-високи правомощия (модератори, глобални модератори, администратори)",
|
||||
"cant-locate-flag-report": "Докладът не може да бъде намерен",
|
||||
"self-vote": "Не можете да гласувате за собствената си публикация",
|
||||
@@ -230,12 +219,10 @@
|
||||
"already-unblocked": "Този потребител вече е отблокиран",
|
||||
"no-connection": "Изглежда има проблем с връзката Ви с Интернет",
|
||||
"socket-reconnect-failed": "В момента сървърът е недостъпен. Натиснете тук, за да опитате отново, или опитайте пак по-късно.",
|
||||
"invalid-plugin-id": "Грешен идентификатор на добавка",
|
||||
"plugin-not-whitelisted": "Добавката не може да бъде инсталирана – само добавки, одобрени от пакетния мениджър на NodeBB могат да бъдат инсталирани чрез ACP",
|
||||
"plugins-set-in-configuration": "Не можете да променяте състоянието на добавката, тъй като то се определя по време на работата ѝ (чрез config.json, променливи на средата или аргументи при изпълнение). Вместо това може да промените конфигурацията.",
|
||||
"theme-not-set-in-configuration": "Когато определяте активните добавки в конфигурацията, промяната на темите изисква да се добави новата тема към активните добавки, преди актуализирането ѝ в ACP",
|
||||
"topic-event-unrecognized": "Събитието „%1“ на темата е неизвестно",
|
||||
"category.handle-taken": "Идентификаторът на категорията е зает. Моля, изберете друг.",
|
||||
"cant-set-child-as-parent": "Дъщерна категория не може да се зададе като базова такава",
|
||||
"cant-set-self-as-parent": "Категорията не може да се зададе като базова категория на себе си",
|
||||
"api.master-token-no-uid": "Беше получен главен идентификатор без съответстващо поле `_uid` в тялото на заявката",
|
||||
@@ -248,12 +235,5 @@
|
||||
"api.500": "При обработката на заявката Ви възникна неочаквана грешка.",
|
||||
"api.501": "Пътят, който се опитвате да извикате, все още не съществува. Моля, опитайте отново утре.",
|
||||
"api.503": "Пътят, който се опитвате да извикате, в момента не е достъпен, поради настройките на сървъра.",
|
||||
"api.reauth-required": "Ресурсът, който се опитвате да достъпите, изисква (повторно) удостоверяване.",
|
||||
"activitypub.not-enabled": "Federation is not enabled on this server",
|
||||
"activitypub.invalid-id": "Входният идентификатор не може да бъде разпознат – може да е неправилен.",
|
||||
"activitypub.get-failed": "Посоченият материал не може да бъде получен.",
|
||||
"activitypub.pubKey-not-found": "Публичният ключ не може да бъде разпознат, така че потвърждението на данните не може да бъде извършено.",
|
||||
"activitypub.origin-mismatch": "Произходът на получения обект не съвпада с произхода на подателя",
|
||||
"activitypub.actor-mismatch": "Полученото действие се изпълнява от източник, който е различен от очаквания.",
|
||||
"activitypub.not-implemented": "Заявката беше отказана, тъй като тя или част от нея не се поддържа от сървъра, към който е насочена"
|
||||
"api.reauth-required": "Ресурсът, който се опитвате да достъпите, изисква (повторно) удостоверяване."
|
||||
}
|
||||
@@ -84,18 +84,12 @@
|
||||
"modal-reason-offensive": "Обидно",
|
||||
"modal-reason-other": "Друго (опишете по-долу)",
|
||||
"modal-reason-custom": "Причина за докладването на това съдържание…",
|
||||
"modal-notify-remote": "Препращане на този доклад към %1",
|
||||
"modal-submit": "Изпращане на доклада",
|
||||
"modal-submit-success": "Съдържанието беше докладвано на модераторите.",
|
||||
|
||||
"modal-confirm-rescind": "Анулиране на доклада?",
|
||||
|
||||
"bulk-actions": "Групови действия",
|
||||
"bulk-resolve": "Разрешаване на доклад(и)",
|
||||
"confirm-purge": "Наистина ли искате да изтриете завинаги тези доклади?",
|
||||
"purge-cancelled": "Изтриването на доклад е отменено",
|
||||
"bulk-purge": "Изтриване на доклад(и)",
|
||||
"bulk-success": "%1 доклада са обновени",
|
||||
"flagged-timeago": "Докладвано <span class=\"timeago\" title=\"%1\"></span>",
|
||||
"flagged-timeago-readable": "Докладвано <span class=\"timeago\" title=\"%1\"></span> (%2)",
|
||||
"auto-flagged": "[Авт. докладвано] Получени %1 отрицателни гласа."
|
||||
}
|
||||
@@ -24,15 +24,8 @@
|
||||
"cancel": "Отказ",
|
||||
"close": "Затваряне",
|
||||
"pagination": "Странициране",
|
||||
"pagination.previouspage": "Предишна страница",
|
||||
"pagination.nextpage": "Следваща страница",
|
||||
"pagination.firstpage": "Първа страница",
|
||||
"pagination.lastpage": "Последна страница",
|
||||
"pagination.out-of": "%1 от %2",
|
||||
"pagination.enter-index": "Към публикация номер",
|
||||
"pagination.go-to-page": "Към страница",
|
||||
"pagination.page-x": "Страница %1",
|
||||
"header.brand-logo": "Лого на марката",
|
||||
"header.admin": "Администратор",
|
||||
"header.categories": "Категории",
|
||||
"header.recent": "Скорошни",
|
||||
@@ -50,11 +43,12 @@
|
||||
"header.navigation": "Навигация",
|
||||
"header.manage": "Управление",
|
||||
"header.drafts": "Чернови",
|
||||
"header.world": "Свят",
|
||||
"notifications.loading": "Зареждане на известията",
|
||||
"chats.loading": "Зареждане на разговорите",
|
||||
"drafts.loading": "Зареждане на черновите",
|
||||
"motd.welcome": "Добре дошли в NodeBB, системата за дискусии на бъдещето.",
|
||||
"previouspage": "Предишна страница",
|
||||
"nextpage": "Следваща страница",
|
||||
"alert.success": "Готово",
|
||||
"alert.error": "Грешка",
|
||||
"alert.warning": "Предупреждение",
|
||||
@@ -111,7 +105,6 @@
|
||||
"dnd": "Отпочиващ",
|
||||
"invisible": "Невидим",
|
||||
"offline": "Извън линия",
|
||||
"remote-user": "Този потребител е извън този форум",
|
||||
"email": "Е-поща",
|
||||
"language": "Език",
|
||||
"guest": "Гост",
|
||||
@@ -142,12 +135,9 @@
|
||||
"edited": "Редактирано",
|
||||
"disabled": "Изключено",
|
||||
"select": "Избиране",
|
||||
"selected": "Избрано",
|
||||
"copied": "Копирано",
|
||||
"user-search-prompt": "Започнете да пишете, за да потърсите потребител…",
|
||||
"hidden": "Скрито",
|
||||
"sort": "Подреждане",
|
||||
"actions": "Действия",
|
||||
"rss-feed": "RSS поток",
|
||||
"skip-to-content": "Преминаване към съдържанието"
|
||||
"actions": "Действия"
|
||||
}
|
||||
@@ -1,9 +1,8 @@
|
||||
{
|
||||
"chat.room-id": "Стая %1",
|
||||
"chat.chatting-with": "Разговор с",
|
||||
"chat.placeholder": "Въведете съобщение тук или пуснете снимки",
|
||||
"chat.placeholder.mobile": "Въведете съобщение",
|
||||
"chat.placeholder.message-room": "Съобщение #%1",
|
||||
"chat.placeholder": "Въведете съобщение тук или пуснете снимки и натиснете Ентер за изпращане",
|
||||
"chat.placeholder.mobile": "Въведете съобщение тук",
|
||||
"chat.scroll-up-alert": "Към последните съобщения",
|
||||
"chat.usernames-and-x-others": "%1 и %2 други",
|
||||
"chat.chat-with-usernames": "Разговор с %1",
|
||||
@@ -115,8 +114,6 @@
|
||||
"composer.discard-all-drafts": "Изтриване на всички чернови",
|
||||
"composer.no-drafts": "Нямате никакви чернови",
|
||||
"composer.discard-draft-confirm": "Искате ли да изтриете тази чернова?",
|
||||
"composer.remote-pid-editing": "Редактиране на отдалечена публикация",
|
||||
"composer.remote-pid-content-immutable": "Съдържанието на отдалечени публикации не може да бъде редактирано. Може да промените само заглавието на темата и етикетите.",
|
||||
"bootbox.ok": "Добре",
|
||||
"bootbox.cancel": "Отказ",
|
||||
"bootbox.confirm": "Потвърждаване",
|
||||
|
||||
@@ -52,10 +52,10 @@
|
||||
"user-posted-to-multiple": "<strong>%1</strong>, <strong>%2</strong> и %3 други публикуваха отговори на: <strong>%4</strong>",
|
||||
"user-posted-topic": "<strong>%1</strong> публикува нова тема: <strong>%2</strong>",
|
||||
"user-edited-post": "<strong>%1</strong> редактира публикация в <strong>%2</strong>",
|
||||
"user-posted-topic-with-tag": "<strong>%1</strong> публикува <strong>%2</strong> (с етикет %3)",
|
||||
"user-posted-topic-with-tag-dual": "<strong>%1</strong> публикува <strong>%2</strong> (с етикети %3 и %4)",
|
||||
"user-posted-topic-with-tag-triple": "<strong>%1</strong> публикува <strong>%2</strong> (с етикети %3, %4 и %5)",
|
||||
"user-posted-topic-with-tag-multiple": "<strong>%1</strong> публикува <strong>%2</strong> (с етикет %3)",
|
||||
"user-posted-topic-with-tag": "<strong>%1</strong> публикува нова тема с етикет <strong>%2</strong>",
|
||||
"user-posted-topic-with-tag-dual": "<strong>%1</strong> публикува нова тема с етикети <strong>%2</strong> и <strong>%3</strong>",
|
||||
"user-posted-topic-with-tag-triple": "<strong>%1</strong> публикува нова тема с етикети <strong>%2</strong>, <strong>%3</strong> и <strong>%4</strong>",
|
||||
"user-posted-topic-with-tag-multiple": "<strong>%1</strong> публикува нова тема с етикети <strong>%2</strong>",
|
||||
"user-posted-topic-in-category": "<strong>%1</strong> публикува нова тема в <strong>%2</strong>",
|
||||
"user-started-following-you": "<strong>%1</strong> започна да Ви следва.",
|
||||
"user-started-following-you-dual": "<strong>%1</strong> и <strong>%2</strong> започнаха да Ви следват.",
|
||||
@@ -75,7 +75,6 @@
|
||||
"email-confirmed": "Е-пощата беше потвърдена",
|
||||
"email-confirmed-message": "Благодарим Ви, че потвърдихте е-пощата си. Акаунтът Ви е вече напълно активиран.",
|
||||
"email-confirm-error-message": "Възникна проблем при потвърждаването на е-пощата Ви. Може кодът да е грешен или давността му да е изтекла.",
|
||||
"email-confirm-error-message-already-validated": "Адресът на е-пощата Ви вече е проверен.",
|
||||
"email-confirm-sent": "Изпратено е е-писмо за потвърждение.",
|
||||
"none": "Нищо",
|
||||
"notification-only": "Само известие",
|
||||
@@ -98,9 +97,5 @@
|
||||
"notificationType-post-queue": "Когато бъде добавена нова публикация в опашката",
|
||||
"notificationType-new-post-flag": "Когато публикация бъде докладвана",
|
||||
"notificationType-new-user-flag": "Когато потребител бъде докладван",
|
||||
"notificationType-new-reward": "Когато получите нова награда",
|
||||
"activitypub.announce": "<strong>%1</strong> сподели Вашата публикация в <strong>%2</strong> със своите последователи.",
|
||||
"activitypub.announce-dual": "<strong>%1</strong> и <strong>%2</strong> споделиха Вашата публикация в <strong>%3</strong> със своите последователи.",
|
||||
"activitypub.announce-triple": "<strong>%1</strong>, <strong>%2</strong> и <strong>%3</strong> споделиха Вашата публикация в <strong>%4</strong> със своите последователи.",
|
||||
"activitypub.announce-multiple": "<strong>%1</strong>, <strong>%2</strong> и %3 други споделиха Вашата публикация в <strong>%4</strong> със своите последователи."
|
||||
"notificationType-new-reward": "Когато получите нова награда"
|
||||
}
|
||||
@@ -36,7 +36,6 @@
|
||||
"chat": "Разговаря с %1",
|
||||
"flags": "Доклади",
|
||||
"flag-details": "Подробности за доклад %1",
|
||||
"world": "Свят",
|
||||
"account/edit": "Редактиране на „%1“",
|
||||
"account/edit/password": "Редактиране на паролата на „%1“",
|
||||
"account/edit/username": "Редактиране на потребителското име на „%1“",
|
||||
@@ -55,7 +54,6 @@
|
||||
"account/settings-of": "Променят се настройките на %1",
|
||||
"account/watched": "Теми, наблюдавани от %1",
|
||||
"account/ignored": "Теми, пренебрегвани от %1",
|
||||
"account/read": "Теми, прочетени от %1",
|
||||
"account/upvoted": "Публикации, получили положителен глас от %1",
|
||||
"account/downvoted": "Публикации, получили отрицателен глас от %1",
|
||||
"account/best": "Най-добрите публикации от %1",
|
||||
@@ -63,7 +61,6 @@
|
||||
"account/blocks": "Блокирани потребители за %1",
|
||||
"account/uploads": "Качвания от %1",
|
||||
"account/sessions": "Сесии на вписване",
|
||||
"account/shares": "Теми, споделени от %1",
|
||||
"confirm": "Е-пощата е потвърдена",
|
||||
"maintenance.text": "%1 в момента е в профилактика.<br/>Моля, върнете се по-късно.",
|
||||
"maintenance.messageIntro": "В допълнение, администраторът е оставил това съобщение:",
|
||||
|
||||
@@ -38,6 +38,5 @@
|
||||
"remove-selected": "Премахване на избраните",
|
||||
"remove-selected-confirm": "Наистина ли искате да премахнете избраните %1 публикации?",
|
||||
"bulk-accept-success": "Одобрени публикации: %1",
|
||||
"bulk-reject-success": "Отхвърлени публикации: %1",
|
||||
"links-in-this-post": "Връзки в тази публикация"
|
||||
"bulk-reject-success": "Отхвърлени публикации: %1"
|
||||
}
|
||||
@@ -7,7 +7,5 @@
|
||||
"alltime": "Цялото време",
|
||||
"no-recent-topics": "Няма скорошни теми.",
|
||||
"no-popular-topics": "Няма популярни теми.",
|
||||
"load-new-posts": "Зареждане на новите публикации",
|
||||
"uncategorized.title": "Всички познати теми",
|
||||
"uncategorized.intro": "Тази страница показва хронологичен списък от всички теми, които този форум е получил.<br />Гледните точки и мненията в темите по-долу не са филтрирани по никакъв начин и може да не съвпадат с гледните точки и мненията на този уеб сайт."
|
||||
"load-new-posts": "Зареждане на новите публикации"
|
||||
}
|
||||
@@ -7,7 +7,6 @@
|
||||
"in-titles": "В заглавията",
|
||||
"in-titles-posts": "В заглавията и публикациите",
|
||||
"in-posts": "В публикациите",
|
||||
"in-bookmarks": "В отметките",
|
||||
"in-categories": "В категориите",
|
||||
"in-users": "В потребителите",
|
||||
"in-tags": "В етикетите",
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
"no-tag-topics": "Няма теми с този етикет.",
|
||||
"no-tags-found": "Няма намерени етикети",
|
||||
"tags": "Етикети",
|
||||
"enter-tags-here": "Въведете етикети, с по %1 – %2 знака.",
|
||||
"enter-tags-here": "Тук въведете етикети, всеки между %1 и %2 знака.",
|
||||
"enter-tags-here-short": "Въведете етикети...",
|
||||
"no-tags": "Все още няма етикети.",
|
||||
"select-tags": "Изберете етикети",
|
||||
|
||||
@@ -3,18 +3,13 @@
|
||||
"skins": "Облици",
|
||||
"collapse": "Свиване",
|
||||
"expand": "Разгъване",
|
||||
"sidebar-toggle": "Превключване на страничната лента",
|
||||
"login-register-to-search": "Впишете се или се регистрирайте, за да можете да търсите.",
|
||||
"settings.title": "Настройки на темата",
|
||||
"settings.enableQuickReply": "Включване на бързите отговори",
|
||||
"settings.enableBreadcrumbs": "Показване на пътечката в страниците с категории и теми",
|
||||
"settings.enableBreadcrumbs.why": "Пътечката се вижда на повечето страници за по-лесно навигиране. Основният дизайн на страниците с категории и теми предоставя други начини за връщане към по-общите страници, но ако желаете, може да изключите показването на пътечката, за да няма претрупване.",
|
||||
"settings.centerHeaderElements": "Центриране на заглавните елементи",
|
||||
"settings.mobileTopicTeasers": "Показване на резюмета на темите на мобилни устройства",
|
||||
"settings.stickyToolbar": "Статична лента с инструменти",
|
||||
"settings.stickyToolbar.help": "Лентата с инструменти в страниците с теми и категории ще стои винаги в горния край на страницата",
|
||||
"settings.topicSidebarTools": "Topic sidebar tools",
|
||||
"settings.topicSidebarTools.help": "This option will move the topic tools to the sidebar on desktop",
|
||||
"settings.autohideBottombar": "Автоматично скриване на долната лента",
|
||||
"settings.autohideBottombar.help": "В изгледа за мобилни устройства долната лента ще се скрива, когато страницата се превърта надолу",
|
||||
"settings.openSidebars": "Отваряне на страничните ленти",
|
||||
|
||||
@@ -15,7 +15,6 @@
|
||||
"replies-to-this-post": "%1 отговора",
|
||||
"one-reply-to-this-post": "1 отговор",
|
||||
"last-reply-time": "Последен отговор",
|
||||
"reply-options": "Настройки за отговора",
|
||||
"reply-as-topic": "Отговор в нова тема",
|
||||
"guest-login-reply": "Впишете се, за да отговорите",
|
||||
"login-to-view": "🔒 Впишете се, за да видите това",
|
||||
@@ -27,7 +26,6 @@
|
||||
"restore": "Възстановяване",
|
||||
"move": "Преместване",
|
||||
"change-owner": "Промяна на собственика",
|
||||
"manage-editors": "Управление на редакторите",
|
||||
"fork": "Разделяне",
|
||||
"link": "Връзка",
|
||||
"share": "Споделяне",
|
||||
@@ -36,7 +34,6 @@
|
||||
"pinned": "Закачена",
|
||||
"pinned-with-expiry": "Закачена до %1",
|
||||
"scheduled": "Насрочена",
|
||||
"deleted": "Изтрита",
|
||||
"moved": "Преместена",
|
||||
"moved-from": "Преместена от %1",
|
||||
"copy-code": "Копиране на кода",
|
||||
@@ -61,8 +58,6 @@
|
||||
"user-restored-topic-on": "%1 възстанови тази тема на %2",
|
||||
"user-moved-topic-from-ago": "%1 премести тази тема от %2 %3",
|
||||
"user-moved-topic-from-on": "%1 премести тази тема от %2 на %3",
|
||||
"user-shared-topic-ago": "%1 сподели тази тема %2",
|
||||
"user-shared-topic-on": "%1 сподели тази тема в %2",
|
||||
"user-queued-post-ago": "%1 добави тази публикация в <a href=\"%2\">опашката за одобрение</a> %3",
|
||||
"user-queued-post-on": "%1 добави тази публикация в <a href=\"%2\">опашката</a> за одобрение на %3",
|
||||
"user-referenced-topic-ago": "%1 <a href=\"%2\">направи препратка</a> към тази тема %3",
|
||||
@@ -106,7 +101,6 @@
|
||||
"thread-tools.move-posts": "Преместване на публикациите",
|
||||
"thread-tools.move-all": "Преместване на всички",
|
||||
"thread-tools.change-owner": "Промяна на собственика",
|
||||
"thread-tools.manage-editors": "Управление на редакторите",
|
||||
"thread-tools.select-category": "Избиране на категория",
|
||||
"thread-tools.fork": "Разделяне на темата",
|
||||
"thread-tools.tag": "Поставяне на етикет на темата",
|
||||
@@ -137,7 +131,6 @@
|
||||
"bookmarks": "Отметки",
|
||||
"bookmarks.has-no-bookmarks": "Все още не сте си запазвали отметки към никакви публикации.",
|
||||
"copy-permalink": "Копиране на постоянна връзка",
|
||||
"go-to-original": "Преглед на оригиналната публикация",
|
||||
"loading-more-posts": "Зареждане на още публикации",
|
||||
"move-topic": "Преместване на темата",
|
||||
"move-topics": "Преместване на темите",
|
||||
@@ -162,7 +155,6 @@
|
||||
"move-posts-instruction": "Щракнете върху публикациите, които искате да преместите, а след това въведете ид. на тема или отидете в целевата тема",
|
||||
"move-topic-instruction": "Изберете целевата категория и натиснете „Преместване“",
|
||||
"change-owner-instruction": "Натиснете публикациите, които искате да прехвърлите на друг потребител",
|
||||
"manage-editors-instruction": "Определете потребителите, които могат да редактират тази публикация по-долу.",
|
||||
"composer.title-placeholder": "Въведете заглавието на темата си тук...",
|
||||
"composer.handle-placeholder": "Въведете името тук",
|
||||
"composer.hide": "Скриване",
|
||||
@@ -188,8 +180,6 @@
|
||||
"sort-by": "Подреждане по",
|
||||
"oldest-to-newest": "Първо най-старите",
|
||||
"newest-to-oldest": "Първо най-новите",
|
||||
"recently-replied": "Първо тези с най-скорошни отговори",
|
||||
"recently-created": "Първо най-скоро създадените",
|
||||
"most-votes": "Първо тези с най-много гласове",
|
||||
"most-posts": "Първо тези с най-много публикации",
|
||||
"most-views": "Първо тези с най-много преглеждания",
|
||||
@@ -214,15 +204,7 @@
|
||||
"last-post": "Последна публикация",
|
||||
"go-to-my-next-post": "Към следващата ми публикация",
|
||||
"no-more-next-post": "Нямате повече публикации в тази тема",
|
||||
"open-composer": "Отваряне на редактора",
|
||||
"post-quick-reply": "Бърз отговор",
|
||||
"navigator.index": "Публикация %1 от %2",
|
||||
"navigator.unread": "%1 непрочетени",
|
||||
"upvote-post": "Положително гласуване за публикацията",
|
||||
"downvote-post": "Отрицателно гласуване за публикацията",
|
||||
"post-tools": "Инструменти за публикациите",
|
||||
"unread-posts-link": "Връзка към непрочетените публикации",
|
||||
"thumb-image": "Иконка на темата",
|
||||
"announcers": "Споделяния",
|
||||
"announcers-x": "Споделяния (%1)"
|
||||
"navigator.unread": "%1 непрочетени"
|
||||
}
|
||||
@@ -3,7 +3,6 @@
|
||||
"no-unread-topics": "Няма непрочетени теми.",
|
||||
"load-more": "Зареждане на още",
|
||||
"mark-as-read": "Отбелязване като прочетени",
|
||||
"mark-as-unread": "Отбелязване като непрочетени",
|
||||
"selected": "Избраните",
|
||||
"all": "Всички",
|
||||
"all-categories": "Всички категории",
|
||||
|
||||
@@ -1,9 +1,6 @@
|
||||
{
|
||||
"user-menu": "Потребителско меню",
|
||||
"banned": "Блокиран",
|
||||
"unbanned": "Деблокиран",
|
||||
"muted": "Заглушен",
|
||||
"unmuted": "Премахнато заглушаване",
|
||||
"offline": "Извън линия",
|
||||
"deleted": "Изтрит",
|
||||
"username": "Потребителско име",
|
||||
@@ -43,11 +40,9 @@
|
||||
"change-all": "Промяна на всички",
|
||||
"watched": "Наблюдавани",
|
||||
"ignored": "Пренебрегвани",
|
||||
"read": "Прочетени",
|
||||
"default-category-watch-state": "Състояние по подразбиране за наблюдаването на категории",
|
||||
"followers": "Последователи",
|
||||
"following": "Следва",
|
||||
"shares": "Споделя",
|
||||
"blocks": "Блокира",
|
||||
"blocked-users": "Блокирани потребители",
|
||||
"block-toggle": "Превключване на блокирането",
|
||||
@@ -60,10 +55,8 @@
|
||||
"chat-with": "Продължаване на разговора с %1",
|
||||
"new-chat-with": "Започване на нов разговор с %1",
|
||||
"flag-profile": "Докладване на профила",
|
||||
"profile-flagged": "Вече е докладван",
|
||||
"follow": "Следване",
|
||||
"unfollow": "Спиране на следването",
|
||||
"cancel-follow": "Отмяна на заявката за следване",
|
||||
"more": "Още",
|
||||
"profile-update-success": "Профилът беше обновен успешно!",
|
||||
"change-picture": "Промяна на снимката",
|
||||
@@ -82,7 +75,6 @@
|
||||
"change-password": "Промяна на паролата",
|
||||
"change-password-error": "Грешна парола!",
|
||||
"change-password-error-wrong-current": "Текущата Ви парола е грешна!",
|
||||
"change-password-error-same-password": "Новата Ви парола съвпада с текущата. Моля, използвайте нова парола.",
|
||||
"change-password-error-match": "Паролите са различни!",
|
||||
"change-password-error-privileges": "Нямате права да промените тази парола.",
|
||||
"change-password-success": "Паролата ви е обновена!",
|
||||
@@ -118,12 +110,10 @@
|
||||
"has-no-topics": "Този потребител не е създавал теми досега.",
|
||||
"has-no-watched-topics": "Този потребител не е наблюдавал нито една тема досега.",
|
||||
"has-no-ignored-topics": "Този потребител не е пренебрегнал нито една тема досега.",
|
||||
"has-no-read-topics": "Този потребител не е прочел нито една тема досега.",
|
||||
"has-no-upvoted-posts": "Този потребител не е гласувал положително досега.",
|
||||
"has-no-downvoted-posts": "Този потребител не е гласувал отрицателно досега.",
|
||||
"has-no-controversial-posts": "Този потребител няма публикации с отрицателни гласове засега.",
|
||||
"has-no-blocks": "Не сте блокирали никого.",
|
||||
"has-no-shares": "Този потребител не е споделил нито една тема.",
|
||||
"email-hidden": "Е-пощата е скрита",
|
||||
"hidden": "скрито",
|
||||
"paginate-description": "Разделяне на темите и публикациите на страници, вместо да се превърта безкрайно",
|
||||
@@ -151,10 +141,6 @@
|
||||
"follow-topics-you-create": "Наблюдаване на темите, които създавате",
|
||||
"grouptitle": "Заглавие на групата",
|
||||
"group-order-help": "Изберете група и използвайте стрелките, за да пренаредите заглавията",
|
||||
"show-group-title": "Показване на заглавието на групата",
|
||||
"hide-group-title": "Скриване на заглавието на групата",
|
||||
"order-group-up": "Преместване на групата нагоре",
|
||||
"order-group-down": "Преместване на групата надолу",
|
||||
"no-group-title": "Няма заглавие на група",
|
||||
"select-skin": "Изберете облик",
|
||||
"default": "По подразбиране (%1)",
|
||||
@@ -171,16 +157,11 @@
|
||||
"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": "Няма посочена причина.",
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
{
|
||||
"all-users": "Всички потребители",
|
||||
"followed-users": "Следвани потребители",
|
||||
"latest-users": "Последни потребители",
|
||||
"top-posters": "С най-много публикации",
|
||||
"most-reputation": "С най-много репутация",
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user