Revert "Squashed commit of the following:"

This reverts commit c51022993b.
This commit is contained in:
Barış Soner Uşaklı
2026-02-13 21:45:39 -05:00
parent c51022993b
commit b1e824da25
1934 changed files with 9009 additions and 28775 deletions

View File

@@ -16,88 +16,15 @@ permissions:
packages: write
jobs:
build:
strategy:
matrix:
include:
- os: ubuntu-latest
platforms: linux/amd64
required: true
- os: ubuntu-24.04-arm
platforms: linux/arm64
required: true
continue-on-error: ${{ !matrix.required }}
runs-on: ${{ matrix.os }}
steps:
- name: Prepare
run: |
platform=${{ matrix.platforms }}
echo "PLATFORM_PAIR=${platform//\//-}" >> $GITHUB_ENV
echo "IMAGE=ghcr.io/${GITHUB_REPOSITORY@L}" >> $GITHUB_ENV
- uses: actions/checkout@v6
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Docker meta
id: meta
uses: docker/metadata-action@v5
with:
images: ${{ env.IMAGE }}
- name: Cache node_modules
id: cache-node-modules
uses: actions/cache@v5
with:
path: var-cache-node-modules
key: var-cache-node-modules-${{ hashFiles('Dockerfile', 'install/package.json') }}
- name: Build and push Docker images
id: build
uses: docker/build-push-action@v6
with:
cache-from: type=gha
cache-to: type=gha,mode=min
context: .
file: ./Dockerfile
platforms: ${{ matrix.platforms }}
labels: ${{ steps.meta.outputs.labels }}
tags: ${{ env.IMAGE }}
outputs: type=image,push-by-digest=true,name-canonical=true,push=true
- name: Export digest
run: |
mkdir -p ${{ runner.temp }}/digests
digest="${{ steps.build.outputs.digest }}"
touch "${{ runner.temp }}/digests/${digest#sha256:}"
- name: Upload digest
uses: actions/upload-artifact@v6
with:
name: digests-${{ env.PLATFORM_PAIR }}
path: ${{ runner.temp }}/digests/*
if-no-files-found: error
retention-days: 1
merge:
release:
runs-on: ubuntu-latest
needs:
- build
steps:
- name: Prepare
run: |
echo "IMAGE=ghcr.io/${GITHUB_REPOSITORY@L}" >> $GITHUB_ENV
echo "CURRENT_DATE_NST=$(date +'%Y%m%d-%H%M%S' -d '-3 hours -30 minutes')" >> $GITHUB_ENV
- name: Download digests
uses: actions/download-artifact@v7
with:
path: ${{ runner.temp }}/digests
pattern: digests-*
merge-multiple: true
- uses: actions/checkout@v4
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
@@ -107,11 +34,15 @@ jobs:
registry: ghcr.io
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
with:
images: ${{ env.IMAGE }}
images: ghcr.io/${{ github.repository }}
tags: |
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
@@ -121,11 +52,21 @@ jobs:
type=raw,value=${{ env.CURRENT_DATE_NST }}
flavor: |
latest=true
- name: Create manifest list and push
working-directory: ${{ runner.temp }}/digests
run: |
docker buildx imagetools create $(jq -cr '.tags | map("-t " + .) | join(" ")' <<< "$DOCKER_METADATA_OUTPUT_JSON") \
$(printf '${{ env.IMAGE }}@sha256:%s ' *)
- name: Inspect image
run: |
docker buildx imagetools inspect ${{ env.IMAGE }}:${{ steps.meta.outputs.version }}
- 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
with:
cache-from: type=gha
cache-to: type=gha,mode=min
context: .
file: ./Dockerfile
platforms: linux/amd64,linux/arm64,linux/arm/v7
push: true
tags: ${{ steps.meta.outputs.tags }}

View File

@@ -27,19 +27,19 @@ jobs:
fail-fast: false
matrix:
os: [ubuntu-latest]
node: [20, 22]
node: [18, 20]
database: [mongo-dev, mongo, redis, postgres]
include:
# only run coverage once
- os: ubuntu-latest
node: 22
node: 18
coverage: true
# test under development once
- database: mongo-dev
test_env: development
# only run eslint once
- os: ubuntu-latest
node: 22
node: 18
database: mongo-dev
lint: true
runs-on: ${{ matrix.os }}
@@ -48,7 +48,7 @@ jobs:
services:
postgres:
image: 'postgres:18-alpine'
image: 'postgres:17-alpine'
env:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
@@ -63,7 +63,7 @@ jobs:
- 5432:5432
redis:
image: 'redis:8.6.0'
image: 'redis:7.4.2'
# Set health checks to wait until redis has started
options: >-
--health-cmd "redis-cli ping"
@@ -75,18 +75,18 @@ jobs:
- 6379:6379
mongo:
image: 'mongo:8.2'
image: 'mongo:8.0'
ports:
# Maps port 27017 on service container to the host
- 27017:27017
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@v4
- run: cp install/package.json package.json
- name: Install Node
uses: actions/setup-node@v6
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node }}

View File

@@ -51,7 +51,6 @@ trans.sv = public/language/sv/admin/admin.json
trans.th = public/language/th/admin/admin.json
trans.tr = public/language/tr/admin/admin.json
trans.uk = public/language/uk/admin/admin.json
trans.ur = public/language/ur/admin/admin.json
trans.vi = public/language/vi/admin/admin.json
trans.zh_CN = public/language/zh-CN/admin/admin.json
trans.zh_TW = public/language/zh-TW/admin/admin.json
@@ -106,7 +105,6 @@ trans.sv = public/language/sv/admin/advanced/cache.json
trans.th = public/language/th/admin/advanced/cache.json
trans.tr = public/language/tr/admin/advanced/cache.json
trans.uk = public/language/uk/admin/advanced/cache.json
trans.ur = public/language/ur/admin/advanced/cache.json
trans.vi = public/language/vi/admin/advanced/cache.json
trans.zh_CN = public/language/zh-CN/admin/advanced/cache.json
trans.zh_TW = public/language/zh-TW/admin/advanced/cache.json
@@ -161,7 +159,6 @@ trans.sv = public/language/sv/admin/advanced/database.json
trans.th = public/language/th/admin/advanced/database.json
trans.tr = public/language/tr/admin/advanced/database.json
trans.uk = public/language/uk/admin/advanced/database.json
trans.ur = public/language/ur/admin/advanced/database.json
trans.vi = public/language/vi/admin/advanced/database.json
trans.zh_CN = public/language/zh-CN/admin/advanced/database.json
trans.zh_TW = public/language/zh-TW/admin/advanced/database.json
@@ -216,7 +213,6 @@ trans.sv = public/language/sv/admin/advanced/errors.json
trans.th = public/language/th/admin/advanced/errors.json
trans.tr = public/language/tr/admin/advanced/errors.json
trans.uk = public/language/uk/admin/advanced/errors.json
trans.ur = public/language/ur/admin/advanced/errors.json
trans.vi = public/language/vi/admin/advanced/errors.json
trans.zh_CN = public/language/zh-CN/admin/advanced/errors.json
trans.zh_TW = public/language/zh-TW/admin/advanced/errors.json
@@ -271,7 +267,6 @@ trans.sv = public/language/sv/admin/advanced/events.json
trans.th = public/language/th/admin/advanced/events.json
trans.tr = public/language/tr/admin/advanced/events.json
trans.uk = public/language/uk/admin/advanced/events.json
trans.ur = public/language/ur/admin/advanced/events.json
trans.vi = public/language/vi/admin/advanced/events.json
trans.zh_CN = public/language/zh-CN/admin/advanced/events.json
trans.zh_TW = public/language/zh-TW/admin/advanced/events.json
@@ -326,7 +321,6 @@ trans.sv = public/language/sv/admin/advanced/logs.json
trans.th = public/language/th/admin/advanced/logs.json
trans.tr = public/language/tr/admin/advanced/logs.json
trans.uk = public/language/uk/admin/advanced/logs.json
trans.ur = public/language/ur/admin/advanced/logs.json
trans.vi = public/language/vi/admin/advanced/logs.json
trans.zh_CN = public/language/zh-CN/admin/advanced/logs.json
trans.zh_TW = public/language/zh-TW/admin/advanced/logs.json
@@ -381,7 +375,6 @@ trans.sv = public/language/sv/admin/appearance/customise.json
trans.th = public/language/th/admin/appearance/customise.json
trans.tr = public/language/tr/admin/appearance/customise.json
trans.uk = public/language/uk/admin/appearance/customise.json
trans.ur = public/language/ur/admin/appearance/customise.json
trans.vi = public/language/vi/admin/appearance/customise.json
trans.zh_CN = public/language/zh-CN/admin/appearance/customise.json
trans.zh_TW = public/language/zh-TW/admin/appearance/customise.json
@@ -436,7 +429,6 @@ trans.sv = public/language/sv/admin/appearance/skins.json
trans.th = public/language/th/admin/appearance/skins.json
trans.tr = public/language/tr/admin/appearance/skins.json
trans.uk = public/language/uk/admin/appearance/skins.json
trans.ur = public/language/ur/admin/appearance/skins.json
trans.vi = public/language/vi/admin/appearance/skins.json
trans.zh_CN = public/language/zh-CN/admin/appearance/skins.json
trans.zh_TW = public/language/zh-TW/admin/appearance/skins.json
@@ -491,7 +483,6 @@ trans.sv = public/language/sv/admin/appearance/themes.json
trans.th = public/language/th/admin/appearance/themes.json
trans.tr = public/language/tr/admin/appearance/themes.json
trans.uk = public/language/uk/admin/appearance/themes.json
trans.ur = public/language/ur/admin/appearance/themes.json
trans.vi = public/language/vi/admin/appearance/themes.json
trans.zh_CN = public/language/zh-CN/admin/appearance/themes.json
trans.zh_TW = public/language/zh-TW/admin/appearance/themes.json
@@ -546,7 +537,6 @@ trans.sv = public/language/sv/admin/dashboard.json
trans.th = public/language/th/admin/dashboard.json
trans.tr = public/language/tr/admin/dashboard.json
trans.uk = public/language/uk/admin/dashboard.json
trans.ur = public/language/ur/admin/dashboard.json
trans.vi = public/language/vi/admin/dashboard.json
trans.zh_CN = public/language/zh-CN/admin/dashboard.json
trans.zh_TW = public/language/zh-TW/admin/dashboard.json
@@ -601,7 +591,6 @@ trans.sv = public/language/sv/admin/development/info.json
trans.th = public/language/th/admin/development/info.json
trans.tr = public/language/tr/admin/development/info.json
trans.uk = public/language/uk/admin/development/info.json
trans.ur = public/language/ur/admin/development/info.json
trans.vi = public/language/vi/admin/development/info.json
trans.zh_CN = public/language/zh-CN/admin/development/info.json
trans.zh_TW = public/language/zh-TW/admin/development/info.json
@@ -656,7 +645,6 @@ trans.sv = public/language/sv/admin/development/logger.json
trans.th = public/language/th/admin/development/logger.json
trans.tr = public/language/tr/admin/development/logger.json
trans.uk = public/language/uk/admin/development/logger.json
trans.ur = public/language/ur/admin/development/logger.json
trans.vi = public/language/vi/admin/development/logger.json
trans.zh_CN = public/language/zh-CN/admin/development/logger.json
trans.zh_TW = public/language/zh-TW/admin/development/logger.json
@@ -711,7 +699,6 @@ trans.sv = public/language/sv/admin/extend/plugins.json
trans.th = public/language/th/admin/extend/plugins.json
trans.tr = public/language/tr/admin/extend/plugins.json
trans.uk = public/language/uk/admin/extend/plugins.json
trans.ur = public/language/ur/admin/extend/plugins.json
trans.vi = public/language/vi/admin/extend/plugins.json
trans.zh_CN = public/language/zh-CN/admin/extend/plugins.json
trans.zh_TW = public/language/zh-TW/admin/extend/plugins.json
@@ -766,7 +753,6 @@ trans.sv = public/language/sv/admin/extend/rewards.json
trans.th = public/language/th/admin/extend/rewards.json
trans.tr = public/language/tr/admin/extend/rewards.json
trans.uk = public/language/uk/admin/extend/rewards.json
trans.ur = public/language/ur/admin/extend/rewards.json
trans.vi = public/language/vi/admin/extend/rewards.json
trans.zh_CN = public/language/zh-CN/admin/extend/rewards.json
trans.zh_TW = public/language/zh-TW/admin/extend/rewards.json
@@ -821,7 +807,6 @@ trans.sv = public/language/sv/admin/extend/widgets.json
trans.th = public/language/th/admin/extend/widgets.json
trans.tr = public/language/tr/admin/extend/widgets.json
trans.uk = public/language/uk/admin/extend/widgets.json
trans.ur = public/language/ur/admin/extend/widgets.json
trans.vi = public/language/vi/admin/extend/widgets.json
trans.zh_CN = public/language/zh-CN/admin/extend/widgets.json
trans.zh_TW = public/language/zh-TW/admin/extend/widgets.json
@@ -876,7 +861,6 @@ trans.sv = public/language/sv/admin/manage/admins-mods.json
trans.th = public/language/th/admin/manage/admins-mods.json
trans.tr = public/language/tr/admin/manage/admins-mods.json
trans.uk = public/language/uk/admin/manage/admins-mods.json
trans.ur = public/language/ur/admin/manage/admins-mods.json
trans.vi = public/language/vi/admin/manage/admins-mods.json
trans.zh_CN = public/language/zh-CN/admin/manage/admins-mods.json
trans.zh_TW = public/language/zh-TW/admin/manage/admins-mods.json
@@ -931,7 +915,6 @@ trans.sv = public/language/sv/admin/manage/categories.json
trans.th = public/language/th/admin/manage/categories.json
trans.tr = public/language/tr/admin/manage/categories.json
trans.uk = public/language/uk/admin/manage/categories.json
trans.ur = public/language/ur/admin/manage/categories.json
trans.vi = public/language/vi/admin/manage/categories.json
trans.zh_CN = public/language/zh-CN/admin/manage/categories.json
trans.zh_TW = public/language/zh-TW/admin/manage/categories.json
@@ -986,7 +969,6 @@ trans.sv = public/language/sv/admin/manage/digest.json
trans.th = public/language/th/admin/manage/digest.json
trans.tr = public/language/tr/admin/manage/digest.json
trans.uk = public/language/uk/admin/manage/digest.json
trans.ur = public/language/ur/admin/manage/digest.json
trans.vi = public/language/vi/admin/manage/digest.json
trans.zh_CN = public/language/zh-CN/admin/manage/digest.json
trans.zh_TW = public/language/zh-TW/admin/manage/digest.json
@@ -1041,7 +1023,6 @@ trans.sv = public/language/sv/admin/manage/groups.json
trans.th = public/language/th/admin/manage/groups.json
trans.tr = public/language/tr/admin/manage/groups.json
trans.uk = public/language/uk/admin/manage/groups.json
trans.ur = public/language/ur/admin/manage/groups.json
trans.vi = public/language/vi/admin/manage/groups.json
trans.zh_CN = public/language/zh-CN/admin/manage/groups.json
trans.zh_TW = public/language/zh-TW/admin/manage/groups.json
@@ -1096,7 +1077,6 @@ trans.sv = public/language/sv/admin/manage/privileges.json
trans.th = public/language/th/admin/manage/privileges.json
trans.tr = public/language/tr/admin/manage/privileges.json
trans.uk = public/language/uk/admin/manage/privileges.json
trans.ur = public/language/ur/admin/manage/privileges.json
trans.vi = public/language/vi/admin/manage/privileges.json
trans.zh_CN = public/language/zh-CN/admin/manage/privileges.json
trans.zh_TW = public/language/zh-TW/admin/manage/privileges.json
@@ -1151,7 +1131,6 @@ trans.sv = public/language/sv/admin/manage/registration.json
trans.th = public/language/th/admin/manage/registration.json
trans.tr = public/language/tr/admin/manage/registration.json
trans.uk = public/language/uk/admin/manage/registration.json
trans.ur = public/language/ur/admin/manage/registration.json
trans.vi = public/language/vi/admin/manage/registration.json
trans.zh_CN = public/language/zh-CN/admin/manage/registration.json
trans.zh_TW = public/language/zh-TW/admin/manage/registration.json
@@ -1206,7 +1185,6 @@ trans.sv = public/language/sv/admin/manage/tags.json
trans.th = public/language/th/admin/manage/tags.json
trans.tr = public/language/tr/admin/manage/tags.json
trans.uk = public/language/uk/admin/manage/tags.json
trans.ur = public/language/ur/admin/manage/tags.json
trans.vi = public/language/vi/admin/manage/tags.json
trans.zh_CN = public/language/zh-CN/admin/manage/tags.json
trans.zh_TW = public/language/zh-TW/admin/manage/tags.json
@@ -1261,66 +1239,10 @@ trans.sv = public/language/sv/admin/manage/uploads.json
trans.th = public/language/th/admin/manage/uploads.json
trans.tr = public/language/tr/admin/manage/uploads.json
trans.uk = public/language/uk/admin/manage/uploads.json
trans.ur = public/language/ur/admin/manage/uploads.json
trans.vi = public/language/vi/admin/manage/uploads.json
trans.zh_CN = public/language/zh-CN/admin/manage/uploads.json
trans.zh_TW = public/language/zh-TW/admin/manage/uploads.json
[o:nodebb:p:nodebb:r:admin-manage-user-custom-reasons]
file_filter = public/language/<lang>/admin/manage/custom-reasons.json
source_file = public/language/en-GB/admin/manage/custom-reasons.json
source_lang = en_GB
type = KEYVALUEJSON
trans.ar = public/language/ar/admin/manage/custom-reasons.json
trans.az = public/language/az/admin/manage/custom-reasons.json
trans.bg = public/language/bg/admin/manage/custom-reasons.json
trans.bn = public/language/bn/admin/manage/custom-reasons.json
trans.cs = public/language/cs/admin/manage/custom-reasons.json
trans.da = public/language/da/admin/manage/custom-reasons.json
trans.de = public/language/de/admin/manage/custom-reasons.json
trans.el = public/language/el/admin/manage/custom-reasons.json
trans.en_US = public/language/en-US/admin/manage/custom-reasons.json
trans.en@pirate = public/language/en-x-pirate/admin/manage/custom-reasons.json
trans.es = public/language/es/admin/manage/custom-reasons.json
trans.et = public/language/et/admin/manage/custom-reasons.json
trans.fa_IR = public/language/fa-IR/admin/manage/custom-reasons.json
trans.fi = public/language/fi/admin/manage/custom-reasons.json
trans.fr = public/language/fr/admin/manage/custom-reasons.json
trans.gl = public/language/gl/admin/manage/custom-reasons.json
trans.he = public/language/he/admin/manage/custom-reasons.json
trans.hr = public/language/hr/admin/manage/custom-reasons.json
trans.hu = public/language/hu/admin/manage/custom-reasons.json
trans.hy = public/language/hy/admin/manage/custom-reasons.json
trans.id = public/language/id/admin/manage/custom-reasons.json
trans.it = public/language/it/admin/manage/custom-reasons.json
trans.ja = public/language/ja/admin/manage/custom-reasons.json
trans.ko = public/language/ko/admin/manage/custom-reasons.json
trans.lt = public/language/lt/admin/manage/custom-reasons.json
trans.lv = public/language/lv/admin/manage/custom-reasons.json
trans.ms = public/language/ms/admin/manage/custom-reasons.json
trans.nb = public/language/nb/admin/manage/custom-reasons.json
trans.nl = public/language/nl/admin/manage/custom-reasons.json
trans.nn_NO = public/language/nn-NO/admin/manage/custom-reasons.json
trans.pl = public/language/pl/admin/manage/custom-reasons.json
trans.pt_BR = public/language/pt-BR/admin/manage/custom-reasons.json
trans.pt_PT = public/language/pt-PT/admin/manage/custom-reasons.json
trans.ro = public/language/ro/admin/manage/custom-reasons.json
trans.ru = public/language/ru/admin/manage/custom-reasons.json
trans.rw = public/language/rw/admin/manage/custom-reasons.json
trans.sc = public/language/sc/admin/manage/custom-reasons.json
trans.sk = public/language/sk/admin/manage/custom-reasons.json
trans.sl = public/language/sl/admin/manage/custom-reasons.json
trans.sq_AL = public/language/sq-AL/admin/manage/custom-reasons.json
trans.sr = public/language/sr/admin/manage/custom-reasons.json
trans.sv = public/language/sv/admin/manage/custom-reasons.json
trans.th = public/language/th/admin/manage/custom-reasons.json
trans.tr = public/language/tr/admin/manage/custom-reasons.json
trans.uk = public/language/uk/admin/manage/custom-reasons.json
trans.ur = public/language/ur/admin/manage/custom-reasons.json
trans.vi = public/language/vi/admin/manage/custom-reasons.json
trans.zh_CN = public/language/zh-CN/admin/manage/custom-reasons.json
trans.zh_TW = public/language/zh-TW/admin/manage/custom-reasons.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
@@ -1371,7 +1293,6 @@ trans.sv = public/language/sv/admin/manage/user-custom-fields.json
trans.th = public/language/th/admin/manage/user-custom-fields.json
trans.tr = public/language/tr/admin/manage/user-custom-fields.json
trans.uk = public/language/uk/admin/manage/user-custom-fields.json
trans.ur = public/language/ur/admin/manage/user-custom-fields.json
trans.vi = public/language/vi/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
@@ -1426,7 +1347,6 @@ trans.sv = public/language/sv/admin/manage/users.json
trans.th = public/language/th/admin/manage/users.json
trans.tr = public/language/tr/admin/manage/users.json
trans.uk = public/language/uk/admin/manage/users.json
trans.ur = public/language/ur/admin/manage/users.json
trans.vi = public/language/vi/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
@@ -1481,7 +1401,6 @@ trans.sv = public/language/sv/admin/menu.json
trans.th = public/language/th/admin/menu.json
trans.tr = public/language/tr/admin/menu.json
trans.uk = public/language/uk/admin/menu.json
trans.ur = public/language/ur/admin/menu.json
trans.vi = public/language/vi/admin/menu.json
trans.zh_CN = public/language/zh-CN/admin/menu.json
trans.zh_TW = public/language/zh-TW/admin/menu.json
@@ -1536,7 +1455,6 @@ trans.sv = public/language/sv/admin/settings/advanced.json
trans.th = public/language/th/admin/settings/advanced.json
trans.tr = public/language/tr/admin/settings/advanced.json
trans.uk = public/language/uk/admin/settings/advanced.json
trans.ur = public/language/ur/admin/settings/advanced.json
trans.vi = public/language/vi/admin/settings/advanced.json
trans.zh_CN = public/language/zh-CN/admin/settings/advanced.json
trans.zh_TW = public/language/zh-TW/admin/settings/advanced.json
@@ -1591,7 +1509,6 @@ trans.sv = public/language/sv/admin/settings/activitypub.json
trans.th = public/language/th/admin/settings/activitypub.json
trans.tr = public/language/tr/admin/settings/activitypub.json
trans.uk = public/language/uk/admin/settings/activitypub.json
trans.ur = public/language/ur/admin/settings/activitypub.json
trans.vi = public/language/vi/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
@@ -1646,7 +1563,6 @@ trans.sv = public/language/sv/admin/settings/api.json
trans.th = public/language/th/admin/settings/api.json
trans.tr = public/language/tr/admin/settings/api.json
trans.uk = public/language/uk/admin/settings/api.json
trans.ur = public/language/ur/admin/settings/api.json
trans.vi = public/language/vi/admin/settings/api.json
trans.zh_CN = public/language/zh-CN/admin/settings/api.json
trans.zh_TW = public/language/zh-TW/admin/settings/api.json
@@ -1701,7 +1617,6 @@ trans.sv = public/language/sv/admin/settings/chat.json
trans.th = public/language/th/admin/settings/chat.json
trans.tr = public/language/tr/admin/settings/chat.json
trans.uk = public/language/uk/admin/settings/chat.json
trans.ur = public/language/ur/admin/settings/chat.json
trans.vi = public/language/vi/admin/settings/chat.json
trans.zh_CN = public/language/zh-CN/admin/settings/chat.json
trans.zh_TW = public/language/zh-TW/admin/settings/chat.json
@@ -1756,7 +1671,6 @@ trans.sv = public/language/sv/admin/settings/cookies.json
trans.th = public/language/th/admin/settings/cookies.json
trans.tr = public/language/tr/admin/settings/cookies.json
trans.uk = public/language/uk/admin/settings/cookies.json
trans.ur = public/language/ur/admin/settings/cookies.json
trans.vi = public/language/vi/admin/settings/cookies.json
trans.zh_CN = public/language/zh-CN/admin/settings/cookies.json
trans.zh_TW = public/language/zh-TW/admin/settings/cookies.json
@@ -1811,7 +1725,6 @@ trans.sv = public/language/sv/admin/settings/email.json
trans.th = public/language/th/admin/settings/email.json
trans.tr = public/language/tr/admin/settings/email.json
trans.uk = public/language/uk/admin/settings/email.json
trans.ur = public/language/ur/admin/settings/email.json
trans.vi = public/language/vi/admin/settings/email.json
trans.zh_CN = public/language/zh-CN/admin/settings/email.json
trans.zh_TW = public/language/zh-TW/admin/settings/email.json
@@ -1866,7 +1779,6 @@ trans.sv = public/language/sv/admin/settings/general.json
trans.th = public/language/th/admin/settings/general.json
trans.tr = public/language/tr/admin/settings/general.json
trans.uk = public/language/uk/admin/settings/general.json
trans.ur = public/language/ur/admin/settings/general.json
trans.vi = public/language/vi/admin/settings/general.json
trans.zh_CN = public/language/zh-CN/admin/settings/general.json
trans.zh_TW = public/language/zh-TW/admin/settings/general.json
@@ -1921,7 +1833,6 @@ trans.sv = public/language/sv/admin/settings/group.json
trans.th = public/language/th/admin/settings/group.json
trans.tr = public/language/tr/admin/settings/group.json
trans.uk = public/language/uk/admin/settings/group.json
trans.ur = public/language/ur/admin/settings/group.json
trans.vi = public/language/vi/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
@@ -1976,7 +1887,6 @@ trans.sv = public/language/sv/admin/settings/navigation.json
trans.th = public/language/th/admin/settings/navigation.json
trans.tr = public/language/tr/admin/settings/navigation.json
trans.uk = public/language/uk/admin/settings/navigation.json
trans.ur = public/language/ur/admin/settings/navigation.json
trans.vi = public/language/vi/admin/settings/navigation.json
trans.zh_CN = public/language/zh-CN/admin/settings/navigation.json
trans.zh_TW = public/language/zh-TW/admin/settings/navigation.json
@@ -2031,7 +1941,6 @@ trans.sv = public/language/sv/admin/settings/notifications.json
trans.th = public/language/th/admin/settings/notifications.json
trans.tr = public/language/tr/admin/settings/notifications.json
trans.uk = public/language/uk/admin/settings/notifications.json
trans.ur = public/language/ur/admin/settings/notifications.json
trans.vi = public/language/vi/admin/settings/notifications.json
trans.zh_CN = public/language/zh-CN/admin/settings/notifications.json
trans.zh_TW = public/language/zh-TW/admin/settings/notifications.json
@@ -2086,7 +1995,6 @@ trans.sv = public/language/sv/admin/settings/pagination.json
trans.th = public/language/th/admin/settings/pagination.json
trans.tr = public/language/tr/admin/settings/pagination.json
trans.uk = public/language/uk/admin/settings/pagination.json
trans.ur = public/language/ur/admin/settings/pagination.json
trans.vi = public/language/vi/admin/settings/pagination.json
trans.zh_CN = public/language/zh-CN/admin/settings/pagination.json
trans.zh_TW = public/language/zh-TW/admin/settings/pagination.json
@@ -2141,7 +2049,6 @@ trans.sv = public/language/sv/admin/settings/post.json
trans.th = public/language/th/admin/settings/post.json
trans.tr = public/language/tr/admin/settings/post.json
trans.uk = public/language/uk/admin/settings/post.json
trans.ur = public/language/ur/admin/settings/post.json
trans.vi = public/language/vi/admin/settings/post.json
trans.zh_CN = public/language/zh-CN/admin/settings/post.json
trans.zh_TW = public/language/zh-TW/admin/settings/post.json
@@ -2196,7 +2103,6 @@ trans.sv = public/language/sv/admin/settings/reputation.json
trans.th = public/language/th/admin/settings/reputation.json
trans.tr = public/language/tr/admin/settings/reputation.json
trans.uk = public/language/uk/admin/settings/reputation.json
trans.ur = public/language/ur/admin/settings/reputation.json
trans.vi = public/language/vi/admin/settings/reputation.json
trans.zh_CN = public/language/zh-CN/admin/settings/reputation.json
trans.zh_TW = public/language/zh-TW/admin/settings/reputation.json
@@ -2251,7 +2157,6 @@ trans.sv = public/language/sv/admin/settings/sockets.json
trans.th = public/language/th/admin/settings/sockets.json
trans.tr = public/language/tr/admin/settings/sockets.json
trans.uk = public/language/uk/admin/settings/sockets.json
trans.ur = public/language/ur/admin/settings/sockets.json
trans.vi = public/language/vi/admin/settings/sockets.json
trans.zh_CN = public/language/zh-CN/admin/settings/sockets.json
trans.zh_TW = public/language/zh-TW/admin/settings/sockets.json
@@ -2306,7 +2211,6 @@ trans.sv = public/language/sv/admin/settings/sounds.json
trans.th = public/language/th/admin/settings/sounds.json
trans.tr = public/language/tr/admin/settings/sounds.json
trans.uk = public/language/uk/admin/settings/sounds.json
trans.ur = public/language/ur/admin/settings/sounds.json
trans.vi = public/language/vi/admin/settings/sounds.json
trans.zh_CN = public/language/zh-CN/admin/settings/sounds.json
trans.zh_TW = public/language/zh-TW/admin/settings/sounds.json
@@ -2361,7 +2265,6 @@ trans.sv = public/language/sv/admin/settings/tags.json
trans.th = public/language/th/admin/settings/tags.json
trans.tr = public/language/tr/admin/settings/tags.json
trans.uk = public/language/uk/admin/settings/tags.json
trans.ur = public/language/ur/admin/settings/tags.json
trans.vi = public/language/vi/admin/settings/tags.json
trans.zh_CN = public/language/zh-CN/admin/settings/tags.json
trans.zh_TW = public/language/zh-TW/admin/settings/tags.json
@@ -2416,7 +2319,6 @@ trans.sv = public/language/sv/admin/settings/uploads.json
trans.th = public/language/th/admin/settings/uploads.json
trans.tr = public/language/tr/admin/settings/uploads.json
trans.uk = public/language/uk/admin/settings/uploads.json
trans.ur = public/language/ur/admin/settings/uploads.json
trans.vi = public/language/vi/admin/settings/uploads.json
trans.zh_CN = public/language/zh-CN/admin/settings/uploads.json
trans.zh_TW = public/language/zh-TW/admin/settings/uploads.json
@@ -2471,7 +2373,6 @@ trans.sv = public/language/sv/admin/settings/user.json
trans.th = public/language/th/admin/settings/user.json
trans.tr = public/language/tr/admin/settings/user.json
trans.uk = public/language/uk/admin/settings/user.json
trans.ur = public/language/ur/admin/settings/user.json
trans.vi = public/language/vi/admin/settings/user.json
trans.zh_CN = public/language/zh-CN/admin/settings/user.json
trans.zh_TW = public/language/zh-TW/admin/settings/user.json
@@ -2526,7 +2427,6 @@ trans.sv = public/language/sv/admin/settings/web-crawler.json
trans.th = public/language/th/admin/settings/web-crawler.json
trans.tr = public/language/tr/admin/settings/web-crawler.json
trans.uk = public/language/uk/admin/settings/web-crawler.json
trans.ur = public/language/ur/admin/settings/web-crawler.json
trans.vi = public/language/vi/admin/settings/web-crawler.json
trans.zh_CN = public/language/zh-CN/admin/settings/web-crawler.json
trans.zh_TW = public/language/zh-TW/admin/settings/web-crawler.json
@@ -2581,7 +2481,6 @@ trans.sv = public/language/sv/themes/harmony.json
trans.th = public/language/th/themes/harmony.json
trans.tr = public/language/tr/themes/harmony.json
trans.uk = public/language/uk/themes/harmony.json
trans.ur = public/language/ur/themes/harmony.json
trans.vi = public/language/vi/themes/harmony.json
trans.zh_CN = public/language/zh-CN/themes/harmony.json
trans.zh_TW = public/language/zh-TW/themes/harmony.json
@@ -2636,7 +2535,6 @@ trans.sv = public/language/sv/themes/persona.json
trans.th = public/language/th/themes/persona.json
trans.tr = public/language/tr/themes/persona.json
trans.uk = public/language/uk/themes/persona.json
trans.ur = public/language/ur/themes/persona.json
trans.vi = public/language/vi/themes/persona.json
trans.zh_CN = public/language/zh-CN/themes/persona.json
trans.zh_TW = public/language/zh-TW/themes/persona.json
@@ -2691,7 +2589,6 @@ trans.sv = public/language/sv/aria.json
trans.th = public/language/th/aria.json
trans.tr = public/language/tr/aria.json
trans.uk = public/language/uk/aria.json
trans.ur = public/language/ur/aria.json
trans.vi = public/language/vi/aria.json
trans.zh_CN = public/language/zh-CN/aria.json
trans.zh_TW = public/language/zh-TW/aria.json
@@ -2746,7 +2643,6 @@ trans.sv = public/language/sv/category.json
trans.th = public/language/th/category.json
trans.tr = public/language/tr/category.json
trans.uk = public/language/uk/category.json
trans.ur = public/language/ur/category.json
trans.vi = public/language/vi/category.json
trans.zh_CN = public/language/zh-CN/category.json
trans.zh_TW = public/language/zh-TW/category.json
@@ -2801,7 +2697,6 @@ trans.sv = public/language/sv/email.json
trans.th = public/language/th/email.json
trans.tr = public/language/tr/email.json
trans.uk = public/language/uk/email.json
trans.ur = public/language/ur/email.json
trans.vi = public/language/vi/email.json
trans.zh_CN = public/language/zh-CN/email.json
trans.zh_TW = public/language/zh-TW/email.json
@@ -2856,7 +2751,6 @@ trans.sv = public/language/sv/error.json
trans.th = public/language/th/error.json
trans.tr = public/language/tr/error.json
trans.uk = public/language/uk/error.json
trans.ur = public/language/ur/error.json
trans.vi = public/language/vi/error.json
trans.zh_CN = public/language/zh-CN/error.json
trans.zh_TW = public/language/zh-TW/error.json
@@ -2964,7 +2858,6 @@ trans.sv = public/language/sv/global.json
trans.th = public/language/th/global.json
trans.tr = public/language/tr/global.json
trans.uk = public/language/uk/global.json
trans.ur = public/language/ur/global.json
trans.vi = public/language/vi/global.json
trans.zh_CN = public/language/zh-CN/global.json
trans.zh_TW = public/language/zh-TW/global.json
@@ -3019,7 +2912,6 @@ trans.sv = public/language/sv/groups.json
trans.th = public/language/th/groups.json
trans.tr = public/language/tr/groups.json
trans.uk = public/language/uk/groups.json
trans.ur = public/language/ur/groups.json
trans.vi = public/language/vi/groups.json
trans.zh_CN = public/language/zh-CN/groups.json
trans.zh_TW = public/language/zh-TW/groups.json
@@ -3074,7 +2966,6 @@ trans.sv = public/language/sv/ip-blacklist.json
trans.th = public/language/th/ip-blacklist.json
trans.tr = public/language/tr/ip-blacklist.json
trans.uk = public/language/uk/ip-blacklist.json
trans.ur = public/language/ur/ip-blacklist.json
trans.vi = public/language/vi/ip-blacklist.json
trans.zh_CN = public/language/zh-CN/ip-blacklist.json
trans.zh_TW = public/language/zh-TW/ip-blacklist.json
@@ -3129,7 +3020,6 @@ trans.sv = public/language/sv/language.json
trans.th = public/language/th/language.json
trans.tr = public/language/tr/language.json
trans.uk = public/language/uk/language.json
trans.ur = public/language/ur/language.json
trans.vi = public/language/vi/language.json
trans.zh_CN = public/language/zh-CN/language.json
trans.zh_TW = public/language/zh-TW/language.json
@@ -3184,7 +3074,6 @@ trans.sv = public/language/sv/login.json
trans.th = public/language/th/login.json
trans.tr = public/language/tr/login.json
trans.uk = public/language/uk/login.json
trans.ur = public/language/ur/login.json
trans.vi = public/language/vi/login.json
trans.zh_CN = public/language/zh-CN/login.json
trans.zh_TW = public/language/zh-TW/login.json
@@ -3239,7 +3128,6 @@ trans.sv = public/language/sv/modules.json
trans.th = public/language/th/modules.json
trans.tr = public/language/tr/modules.json
trans.uk = public/language/uk/modules.json
trans.ur = public/language/ur/modules.json
trans.vi = public/language/vi/modules.json
trans.zh_CN = public/language/zh-CN/modules.json
trans.zh_TW = public/language/zh-TW/modules.json
@@ -3294,7 +3182,6 @@ trans.sv = public/language/sv/notifications.json
trans.th = public/language/th/notifications.json
trans.tr = public/language/tr/notifications.json
trans.uk = public/language/uk/notifications.json
trans.ur = public/language/ur/notifications.json
trans.vi = public/language/vi/notifications.json
trans.zh_CN = public/language/zh-CN/notifications.json
trans.zh_TW = public/language/zh-TW/notifications.json
@@ -3349,7 +3236,6 @@ trans.sv = public/language/sv/pages.json
trans.th = public/language/th/pages.json
trans.tr = public/language/tr/pages.json
trans.uk = public/language/uk/pages.json
trans.ur = public/language/ur/pages.json
trans.vi = public/language/vi/pages.json
trans.zh_CN = public/language/zh-CN/pages.json
trans.zh_TW = public/language/zh-TW/pages.json
@@ -3404,7 +3290,6 @@ trans.sv = public/language/sv/post-queue.json
trans.th = public/language/th/post-queue.json
trans.tr = public/language/tr/post-queue.json
trans.uk = public/language/uk/post-queue.json
trans.ur = public/language/ur/post-queue.json
trans.vi = public/language/vi/post-queue.json
trans.zh_CN = public/language/zh-CN/post-queue.json
trans.zh_TW = public/language/zh-TW/post-queue.json
@@ -3459,7 +3344,6 @@ trans.sv = public/language/sv/recent.json
trans.th = public/language/th/recent.json
trans.tr = public/language/tr/recent.json
trans.uk = public/language/uk/recent.json
trans.ur = public/language/ur/recent.json
trans.vi = public/language/vi/recent.json
trans.zh_CN = public/language/zh-CN/recent.json
trans.zh_TW = public/language/zh-TW/recent.json
@@ -3514,7 +3398,6 @@ trans.sv = public/language/sv/register.json
trans.th = public/language/th/register.json
trans.tr = public/language/tr/register.json
trans.uk = public/language/uk/register.json
trans.ur = public/language/ur/register.json
trans.vi = public/language/vi/register.json
trans.zh_CN = public/language/zh-CN/register.json
trans.zh_TW = public/language/zh-TW/register.json
@@ -3569,7 +3452,6 @@ trans.sv = public/language/sv/reset_password.json
trans.th = public/language/th/reset_password.json
trans.tr = public/language/tr/reset_password.json
trans.uk = public/language/uk/reset_password.json
trans.ur = public/language/ur/reset_password.json
trans.vi = public/language/vi/reset_password.json
trans.zh_CN = public/language/zh-CN/reset_password.json
trans.zh_TW = public/language/zh-TW/reset_password.json
@@ -3624,7 +3506,6 @@ trans.sv = public/language/sv/rewards.json
trans.th = public/language/th/rewards.json
trans.tr = public/language/tr/rewards.json
trans.uk = public/language/uk/rewards.json
trans.ur = public/language/ur/rewards.json
trans.vi = public/language/vi/rewards.json
trans.zh_CN = public/language/zh-CN/rewards.json
trans.zh_TW = public/language/zh-TW/rewards.json
@@ -3679,7 +3560,6 @@ trans.sv = public/language/sv/search.json
trans.th = public/language/th/search.json
trans.tr = public/language/tr/search.json
trans.uk = public/language/uk/search.json
trans.ur = public/language/ur/search.json
trans.vi = public/language/vi/search.json
trans.zh_CN = public/language/zh-CN/search.json
trans.zh_TW = public/language/zh-TW/search.json
@@ -3734,7 +3614,6 @@ trans.sv = public/language/sv/social.json
trans.th = public/language/th/social.json
trans.tr = public/language/tr/social.json
trans.uk = public/language/uk/social.json
trans.ur = public/language/ur/social.json
trans.vi = public/language/vi/social.json
trans.zh_CN = public/language/zh-CN/social.json
trans.zh_TW = public/language/zh-TW/social.json
@@ -3789,7 +3668,6 @@ trans.sv = public/language/sv/success.json
trans.th = public/language/th/success.json
trans.tr = public/language/tr/success.json
trans.uk = public/language/uk/success.json
trans.ur = public/language/ur/success.json
trans.vi = public/language/vi/success.json
trans.zh_CN = public/language/zh-CN/success.json
trans.zh_TW = public/language/zh-TW/success.json
@@ -3844,7 +3722,6 @@ trans.sv = public/language/sv/tags.json
trans.th = public/language/th/tags.json
trans.tr = public/language/tr/tags.json
trans.uk = public/language/uk/tags.json
trans.ur = public/language/ur/tags.json
trans.vi = public/language/vi/tags.json
trans.zh_CN = public/language/zh-CN/tags.json
trans.zh_TW = public/language/zh-TW/tags.json
@@ -3899,7 +3776,6 @@ trans.sv = public/language/sv/top.json
trans.th = public/language/th/top.json
trans.tr = public/language/tr/top.json
trans.uk = public/language/uk/top.json
trans.ur = public/language/ur/top.json
trans.vi = public/language/vi/top.json
trans.zh_CN = public/language/zh-CN/top.json
trans.zh_TW = public/language/zh-TW/top.json
@@ -3954,7 +3830,6 @@ trans.sv = public/language/sv/topic.json
trans.th = public/language/th/topic.json
trans.tr = public/language/tr/topic.json
trans.uk = public/language/uk/topic.json
trans.ur = public/language/ur/topic.json
trans.vi = public/language/vi/topic.json
trans.zh_CN = public/language/zh-CN/topic.json
trans.zh_TW = public/language/zh-TW/topic.json
@@ -4009,7 +3884,6 @@ trans.sv = public/language/sv/unread.json
trans.th = public/language/th/unread.json
trans.tr = public/language/tr/unread.json
trans.uk = public/language/uk/unread.json
trans.ur = public/language/ur/unread.json
trans.vi = public/language/vi/unread.json
trans.zh_CN = public/language/zh-CN/unread.json
trans.zh_TW = public/language/zh-TW/unread.json
@@ -4064,7 +3938,6 @@ trans.sv = public/language/sv/uploads.json
trans.th = public/language/th/uploads.json
trans.tr = public/language/tr/uploads.json
trans.uk = public/language/uk/uploads.json
trans.ur = public/language/ur/uploads.json
trans.vi = public/language/vi/uploads.json
trans.zh_CN = public/language/zh-CN/uploads.json
trans.zh_TW = public/language/zh-TW/uploads.json
@@ -4119,7 +3992,6 @@ trans.sv = public/language/sv/user.json
trans.th = public/language/th/user.json
trans.tr = public/language/tr/user.json
trans.uk = public/language/uk/user.json
trans.ur = public/language/ur/user.json
trans.vi = public/language/vi/user.json
trans.zh_CN = public/language/zh-CN/user.json
trans.zh_TW = public/language/zh-TW/user.json
@@ -4174,7 +4046,6 @@ trans.sv = public/language/sv/users.json
trans.th = public/language/th/users.json
trans.tr = public/language/tr/users.json
trans.uk = public/language/uk/users.json
trans.ur = public/language/ur/users.json
trans.vi = public/language/vi/users.json
trans.zh_CN = public/language/zh-CN/users.json
trans.zh_TW = public/language/zh-TW/users.json
@@ -4229,7 +4100,6 @@ trans.sv = public/language/sv/world.json
trans.th = public/language/th/world.json
trans.tr = public/language/tr/world.json
trans.uk = public/language/uk/world.json
trans.ur = public/language/ur/world.json
trans.vi = public/language/vi/world.json
trans.zh_CN = public/language/zh-CN/world.json
trans.zh_TW = public/language/zh-TW/world.json

File diff suppressed because it is too large Load Diff

View File

@@ -173,10 +173,7 @@ module.exports = function (grunt) {
winston.error(err.stack);
}
if (worker) {
worker.send({
compiling: compiling,
livereload: true, // Send livereload event via Socket.IO for instant browser refresh
});
worker.send({ compiling: compiling });
}
});
});

View File

@@ -39,8 +39,8 @@ 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 20 or greater ([installation/upgrade instructions](https://github.com/nodesource/distributions))
* MongoDB, version 5 or greater **or** Redis, version 7.2 or greater
* A version of Node.js at least 18 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
app.js
View File

@@ -33,6 +33,7 @@ const path = require('path');
const file = require('./src/file');
process.env.NODE_ENV = process.env.NODE_ENV || 'production';
global.env = process.env.NODE_ENV || 'production';
// Alternate configuration file support
const configFile = path.resolve(__dirname, nconf.any(['config', 'CONFIG']) || 'config.json');

View File

@@ -58,8 +58,8 @@ RUN corepack enable \
&& mkdir -p /usr/src/app/logs/ /opt/config/ \
&& chown -R ${USER}:${USER} /usr/src/app/ /opt/config/
COPY --from=git --chown=${USER}:${USER} /usr/src/app/ /usr/src/app/install/docker/setup.json /usr/src/app/
COPY --from=git --chown=${USER}:${USER} /usr/bin/tini /usr/src/app/install/docker/entrypoint.sh /usr/local/bin/
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/

View File

@@ -14,7 +14,7 @@ services:
- ./install/docker/setup.json:/usr/src/app/setup.json
postgres:
image: postgres:18.2-alpine
image: postgres:17.4-alpine
restart: unless-stopped
environment:
POSTGRES_USER: nodebb
@@ -24,7 +24,7 @@ services:
- postgres-data:/var/lib/postgresql/data
redis:
image: redis:8.6.0-alpine
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

View File

@@ -14,7 +14,7 @@ services:
- ./install/docker/setup.json:/usr/src/app/setup.json
redis:
image: redis:8.6.0-alpine
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

View File

@@ -24,7 +24,7 @@ services:
- mongo-data:/data/db
- ./install/docker/mongodb-user-init.js:/docker-entrypoint-initdb.d/user-init.js
redis:
image: redis:8.6.0-alpine
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
@@ -34,7 +34,7 @@ services:
- redis
postgres:
image: postgres:18.2-alpine
image: postgres:17.4-alpine
restart: unless-stopped
environment:
POSTGRES_USER: nodebb

View File

@@ -1,15 +1,11 @@
'use strict';
const serverConfig = require('eslint-config-nodebb');
const publicConfig = require('eslint-config-nodebb/public');
import serverConfig from 'eslint-config-nodebb';
import publicConfig from 'eslint-config-nodebb/public';
import commonRules from 'eslint-config-nodebb/common';
const { configs } = require('@eslint/js');
const globals = require('globals');
import { defineConfig } from 'eslint/config';
import stylisticJs from '@stylistic/eslint-plugin'
import js from '@eslint/js';
import globals from 'globals';
export default defineConfig([
module.exports = [
{
ignores: [
'node_modules/',
@@ -31,13 +27,15 @@ export default defineConfig([
'install/docker/',
],
},
configs.recommended,
{
rules: {
'no-bitwise': 'warn',
'no-await-in-loop': 'warn',
}
},
// tests
{
plugins: {
js,
'@stylistic/js': stylisticJs,
},
extends: ['js/recommended'],
files: ['test/**/*.js'],
languageOptions: {
ecmaVersion: 2020,
@@ -52,19 +50,13 @@ export default defineConfig([
after: 'readonly',
afterEach: 'readonly',
},
},
},
rules: {
...commonRules,
'no-unused-vars': 'off',
'no-unused-vars': 'off',
'no-prototype-builtins': 'off',
}
},
},
...publicConfig,
...serverConfig,
{
rules: {
'preserve-caught-error': 'off'
}
}
]);
...serverConfig
];

View File

@@ -24,8 +24,8 @@
"newbieChatMessageDelay": 120000,
"notificationSendDelay": 60,
"newbieReputationThreshold": 3,
"postQueue": 1,
"postQueueReputationThreshold": 1,
"postQueue": 0,
"postQueueReputationThreshold": 0,
"groupsExemptFromPostQueue": ["administrators", "Global Moderators"],
"groupsExemptFromNewUserRestrictions": ["administrators", "Global Moderators"],
"groupsExemptFromMaintenanceMode": ["administrators", "Global Moderators"],
@@ -36,9 +36,8 @@
"maximumTagsPerTopic": 5,
"minimumTagLength": 3,
"maximumTagLength": 15,
"undoTimeout": 0,
"undoTimeout": 10000,
"allowTopicsThumbnail": 1,
"showPostUploadsAsThumbnails": 1,
"registrationType": "normal",
"registrationApprovalType": "normal",
"allowAccountDelete": 1,
@@ -57,7 +56,6 @@
"rejectImageWidth": 5000,
"rejectImageHeight": 5000,
"resizeImageQuality": 80,
"convertPastedImageTo": "image/jpeg",
"topicThumbSize": 512,
"minimumTitleLength": 3,
"maximumTitleLength": 255,
@@ -71,14 +69,14 @@
"maximumChatMessageLength": 1000,
"maximumRemoteChatMessageLength": 5000,
"maximumChatRoomNameLength": 50,
"maximumProfileImageSize": 2048,
"maximumProfileImageSize": 256,
"maximumCoverImageSize": 2048,
"profileImageDimension": 200,
"profile:convertProfileImageToPNG": 0,
"profile:keepAllUserImages": 0,
"gdpr_enabled": 1,
"allowProfileImageUploads": 1,
"teaserPost": "last-post",
"teaserPost": "last-reply",
"showPostPreviewsOnHover": 1,
"allowPrivateGroups": 1,
"unreadCutoff": 2,
@@ -142,7 +140,6 @@
"feeds:disableSitemap": 0,
"feeds:disableRSS": 0,
"sitemapTopics": 500,
"sitemapCacheDurationHours": 24,
"maintenanceMode": 0,
"maintenanceModeStatus": 503,
"upvoteVisibility": "all",

View File

@@ -12,7 +12,6 @@ set_defaults() {
export SETUP="${SETUP:-}"
export PACKAGE_MANAGER="${PACKAGE_MANAGER:-npm}"
export OVERRIDE_UPDATE_LOCK="${OVERRIDE_UPDATE_LOCK:-false}"
export NODEBB_ADDITIONAL_PLUGINS="${NODEBB_ADDITIONAL_PLUGINS:-}"
}
# Function to check if a directory exists and is writable
@@ -104,7 +103,7 @@ 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
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..."
@@ -173,33 +172,6 @@ debug_log() {
echo "DEBUG: $message"
}
install_additional_plugins() {
if [[ ! -z ${NODEBB_ADDITIONAL_PLUGINS} ]]; then
export START_BUILD="true"
for plugin in "${NODEBB_ADDITIONAL_PLUGINS[@]}"; do
echo "Installing additional plugin ${plugin}..."
case "$PACKAGE_MANAGER" in
yarn) yarn install || {
echo "Failed to install plugin ${plugin} with yarn"
exit 1
} ;;
npm) npm install || {
echo "Failed to install plugin ${plugin} with npm"
exit 1
} ;;
pnpm) pnpm install || {
echo "Failed to install plugin ${plugin} with pnpm"
exit 1
} ;;
*)
echo "Unknown package manager: $PACKAGE_MANAGER"
exit 1
;;
esac
done
fi
}
# Main function
main() {
set_defaults
@@ -210,14 +182,12 @@ main() {
debug_log "PACKAGE_MANAGER: $PACKAGE_MANAGER"
debug_log "CONFIG location: $CONFIG"
debug_log "START_BUILD: $START_BUILD"
debug_log "NODEBB_ADDITIONAL_PLUGINS: ${NODEBB_ADDITIONAL_PLUGINS}"
if [ -n "$SETUP" ]; then
start_setup_session "$CONFIG"
fi
if [ -f "$CONFIG" ]; then
install_additional_plugins
start_forum "$CONFIG" "$START_BUILD"
else
start_installation_session "$NODEBB_INIT_VERB" "$CONFIG"

View File

@@ -2,7 +2,7 @@
"name": "nodebb",
"license": "GPL-3.0",
"description": "NodeBB Forum",
"version": "4.8.1",
"version": "4.2.0",
"homepage": "https://www.nodebb.org",
"repository": {
"type": "git",
@@ -29,55 +29,56 @@
},
"dependencies": {
"@adactive/bootstrap-tagsinput": "0.8.2",
"@fontsource-utils/scss": "0.2.2",
"@fontsource/inter": "5.2.8",
"@fontsource/poppins": "5.2.7",
"@fontsource/inter": "5.2.5",
"@fontsource/poppins": "5.2.5",
"@fortawesome/fontawesome-free": "6.7.2",
"@isaacs/ttlcache": "2.1.4",
"@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.43.6",
"ace-builds": "1.39.1",
"archiver": "7.0.1",
"async": "3.2.6",
"autoprefixer": "10.4.24",
"bcryptjs": "3.0.3",
"autoprefixer": "10.4.21",
"bcryptjs": "3.0.2",
"benchpressjs": "2.5.5",
"body-parser": "2.2.2",
"bootbox": "6.0.4",
"bootstrap": "5.3.8",
"bootswatch": "5.3.8",
"body-parser": "2.2.0",
"bootbox": "6.0.2",
"bootstrap": "5.3.5",
"bootswatch": "5.3.5",
"chalk": "4.1.2",
"chart.js": "4.5.1",
"chart.js": "4.4.8",
"cli-graph": "3.2.2",
"clipboard": "2.0.11",
"commander": "14.0.3",
"commander": "13.1.0",
"compare-versions": "6.1.1",
"compression": "1.8.1",
"compression": "1.8.0",
"connect-flash": "0.1.1",
"connect-mongo": "6.0.0",
"connect-mongo": "5.1.0",
"connect-multiparty": "2.2.0",
"connect-pg-simple": "10.0.0",
"connect-redis": "9.0.0",
"connect-redis": "8.0.2",
"cookie-parser": "1.4.7",
"cron": "4.4.0",
"cron": "4.1.4",
"cropperjs": "1.6.2",
"csrf-sync": "4.2.1",
"csrf-sync": "4.1.0",
"daemon": "1.1.0",
"diff": "8.0.3",
"esbuild": "0.27.3",
"express": "5.2.1",
"express-session": "1.19.0",
"express-useragent": "2.1.0",
"fetch-cookie": "3.2.0",
"diff": "7.0.0",
"esbuild": "0.25.2",
"express": "5.1.0",
"express-session": "1.18.1",
"express-useragent": "1.0.15",
"fetch-cookie": "3.1.0",
"file-loader": "6.2.0",
"fs-extra": "11.3.3",
"fs-extra": "11.3.0",
"graceful-fs": "4.2.11",
"helmet": "7.2.0",
"html-to-text": "9.0.5",
"imagesloaded": "5.0.0",
"ipaddr.js": "2.3.0",
"ipaddr.js": "2.2.0",
"jquery": "3.7.1",
"jquery-deserialize": "2.0.0",
"jquery-form": "4.3.0",
@@ -85,102 +86,97 @@
"jquery-ui": "1.14.1",
"jsesc": "3.1.0",
"json2csv": "5.0.7",
"jsonwebtoken": "9.0.3",
"lodash": "4.17.23",
"jsonwebtoken": "9.0.2",
"lodash": "4.17.21",
"logrotate-stream": "0.2.9",
"lru-cache": "11.2.6",
"lru-cache": "10.4.3",
"mime": "3.0.0",
"mkdirp": "3.0.1",
"mongodb": "7.1.0",
"morgan": "1.10.1",
"mongodb": "6.15.0",
"morgan": "1.10.0",
"mousetrap": "1.6.5",
"multer": "2.0.2",
"nconf": "0.13.0",
"nodebb-plugin-2factor": "7.6.1",
"nodebb-plugin-composer-default": "10.3.16",
"nodebb-plugin-dbsearch": "6.3.5",
"nodebb-plugin-emoji": "6.0.5",
"multiparty": "4.2.3",
"nconf": "0.12.1",
"nodebb-plugin-2factor": "7.5.9",
"nodebb-plugin-composer-default": "10.2.49",
"nodebb-plugin-dbsearch": "6.2.15",
"nodebb-plugin-emoji": "6.0.2",
"nodebb-plugin-emoji-android": "4.1.1",
"nodebb-plugin-link-preview": "2.2.3",
"nodebb-plugin-markdown": "13.2.4",
"nodebb-plugin-mentions": "4.8.16",
"nodebb-plugin-spam-be-gone": "2.3.2",
"nodebb-plugin-web-push": "0.7.6",
"nodebb-rewards-essentials": "1.0.2",
"nodebb-theme-harmony": "2.2.11",
"nodebb-theme-lavender": "7.1.21",
"nodebb-theme-peace": "2.2.51",
"nodebb-theme-persona": "14.2.5",
"nodebb-widget-essentials": "7.0.42",
"nodemailer": "8.0.1",
"nodebb-plugin-markdown": "13.1.1",
"nodebb-plugin-mentions": "4.7.3",
"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.1.3",
"nodebb-theme-lavender": "7.1.18",
"nodebb-theme-peace": "2.2.39",
"nodebb-theme-persona": "14.1.2",
"nodebb-widget-essentials": "7.0.36",
"nodemailer": "6.10.0",
"nprogress": "0.2.0",
"passport": "0.7.0",
"passport-http-bearer": "1.0.1",
"passport-local": "1.0.0",
"pg": "8.18.0",
"pg-cursor": "2.17.0",
"postcss": "8.5.6",
"pg": "8.14.1",
"pg-cursor": "2.13.1",
"postcss": "8.5.3",
"postcss-clean": "1.2.0",
"pretty": "^2.0.0",
"progress-webpack-plugin": "1.0.16",
"prompt": "1.3.0",
"qs": "6.14.2",
"redis": "5.10.0",
"rimraf": "6.1.2",
"ioredis": "5.6.0",
"rimraf": "5.0.10",
"rss": "1.2.2",
"rtlcss": "4.3.0",
"sanitize-html": "2.17.0",
"sass": "1.97.3",
"satori": "0.19.2",
"sbd": "^1.0.19",
"semver": "7.7.4",
"serve-favicon": "2.5.1",
"sharp": "0.34.5",
"sitemap": "9.0.0",
"socket.io": "4.8.3",
"socket.io-client": "4.8.3",
"sanitize-html": "2.15.0",
"sass": "1.86.3",
"satori": "0.12.2",
"semver": "7.7.1",
"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.7",
"spdx-license-list": "6.11.0",
"terser-webpack-plugin": "5.3.16",
"sortablejs": "1.15.6",
"spdx-license-list": "6.10.0",
"terser-webpack-plugin": "5.3.14",
"textcomplete": "0.18.2",
"textcomplete.contenteditable": "0.1.1",
"timeago": "1.6.7",
"tinycon": "0.6.8",
"toobusy-js": "0.5.1",
"tough-cookie": "6.0.0",
"undici": "^7.10.0",
"validator": "13.15.26",
"webpack": "5.105.2",
"tough-cookie": "5.1.2",
"validator": "13.15.0",
"webpack": "5.99.5",
"webpack-merge": "6.0.1",
"winston": "3.19.0",
"workerpool": "10.0.1",
"winston": "3.17.0",
"workerpool": "9.2.0",
"xml": "1.0.1",
"xregexp": "5.1.2",
"yargs": "17.7.2",
"zxcvbn": "4.4.2"
},
"devDependencies": {
"@apidevtools/swagger-parser": "10.1.0",
"@commitlint/cli": "20.4.1",
"@commitlint/config-angular": "20.4.1",
"@commitlint/cli": "19.8.0",
"@commitlint/config-angular": "19.8.0",
"coveralls": "3.1.1",
"@eslint/js": "10.0.1",
"@stylistic/eslint-plugin": "5.8.0",
"eslint-config-nodebb": "2.0.1",
"globals": "17.3.0",
"@eslint/js": "9.24.0",
"eslint-config-nodebb": "1.0.7",
"eslint-plugin-import": "2.31.0",
"grunt": "1.6.1",
"grunt-contrib-watch": "1.1.0",
"husky": "8.0.3",
"jsdom": "28.0.0",
"lint-staged": "16.2.7",
"mocha": "11.7.5",
"jsdom": "26.0.0",
"lint-staged": "15.5.0",
"mocha": "11.1.0",
"mocha-lcov-reporter": "1.3.0",
"mockdate": "3.0.5",
"nyc": "17.1.0",
"smtp-server": "3.18.1"
"smtp-server": "3.13.6"
},
"optionalDependencies": {
"sass-embedded": "1.97.3"
"sass-embedded": "1.86.3"
},
"resolutions": {
"*/jquery": "3.7.1"
@@ -189,7 +185,7 @@
"url": "https://github.com/NodeBB/NodeBB/issues"
},
"engines": {
"node": ">=20"
"node": ">=18"
},
"maintainers": [
{

View File

@@ -2,6 +2,7 @@
const nconf = require('nconf');
const fs = require('fs');
const url = require('url');
const path = require('path');
const { fork } = require('child_process');
const logrotate = require('logrotate-stream');
@@ -98,14 +99,9 @@ Loader.start = function () {
function forkWorker(index, isPrimary) {
const ports = getPorts();
const args = [];
const execArgv = [];
if (nconf.get('max-memory')) {
execArgv.push(`--max-old-space-size=${nconf.get('max-memory')}`);
args.push(`--max-old-space-size=${nconf.get('max-memory')}`);
}
if (nconf.get('expose-gc')) {
execArgv.push('--expose-gc');
}
if (!ports[index]) {
return console.log(`[cluster] invalid port for worker : ${index} ports: ${ports.length}`);
}
@@ -113,10 +109,10 @@ function forkWorker(index, isPrimary) {
process.env.isPrimary = isPrimary;
process.env.isCluster = nconf.get('isCluster') || ports.length > 1;
process.env.port = ports[index];
const worker = fork(appPath, args, {
silent: silent,
env: process.env,
execArgv: execArgv,
});
worker.index = index;
@@ -139,7 +135,7 @@ function getPorts() {
console.log('[cluster] url is undefined, please check your config.json');
process.exit();
}
const urlObject = new URL(_url);
const urlObject = url.parse(_url);
let port = nconf.get('PORT') || nconf.get('port') || urlObject.port || 4567;
if (!Array.isArray(port)) {
port = [port];

View File

@@ -1,5 +1,9 @@
{
"cache": "Cache",
"post-cache": "التخزين المؤقت للمشاركات",
"group-cache": "التخزين المؤقت للمجموعات",
"local-cache": "تخزين مؤقت محلي",
"object-cache": "تخزين مؤقت للأشياء",
"percent-full": "1% كاملة",
"post-cache-size": "حجم التخزين المؤقت للمشاركات",
"items-in-cache": "العناصر في التخزين المؤقت"

View File

@@ -75,7 +75,6 @@
"graphs.page-views-registered": "زيارات الصفحات المسجلة",
"graphs.page-views-guest": "زيارات الصفحات للزوار",
"graphs.page-views-bot": "زيارات الصفحات الآلية",
"graphs.page-views-ap": "ActivityPub Page Views",
"graphs.unique-visitors": "زوار فريدين",
"graphs.registered-users": "مستخدمين مسجلين",
"graphs.guest-users": "المستخدمين الزوار",

View File

@@ -8,7 +8,7 @@
"nodejs": "nodejs",
"online": "online",
"git": "git",
"process-memory": "rss/heap used",
"process-memory": "process memory",
"system-memory": "system memory",
"used-memory-process": "Used memory by process",
"used-memory-os": "Used system memory",

View File

@@ -1,22 +1,18 @@
{
"manage-categories": "Manage Categories",
"add-category": "Add category",
"add-local-category": "Add Local category",
"add-remote-category": "Add Remote category",
"remove": "Remove",
"rename": "Rename",
"jump-to": "Jump to...",
"settings": "اعدادات القسم",
"edit-category": "Edit Category",
"privileges": "الصلاحيات",
"back-to-categories": "Back to categories",
"id": "Category ID",
"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",
"topic-template": "Topic Template",
"topic-template.help": "Define a template for new topics created in this category.",
"federatedDescription": "Federated Description",
"federatedDescription.help": "This text will be appended to the category description when queried by other websites/apps.",
"federatedDescription.default": "This is a forum category containing topical discussion. You can start new discussions by mentioning this category.",
"bg-color": "Background Colour",
"text-color": "Text Colour",
"bg-image-size": "Background Image Size",
@@ -107,11 +103,6 @@
"alert.create-success": "Category successfully created!",
"alert.none-active": "You have no active categories.",
"alert.create": "Create a Category",
"alert.add": "Add a Category",
"alert.add-help": "Remote categories can be added to the categories listing by specifying their handle.<br /><br /><strong>Note</strong> — The remote category may not reflect all topics published unless at least one local user tracks/watches it.",
"alert.rename": "Rename a Remote Category",
"alert.rename-help": "Please enter a new name for this category. Leave blank to restore original name.",
"alert.confirm-remove": "Do you really want to remove this category? You can add it back at any time.",
"alert.confirm-purge": "<p class=\"lead\">Do you really want to purge this category \"%1\"?</p><h5><strong class=\"text-danger\">Warning!</strong> All topics and posts in this category will be purged!</h5> <p class=\"help-block\">Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category <em>temporarily</em>, you'll want to \"disable\" the category instead.</p>",
"alert.purge-success": "Category purged!",
"alert.copy-success": "Settings Copied!",

View File

@@ -1,16 +0,0 @@
{
"title": "Manage Custom Reasons",
"create-reason": "Create Reason",
"edit-reason": "Edit Reason",
"reasons-help": "Reasons are predefined explanations used when banning or muting users, or when rejecting posts in the post queue.",
"reason-title": "Title",
"reason-type": "Type",
"reason-body": "Body",
"reason-all": "All",
"reason-ban": "Ban",
"reason-mute": "Mute",
"reason-post-queue": "Post Queue",
"reason-type-help": "The type of action this reason applies to. If 'All' is selected, this reason will be available for all action types.",
"custom-reasons-saved": "Custom reasons saved successfully",
"delete-reason-confirm-x": "Are you sure you want to delete the custom reason with the title <strong>%1</strong>?"
}

View File

@@ -29,7 +29,6 @@
"access-topics": "Access Topics",
"create-topics": "Create Topics",
"reply-to-topics": "Reply to Topics",
"crosspost-topics": "Cross-post Topics",
"schedule-topics": "Schedule Topics",
"tag-topics": "Tag Topics",
"edit-posts": "Edit Posts",

View File

@@ -23,7 +23,6 @@
"purge": "Delete <strong>User(s)</strong> and <strong>Content</strong>",
"download-csv": "Download CSV",
"custom-user-fields": "Custom User Fields",
"custom-reasons": "Custom Reasons",
"manage-groups": "Manage Groups",
"set-reputation": "Set Reputation",
"add-group": "Add Group",
@@ -78,11 +77,9 @@
"temp-ban.length": "Length",
"temp-ban.reason": "Reason <span class=\"text-muted\">(Optional)</span>",
"temp-ban.select-reason": "Select a reason",
"temp-ban.hours": "Hours",
"temp-ban.days": "Days",
"temp-ban.explanation": "Enter the length of time for the ban. Note that a time of 0 will be a considered a permanent ban.",
"temp-mute.explanation": "Enter the length of time for the mute. Note that a time of 0 will be a considered a permanent mute.",
"alerts.confirm-ban": "Do you really want to ban this user <strong>permanently</strong>?",
"alerts.confirm-ban-multi": "Do you really want to ban these users <strong>permanently</strong>?",

View File

@@ -18,28 +18,6 @@
"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.",
"rules": "Categorization",
"rules-intro": "Content discovered via ActivityPub can be automatically categorized based on certain rules (e.g. hashtag)",
"rules.modal.title": "How it works",
"rules.modal.instructions": "Any incoming content is checked against these categorization rules, and matching content is automatically moved into the category of choice.<br /><br /><strong>N.B.</strong> Content that is already categorized (i.e. in a remote category) will not pass through these rules.",
"rules.add": "Add New Rule",
"rules.help-hashtag": "Topics containing this case-insensitive hashtag will match. Do not enter the <code>#</code> symbol",
"rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. <code>bob@example.org</code> or <code>https://example.org/users/bob</code>.",
"rules.type": "Type",
"rules.value": "Value",
"rules.cid": "Category",
"relays": "Relays",
"relays.intro": "A relay improves discovery of content to and from your NodeBB. Subscribing to a relay means content received by the relay is forwarded here, and content posted here is syndicated outward by the relay.",
"relays.warning": "Note: Relays can send larges amounts of traffic in, and may increase storage and processing costs.",
"relays.litepub": "NodeBB follows the LitePub-style relay standard. The URL you enter here should end with <code>/actor</code>.",
"relays.add": "Add New Relay",
"relays.relay": "Relay",
"relays.state": "State",
"relays.state-0": "Pending",
"relays.state-1": "Receiving only",
"relays.state-2": "Active",
"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.",

View File

@@ -10,6 +10,8 @@
"max-chat-room-name-length": "Maximum length of chat room names",
"max-room-size": "Maximum number of users in chat rooms",
"delay": "Time between chat messages (ms)",
"notification-delay": "Notification delay for chat messages",
"notification-delay-help": "Additional messages sent between this time are collated, and the user is notified once per delay period. Set this to 0 to disable the delay.",
"restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable.",
"restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable."
}

View File

@@ -30,20 +30,14 @@
"smtp-transport.pool-help": "Pooling connections prevents NodeBB from creating a new connection for every email. This option only applies if SMTP Transport is enabled.",
"smtp-transport.allow-self-signed": "Allow self-signed certificates",
"smtp-transport.allow-self-signed-help": "Enabling this setting will allow you to use self-signed or invalid TLS certificates.",
"smtp-transport.test-success": "SMTP Test email sent successfully.",
"template": "Edit Email Template",
"template.select": "Select Email Template",
"template.revert": "Revert to Original",
"test-smtp-settings": "Test SMTP Settings",
"testing": "Email Testing",
"testing.success": "Test Email Sent.",
"testing.select": "Select Email Template",
"testing.send": "Send Test Email",
"testing.send-help-plugin": "<strong>\"%1\"</strong> will be used to send test emails.",
"testing.send-help-smtp": "SMTP transport is enabled and will be used to send emails.",
"testing.send-help-no-plugin": "No emailer plugin is installed to send emails, nodemailer will be used by default.",
"testing.send-help": "The test email will be sent to the currently logged in user's email address using the saved settings on this page. ",
"testing.send-help": "The test email will be sent to the currently logged in user's email address.",
"subscriptions": "Email Digests",
"subscriptions.disable": "Disable email digests",
"subscriptions.hour": "Digest Hour",

View File

@@ -3,7 +3,5 @@
"welcome-notification": "Welcome Notification",
"welcome-notification-link": "Welcome Notification Link",
"welcome-notification-uid": "Welcome Notification User (UID)",
"post-queue-notification-uid": "Post Queue User (UID)",
"notification-delay": "Delay for sending notification emails (seconds)",
"notification-delay-help": "If the user has read the notification within this time, the email will not be sent.<br/>Default: 60 seconds."
"post-queue-notification-uid": "Post Queue User (UID)"
}

View File

@@ -21,13 +21,7 @@
"reject-image-width-help": "Images wider than this value will be rejected.",
"reject-image-height": "Maximum Image Height (in pixels)",
"reject-image-height-help": "Images taller than this value will be rejected.",
"convert-pasted-images-to": "Convert pasted images to:",
"convert-pasted-images-to-default": "No Conversion (Keep Original Format)",
"convert-pasted-images-to-png": "PNG",
"convert-pasted-images-to-jpeg": "JPEG",
"convert-pasted-images-to-webp": "WebP",
"allow-topic-thumbnails": "السماح للاعضاء برفع الصور المصغرة للموضوع",
"show-post-uploads-as-thumbnails": "Show post uploads as thumbnails",
"topic-thumb-size": "حجم الصورة المصغرة للموضوع",
"allowed-file-extensions": "إمتدادات الملفات المسموح بها",
"allowed-file-extensions-help": "أدخل قائمة بامتدادات الملفات مفصولة بفواصل (مثال: <code>pdf,xls,doc</code>). القائمة الفارغة تعني أن كل الامتدادات مسموح بها.",

View File

@@ -64,7 +64,6 @@
"show-email": "عرض البريد الإلكتروني",
"show-fullname": "عرض الاسم الكامل",
"restrict-chat": "السماح فقط برسائل الدردشة من المستخدمين الذين أتبعهم",
"disable-incoming-chats": "Disable incoming chat messages",
"outgoing-new-tab": "Open outgoing links in new tab",
"topic-search": "Enable In-Topic Searching",
"update-url-with-post-index": "Update url with post index while browsing topics",

View File

@@ -5,7 +5,6 @@
"disable-rss-feeds": "Disable RSS Feeds",
"disable-sitemap-xml": "Disable Sitemap.xml",
"sitemap-topics": "Number of Topics to display in the Sitemap",
"sitemap-cache-duration-hours": "Sitemap Cache Duration (hours)",
"clear-sitemap-cache": "Clear Sitemap Cache",
"view-sitemap": "View Sitemap"
}

View File

@@ -5,6 +5,5 @@
"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",
"show-crossposts": "Show Cross-posts"
"group-page-link-for": "Group page link for %1"
}

View File

@@ -1,13 +1,12 @@
{
"category": "قسم",
"subcategories": "قسم فرعي",
"uncategorized": "World",
"uncategorized.description": "Topics from outside of this forum. Views and opinions represented here may not reflect those of this forum and its members.",
"uncategorized": "Uncategorized",
"uncategorized.description": "Topics that do not strictly fit in with any existing categories",
"handle.description": "This category can be followed from the open social web via the handle %1",
"new-topic-button": "موضوع جديد",
"guest-login-post": "سجل الدخول للمشاركة",
"no-topics": "<strong>لا توجد مواضيع في هذه القسم</strong>لم لا تحاول إنشاء موضوع؟<br />",
"no-followers": "Nobody on this website is tracking or watching this category. Track or watch this category in order to begin receiving updates.",
"browsing": "تصفح",
"no-replies": "لم يرد أحد",
"no-new-posts": "لا توجد مشاركات جديدة.",

View File

@@ -3,7 +3,6 @@
"invalid-json": "Invalid JSON",
"wrong-parameter-type": "A value of type %3 was expected for property `%1`, but %2 was received instead",
"required-parameters-missing": "Required parameters were missing from this API call: %1",
"reserved-ip-address": "Network requests to reserved IP ranges are not allowed.",
"not-logged-in": "لم تقم بتسجيل الدخول",
"account-locked": "تم حظر حسابك مؤقتًا.",
"search-requires-login": "البحث في المنتدى يتطلب حساب - الرجاء تسجيل الدخول أو التسجيل",
@@ -147,7 +146,6 @@
"post-already-restored": "سبق وتم إلغاء حذف هذا الرد",
"topic-already-deleted": "سبق وتم حذف هذا الموضوع",
"topic-already-restored": "سبق وتم إلغاء حذف هذا الرد",
"topic-already-crossposted": "This topic has already been cross-posted there.",
"cant-purge-main-post": "لا يمكنك محو المشاركة الأساسية، يرجى حذف الموضوع بدلاً عن ذلك",
"topic-thumbnails-are-disabled": "الصور المصغرة غير مفعلة.",
"invalid-file": "ملف غير مقبول",
@@ -156,8 +154,6 @@
"about-me-too-long": "نأسف، ( عني ) لا يمكن أن يكون أكثر من %1 حرف.",
"cant-chat-with-yourself": "لايمكنك فتح محادثة مع نفسك",
"chat-restricted": "هذا المستخدم عطل المحادثات الواردة عليه. يجب أن يتبعك حتى تتمكن من فتح محادثة معه.",
"chat-allow-list-user-already-added": "This user is already in your allow list",
"chat-deny-list-user-already-added": "This user is already in your deny list",
"chat-user-blocked": "You have been blocked by this user.",
"chat-disabled": "نظام المحادثة معطل.",
"too-many-messages": "لقد أرسلت الكثير من الرسائل، الرجاء اﻹنتظار قليلاً",
@@ -229,7 +225,6 @@
"no-topics-selected": "No topics selected!",
"cant-move-to-same-topic": "Can't move post to same topic!",
"cant-move-topic-to-same-category": "Can't move topic to the same category!",
"cant-move-topic-to-from-remote-categories": "You cannot move topics in or out of remote categories; consider cross-posting instead.",
"cannot-block-self": "You cannot block yourself!",
"cannot-block-privileged": "You cannot block administrators or global moderators",
"cannot-block-guest": "Guest are not able to block other users",
@@ -239,7 +234,6 @@
"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 &ndash; only plugins whitelisted by the NodeBB Package Manager can be installed via the ACP",
"cannot-toggle-system-plugin": "You cannot toggle the state of a system plugin",
"plugin-installation-via-acp-disabled": "Plugin installation via ACP is disabled",
"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",
@@ -252,7 +246,6 @@
"api.401": "A valid login session was not found. Please log in and try again.",
"api.403": "You are not authorised to make this call",
"api.404": "Invalid API call",
"api.413": "The request payload is too large",
"api.426": "HTTPS is required for requests to the write api, please re-send your request via HTTPS",
"api.429": "You have made too many requests, please try again later",
"api.500": "An unexpected error was encountered while attempting to service your request.",

View File

@@ -68,7 +68,6 @@
"users": "الأعضاء",
"topics": "المواضيع",
"posts": "المشاركات",
"crossposts": "Cross-posts",
"x-posts": "<span class=\"formatted-number\">%1</span> posts",
"x-topics": "<span class=\"formatted-number\">%1</span> topics",
"x-reputation": "<span class=\"formatted-number\">%1</span> reputation",
@@ -83,7 +82,6 @@
"downvoted": "مصوت بالسالب",
"views": "المشاهدات",
"posters": "Posters",
"watching": "Watching",
"reputation": "السمعة",
"lastpost": "Last post",
"firstpost": "First post",

View File

@@ -1,9 +1,7 @@
{
"group": "Group",
"all-groups": "All groups",
"groups": "المجموعات",
"members": "Members",
"x-members": "%1 member(s)",
"view-group": "معاينة المجموعة",
"owner": "مالك المجموعة",
"new-group": "أنشئ مجموعة جديدة",

View File

@@ -48,7 +48,6 @@
"chat.add-user": "Add User",
"chat.notification-settings": "Notification Settings",
"chat.default-notification-setting": "Default Notification Setting",
"chat.join-leave-messages": "Join/Leave Messages",
"chat.notification-setting-room-default": "Room Default",
"chat.notification-setting-none": "No notifications",
"chat.notification-setting-at-mention-only": "@mention only",
@@ -82,7 +81,7 @@
"composer.hide-preview": "إخفاء المعاينة",
"composer.help": "Help",
"composer.user-said-in": "%1 كتب في %2",
"composer.user-said": "%1 [said](%2):",
"composer.user-said": "%1 كتب:",
"composer.discard": "هل أنت متأكد أنك تريد التخلي عن التغييرات؟",
"composer.submit-and-lock": "Submit and Lock",
"composer.toggle-dropdown": "Toggle Dropdown",

View File

@@ -22,7 +22,7 @@
"upvote": "الموافقين",
"awards": "Awards",
"new-flags": "New Flags",
"my-flags": "My Flags",
"my-flags": "Flags assigned to me",
"bans": "الحظر",
"new-message-from": "رسالة جديدة من <strong>%1</strong>",
"new-messages-from": "%1 new messages from <strong>%2</strong>",
@@ -32,13 +32,13 @@
"user-posted-in-public-room-dual": "<strong>%1</strong> and <strong>%2</strong> wrote in <strong class=\"text-nowrap\"><i class=\"fa %3\"></i>%4</strong>",
"user-posted-in-public-room-triple": "<strong>%1</strong>, <strong>%2</strong> and <strong>%3</strong> wrote in <strong class=\"text-nowrap\"><i class=\"fa %4\"></i>%5</strong>",
"user-posted-in-public-room-multiple": "<strong>%1</strong>, <strong>%2</strong> and %3 others wrote in <strong class=\"text-nowrap\"><i class=\"fa %4\"></i>%5</strong>",
"upvoted-your-post-in": "<strong>%1</strong> upvoted your post in <strong>%2</strong>",
"upvoted-your-post-in-dual": "<strong>%1</strong> and <strong>%2</strong> upvoted your post in <strong>%3</strong>",
"upvoted-your-post-in-triple": "<strong>%1</strong>, <strong>%2</strong> and <strong>%3</strong> upvoted your post in <strong>%4</strong>",
"upvoted-your-post-in-multiple": "<strong>%1</strong>, <strong>%2</strong> and %3 others upvoted your post in <strong>%4</strong>.",
"upvoted-your-post-in": "<strong>%1</strong> أضاف صوتًا إيجابيا إلى مشاركتك في <strong>%2</strong>.",
"upvoted-your-post-in-dual": "<strong>%1</strong> and <strong>%2</strong> have upvoted your post in <strong>%3</strong>.",
"upvoted-your-post-in-triple": "<strong>%1</strong>, <strong>%2</strong> and <strong>%3</strong> have upvoted your post in <strong>%4</strong>.",
"upvoted-your-post-in-multiple": "<strong>%1</strong>, <strong>%2</strong> and %3 others have upvoted your post in <strong>%4</strong>.",
"moved-your-post": "<strong>%1</strong> has moved your post to <strong>%2</strong>",
"moved-your-topic": "<strong>%1</strong> has moved <strong>%2</strong>",
"user-flagged-post-in": "<strong>%1</strong> flagged a post in <strong>%2</strong>",
"user-flagged-post-in": "<strong>%1</strong> أشعَرَ بمشاركة مخلة في <strong>%2</strong>",
"user-flagged-post-in-dual": "<strong>%1</strong> and <strong>%2</strong> flagged a post in <strong>%3</strong>",
"user-flagged-post-in-triple": "<strong>%1</strong>, <strong>%2</strong> and <strong>%3</strong> flagged a post in <strong>%4</strong>",
"user-flagged-post-in-multiple": "<strong>%1</strong>, <strong>%2</strong> and %3 others flagged a post in <strong>%4</strong>",
@@ -46,17 +46,17 @@
"user-flagged-user-dual": "<strong>%1</strong> and <strong>%2</strong> flagged a user profile (%3)",
"user-flagged-user-triple": "<strong>%1</strong>, <strong>%2</strong> and <strong>%3</strong> flagged a user profile (%4)",
"user-flagged-user-multiple": "<strong>%1</strong>, <strong>%2</strong> and %3 others flagged a user profile (%4)",
"user-posted-to": "<strong>%1</strong> posted a reply in <strong>%2</strong>",
"user-posted-to-dual": "<strong>%1</strong> and <strong>%2</strong> replied in <strong>%3</strong>",
"user-posted-to-triple": "<strong>%1</strong>, <strong>%2</strong> and <strong>%3</strong> replied in <strong>%4</strong>",
"user-posted-to-multiple": "<strong>%1</strong>, <strong>%2</strong> and %3 others replied in <strong>%4</strong>",
"user-posted-topic": "<strong>%1</strong> posted <strong>%2</strong>",
"user-edited-post": "<strong>%1</strong> edited a post in <strong>%2</strong>",
"user-posted-topic-with-tag": "<strong>%1</strong> posted <strong>%2</strong> (tagged %3)",
"user-posted-topic-with-tag-dual": "<strong>%1</strong> posted <strong>%2</strong> (tagged %3 and %4)",
"user-posted-topic-with-tag-triple": "<strong>%1</strong> posted <strong>%2</strong> (tagged %3, %4, and %5)",
"user-posted-topic-with-tag-multiple": "<strong>%1</strong> posted <strong>%2</strong> (tagged %3)",
"user-posted-topic-in-category": "<strong>%1</strong> posted <strong>%2</strong> in <strong>%3</strong>",
"user-posted-to": "<strong>%1</strong> أضاف ردا إلى: <strong>%2</strong>",
"user-posted-to-dual": "<strong>%1</strong> and <strong>%2</strong> have posted replies to: <strong>%3</strong>",
"user-posted-to-triple": "<strong>%1</strong>, <strong>%2</strong> and <strong>%3</strong> have posted replies to: <strong>%4</strong>",
"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-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.",
"user-started-following-you-triple": "<strong>%1</strong>, <strong>%2</strong> and <strong>%3</strong> started following you.",
@@ -71,11 +71,11 @@
"users-csv-exported": "Users csv exported, click to download",
"post-queue-accepted": "Your queued post has been accepted. Click here to see your post.",
"post-queue-rejected": "Your queued post has been rejected.",
"post-queue-rejected-for-reason": "Your queued post has been rejected for the following reason: \"%1\"",
"post-queue-notify": "Queued post received a notification: \"%1\"",
"post-queue-notify": "Queued post received a notification:<br/>\"%1\"",
"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": "التنبيهات فقط",

View File

@@ -8,7 +8,5 @@
"log-in-with-facebook": "تسجيل الدخول باستخدام فيسبوك",
"continue-with-facebook": "التسجيل باستخدام فيسبوك",
"sign-in-with-linkedin": "Sign in with LinkedIn",
"sign-up-with-linkedin": "Sign up with LinkedIn",
"sign-in-with-wordpress": "Sign in with WordPress",
"sign-up-with-wordpress": "Sign up with WordPress"
"sign-up-with-linkedin": "Sign up with LinkedIn"
}

View File

@@ -1,8 +1,6 @@
{
"theme-name": "Harmony Theme",
"skins": "Skins",
"light": "Light",
"dark": "Dark",
"collapse": "Collapse",
"expand": "Expand",
"sidebar-toggle": "Sidebar Toggle",

View File

@@ -69,8 +69,6 @@
"user-referenced-topic-on": "%1 <a href=\"%2\">referenced</a> this topic on %3",
"user-forked-topic-ago": "%1 <a href=\"%2\">forked</a> this topic %3",
"user-forked-topic-on": "%1 <a href=\"%2\">forked</a> this topic on %3",
"user-crossposted-topic-ago": "%1 crossposted this topic to %2 %3",
"user-crossposted-topic-on": "%1 crossposted this topicto %2 on %3",
"bookmark-instructions": "اضغط هنا للعودة لأخر مشاركة مقروءة في الموضوع",
"flag-post": "Flag this post",
"flag-user": "Flag this user",
@@ -105,7 +103,6 @@
"thread-tools.lock": "أقفل الموضوع",
"thread-tools.unlock": "إلغاء إقفال الموضوع",
"thread-tools.move": "نقل الموضوع",
"thread-tools.crosspost": "Crosspost Topic",
"thread-tools.move-posts": "Move Posts",
"thread-tools.move-all": "نقل الكل",
"thread-tools.change-owner": "Change Owner",
@@ -135,7 +132,6 @@
"pin-modal-help": "You can optionally set an expiration date for the pinned topic(s) here. Alternatively, you can leave this field blank to have the topic stay pinned until it is manually unpinned.",
"load-categories": "تحميل الفئات",
"confirm-move": "انقل",
"confirm-crosspost": "Cross-post",
"confirm-fork": "فرع",
"bookmark": "Bookmark",
"bookmarks": "Bookmarks",
@@ -145,7 +141,6 @@
"loading-more-posts": "تحميل المزيد من المشاركات",
"move-topic": "نقل الموضوع",
"move-topics": "نقل المواضيع",
"crosspost-topic": "Cross-post Topic",
"move-post": "نقل المشاركة",
"post-moved": "تم نقل المشاركة",
"fork-topic": "فرع الموضوع",
@@ -168,9 +163,6 @@
"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.",
"crossposts.instructions": "Select one or more categories to cross-post to. Topic(s) will be accessible from the original category and all cross-posted categories.",
"crossposts.listing": "This topic has been cross-posted to the following local categories:",
"crossposts.none": "This topic has not been cross-posted to any additional categories",
"composer.title-placeholder": "أدخل عنوان موضوعك هنا...",
"composer.handle-placeholder": "Enter your name/handle here",
"composer.hide": "Hide",
@@ -182,7 +174,6 @@
"composer.replying-to": "الرد على %1",
"composer.new-topic": "موضوع جديد",
"composer.editing-in": "Editing post in %1",
"composer.untitled-topic": "Untitled Topic",
"composer.uploading": "جاري الرفع",
"composer.thumb-url-label": "ألصق رابط الصورة المصغرة للموضوع",
"composer.thumb-title": "إضافة صورة مصغرة للموضوع",
@@ -233,8 +224,5 @@
"unread-posts-link": "Unread posts link",
"thumb-image": "Topic thumbnail image",
"announcers": "Shares",
"announcers-x": "Shares (%1)",
"guest-cta.title": "Hello! It looks like you're interested in this conversation, but you don't have an account yet.",
"guest-cta.message": "Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.",
"guest-cta.closing": "With your input, this post could be even better 💗"
"announcers-x": "Shares (%1)"
}

View File

@@ -105,10 +105,6 @@
"show-email": "أظهر بريدي الإلكتروني",
"show-fullname": "أظهر اسمي الكامل",
"restrict-chats": "لاتسمح بورود محادثات إلا من طرف المستخدمين الذين أتابعهم.",
"disable-incoming-chats": "Disable incoming chat messages <a data-bs-toggle=\"tooltip\" href=\"#\" title=\"Admins and moderators can still send you messages\"><i class=\"fa-solid fa-circle-info\"></i></a>",
"chat-allow-list": "Allow chat messages from the following users",
"chat-deny-list": "Deny chat messages from the following users",
"chat-list-add-user": "Add user",
"digest-label": "اشترك في النشرة الدورية",
"digest-description": "استلام اشعارات بآخر مستجدات هذا القسم (التنبيهات والمواضيع الجديدة) عبر البريد الإلكتروني وفقا لجدول زمني محدد.",
"digest-off": "غير مفعل",

View File

@@ -1,12 +1,7 @@
{
"name": "World",
"latest": "Latest",
"popular-day": "Popular (Day)",
"popular-week": "Popular (Week)",
"popular-month": "Popular (Month)",
"popular-year": "Popular (Year)",
"popular-alltime": "Popular (All Time)",
"recent": "All",
"popular": "Popular topics",
"recent": "All topics",
"help": "Help",
"help.title": "What is this page?",
@@ -19,7 +14,5 @@
"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!",
"category-search": "Find a category..."
"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!"
}

View File

@@ -1,5 +1,9 @@
{
"cache": "Keş",
"post-cache": "Yazıların keşi",
"group-cache": "Qrup keşi",
"local-cache": "Lokal keş",
"object-cache": "Obyekt keşi",
"percent-full": "%1% dolu",
"post-cache-size": "Yazıların keş ölçüsü",
"items-in-cache": "Keşdəki elementlər"

View File

@@ -75,7 +75,6 @@
"graphs.page-views-registered": "Səhifə Baxışları qeydə alınıb",
"graphs.page-views-guest": "Səhifə baxışı qonaq",
"graphs.page-views-bot": "Səhifə baxış botu",
"graphs.page-views-ap": "ActivityPub Page Views",
"graphs.unique-visitors": "Unikal ziyarətçilər",
"graphs.registered-users": "Qeydiyyatdan keçmiş istifadəçilər",
"graphs.guest-users": "Qonaqlar",

View File

@@ -8,7 +8,7 @@
"nodejs": "nodejs",
"online": "onlayn",
"git": "git",
"process-memory": "rss/heap used",
"process-memory": "proses yaddaşı",
"system-memory": "sistem yaddaşı",
"used-memory-process": "Proseslər yaddaşdan istifadə edir",
"used-memory-os": "İstifadə olunmuş sistem yaddaşı",

View File

@@ -1,22 +1,18 @@
{
"manage-categories": "Kateqoriyaları idarə et",
"add-category": "Kateqoriya əlavə et",
"add-local-category": "Add Local category",
"add-remote-category": "Add Remote category",
"remove": "Remove",
"rename": "Rename",
"jump-to": "Keç...",
"settings": "Kateqoriya parametrləri",
"edit-category": "Kateqoriyanı redaktə et",
"privileges": "İmtiyazlar",
"back-to-categories": "Kateqoriyalara qayıt",
"id": "Category ID",
"name": "Kateqoriya adı",
"handle": "Kateqoriya dəstəyi",
"handle.help": "Kateqoriya dəstəyiniz istifadəçi adına bənzər digər şəbəkələrdə bu kateqoriyanın təmsili kimi istifadə olunur. Kateqoriya sapı mövcud istifadəçi adı və ya istifadəçi qrupuna uyğun olmamalıdır.",
"description": "Kateqoriya təsviri",
"topic-template": "Topic Template",
"topic-template.help": "Define a template for new topics created in this category.",
"federatedDescription": "Federasiya təsviri",
"federatedDescription.help": "Bu mətn digər vebsaytlar/tətbiqlər tərəfindən sorğulandıqda kateqoriya təsvirinə əlavə olunacaq.",
"federatedDescription.default": "Bu, aktual müzakirələrdən ibarət forum kateqoriyasıdır. Bu kateqoriyanı qeyd etməklə yeni müzakirələrə başlaya bilərsiniz.",
"bg-color": "Arxa fon rəngi",
"text-color": "Mətnin rəngi",
"bg-image-size": "Fon şəklinin ölçüsü",
@@ -107,11 +103,6 @@
"alert.create-success": "Kateqoriya uğurla yaradıldı!",
"alert.none-active": "Aktiv kateqoriyalarınız yoxdur.",
"alert.create": "Kateqoriya yarat",
"alert.add": "Add a Category",
"alert.add-help": "Remote categories can be added to the categories listing by specifying their handle.<br /><br /><strong>Note</strong> — The remote category may not reflect all topics published unless at least one local user tracks/watches it.",
"alert.rename": "Rename a Remote Category",
"alert.rename-help": "Please enter a new name for this category. Leave blank to restore original name.",
"alert.confirm-remove": "Do you really want to remove this category? You can add it back at any time.",
"alert.confirm-purge": "<p class=\"lead\">Bu \"%1\" kateqoriyasını həqiqətən təmizləmək istəyirsiniz?</p><h5><strong class=\"text-danger\"> Xəbərdarlıq!</strong> Bu kateqoriyadakı bütün mövzular və yazılar silinəcək! </h5><p class=\"help-block\">Kateqoriyanın təmizlənməsi bütün mövzuları və yazıları siləcək və kateqoriyanı verilənlər bazasından siləcək. Kateqoriyanı <em>müvəqqəti</em> olaraq silmək istəyirsinizsə, bunun əvəzinə kateqoriyanı \"deaktiv etmək\" istəyəcəksiniz.</p>",
"alert.purge-success": "Kateqoriya təmizləndi!",
"alert.copy-success": "Parametrlər kopyalandı!",

View File

@@ -1,16 +0,0 @@
{
"title": "Manage Custom Reasons",
"create-reason": "Create Reason",
"edit-reason": "Edit Reason",
"reasons-help": "Reasons are predefined explanations used when banning or muting users, or when rejecting posts in the post queue.",
"reason-title": "Title",
"reason-type": "Type",
"reason-body": "Body",
"reason-all": "All",
"reason-ban": "Ban",
"reason-mute": "Mute",
"reason-post-queue": "Post Queue",
"reason-type-help": "The type of action this reason applies to. If 'All' is selected, this reason will be available for all action types.",
"custom-reasons-saved": "Custom reasons saved successfully",
"delete-reason-confirm-x": "Are you sure you want to delete the custom reason with the title <strong>%1</strong>?"
}

View File

@@ -29,7 +29,6 @@
"access-topics": "Mövzulara daxil olun",
"create-topics": "Mövzular yarat",
"reply-to-topics": "Mövzulara cavab ver",
"crosspost-topics": "Cross-post Topics",
"schedule-topics": "Mövzuları təqvim et",
"tag-topics": "Mövzuları teqlə",
"edit-posts": "Yazıları redaktə et",

View File

@@ -23,7 +23,6 @@
"purge": "<strong>İstifadəçi(lər)i</strong> və <strong>məzmunu</strong> silin",
"download-csv": "CSV-ni endir",
"custom-user-fields": "Fərdi istifadəçi sahələri",
"custom-reasons": "Custom Reasons",
"manage-groups": "Qrupları idarə et",
"set-reputation": "Reputasiya təyin et",
"add-group": "Qrup əlavə et",
@@ -78,11 +77,9 @@
"temp-ban.length": "Uzunluq",
"temp-ban.reason": "Səbəb <span class=\"text-muted\">(İstəyə görə)</span>",
"temp-ban.select-reason": "Select a reason",
"temp-ban.hours": "Saat",
"temp-ban.days": "Günlər",
"temp-ban.explanation": "Qadağanın müddətini daxil edin. Nəzərə alın ki, 0 vaxtı daimi qadağa hesab olunacaq.",
"temp-mute.explanation": "Enter the length of time for the mute. Note that a time of 0 will be a considered a permanent mute.",
"alerts.confirm-ban": "Həqiqətən bu istifadəçini <strong>həmişəlik</strong> qadağan etmək istəyirsiniz?",
"alerts.confirm-ban-multi": "Bu istifadəçiləri <strong>həmişəlik</strong> qadağan etmək istəyirsiniz?",

View File

@@ -18,28 +18,6 @@
"probe-timeout": "Axtarış vaxtı (millisaniyə)",
"probe-timeout-help": "(Defolt: 2000) Əgər axtarış sorğusu müəyyən edilmiş vaxt çərçivəsində cavab almazsa, onun əvəzinə istifadəçi birbaşa linkə göndəriləcək. Saytlar ləng cavab verirsə və əlavə vaxt vermək istəyirsinizsə, bu rəqəmi daha yüksək tənzimləyin.",
"rules": "Categorization",
"rules-intro": "Content discovered via ActivityPub can be automatically categorized based on certain rules (e.g. hashtag)",
"rules.modal.title": "How it works",
"rules.modal.instructions": "Any incoming content is checked against these categorization rules, and matching content is automatically moved into the category of choice.<br /><br /><strong>N.B.</strong> Content that is already categorized (i.e. in a remote category) will not pass through these rules.",
"rules.add": "Add New Rule",
"rules.help-hashtag": "Topics containing this case-insensitive hashtag will match. Do not enter the <code>#</code> symbol",
"rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. <code>bob@example.org</code> or <code>https://example.org/users/bob</code>.",
"rules.type": "Type",
"rules.value": "Value",
"rules.cid": "Category",
"relays": "Relays",
"relays.intro": "A relay improves discovery of content to and from your NodeBB. Subscribing to a relay means content received by the relay is forwarded here, and content posted here is syndicated outward by the relay.",
"relays.warning": "Note: Relays can send larges amounts of traffic in, and may increase storage and processing costs.",
"relays.litepub": "NodeBB follows the LitePub-style relay standard. The URL you enter here should end with <code>/actor</code>.",
"relays.add": "Add New Relay",
"relays.relay": "Relay",
"relays.state": "State",
"relays.state-0": "Pending",
"relays.state-1": "Receiving only",
"relays.state-2": "Active",
"server-filtering": "Filtrlə",
"count": "Bu NodeBB hazırda <strong>%1</strong> server(lər)dən xəbərdardır",
"server.filter-help": "NodeBB ilə federasiyaya mane olmaq istədiyiniz serverləri göstərin. Alternativ olaraq, bunun əvəzinə xüsusi serverlərlə federasiyaya seçimlə <em>icazə verə bilərsiniz</em>. Hər iki variant bir-birini istisna etsə də, dəstəklənir.",

View File

@@ -10,6 +10,8 @@
"max-chat-room-name-length": "Söhbət otağı adlarının maksimum uzunluğu",
"max-room-size": "Söhbət otaqlarında maksimum istifadəçi sayı",
"delay": "Söhbət mesajları arasındakı vaxt (ms)",
"notification-delay": "Söhbət mesajları üçün bildiriş gecikməsi",
"notification-delay-help": "Bu vaxt arasında göndərilən əlavə mesajlar toplanır və istifadəçiyə hər gecikmə müddətində bir dəfə bildiriş göndərilir. Gecikməni söndürmək üçün bunu 0-a qoyun.",
"restrictions.seconds-edit-after": "Söhbət mesajının redaktə oluna biləcəyi saniyələrin sayı.",
"restrictions.seconds-delete-after": "Söhbət mesajının silinə biləcəyi saniyələrin sayı."
}

View File

@@ -30,20 +30,14 @@
"smtp-transport.pool-help": "Əlaqələrin birləşdirilməsi NodeBB-nin hər e-poçt üçün yeni əlaqə yaratmasının qarşısını alır. Bu seçim yalnız SMTP Nəqliyyatı aktiv olduqda tətbiq edilir.",
"smtp-transport.allow-self-signed": "Özünü imzalayan sertifikatlara icazə verin",
"smtp-transport.allow-self-signed-help": "Bu parametri aktivləşdirərək siz öz imzalı və ya etibarsız TLS sertifikatlarından istifadə etmək imkanı əldə edəcəksiniz.",
"smtp-transport.test-success": "SMTP Test email sent successfully.",
"template": "E-poçt şablonunu redaktə et",
"template.select": "E-poçt şablonunu seç",
"template.revert": "Orijinala qayıt",
"test-smtp-settings": "Test SMTP Settings",
"testing": "Elektron poçt testi",
"testing.success": "Test Email Sent.",
"testing.select": "E-poçt şablonunu seç",
"testing.send": "Test məktubu göndər",
"testing.send-help-plugin": "<strong>\"%1\"</strong> will be used to send test emails.",
"testing.send-help-smtp": "SMTP transport is enabled and will be used to send emails.",
"testing.send-help-no-plugin": "No emailer plugin is installed to send emails, nodemailer will be used by default.",
"testing.send-help": "The test email will be sent to the currently logged in user's email address using the saved settings on this page. ",
"testing.send-help": "Test məktubu hazırda daxil olmuş istifadəçinin e-poçt ünvanına göndəriləcək.",
"subscriptions": "E-poçt həzmləri",
"subscriptions.disable": "E-poçt həzmlərini deaktiv edin",
"subscriptions.hour": "Digest saatı",

View File

@@ -3,7 +3,5 @@
"welcome-notification": "Xoş gəlmisiniz bildirişi",
"welcome-notification-link": "Xoş gəlmisiniz bildiriş linki",
"welcome-notification-uid": "Xoş gəlmisiniz bildiriş istifadəçisi (UID)",
"post-queue-notification-uid": "Yazı növbəsi istifadəçisi (UID)",
"notification-delay": "Delay for sending notification emails (seconds)",
"notification-delay-help": "If the user has read the notification within this time, the email will not be sent.<br/>Default: 60 seconds."
"post-queue-notification-uid": "Yazı növbəsi istifadəçisi (UID)"
}

View File

@@ -21,13 +21,7 @@
"reject-image-width-help": "Bu dəyərdən daha geniş şəkillər rədd ediləcək.",
"reject-image-height": "Maksimum şəklin hündürlüyü (piksellə)",
"reject-image-height-help": "Bu dəyərdən yüksək olan şəkillər rədd ediləcək.",
"convert-pasted-images-to": "Convert pasted images to:",
"convert-pasted-images-to-default": "No Conversion (Keep Original Format)",
"convert-pasted-images-to-png": "PNG",
"convert-pasted-images-to-jpeg": "JPEG",
"convert-pasted-images-to-webp": "WebP",
"allow-topic-thumbnails": "İstifadəçilərə mövzu miniatürlərini yükləməyə icazə ver",
"show-post-uploads-as-thumbnails": "Show post uploads as thumbnails",
"topic-thumb-size": "Mövzu thumb ölçüsü",
"allowed-file-extensions": "İcazə verilən fayl uzantıları",
"allowed-file-extensions-help": "Fayl uzantılarının vergüllə ayrılmış siyahısını buraya daxil edin (məsələn, <code>pdf, xls, doc</code>). Boş siyahı bütün genişləndirmələrə icazə verildiyini bildirir.",

View File

@@ -64,7 +64,6 @@
"show-email": "E-poçtu göstər",
"show-fullname": "Tam adı göstər",
"restrict-chat": "Yalnız izlədiyim istifadəçilərdən gələn söhbət mesajlarına icazə ver",
"disable-incoming-chats": "Disable incoming chat messages",
"outgoing-new-tab": "Gedən bağlantıları yeni tabda açın",
"topic-search": "Mövzudaxili axtarışı aktivləşdir",
"update-url-with-post-index": "Mövzulara baxarkən url-i post indeksi ilə yenilə",

View File

@@ -5,7 +5,6 @@
"disable-rss-feeds": "RSS Lentlərini söndür",
"disable-sitemap-xml": "Sitemap.xml-ni deaktiv et",
"sitemap-topics": "Sayt xəritəsində göstəriləcək mövzuların sayı",
"sitemap-cache-duration-hours": "Sitemap Cache Duration (hours)",
"clear-sitemap-cache": "Sayt xəritəsi keşini təmizlə",
"view-sitemap": "Saytın Xəritəsinə bax"
}

View File

@@ -5,6 +5,5 @@
"profile-page-for": "%1 istifadəçisi üçün profil səhifəsi",
"user-watched-tags": "İstifadəçinin izlədiyi təqlər",
"delete-upload-button": "Yükləmə düyməsini silmək",
"group-page-link-for": "%1 üçün qrup səhifəsi linki",
"show-crossposts": "Show Cross-posts"
"group-page-link-for": "%1 üçün qrup səhifəsi linki"
}

View File

@@ -1,13 +1,12 @@
{
"category": "Kateqoriya",
"subcategories": "Alt kateqoriyalar",
"uncategorized": "World",
"uncategorized.description": "Topics from outside of this forum. Views and opinions represented here may not reflect those of this forum and its members.",
"uncategorized": "Kateqoriyasız",
"uncategorized.description": "Mövcud kateqoriyalara tam uyğun gəlməyən mövzular",
"handle.description": "Bu kateqoriya açıq sosial şəbəkədən %1 idarəsi vasitəsilə izlənilə bilər",
"new-topic-button": "Yeni mövzu",
"guest-login-post": "Yazmaq üçün daxil ol",
"no-topics": "Bu kateqoriyada heç bir mövzu yoxdur. Niyə birini dərc etməyə cəhd etmirsiz?",
"no-followers": "Nobody on this website is tracking or watching this category. Track or watch this category in order to begin receiving updates.",
"browsing": "gözdən keçirmə",
"no-replies": "Heç kim cavab yazmayıb",
"no-new-posts": "Yeni yazı yoxdur.",

View File

@@ -3,7 +3,6 @@
"invalid-json": "Yanlış JSON",
"wrong-parameter-type": "`%1` mülkiyyəti üçün %3 növünün dəyəri gözlənilən idi, lakin bunun əvəzinə %2 alındı",
"required-parameters-missing": "Bu API çağırışında tələb olunan parametrlər yoxdur: %1",
"reserved-ip-address": "Network requests to reserved IP ranges are not allowed.",
"not-logged-in": "Siz hesaba daxil olmamısınız.",
"account-locked": "Hesabınız müvəqqəti olaraq bloklanıb",
"search-requires-login": "Axtarış üçün hesab tələb olunur - zəhmət olmasa daxil olun və ya qeydiyyatdan keçin.",
@@ -68,8 +67,8 @@
"no-chat-room": "Söhbət otağı mövcud deyil",
"no-privileges": "Bu əməliyyat üçün kifayət qədər imtiyazınız yoxdur.",
"category-disabled": "Kateqoriya deaktiv edilib",
"post-deleted": "Yazı silindi",
"topic-locked": "Mövzu kilidləndi",
"post-deleted": "Post deleted",
"topic-locked": "Topic locked",
"post-edit-duration-expired": "Sizə yazıları dərc etdikdən sonra yalnız %1 saniyə ərzində redaktə etmək icazəsi verilir",
"post-edit-duration-expired-minutes": "Paylaşdıqdan sonra yalnız %1 dəqiqə ərzində yazıları redaktə etmək icazəniz var",
"post-edit-duration-expired-minutes-seconds": "Göndərdikdən sonra yalnız %1 dəqiqə %2 saniyə ərzində yazıları redaktə etməyə icazəniz var",
@@ -147,7 +146,6 @@
"post-already-restored": "Bu yazı artıq bərpa olunub",
"topic-already-deleted": "Bu mövzu artıq silinib",
"topic-already-restored": "Bu mövzu artıq bərpa olunub",
"topic-already-crossposted": "This topic has already been cross-posted there.",
"cant-purge-main-post": "Siz əsas yazını silə bilməzsiniz, lütfən, əvəzinə mövzunu silin",
"topic-thumbnails-are-disabled": "Mövzu kiçik şəkilləri deaktiv edilib.",
"invalid-file": "Etibarsız fayl",
@@ -156,8 +154,6 @@
"about-me-too-long": "Üzr istəyirik, mənim haqqımda %1 simvoldan uzun ola bilməz.",
"cant-chat-with-yourself": "Özünüzlə söhbət edə bilməzsiniz!",
"chat-restricted": "Bu istifadəçi söhbət mesajlarını məhdudlaşdırıb. Siz onlarla söhbət etməzdən əvvəl onlar sizi izləməlidirlər",
"chat-allow-list-user-already-added": "This user is already in your allow list",
"chat-deny-list-user-already-added": "This user is already in your deny list",
"chat-user-blocked": "Siz bu istifadəçi tərəfindən bloklanmısınız.",
"chat-disabled": "Söhbət sistemi deaktiv edilib",
"too-many-messages": "Həddən artıq çox mesaj göndərmisiniz, bir az gözləyin,",
@@ -229,7 +225,6 @@
"no-topics-selected": "Mövzu seçilməyib!",
"cant-move-to-same-topic": "Yazı eyni mövzuya köçürülə bilməz!",
"cant-move-topic-to-same-category": "Mövzunu eyni kateqoriyaya köçürmək mümkün deyil!",
"cant-move-topic-to-from-remote-categories": "You cannot move topics in or out of remote categories; consider cross-posting instead.",
"cannot-block-self": "Özünüzü bloklaya bilməzsiniz!",
"cannot-block-privileged": "Siz administratorları və ya qlobal moderatorları bloklaya bilməzsiniz",
"cannot-block-guest": "Qonaq digər istifadəçiləri bloklaya bilməz",
@@ -239,7 +234,6 @@
"socket-reconnect-failed": "Hazırda serverə daxil olmaq mümkün deyil. Yenidən cəhd etmək üçün bura klikləyin və ya daha sonra yenidən cəhd edin",
"invalid-plugin-id": "Yanlış plagin identifikatoru",
"plugin-not-whitelisted": "Plugini quraşdırmaq mümkün deyil &ndash; yalnız NodeBB Paket Meneceri tərəfindən ağ siyahıya alınmış plaginlər ACP vasitəsilə quraşdırıla bilər",
"cannot-toggle-system-plugin": "You cannot toggle the state of a system plugin",
"plugin-installation-via-acp-disabled": "ACP vasitəsilə plagin quraşdırılması deaktiv edilib",
"plugins-set-in-configuration": "Sizə plagin vəziyyətini dəyişdirmək icazəsi verilmir, çünki onlar icra zamanı təyin olunur (config.json, ətraf mühit dəyişənləri və ya terminal arqumentləri), lütfən, bunun əvəzinə konfiqurasiyanı dəyişdirin.",
"theme-not-set-in-configuration": "Konfiqurasiyada aktiv plaginləri təyin edərkən, mövzuların dəyişdirilməsi ACP-də yeniləmədən əvvəl yeni mövzunun aktiv plaginlərin siyahısına əlavə edilməsini tələb edir.",
@@ -252,7 +246,6 @@
"api.401": "Düzgün giriş sessiyası tapılmadı. Daxil olun və yenidən cəhd edin.",
"api.403": "Bu zəng etmək səlahiyyətiniz yoxdur",
"api.404": "Yanlış API çağırışı",
"api.413": "The request payload is too large",
"api.426": "Api-yə sorğular üçün HTTPS tələb olunur, xahiş edirik sorğunuzu HTTPS vasitəsilə yenidən göndərin",
"api.429": "Həddindən artıq sorğu göndərmisiniz, lütfən, biraz sonra yenidən cəhd edin",
"api.500": "Sorğunuza xidmət göstərməyə cəhd edərkən gözlənilməz xəta ilə qarşılaşdı.",

View File

@@ -68,7 +68,6 @@
"users": "İstifadəçilər",
"topics": "Mövzu",
"posts": "Yazı",
"crossposts": "Cross-posts",
"x-posts": "<span class=\"formatted-number\">%1</span> yazı",
"x-topics": "<span class=\"formatted-number\">%1</span> mövzu",
"x-reputation": "<span class=\"formatted-number\">%1</span> reputasiya",
@@ -83,7 +82,6 @@
"downvoted": "Mənfi səs verildi",
"views": "Baxış",
"posters": "Yazarlar",
"watching": "İzlənilir",
"reputation": "Reputasiya",
"lastpost": "Son yazı",
"firstpost": "İlk yazı",

View File

@@ -1,9 +1,7 @@
{
"group": "Group",
"all-groups": "Bütün qruplar",
"groups": "Qruplar",
"members": "Üzvlər",
"x-members": "%1 member(s)",
"view-group": "Qrupa bax",
"owner": "Qrup sahibi",
"new-group": "Yeni qrup yarat",

View File

@@ -48,7 +48,6 @@
"chat.add-user": "İstifadəçi əlavə et",
"chat.notification-settings": "Bildiriş parametrləri",
"chat.default-notification-setting": "Defolt bildiriş parametri",
"chat.join-leave-messages": "Join/Leave Messages",
"chat.notification-setting-room-default": "Defolt otaq",
"chat.notification-setting-none": "Bildiriş yoxdur",
"chat.notification-setting-at-mention-only": "yalnız @qeyd",
@@ -82,7 +81,7 @@
"composer.hide-preview": "Önizləməni gizlət",
"composer.help": "Yardım",
"composer.user-said-in": "%1 %2-də dedi:",
"composer.user-said": "%1 [said](%2):",
"composer.user-said": "%1 dedi:",
"composer.discard": "Bu yazını silmək istədiyinizə əminsiniz?",
"composer.submit-and-lock": "Göndər və kilidlə",
"composer.toggle-dropdown": "Açılan menyunu dəyiş",

View File

@@ -22,7 +22,7 @@
"upvote": "Müsbət səslər",
"awards": "Mükafatlar",
"new-flags": "Yeni bayraqlar",
"my-flags": "My Flags",
"my-flags": "Mənə təyin olunmuş bayraqlar",
"bans": "Qadağalar",
"new-message-from": "%1-dən yeni mesaj",
"new-messages-from": "<strong>%2</strong>-dən %1 yeni mesaj",
@@ -32,31 +32,31 @@
"user-posted-in-public-room-dual": "<strong>%1</strong> və <strong>%2</strong> <strong class=\"text-nowrap\"><i class=\"fa %3\"></i>%4</strong>-də yazdı",
"user-posted-in-public-room-triple": "<strong>%1</strong>, <strong>%2</strong> və <strong>%3</strong> <strong class=\"text-nowrap\"><i class=\"fa %4\"></i>%5</strong> ilə yazır",
"user-posted-in-public-room-multiple": "<strong>%1</strong>, <strong>%2</strong> və %3 digərləri <strong class=\"text-nowrap\"><i class=\"fa %4\"></i>%5</strong>-də yazıblar",
"upvoted-your-post-in": "<strong>%1</strong> upvoted your post in <strong>%2</strong>",
"upvoted-your-post-in-dual": "<strong>%1</strong> and <strong>%2</strong> upvoted your post in <strong>%3</strong>",
"upvoted-your-post-in-triple": "<strong>%1</strong>, <strong>%2</strong> and <strong>%3</strong> upvoted your post in <strong>%4</strong>",
"upvoted-your-post-in-multiple": "<strong>%1</strong>, <strong>%2</strong> and %3 others upvoted your post in <strong>%4</strong>.",
"upvoted-your-post-in": "<strong>%1</strong>, <strong>%2</strong>-də yazınıza müsbət səs verdi.",
"upvoted-your-post-in-dual": "<strong>%1</strong> <strong>%2</strong> <strong>%3</strong>-də yazınıza müsbət səs verdi.",
"upvoted-your-post-in-triple": "<strong>%1</strong>, <strong>%2</strong> <strong>%3</strong> <strong>%4</strong>-də yazınıza müsbət səs verdi.",
"upvoted-your-post-in-multiple": "<strong>%1</strong>, <strong>%2</strong> %3 digərləri <strong>%4</strong>-də yazınıza müsbət səs verdilər.",
"moved-your-post": "<strong>%1</strong> yazınızı <strong>%2</strong>-ə köçürdü",
"moved-your-topic": "<strong>%1</strong> <strong>%2</strong>-ni köçürdü",
"user-flagged-post-in": "<strong>%1</strong> flagged a post in <strong>%2</strong>",
"user-flagged-post-in-dual": "<strong>%1</strong> and <strong>%2</strong> flagged a post in <strong>%3</strong>",
"user-flagged-post-in-triple": "<strong>%1</strong>, <strong>%2</strong> and <strong>%3</strong> flagged a post in <strong>%4</strong>",
"user-flagged-post-in-multiple": "<strong>%1</strong>, <strong>%2</strong> and %3 others flagged a post in <strong>%4</strong>",
"user-flagged-post-in": "<strong>%1</strong>, <strong>%2</strong>-də yazını qeyd etdi",
"user-flagged-post-in-dual": "<strong>%1</strong> <strong>%2</strong> yazını <strong>%3</strong>-də qeyd etdi",
"user-flagged-post-in-triple": "<strong>%1</strong>, <strong>%2</strong> <strong>%3</strong> <strong>%4</strong>-də postu qeyd etdi",
"user-flagged-post-in-multiple": "<strong>%1</strong>, <strong>%2</strong> %3 başqaları <strong>%4</strong>-də yazını işarələdi",
"user-flagged-user": "<strong>% 1</strong> istifadəçi profilini işarələdi (%2)",
"user-flagged-user-dual": "<strong>%1</strong> və <strong>%2</strong> istifadəçi profilini qeyd etdi (%3)",
"user-flagged-user-triple": "<strong>%1</strong>, <strong>%2</strong> və <strong>%3</strong> istifadəçi profilini qeyd etdi (%4)",
"user-flagged-user-multiple": "<strong>%1</strong>, <strong>%2</strong> və digər %3 digər istifadəçi profilini qeyd etdi (%4)",
"user-posted-to": "<strong>%1</strong> posted a reply in <strong>%2</strong>",
"user-posted-to-dual": "<strong>%1</strong> and <strong>%2</strong> replied in <strong>%3</strong>",
"user-posted-to-triple": "<strong>%1</strong>, <strong>%2</strong> and <strong>%3</strong> replied in <strong>%4</strong>",
"user-posted-to-multiple": "<strong>%1</strong>, <strong>%2</strong> and %3 others replied in <strong>%4</strong>",
"user-posted-topic": "<strong>%1</strong> posted <strong>%2</strong>",
"user-edited-post": "<strong>%1</strong> edited a post in <strong>%2</strong>",
"user-posted-topic-with-tag": "<strong>%1</strong> posted <strong>%2</strong> (tagged %3)",
"user-posted-topic-with-tag-dual": "<strong>%1</strong> posted <strong>%2</strong> (tagged %3 and %4)",
"user-posted-topic-with-tag-triple": "<strong>%1</strong> posted <strong>%2</strong> (tagged %3, %4, and %5)",
"user-posted-topic-with-tag-multiple": "<strong>%1</strong> posted <strong>%2</strong> (tagged %3)",
"user-posted-topic-in-category": "<strong>%1</strong> posted <strong>%2</strong> in <strong>%3</strong>",
"user-posted-to": "<strong>%1</strong> cavab yazdı: <strong>%2</strong>",
"user-posted-to-dual": "<strong>%1</strong> <strong>%2</strong> cavablar göndərdi: <strong>%3</strong>",
"user-posted-to-triple": "<strong>%1</strong>, <strong>%2</strong> <strong>%3</strong> cavablar göndərdi: <strong>%4</strong>",
"user-posted-to-multiple": "<strong>%1</strong>, <strong>%2</strong> %3 başqaları cavab yazmışdır: <strong>%4</strong>",
"user-posted-topic": "<strong>%1</strong> yeni mövzu yerləşdirdi: <strong>%2</strong>",
"user-edited-post": "<strong>%1</strong> <strong>%2</strong>-də yazını redaktə etdi",
"user-posted-topic-with-tag": "<strong>%1</strong>, <strong>%2</strong>-ni dərc etdi (%3 ilə taq edilib)",
"user-posted-topic-with-tag-dual": "<strong>%1</strong> paylaşdı <strong>%2</strong> (%3 və %4 təqli)",
"user-posted-topic-with-tag-triple": "<strong>%1</strong> paylaşdı <strong>%2</strong> (teqli %3, %4 %5)",
"user-posted-topic-with-tag-multiple": "<strong>%1</strong>, <strong>%2</strong>-ni dərc etdi (%3 ilə işarələnmiş)",
"user-posted-topic-in-category": "<strong>%1</strong> <strong>%2</strong>-də yeni mövzu yerləşdirdi",
"user-started-following-you": "<strong>%1</strong> sizi izləməyə başladı.",
"user-started-following-you-dual": "<strong>%1</strong> və <strong>%2</strong> sizi izləməyə başladı.",
"user-started-following-you-triple": "<strong>%1</strong>, <strong>%2</strong> və <strong>%3</strong> sizi izləməyə başladı.",
@@ -71,11 +71,11 @@
"users-csv-exported": "İstifadəçilər csv faylına ixrac edildi, yükləmək üçün klikləyin",
"post-queue-accepted": "Növbəyə qoyduğunuz yazı qəbul edildi. Yazınıza baxmaq üçün bura klikləyin.",
"post-queue-rejected": "Növbəyə qoyduğunuz yazı rədd edildi.",
"post-queue-rejected-for-reason": "Your queued post has been rejected for the following reason: \"%1\"",
"post-queue-notify": "Queued post received a notification: \"%1\"",
"post-queue-notify": "Növbəyə qoyulmuş yazı bildiriş aldı:<br/>\"% 1\"",
"email-confirmed": "E-poçt təsdiqləndi",
"email-confirmed-message": "E-poçtunuzu təsdiq etdiyiniz üçün təşəkkür edirik. Artıq hesabınız tam aktivləşdirilib.",
"email-confirm-error-message": "E-poçt ünvanınızı təsdiqkləyərkən problem baş verdi. Ola bilsin ki, kod etibarsız olub və ya vaxtı keçib.",
"email-confirm-error-message-already-validated": "E-poçt ünvanınız artıq təsdiqlənib.",
"email-confirm-sent": "Təsdiq e-poçtu göndərildi.",
"none": "Heç biri",
"notification-only": "Yalnız bildiriş",

View File

@@ -8,7 +8,5 @@
"log-in-with-facebook": "Facebook ilə daxil olun",
"continue-with-facebook": "Facebook ilə davam edin",
"sign-in-with-linkedin": "LinkedIn ilə daxil olun",
"sign-up-with-linkedin": "LinkedIn ilə qeydiyyatdan keç",
"sign-in-with-wordpress": "Sign in with WordPress",
"sign-up-with-wordpress": "Sign up with WordPress"
"sign-up-with-linkedin": "LinkedIn ilə qeydiyyatdan keç"
}

View File

@@ -1,8 +1,6 @@
{
"theme-name": "Harmony Theme",
"skins": "Örtüklər",
"light": "Light",
"dark": "Dark",
"collapse": "Yığmaq",
"expand": "Açmaq",
"sidebar-toggle": "Yan panel aç/bağla",

View File

@@ -69,8 +69,6 @@
"user-referenced-topic-on": "%1 %3-də bu mövzuya <a href=\"%2\">istinad etdi</a>",
"user-forked-topic-ago": "%1 bu mövzunu <a href=\"%2\">nüsxələdi</a> %3",
"user-forked-topic-on": "%1 bu mövzunu %3-də <a href=\"%2\">nüsxələdi</a>",
"user-crossposted-topic-ago": "%1 crossposted this topic to %2 %3",
"user-crossposted-topic-on": "%1 crossposted this topicto %2 on %3",
"bookmark-instructions": "Bu mövzuda son oxunmuş yazıya qayıtmaq üçün bura klikləyin.",
"flag-post": "Bu postu işarələ",
"flag-user": "Bu istifadəçini qeyd et",
@@ -105,7 +103,6 @@
"thread-tools.lock": "Mövzunu kilidlə",
"thread-tools.unlock": "Mövzunun kilidini aç",
"thread-tools.move": "Mövzunu köçür",
"thread-tools.crosspost": "Crosspost Topic",
"thread-tools.move-posts": "Yazıları köçür",
"thread-tools.move-all": "Hamısını köçür",
"thread-tools.change-owner": "Sahibini dəyiş",
@@ -135,7 +132,6 @@
"pin-modal-help": "Siz istəyə görə burada bərkidilmiş mövzu(lar) üçün bitmə tarixi təyin edə bilərsiniz. Alternativ olaraq, mövzu əl ilə çıxarılana qədər bərkidilmiş vəziyyətdə qalması üçün bu sahəni boş qoya bilərsiniz.",
"load-categories": "Kateqoriyalar yüklənir",
"confirm-move": "Köçür",
"confirm-crosspost": "Cross-post",
"confirm-fork": "Kopyala",
"bookmark": "Əlfəcin",
"bookmarks": "Əlfəcinlər",
@@ -145,7 +141,6 @@
"loading-more-posts": "Daha çox yazı yüklə",
"move-topic": "Mövzunu köçür",
"move-topics": "Mövzuları köçür",
"crosspost-topic": "Cross-post Topic",
"move-post": "Yazını köçür",
"post-moved": "Yazı köçürüldü!",
"fork-topic": "Mövzu kopyala",
@@ -168,9 +163,6 @@
"move-topic-instruction": "Hədəf kateqoriyasını seçin və sonra köçürmə düyməsini sıxın",
"change-owner-instruction": "Başqa istifadəçiyə təyin etmək istədiyiniz yazıların üzərinə klikləyin",
"manage-editors-instruction": "Aşağıda bu yazını redaktə edə biləcək istifadəçiləri idarə edin.",
"crossposts.instructions": "Select one or more categories to cross-post to. Topic(s) will be accessible from the original category and all cross-posted categories.",
"crossposts.listing": "This topic has been cross-posted to the following local categories:",
"crossposts.none": "This topic has not been cross-posted to any additional categories",
"composer.title-placeholder": "Mövzunuzu bura daxil edin...",
"composer.handle-placeholder": "Buraya adınızı/dəstəklərinizi daxil edin",
"composer.hide": "Gizlət",
@@ -182,7 +174,6 @@
"composer.replying-to": "%1 cavab verilir",
"composer.new-topic": "Yeni mövzu",
"composer.editing-in": "%1-də yazı redaktə edilir",
"composer.untitled-topic": "Untitled Topic",
"composer.uploading": "yüklənir...",
"composer.thumb-url-label": "Mövzuya kiçik şəkli URL kimi yerləşdir",
"composer.thumb-title": "Bu mövzuya kiçik şəkil əlavə et",
@@ -233,8 +224,5 @@
"unread-posts-link": "Oxunmamış yazıların linki",
"thumb-image": "Mövzunun kiçik şəkli",
"announcers": "Paylaşımlar",
"announcers-x": "Paylaşımlar (%1)",
"guest-cta.title": "Hello! It looks like you're interested in this conversation, but you don't have an account yet.",
"guest-cta.message": "Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.",
"guest-cta.closing": "With your input, this post could be even better 💗"
"announcers-x": "Paylaşımlar (%1)"
}

View File

@@ -105,10 +105,6 @@
"show-email": "E-poçtumu göstər",
"show-fullname": "Tam adımı göstərin",
"restrict-chats": "Yalnız izlədiyim istifadəçilərdən gələn söhbət mesajlarına icazə verin",
"disable-incoming-chats": "Disable incoming chat messages <a data-bs-toggle=\"tooltip\" href=\"#\" title=\"Admins and moderators can still send you messages\"><i class=\"fa-solid fa-circle-info\"></i></a>",
"chat-allow-list": "Allow chat messages from the following users",
"chat-deny-list": "Deny chat messages from the following users",
"chat-list-add-user": "Add user",
"digest-label": "Digest-ə abunə ol",
"digest-description": "Müəyyən edilmiş cədvələ uyğun olaraq bu forum üçün e-poçt yeniləmələrinə (yeni bildirişlər və mövzular) abunə olun",
"digest-off": "Söndür",

View File

@@ -1,12 +1,7 @@
{
"name": "Dünya",
"latest": "Latest",
"popular-day": "Popular (Day)",
"popular-week": "Popular (Week)",
"popular-month": "Popular (Month)",
"popular-year": "Popular (Year)",
"popular-alltime": "Popular (All Time)",
"recent": "All",
"popular": "Populyar mövzular",
"recent": "Bütün mövzular",
"help": "Yardım",
"help.title": "Bu səhifə nədir?",
@@ -19,7 +14,5 @@
"onboard.title": "Sizin fediverse pəncərəniz...",
"onboard.what": "Bu, yalnız bu forumdan kənarda tapılan məzmundan ibarət sizin fərdiləşdirilmiş kateqoriyanızdır. Bu səhifədə nəyinsə görünüb-göstərilməməsi onları izlədiyinizdən və ya həmin postun izlədiyiniz biri tərəfindən paylaşılıb-paylaşılmamasından asılıdır.",
"onboard.why": "Bu forumdan kənarda gedən çox şey var və bunların heç də hamısı maraqlarınıza uyğun deyil. Buna görə də insanları izləmək, kimdənsə daha çox görmək istədiyinizi bildirməyin ən yaxşı yoludur.",
"onboard.how": "Bu arada, bu forumun daha nələr haqqında bildiyini görmək üçün yuxarıdakı qısayol düymələrinə klikləyə və bəzi yeni məzmunlar kəşf etməyə başlaya bilərsiniz!",
"category-search": "Find a category..."
"onboard.how": "Bu arada, bu forumun daha nələr haqqında bildiyini görmək üçün yuxarıdakı qısayol düymələrinə klikləyə və bəzi yeni məzmunlar kəşf etməyə başlaya bilərsiniz!"
}

View File

@@ -1,5 +1,9 @@
{
"cache": "Кеш",
"post-cache": "Кеш за публикации",
"group-cache": "Кеш за групи",
"local-cache": "Локален кеш",
"object-cache": "Кеш за обекти",
"percent-full": "Запълненост: %1%",
"post-cache-size": "Размер на кеша за публикации",
"items-in-cache": "Елементи в кеша"

View File

@@ -75,7 +75,6 @@
"graphs.page-views-registered": "Преглеждания на страниците от регистрирани потребители",
"graphs.page-views-guest": "Преглеждания на страниците от гости",
"graphs.page-views-bot": "Преглеждания на страниците от ботове",
"graphs.page-views-ap": "Преглеждания на страницата от ActivityPub",
"graphs.unique-visitors": "Уникални посетители",
"graphs.registered-users": "Регистрирани потребители",
"graphs.guest-users": "Гости",

View File

@@ -8,7 +8,7 @@
"nodejs": "nodejs",
"online": "на линия",
"git": "git",
"process-memory": "rss/heap used",
"process-memory": "памет на процеса",
"system-memory": "системна памет",
"used-memory-process": "Използвана памет от процеса",
"used-memory-os": "Използвана системна памет",

View File

@@ -1,22 +1,18 @@
{
"manage-categories": "Управление на категориите",
"add-category": "Добавяне на категория",
"add-local-category": "Добавяне на локална категория",
"add-remote-category": "Добавяне на отдалечена категория",
"remove": "Премахване",
"rename": "Преименуване",
"jump-to": "Прехвърляне към…",
"settings": "Настройки на категорията",
"edit-category": "Редактиране на категорията",
"privileges": "Правомощия",
"back-to-categories": "Назад към категориите",
"id": "Идентификатор на категорията",
"name": "Име на категорията",
"handle": "Идентификатор на категорията",
"handle.help": "Идентификаторът на категорията се ползва за представяне на тази категория в други мрежи, подобно на потребителското име. Този идентификатор не трябва да съвпада със съществуващо потребителско име или потребителска група.",
"description": "Описание на категорията",
"topic-template": "Шаблон за темите",
"topic-template.help": "Създайте шаблон за новите теми в тази категория.",
"federatedDescription": "Федерирано описание",
"federatedDescription.help": "Този текст ще бъде добавен към описанието на категорията, когато други уеб сайтове и приложения изискват информация за нея.",
"federatedDescription.default": "Това е категория във форума, съдържаща тематични дискусии. Може да започнете нова дискусия, като споменете този форум.",
"bg-color": "Цвят на фона",
"text-color": "Цвят на текста",
"bg-image-size": "Размер на фоновото изображение",
@@ -107,11 +103,6 @@
"alert.create-success": "Категорията е създадена успешно!",
"alert.none-active": "Нямате активни категории.",
"alert.create": "Създаване на категория",
"alert.add": "Добавяне на категория",
"alert.add-help": "Отдалечена категория може да бъде добавена в списъка с категории, като посочите нейния идентификатор.<br /><br /><strong>Забележка</strong> отдалечената категория може да не отразява всички публикувани теми, освен ако поне един локален потребител не я следи/наблюдава.",
"alert.rename": "Преименуване на отдалечена категория",
"alert.rename-help": "Въведете новото име за тази категория. Оставете празно, за да върнете оригиналното име.",
"alert.confirm-remove": "Наистина ли искате да премахнете тази категория? Можете да я добавите отново по всяко време.",
"alert.confirm-purge": "<p class=\"lead\">Наистина ли искате да изтриете категорията „%1“?</p><h5><strong class=\"text-danger\">Внимание!</strong> Всички теми и публикации в тази категория ще бъдат изтрити!</h5> <p class=\"help-block\">Изтриването на категорията ще премахне всички теми и публикации, и ще изтрие категорията от базата данни. Ако искате да премахнете категорията <em>временно</em>, можете просто да я „изключите“.</p>",
"alert.purge-success": "Категорията е изтрита!",
"alert.copy-success": "Настройките са копирани!",

View File

@@ -1,16 +0,0 @@
{
"title": "Manage Custom Reasons",
"create-reason": "Create Reason",
"edit-reason": "Edit Reason",
"reasons-help": "Reasons are predefined explanations used when banning or muting users, or when rejecting posts in the post queue.",
"reason-title": "Title",
"reason-type": "Type",
"reason-body": "Body",
"reason-all": "All",
"reason-ban": "Ban",
"reason-mute": "Mute",
"reason-post-queue": "Post Queue",
"reason-type-help": "The type of action this reason applies to. If 'All' is selected, this reason will be available for all action types.",
"custom-reasons-saved": "Custom reasons saved successfully",
"delete-reason-confirm-x": "Are you sure you want to delete the custom reason with the title <strong>%1</strong>?"
}

View File

@@ -29,7 +29,6 @@
"access-topics": "Достъп до теми",
"create-topics": "Създаване на теми",
"reply-to-topics": "Отговаряне в теми",
"crosspost-topics": "Cross-post Topics",
"schedule-topics": "Насрочване на теми",
"tag-topics": "Поставяне на етикети на теми",
"edit-posts": "Редактиране на публикации",

View File

@@ -23,7 +23,6 @@
"purge": "Изтриване на <strong>потребителя/ите</strong> и <strong>съдържанието</strong>",
"download-csv": "Сваляне във формат „CSV“",
"custom-user-fields": "Персонализирани потребителски полета",
"custom-reasons": "Custom Reasons",
"manage-groups": "Управление на групите",
"set-reputation": "Задаване на репутация",
"add-group": "Добавяне на група",
@@ -78,11 +77,9 @@
"temp-ban.length": "Продължителност",
"temp-ban.reason": "Причина <span class=\"text-muted\">(незадължително)</span>",
"temp-ban.select-reason": "Select a reason",
"temp-ban.hours": "Часове",
"temp-ban.days": "Дни",
"temp-ban.explanation": "Въведете продължителността на блокирането. Стойност от 0 ще направи блокирането за постоянно.",
"temp-mute.explanation": "Enter the length of time for the mute. Note that a time of 0 will be a considered a permanent mute.",
"alerts.confirm-ban": "Наистина ли искате да блокирате този потребител <strong>за постоянно</strong>?",
"alerts.confirm-ban-multi": "Наистина ли искате да блокирате тези потребители <strong>за постоянно</strong>?",

View File

@@ -18,28 +18,6 @@
"probe-timeout": "Време за изчакване на проверката (милисекунди)",
"probe-timeout-help": "(По подразбиране: 2000) Ако проверката не получи отговор в рамките на зададеното време, потребителят ще бъде изпратен директно на адреса на връзката. Задайте по-голямо число, ако уеб сайтовете отговарят по-бавно и искате да им дадете повече време.",
"rules": "Категоризиране",
"rules-intro": "Съдържанието открито чрез ActivityPub може да бъде категоризирано автоматично следвайки определени правила (например дума отбелязана с диез)",
"rules.modal.title": "Как работи това",
"rules.modal.instructions": "Цялото входящо съдържание се проверява спрямо правилата и ако има съвпадения те се преместват в избраната категория.<br /><br /><strong>Забележка</strong> Съдържанието, което вече е категоризирано (например в отдалечена категория) няма да преминава тези проверки.",
"rules.add": "Добавяне на ново правило",
"rules.help-hashtag": "Ще се търсят съвпадения с теми съдържащи тази дума с диез (не се прави разлика между главни и малки букви). Не въвеждайте знака <code>#</code>",
"rules.help-user": "Ще се търсят теми създадени от този потребител. Въведете псевдоним или пълен идентификатор (например <code>bob@example.org</code> или <code>https://example.org/users/bob</code>.",
"rules.type": "Тип",
"rules.value": "Стойност",
"rules.cid": "Категория",
"relays": "Препредавател",
"relays.intro": "Препредавателят подобрява отриването на съдържание за и от Вашият NodeBB. Абонирането за препредавател означава, че съдържанието получено от него ще бъде препредавано тук, а съдържанието публикувано тук, ще бъде излъчвано от него за останалите.",
"relays.warning": "Забележка: препредавателите могат да доставят огромно количество трафик, което може да увеличи разходите Ви за съхранение и обработка.",
"relays.litepub": "NodeBB използва стандарт за препредаване в стила на LitePub. Адресът, който въведете тук, трябва да завършва с <code>/actor</code>.",
"relays.add": "Добавяне на нов препредавател",
"relays.relay": "Препредавател",
"relays.state": "Състояние",
"relays.state-0": "В изчакване",
"relays.state-1": "Само приемане",
"relays.state-2": "Активен",
"server-filtering": "Филтриране",
"count": "Този NodeBB в момента знае за наличието на <strong>%1</strong> сървър(а)",
"server.filter-help": "Посочете сървърите, с които не искате Вашият NodeBB да осъществява връзка. Или можете вместо това да посочите конкретни сървъри, с които <em>разрешавате</em> връзката. И двете възможности са налични, но може да изберете само една от тях.",

View File

@@ -10,6 +10,8 @@
"max-chat-room-name-length": "Максимална дължина на имената на стаи за разговори",
"max-room-size": "Максимален брой потребители в стая за разговор",
"delay": "Време между съобщенията в разговорите (мсек)",
"notification-delay": "Забавяне преди известяване за съобщения в разговорите",
"notification-delay-help": "Допълнителните съобщения, изпратени в рамките на това време, се комбинират, и потребителят получава по едно известие за всеки такъв период на забавяне. Задайте стойност 0, за да изключите забавянето.",
"restrictions.seconds-edit-after": "Брой секунди, през които съобщенията в разговор могат да бъдат редактирани.",
"restrictions.seconds-delete-after": "Брой секунди, през които съобщенията в разговор могат да бъдат изтрити."
}

View File

@@ -30,20 +30,14 @@
"smtp-transport.pool-help": "Групирането на връзките предотвратява създаването на нова връзка за всяко е-писмо. Тази настройка има ефект, само ако е включено „Транспорт чрез SMTP“.",
"smtp-transport.allow-self-signed": "Разрешаване на самоподписаните сертификатите",
"smtp-transport.allow-self-signed-help": "Включването на тази настройка ще позволи ползването на самоподписани и невалидни сертификати TLS.",
"smtp-transport.test-success": "SMTP Test email sent successfully.",
"template": "Редактирана не шаблона за е-писма",
"template.select": "Изберете шаблон за е-писма",
"template.revert": "Връщане на оригинала",
"test-smtp-settings": "Test SMTP Settings",
"testing": "Проба на е-писмата",
"testing.success": "Test Email Sent.",
"testing.select": "Изберете шаблон за е-писма",
"testing.send": "Изпращане на пробно е-писмо",
"testing.send-help-plugin": "<strong>\"%1\"</strong> will be used to send test emails.",
"testing.send-help-smtp": "SMTP transport is enabled and will be used to send emails.",
"testing.send-help-no-plugin": "No emailer plugin is installed to send emails, nodemailer will be used by default.",
"testing.send-help": "The test email will be sent to the currently logged in user's email address using the saved settings on this page. ",
"testing.send-help": "Пробното е-писмо ще бъде изпратено до е-пощата на текущо вписания потребител.",
"subscriptions": "Резюмета по е-поща",
"subscriptions.disable": "Изключване на резюметата по е-пощата",
"subscriptions.hour": "Време за разпращане",

View File

@@ -3,7 +3,5 @@
"welcome-notification": "Приветствено известие",
"welcome-notification-link": "Връзка за приветственото известие",
"welcome-notification-uid": "Потр. ид. за приветственото известие",
"post-queue-notification-uid": "Потр. ид. за опашката с публикации",
"notification-delay": "Delay for sending notification emails (seconds)",
"notification-delay-help": "If the user has read the notification within this time, the email will not be sent.<br/>Default: 60 seconds."
"post-queue-notification-uid": "Потр. ид. за опашката с публикации"
}

View File

@@ -21,13 +21,7 @@
"reject-image-width-help": "Изображенията, чиято ширина е по-голяма от тази стойност, ще бъдат отхвърляни.",
"reject-image-height": "Максимална височина на изображенията (в пиксели)",
"reject-image-height-help": "Изображенията, чиято височина е по-голяма от тази стойност, ще бъдат отхвърляни.",
"convert-pasted-images-to": "Convert pasted images to:",
"convert-pasted-images-to-default": "No Conversion (Keep Original Format)",
"convert-pasted-images-to-png": "PNG",
"convert-pasted-images-to-jpeg": "JPEG",
"convert-pasted-images-to-webp": "WebP",
"allow-topic-thumbnails": "Позволяване на потребителите да качват миниатюрни изображения за темите",
"show-post-uploads-as-thumbnails": "Показване на качените файлове в публикациите като миниатюрни изображения",
"topic-thumb-size": "Размер на миниатюрите за темите",
"allowed-file-extensions": "Разрешени файлови разширения",
"allowed-file-extensions-help": "Въведете файловите разширения, разделени със запетаи (пример: <code>pdf,xls,doc</code>). Ако списъкът е празен, всички файлови разширения ще бъдат разрешени.",

View File

@@ -64,7 +64,6 @@
"show-email": "Показване на е-пощата",
"show-fullname": "Показване на пълното име",
"restrict-chat": "Разрешаване на съобщенията само от потребители, които следвам",
"disable-incoming-chats": "Забраняване на входящите съобщения",
"outgoing-new-tab": "Отваряне на външните връзки в нов подпрозорец",
"topic-search": "Включване на търсенето в темите",
"update-url-with-post-index": "Обновяване на адресната лента с номера на публикацията по време на разглеждане на темите",

View File

@@ -5,7 +5,6 @@
"disable-rss-feeds": "Изключване на емисиите чрез RSS",
"disable-sitemap-xml": "Изключване на картата на уеб сайта („Sitemap.xml“)",
"sitemap-topics": "Брой теми за показване в картата на уеб сайта",
"sitemap-cache-duration-hours": "Sitemap Cache Duration (hours)",
"clear-sitemap-cache": "Изчистване на кеша на картата на уеб сайта",
"view-sitemap": "Преглед на картата на уеб сайта"
}

View File

@@ -5,6 +5,5 @@
"profile-page-for": "Профилна страница за потребителя %1",
"user-watched-tags": "Наблюдавани от потребителя етикети",
"delete-upload-button": "Бутон за изтриване на каченото",
"group-page-link-for": "Връзка към груповата страница за %1",
"show-crossposts": "Show Cross-posts"
"group-page-link-for": "Връзка към груповата страница за %1"
}

View File

@@ -1,13 +1,12 @@
{
"category": "Категория",
"subcategories": "Подкатегории",
"uncategorized": "World",
"uncategorized.description": "Topics from outside of this forum. Views and opinions represented here may not reflect those of this forum and its members.",
"uncategorized": "Без категория",
"uncategorized.description": "Теми, които не пасват на никоя конкретна категория",
"handle.description": "Тази категория може да бъде последвана от отворената социална мрежа от чрез идентификатора %1",
"new-topic-button": "Нова тема",
"guest-login-post": "Впишете се, за да можете да публикувате",
"no-topics": "<strong>Все още няма теми в тази категория.</strong><br />Защо не създадете някоя?",
"no-followers": "Никой на този уеб сайт не следи или наблюдава тази категория. Започнете да следвате или наблюдавате тази категория, за да получавате известия за нея.",
"browsing": "разглежда",
"no-replies": "Няма отговори",
"no-new-posts": "Няма нови публикации.",

View File

@@ -3,7 +3,6 @@
"invalid-json": "Неправилен JSON",
"wrong-parameter-type": "За свойството `%1` се очакваше стойност от тип %3, но вместо това беше получено %2",
"required-parameters-missing": "Липсват задължителни параметри от това извикване към ППИ: %1",
"reserved-ip-address": "Мрежовите заявки до IP адреси от резервирани области не са позволени.",
"not-logged-in": "Изглежда не сте се вписали в системата.",
"account-locked": "Вашият акаунт беше заключен временно",
"search-requires-login": "Търсенето изисква регистриран акаунт! Моля, впишете се или се регистрирайте!",
@@ -147,7 +146,6 @@
"post-already-restored": "Тази публикация вече е възстановена",
"topic-already-deleted": "Тази тема вече е изтрита",
"topic-already-restored": "Тази тема вече е възстановена",
"topic-already-crossposted": "Тази тема вече е била допълнително публикуване там.",
"cant-purge-main-post": "Не можете да изчистите първоначалната публикация. Моля, вместо това изтрийте темата.",
"topic-thumbnails-are-disabled": "Иконките на темите са изключени.",
"invalid-file": "Грешен файл",
@@ -156,8 +154,6 @@
"about-me-too-long": "Съжаляваме, но информацията за Вас трябва да съдържа не повече от %1 символ(а).",
"cant-chat-with-yourself": "Не можете да пишете съобщение на себе си!",
"chat-restricted": "Този потребител е ограничил съобщенията до себе си. Той трябва първо да Ви последва, преди да можете да си пишете с него.",
"chat-allow-list-user-already-added": "Този потребител вече е в списъка с разрешени",
"chat-deny-list-user-already-added": "Този потребител вече е в списъка със забранени",
"chat-user-blocked": "Бяхте блокиран(а) от този потребител.",
"chat-disabled": "Системата за разговори е изключена",
"too-many-messages": "Изпратили сте твърде много съобщения. Моля, изчакайте малко.",
@@ -229,7 +225,6 @@
"no-topics-selected": "Няма избрани теми!",
"cant-move-to-same-topic": "Публикацията не може да бъде преместена в същата тема!",
"cant-move-topic-to-same-category": "Темата не може да бъде преместена в същата категория!",
"cant-move-topic-to-from-remote-categories": "Не можете да премествате теми в или извън отдалечени категории. Вместо това може да направите допълнителни публикуване",
"cannot-block-self": "Не можете да блокирате себе си!",
"cannot-block-privileged": "Не можете да блокирате администратори и глобални модератори",
"cannot-block-guest": "Гостите не могат да блокират други потребители",
@@ -239,7 +234,6 @@
"socket-reconnect-failed": "В момента сървърът е недостъпен. Натиснете тук, за да опитате отново, или опитайте пак по-късно.",
"invalid-plugin-id": "Грешен идентификатор на добавка",
"plugin-not-whitelisted": "Добавката не може да бъде инсталирана само добавки, одобрени от пакетния мениджър на NodeBB могат да бъдат инсталирани чрез ACP",
"cannot-toggle-system-plugin": "Не можете да превключите състоянието на системна добавка",
"plugin-installation-via-acp-disabled": "Инсталирането на добавки чрез ACP е изключено",
"plugins-set-in-configuration": "Не можете да променяте състоянието на добавката, тъй като то се определя по време на работата ѝ (чрез config.json, променливи на средата или аргументи при изпълнение). Вместо това може да промените конфигурацията.",
"theme-not-set-in-configuration": "Когато определяте активните добавки в конфигурацията, промяната на темите изисква да се добави новата тема към активните добавки, преди актуализирането ѝ в ACP",
@@ -252,7 +246,6 @@
"api.401": "Няма намерена сесия. Моля, впишете се и опитайте отново.",
"api.403": "Нямате право да изпълните тази команда",
"api.404": "Неправилна команда към ППИ",
"api.413": "The request payload is too large",
"api.426": "Заявките към ППИ за писане изискват HTTPS. Изпратете отново заявката си чрез HTTPS",
"api.429": "Направили сте твърде много заявки. Моля, опитайте отново по-късно.",
"api.500": "При обработката на заявката Ви възникна неочаквана грешка.",

View File

@@ -68,7 +68,6 @@
"users": "Потребители",
"topics": "Теми",
"posts": "Публ.",
"crossposts": "Cross-posts",
"x-posts": "<span class=\"formatted-number\">%1</span> публикации",
"x-topics": "<span class=\"formatted-number\">%1</span> теми",
"x-reputation": "<span class=\"formatted-number\">%1</span> репутация",
@@ -83,7 +82,6 @@
"downvoted": "С отрицателни гласове",
"views": "Прегл.",
"posters": "Участници",
"watching": "Наблюдаващи",
"reputation": "Репутация",
"lastpost": "Последна публикация",
"firstpost": "Първа публикация",

View File

@@ -1,9 +1,7 @@
{
"group": "Group",
"all-groups": "Всички групи",
"groups": "Групи",
"members": "Членове",
"x-members": "%1 member(s)",
"view-group": "Преглед на групата",
"owner": "Собственик на групата",
"new-group": "Създаване на нова група",

View File

@@ -48,7 +48,6 @@
"chat.add-user": "Добавяне на потребител",
"chat.notification-settings": "Настройки за известията",
"chat.default-notification-setting": "Стандартни настройки за известията",
"chat.join-leave-messages": "Съобщения за присъединяване/напускане",
"chat.notification-setting-room-default": "По подразбиране за стаята",
"chat.notification-setting-none": "Без известия",
"chat.notification-setting-at-mention-only": "Само @споменавания",
@@ -82,7 +81,7 @@
"composer.hide-preview": "Скриване на прегледа",
"composer.help": "Помощ",
"composer.user-said-in": "%1 каза в %2:",
"composer.user-said": "%1 [said](%2):",
"composer.user-said": "%1 каза:",
"composer.discard": "Наистина ли искате да отхвърлите тази публикация?",
"composer.submit-and-lock": "Публикуване и заключване",
"composer.toggle-dropdown": "Превключване на падащото меню",
@@ -121,7 +120,7 @@
"bootbox.ok": "Добре",
"bootbox.cancel": "Отказ",
"bootbox.confirm": "Потвърждаване",
"bootbox.submit": "Изпращане",
"bootbox.submit": "Публикуване",
"bootbox.send": "Изпращане",
"cover.dragging-title": "Наместване на снимката",
"cover.dragging-message": "Преместете снимката на желаното положение и натиснете „Запазване“",

View File

@@ -22,7 +22,7 @@
"upvote": "Положителни гласове",
"awards": "Награди",
"new-flags": "Нови докладвания",
"my-flags": "Моите доклади",
"my-flags": "Докладвания, назначени на мен",
"bans": "Блокирания",
"new-message-from": "Ново съобщение от <strong>%1</strong>",
"new-messages-from": "%1 нови съобщения от <strong>%2</strong>",
@@ -32,10 +32,10 @@
"user-posted-in-public-room-dual": "<strong>%1</strong> и <strong>%2</strong> писаха в <strong class=\"text-nowrap\"><i class=\"fa %3\"></i>%4</strong>",
"user-posted-in-public-room-triple": "<strong>%1</strong>, <strong>%2</strong> и <strong>%3</strong> писаха в <strong class=\"text-nowrap\"><i class=\"fa %4\"></i>%5</strong>",
"user-posted-in-public-room-multiple": "<strong>%1</strong>, <strong>%2</strong> и %3 други писаха в <strong class=\"text-nowrap\"><i class=\"fa %4\"></i>%5</strong>",
"upvoted-your-post-in": "<strong>%1</strong> гласува положително за Вашата публикация в <strong>%2</strong>",
"upvoted-your-post-in-dual": "<strong>%1</strong> и <strong>%2</strong> гласуваха положително за Вашата публикация в <strong>%3</strong>",
"upvoted-your-post-in-triple": "<strong>%1</strong>, <strong>%2</strong> и <strong>%3</strong> гласуваха положително за Вашата публикация в <strong>%4</strong>",
"upvoted-your-post-in-multiple": "<strong>%1</strong>, <strong>%2</strong> и %3 други гласуваха положително за Вашата публикация в <strong>%4</strong>.",
"upvoted-your-post-in": "<strong>%1</strong> гласува положително за Ваша публикация в <strong>%2</strong>.",
"upvoted-your-post-in-dual": "<strong>%1</strong> и <strong>%2</strong> гласуваха положително за Ваша публикация в <strong>%3</strong>.",
"upvoted-your-post-in-triple": "<strong>%1</strong>, <strong>%2</strong> и <strong>%3</strong> гласуваха положително за Ваша публикация в <strong>%4</strong>.",
"upvoted-your-post-in-multiple": "<strong>%1</strong>, <strong>%2</strong> и %3 други гласуваха положително за Ваша публикация в <strong>%4</strong>.",
"moved-your-post": "<strong>%1</strong> премести публикацията Ви в <strong>%2</strong>",
"moved-your-topic": "<strong>%1</strong> премести <strong>%2</strong>",
"user-flagged-post-in": "<strong>%1</strong> докладва публикация в <strong>%2</strong>",
@@ -46,17 +46,17 @@
"user-flagged-user-dual": "<strong>%1</strong> и <strong>%2</strong> докладваха потребителски профил (%3)",
"user-flagged-user-triple": "<strong>%1</strong>, <strong>%2</strong> и <strong>%3</strong> докладваха потребителски профил (%4)",
"user-flagged-user-multiple": "<strong>%1</strong>, <strong>%2</strong> и %3 други докладваха потребителски профил (%4)",
"user-posted-to": "<strong>%1</strong> публикува отговор в <strong>%2</strong>",
"user-posted-to-dual": "<strong>%1</strong> и <strong>%2</strong> отговориха в <strong>%3</strong>",
"user-posted-to-triple": "<strong>%1</strong>, <strong>%2</strong> и <strong>%3</strong> отговориха в <strong>%4</strong>",
"user-posted-to-multiple": "<strong>%1</strong>, <strong>%2</strong> и %3 други отговориха в <strong>%4</strong>",
"user-posted-topic": "<strong>%1</strong> публикува <strong>%2</strong>",
"user-posted-to": "<strong>%1</strong> публикува отговор на: <strong>%2</strong>",
"user-posted-to-dual": "<strong>%1</strong> и <strong>%2</strong> публикуваха отговори на: <strong>%3</strong>",
"user-posted-to-triple": "<strong>%1</strong>, <strong>%2</strong> и <strong>%3</strong> публикуваха отговори на: <strong>%4</strong>",
"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-in-category": "<strong>%1</strong> публикува <strong>%2</strong> в <strong>%3</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-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> започнаха да Ви следват.",
"user-started-following-you-triple": "<strong>%1</strong>, <strong>%2</strong> и <strong>%3</strong> започнаха да Ви следват.",
@@ -71,11 +71,11 @@
"users-csv-exported": "Потребителите са изнесени във формат „csv“, щракнете за сваляне",
"post-queue-accepted": "Вашата публикация, която чакаше в опашката, беше приета. Натиснете тук, за да я видите.",
"post-queue-rejected": "Вашата публикация, която чакаше в опашката, беше отхвърлена.",
"post-queue-rejected-for-reason": "Your queued post has been rejected for the following reason: \"%1\"",
"post-queue-notify": "Публикацията в опашката получи известие: „%1“",
"post-queue-notify": "Публикация, чакаща в опашката, получи известие:<br/>„%1“",
"email-confirmed": "Е-пощата беше потвърдена",
"email-confirmed-message": "Благодарим Ви, че потвърдихте е-пощата си. Акаунтът Ви е вече напълно активиран.",
"email-confirm-error-message": "Възникна проблем при потвърждаването на е-пощата Ви. Може кодът да е грешен или давността му да е изтекла.",
"email-confirm-error-message-already-validated": "Адресът на е-пощата Ви вече е проверен.",
"email-confirm-sent": "Изпратено е е-писмо за потвърждение.",
"none": "Нищо",
"notification-only": "Само известие",

View File

@@ -8,7 +8,5 @@
"log-in-with-facebook": "Вписване с Facebook",
"continue-with-facebook": "Продължаване с Facebook",
"sign-in-with-linkedin": "Вписване с LinkedIn",
"sign-up-with-linkedin": "Регистриране с LinkedIn",
"sign-in-with-wordpress": "Вписване с WordPress",
"sign-up-with-wordpress": "Регистриране с WordPress"
"sign-up-with-linkedin": "Регистриране с LinkedIn"
}

View File

@@ -1,8 +1,6 @@
{
"theme-name": "Тема на Harmony",
"skins": "Облици",
"light": "Light",
"dark": "Dark",
"collapse": "Свиване",
"expand": "Разгъване",
"sidebar-toggle": "Превключване на страничната лента",

View File

@@ -69,8 +69,6 @@
"user-referenced-topic-on": "%1 <a href=\"%2\">направи препратка</a> към тази тема на %3",
"user-forked-topic-ago": "%1 <a href=\"%2\">раздели</a> тази тема %3",
"user-forked-topic-on": "%1 <a href=\"%2\">раздели</a> тази тема на %3",
"user-crossposted-topic-ago": "%1 публикува тази тема допълнително и в %2 %3",
"user-crossposted-topic-on": "%1 публикува тази тема допълнително и в %2 на %3",
"bookmark-instructions": "Щракнете тук, за да се върнете към последно прочетената публикация в тази тема.",
"flag-post": "Докладване на тази публикация",
"flag-user": "Докладване на този потребител",
@@ -105,7 +103,6 @@
"thread-tools.lock": "Заключване на темата",
"thread-tools.unlock": "Отключване на темата",
"thread-tools.move": "Преместване на темата",
"thread-tools.crosspost": "Допълнително публикуване на темата",
"thread-tools.move-posts": "Преместване на публикациите",
"thread-tools.move-all": "Преместване на всички",
"thread-tools.change-owner": "Промяна на собственика",
@@ -135,7 +132,6 @@
"pin-modal-help": "Ако желаете, тук можете да посочите дата на давност за закачените теми. Можете и да оставите полето празно, при което темата ще остане закачена, докато не бъде откачена ръчно.",
"load-categories": "Зареждане на категориите",
"confirm-move": "Преместване",
"confirm-crosspost": "Допълнително публикуване",
"confirm-fork": "Разделяне",
"bookmark": "Отметка",
"bookmarks": "Отметки",
@@ -145,7 +141,6 @@
"loading-more-posts": "Зареждане на още публикации",
"move-topic": "Преместване на темата",
"move-topics": "Преместване на темите",
"crosspost-topic": "Допълнително публикуване на темата",
"move-post": "Преместване на публикацията",
"post-moved": "Публикацията беше преместена!",
"fork-topic": "Разделяне на темата",
@@ -168,9 +163,6 @@
"move-topic-instruction": "Изберете целевата категория и натиснете „Преместване“",
"change-owner-instruction": "Натиснете публикациите, които искате да прехвърлите на друг потребител",
"manage-editors-instruction": "Определете потребителите, които могат да редактират тази публикация по-долу.",
"crossposts.instructions": "Изберете една или повече категории, в които да публикувате. Темата или темите ще бъдат достъпни както от първоначалната категория, така и от всички допълнителни категории.",
"crossposts.listing": "Тази теме е била допълнително публикувана в следните локални категории:",
"crossposts.none": "Тази тема не е била допълнително публикувана в никакви други категории.",
"composer.title-placeholder": "Въведете заглавието на темата си тук...",
"composer.handle-placeholder": "Въведете името тук",
"composer.hide": "Скриване",
@@ -182,7 +174,6 @@
"composer.replying-to": "Отговор на %1",
"composer.new-topic": "Нова тема",
"composer.editing-in": "Редактиране на публикация в %1",
"composer.untitled-topic": "Тема без име",
"composer.uploading": "качване...",
"composer.thumb-url-label": "Поставете адреса на иконка за темата",
"composer.thumb-title": "Добавете иконка към тази тема",
@@ -233,8 +224,5 @@
"unread-posts-link": "Връзка към непрочетените публикации",
"thumb-image": "Иконка на темата",
"announcers": "Споделяния",
"announcers-x": "Споделяния (%1)",
"guest-cta.title": "Hello! It looks like you're interested in this conversation, but you don't have an account yet.",
"guest-cta.message": "Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.",
"guest-cta.closing": "With your input, this post could be even better 💗"
"announcers-x": "Споделяния (%1)"
}

View File

@@ -105,10 +105,6 @@
"show-email": "Да се показва е-пощата ми",
"show-fullname": "Да се показва цялото ми име",
"restrict-chats": "Разрешаване на съобщенията само от потребители, които следвам",
"disable-incoming-chats": "Забраняване на входящите съобщения <a data-bs-toggle=\"tooltip\" href=\"#\" title=\"Admins and moderators can still send you messages\"><i class=\"fa-solid fa-circle-info\"></i></a>",
"chat-allow-list": "Разрешаване на съобщенията от следните потребители",
"chat-deny-list": "Забраняване на съобщенията от следните потребители",
"chat-list-add-user": "Добавяне на потребител",
"digest-label": "Абониране за резюмета",
"digest-description": "Абониране за новини по е-пощата относно този форум (нови известия и теми) според избрания график",
"digest-off": "Изключено",

View File

@@ -1,12 +1,7 @@
{
"name": "Свят",
"latest": "Latest",
"popular-day": "Popular (Day)",
"popular-week": "Popular (Week)",
"popular-month": "Popular (Month)",
"popular-year": "Popular (Year)",
"popular-alltime": "Popular (All Time)",
"recent": "All",
"popular": "Популярни теми",
"recent": "Всички теми",
"help": "Помощ",
"help.title": "Каква е тази страница?",
@@ -19,7 +14,5 @@
"onboard.title": "Вашият прозорец към федивселената…",
"onboard.what": "Това е Вашата персонализирана категория съставена само от съдържание извън този форум. Тук се появяват неща от хора, които следвате, както и такива споделени от тях.",
"onboard.why": "Много неща се случват извън този форум, и не всичко отговаря на Вашите интереси. Затова следването на конкретни хора е най-добрият начин да покажете, че искате да виждате повече от тях.",
"onboard.how": "Междувременно можете да използвате бутоните в горната част, за да видите до какво има достъп този форум. Така може да започнете да откривате ново съдържание!",
"category-search": "Find a category..."
"onboard.how": "Междувременно можете да използвате бутоните в горната част, за да видите до какво има достъп този форум. Така може да започнете да откривате ново съдържание!"
}

View File

@@ -1,5 +1,9 @@
{
"cache": "Cache",
"post-cache": "Post Cache",
"group-cache": "Group Cache",
"local-cache": "Local Cache",
"object-cache": "Object Cache",
"percent-full": "%1% Full",
"post-cache-size": "Post Cache Size",
"items-in-cache": "Items in Cache"

View File

@@ -75,7 +75,6 @@
"graphs.page-views-registered": "Page Views Registered",
"graphs.page-views-guest": "Page Views Guest",
"graphs.page-views-bot": "Page Views Bot",
"graphs.page-views-ap": "ActivityPub Page Views",
"graphs.unique-visitors": "Unique Visitors",
"graphs.registered-users": "Registered Users",
"graphs.guest-users": "Guest Users",

View File

@@ -8,7 +8,7 @@
"nodejs": "nodejs",
"online": "online",
"git": "git",
"process-memory": "rss/heap used",
"process-memory": "process memory",
"system-memory": "system memory",
"used-memory-process": "Used memory by process",
"used-memory-os": "Used system memory",

View File

@@ -1,22 +1,18 @@
{
"manage-categories": "Manage Categories",
"add-category": "Add category",
"add-local-category": "Add Local category",
"add-remote-category": "Add Remote category",
"remove": "Remove",
"rename": "Rename",
"jump-to": "Jump to...",
"settings": "Category Settings",
"edit-category": "Edit Category",
"privileges": "Privileges",
"back-to-categories": "Back to categories",
"id": "Category ID",
"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",
"topic-template": "Topic Template",
"topic-template.help": "Define a template for new topics created in this category.",
"federatedDescription": "Federated Description",
"federatedDescription.help": "This text will be appended to the category description when queried by other websites/apps.",
"federatedDescription.default": "This is a forum category containing topical discussion. You can start new discussions by mentioning this category.",
"bg-color": "Background Colour",
"text-color": "Text Colour",
"bg-image-size": "Background Image Size",
@@ -107,11 +103,6 @@
"alert.create-success": "Category successfully created!",
"alert.none-active": "You have no active categories.",
"alert.create": "Create a Category",
"alert.add": "Add a Category",
"alert.add-help": "Remote categories can be added to the categories listing by specifying their handle.<br /><br /><strong>Note</strong> — The remote category may not reflect all topics published unless at least one local user tracks/watches it.",
"alert.rename": "Rename a Remote Category",
"alert.rename-help": "Please enter a new name for this category. Leave blank to restore original name.",
"alert.confirm-remove": "Do you really want to remove this category? You can add it back at any time.",
"alert.confirm-purge": "<p class=\"lead\">Do you really want to purge this category \"%1\"?</p><h5><strong class=\"text-danger\">Warning!</strong> All topics and posts in this category will be purged!</h5> <p class=\"help-block\">Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category <em>temporarily</em>, you'll want to \"disable\" the category instead.</p>",
"alert.purge-success": "Category purged!",
"alert.copy-success": "Settings Copied!",

View File

@@ -1,16 +0,0 @@
{
"title": "Manage Custom Reasons",
"create-reason": "Create Reason",
"edit-reason": "Edit Reason",
"reasons-help": "Reasons are predefined explanations used when banning or muting users, or when rejecting posts in the post queue.",
"reason-title": "Title",
"reason-type": "Type",
"reason-body": "Body",
"reason-all": "All",
"reason-ban": "Ban",
"reason-mute": "Mute",
"reason-post-queue": "Post Queue",
"reason-type-help": "The type of action this reason applies to. If 'All' is selected, this reason will be available for all action types.",
"custom-reasons-saved": "Custom reasons saved successfully",
"delete-reason-confirm-x": "Are you sure you want to delete the custom reason with the title <strong>%1</strong>?"
}

View File

@@ -29,7 +29,6 @@
"access-topics": "Access Topics",
"create-topics": "Create Topics",
"reply-to-topics": "Reply to Topics",
"crosspost-topics": "Cross-post Topics",
"schedule-topics": "Schedule Topics",
"tag-topics": "Tag Topics",
"edit-posts": "Edit Posts",

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