diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json
index ad24c08a78..6bfbf990fa 100644
--- a/.devcontainer/devcontainer.json
+++ b/.devcontainer/devcontainer.json
@@ -27,7 +27,7 @@
"containerEnv": {
"NODEBB_PORT": "4567",
"NODEBB_DB": "redis",
- "NODEBB_REDIS_HOST": "localhost",
+ "NODEBB_REDIS_HOST": "127.0.0.1",
"NODEBB_REDIS_PORT": "6379",
"NODEBB_REDIS_PASSWORD": "",
"NODEBB_REDIS_DB": "0",
diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml
deleted file mode 100644
index 742f443f9c..0000000000
--- a/.github/workflows/docker.yml
+++ /dev/null
@@ -1,72 +0,0 @@
-name: Run Docker
-
-# Controls when the workflow will run
-on:
- push:
- branches:
- - 'master'
- - 'v*.x'
- tags:
- - 'v*'
- workflow_dispatch:
-
-# A workflow run is made up of one or more jobs that can run sequentially or in parallel
-permissions:
- contents: read
- packages: write
-
-jobs:
- release:
- runs-on: ubuntu-latest
- steps:
-
- - 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
-
- - name: Login to GitHub Container Registry
- uses: docker/login-action@v3
- with:
- 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: ghcr.io/${{ github.repository }}
- tags: |
- type=semver,pattern={{version}}
- type=semver,pattern={{major}}.{{minor}}
- type=semver,pattern={{major}}.x
- type=raw,value=latest,enable={{is_default_branch}}
- type=ref,event=branch,enable=${{ github.event.repository.default_branch != github.ref }}
- type=raw,value=${{ env.CURRENT_DATE_NST }}
- flavor: |
- latest=true
-
- - name: Cache node_modules
- id: cache-node-modules
- uses: actions/cache@v4
- with:
- path: var-cache-node-modules
- key: var-cache-node-modules-${{ hashFiles('Dockerfile', 'install/package.json') }}
-
- - name: Build and push Docker images
- uses: docker/build-push-action@v6
- 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 }}
diff --git a/.github/workflows/gittogether.yml b/.github/workflows/gittogether.yml
deleted file mode 100644
index 04853410e3..0000000000
--- a/.github/workflows/gittogether.yml
+++ /dev/null
@@ -1,18 +0,0 @@
-name: gittogether
-
-on:
- push:
- workflow_dispatch:
-
-permissions:
- contents: write
-
-jobs:
- summary:
- uses: ChrisTimperley/GitTogether-Action/.github/workflows/gittogether.yml@main
- with:
- release_repo: ChrisTimperley/GitTogether
- config: .gittogether.yml
- output_svg: activity.svg
- branch: gittogether-svg
- style: compact
diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml
index 43fdf33611..dd3e5e00d6 100644
--- a/.github/workflows/test.yaml
+++ b/.github/workflows/test.yaml
@@ -3,10 +3,12 @@ name: Lint and test
on:
push:
branches:
+ - main
- master
- develop
pull_request:
branches:
+ - main
- master
- develop
@@ -19,49 +21,11 @@ permissions:
jobs:
test:
- permissions:
- checks: write # for coverallsapp/github-action to create new checks
- contents: read # for actions/checkout to fetch code
- name: Lint and test
- strategy:
- fail-fast: false
- matrix:
- os: [ubuntu-latest]
- node: [20, 22]
- database: [mongo-dev, mongo, redis, postgres]
- include:
- # only run coverage once
- - os: ubuntu-latest
- node: 22
- coverage: true
- # test under development once
- - database: mongo-dev
- test_env: development
- # only run eslint once
- - os: ubuntu-latest
- node: 22
- database: mongo-dev
- lint: true
- runs-on: ${{ matrix.os }}
+ runs-on: ubuntu-latest
env:
- TEST_ENV: ${{ matrix.test_env || 'production' }}
+ TEST_ENV: 'production'
services:
- postgres:
- image: 'postgres:17-alpine'
- env:
- POSTGRES_USER: postgres
- POSTGRES_PASSWORD: postgres
- # Set health checks to wait until postgres has started
- options: >-
- --health-cmd pg_isready
- --health-interval 10s
- --health-timeout 5s
- --health-retries 5
- ports:
- # Maps port 5432 on service container to the host
- - 5432:5432
-
redis:
image: 'redis:8.0.1'
# Set health checks to wait until redis has started
@@ -74,12 +38,6 @@ jobs:
# Maps port 6379 on service container to the host
- 6379:6379
- mongo:
- image: 'mongo:8.0'
- ports:
- # Maps port 27017 on service container to the host
- - 27017:27017
-
steps:
- uses: actions/checkout@v4
@@ -88,74 +46,14 @@ jobs:
- name: Install Node
uses: actions/setup-node@v4
with:
- node-version: ${{ matrix.node }}
+ node-version: 22
- name: NPM Install
uses: bahmutov/npm-install@v1
with:
useLockFile: false
- - name: Setup on MongoDB
- if: startsWith(matrix.database, 'mongo')
- env:
- SETUP: >-
- {
- "url": "http://127.0.0.1:4567",
- "secret": "abcdef",
- "admin:username": "admin",
- "admin:email": "test@example.org",
- "admin:password": "hAN3Eg8W",
- "admin:password:confirm": "hAN3Eg8W",
-
- "database": "mongo",
- "mongo:host": "127.0.0.1",
- "mongo:port": 27017,
- "mongo:username": "",
- "mongo:password": "",
- "mongo:database": "nodebb"
- }
- CI: >-
- {
- "host": "127.0.0.1",
- "port": 27017,
- "database": "ci_test"
- }
- run: |
- node app --setup="${SETUP}" --ci="${CI}"
-
- - name: Setup on PostgreSQL
- if: startsWith(matrix.database, 'postgres')
- env:
- SETUP: >-
- {
- "url": "http://127.0.0.1:4567",
- "secret": "abcdef",
- "admin:username": "admin",
- "admin:email": "test@example.org",
- "admin:password": "hAN3Eg8W",
- "admin:password:confirm": "hAN3Eg8W",
-
- "database": "postgres",
- "postgres:host": "127.0.0.1",
- "postgres:port": 5432,
- "postgres:username": "postgres",
- "postgres:password": "postgres",
- "postgres:database": "nodebb"
- }
- CI: >-
- {
- "host": "127.0.0.1",
- "database": "ci_test",
- "port": 5432,
- "username": "postgres",
- "password": "postgres"
- }
- run: |
- node -e "const { Client } = require('pg'); const c = new Client({ host: '127.0.0.1', port: 5432, user: 'postgres', password: 'postgres' }); c.connect().then(() => c.query('CREATE DATABASE nodebb')).then(() => c.query('CREATE DATABASE ci_test')).then(() => c.end())"
- node app --setup="${SETUP}" --ci="${CI}"
-
- name: Setup on Redis
- if: startsWith(matrix.database, 'redis')
env:
SETUP: >-
{
@@ -182,7 +80,6 @@ jobs:
node app --setup="${SETUP}" --ci="${CI}"
- name: Run ESLint
- if: matrix.lint
run: npm run lint
- name: Node tests
@@ -192,21 +89,4 @@ jobs:
run: npm run coverage
- name: Test coverage
- uses: coverallsapp/github-action@648a8eb78e6d50909eff900e4ec85cab4524a45b # v2.3.6
- if: matrix.coverage
- with:
- github-token: ${{ secrets.GITHUB_TOKEN }}
- flag-name: ${{ matrix.os }}-node-${{ matrix.node }}-db-${{ matrix.database }}
- parallel: true
-
- finish:
- permissions:
- checks: write # for coverallsapp/github-action to create new checks
- needs: test
- runs-on: ubuntu-latest
- steps:
- - name: Coveralls Finished
- uses: coverallsapp/github-action@648a8eb78e6d50909eff900e4ec85cab4524a45b # v2.3.6
- with:
- github-token: ${{ secrets.GITHUB_TOKEN }}
- parallel-finished: true
+ uses: coverallsapp/github-action@v2
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
index f9f467f979..cc580ff73d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -75,3 +75,4 @@ test.sh
.docker/**
!**/.gitkeep
+dump.rdb
diff --git a/.tx/config b/.tx/config
index 681e9a6709..d92404ea4f 100644
--- a/.tx/config
+++ b/.tx/config
@@ -51,6 +51,7 @@ 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
@@ -105,6 +106,7 @@ 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
@@ -159,6 +161,7 @@ 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
@@ -213,6 +216,7 @@ 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
@@ -267,6 +271,7 @@ 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
@@ -321,6 +326,7 @@ 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
@@ -375,6 +381,7 @@ 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
@@ -429,6 +436,7 @@ 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
@@ -483,6 +491,7 @@ 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
@@ -537,6 +546,7 @@ 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
@@ -591,6 +601,7 @@ 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
@@ -645,6 +656,7 @@ 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
@@ -699,6 +711,7 @@ 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
@@ -753,6 +766,7 @@ 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
@@ -807,6 +821,7 @@ 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
@@ -861,6 +876,7 @@ 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
@@ -915,6 +931,7 @@ 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
@@ -969,6 +986,7 @@ 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
@@ -1023,6 +1041,7 @@ 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
@@ -1077,6 +1096,7 @@ 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
@@ -1131,6 +1151,7 @@ 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
@@ -1185,6 +1206,7 @@ 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
@@ -1239,6 +1261,7 @@ 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
@@ -1293,6 +1316,7 @@ 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
@@ -1347,6 +1371,7 @@ 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
@@ -1401,6 +1426,7 @@ 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
@@ -1455,6 +1481,7 @@ 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
@@ -1509,6 +1536,7 @@ 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
@@ -1563,6 +1591,7 @@ 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
@@ -1617,6 +1646,7 @@ 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
@@ -1671,6 +1701,7 @@ 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
@@ -1725,6 +1756,7 @@ 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
@@ -1779,6 +1811,7 @@ 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
@@ -1833,6 +1866,7 @@ 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
@@ -1887,6 +1921,7 @@ 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
@@ -1941,6 +1976,7 @@ 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
@@ -1995,6 +2031,7 @@ 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
@@ -2049,6 +2086,7 @@ 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
@@ -2103,6 +2141,7 @@ 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
@@ -2157,6 +2196,7 @@ 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
@@ -2211,6 +2251,7 @@ 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
@@ -2265,6 +2306,7 @@ 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
@@ -2319,6 +2361,7 @@ 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
@@ -2373,6 +2416,7 @@ 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
@@ -2427,6 +2471,7 @@ 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
@@ -2481,6 +2526,7 @@ 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
@@ -2535,6 +2581,7 @@ 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
@@ -2589,6 +2636,7 @@ 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
@@ -2643,6 +2691,7 @@ 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
@@ -2697,6 +2746,7 @@ 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
@@ -2751,6 +2801,7 @@ 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
@@ -2858,6 +2909,7 @@ 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
@@ -2912,6 +2964,7 @@ 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
@@ -2966,6 +3019,7 @@ 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
@@ -3020,6 +3074,7 @@ 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
@@ -3074,6 +3129,7 @@ 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
@@ -3128,6 +3184,7 @@ 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
@@ -3182,6 +3239,7 @@ 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
@@ -3236,6 +3294,7 @@ 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
@@ -3290,6 +3349,7 @@ 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
@@ -3344,6 +3404,7 @@ 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
@@ -3398,6 +3459,7 @@ 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
@@ -3452,6 +3514,7 @@ 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
@@ -3506,6 +3569,7 @@ 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
@@ -3560,6 +3624,7 @@ 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
@@ -3614,6 +3679,7 @@ 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
@@ -3668,6 +3734,7 @@ 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
@@ -3722,6 +3789,7 @@ 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
@@ -3776,6 +3844,7 @@ 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
@@ -3830,6 +3899,7 @@ 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
@@ -3884,6 +3954,7 @@ 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
@@ -3938,6 +4009,7 @@ 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
@@ -3992,6 +4064,7 @@ 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
@@ -4046,6 +4119,7 @@ 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
@@ -4100,6 +4174,7 @@ 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
diff --git a/CHANGELOG.md b/CHANGELOG.md
index d512874927..bac75051f0 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,1064 @@
+#### v4.7.2 (2025-12-24)
+
+##### Chores
+
+* up body-parser (59dd1ca6)
+* up mentions (d505301f)
+* incrementing version number - v4.7.1 (afb88805)
+* update changelog for v4.7.1 (8668cfb3)
+* incrementing version number - v4.7.0 (e82d40f8)
+* incrementing version number - v4.6.3 (9fc5b0f3)
+* incrementing version number - v4.6.2 (f98747db)
+* incrementing version number - v4.6.1 (f47aa678)
+* incrementing version number - v4.6.0 (ee395bc5)
+* incrementing version number - v4.5.2 (ad2da639)
+* incrementing version number - v4.5.1 (69f4b61f)
+* incrementing version number - v4.5.0 (f05c5d06)
+* incrementing version number - v4.4.6 (074043ad)
+* incrementing version number - v4.4.5 (6f106923)
+* incrementing version number - v4.4.4 (d323af44)
+* incrementing version number - v4.4.3 (d354c2eb)
+* incrementing version number - v4.4.2 (55c510ae)
+* incrementing version number - v4.4.1 (5ae79b4e)
+* incrementing version number - v4.4.0 (0a75eee3)
+* incrementing version number - v4.3.2 (b92b5d80)
+* incrementing version number - v4.3.1 (308e6b9f)
+* incrementing version number - v4.3.0 (bff291db)
+* incrementing version number - v4.2.2 (17fecc24)
+* incrementing version number - v4.2.1 (852a270c)
+* incrementing version number - v4.2.0 (87581958)
+* incrementing version number - v4.1.1 (b2afbb16)
+* incrementing version number - v4.1.0 (36c80850)
+* incrementing version number - v4.0.6 (4a52fb2e)
+* incrementing version number - v4.0.5 (1792a62b)
+* incrementing version number - v4.0.4 (b1125cce)
+* incrementing version number - v4.0.3 (2b65c735)
+* incrementing version number - v4.0.2 (73fe5fcf)
+* incrementing version number - v4.0.1 (a461b758)
+* incrementing version number - v4.0.0 (c1eaee45)
+
+##### Bug Fixes
+
+* update data-isowner when changing is ownership (1f9f2dff)
+* bump 2factor (d0313712)
+
+##### Tests
+
+* change redis connection (#13844) (550411fb)
+* add await to check tests (1305faa8)
+* add back logs for failing test (9f8d5070)
+
+#### v4.7.1 (2025-12-17)
+
+##### Chores
+
+* up widget-essentials (9d666550)
+* remove log (2142b680)
+* up harmony (59f649b8)
+* incrementing version number - v4.7.0 (e82d40f8)
+* update changelog for v4.7.0 (1c0a43dc)
+* incrementing version number - v4.6.3 (9fc5b0f3)
+* incrementing version number - v4.6.2 (f98747db)
+* incrementing version number - v4.6.1 (f47aa678)
+* incrementing version number - v4.6.0 (ee395bc5)
+* incrementing version number - v4.5.2 (ad2da639)
+* incrementing version number - v4.5.1 (69f4b61f)
+* incrementing version number - v4.5.0 (f05c5d06)
+* incrementing version number - v4.4.6 (074043ad)
+* incrementing version number - v4.4.5 (6f106923)
+* incrementing version number - v4.4.4 (d323af44)
+* incrementing version number - v4.4.3 (d354c2eb)
+* incrementing version number - v4.4.2 (55c510ae)
+* incrementing version number - v4.4.1 (5ae79b4e)
+* incrementing version number - v4.4.0 (0a75eee3)
+* incrementing version number - v4.3.2 (b92b5d80)
+* incrementing version number - v4.3.1 (308e6b9f)
+* incrementing version number - v4.3.0 (bff291db)
+* incrementing version number - v4.2.2 (17fecc24)
+* incrementing version number - v4.2.1 (852a270c)
+* incrementing version number - v4.2.0 (87581958)
+* incrementing version number - v4.1.1 (b2afbb16)
+* incrementing version number - v4.1.0 (36c80850)
+* incrementing version number - v4.0.6 (4a52fb2e)
+* incrementing version number - v4.0.5 (1792a62b)
+* incrementing version number - v4.0.4 (b1125cce)
+* incrementing version number - v4.0.3 (2b65c735)
+* incrementing version number - v4.0.2 (73fe5fcf)
+* incrementing version number - v4.0.1 (a461b758)
+* incrementing version number - v4.0.0 (c1eaee45)
+
+##### Continuous Integration
+
+* drop ARM v7 from docker builds (#13808) (254370c5)
+
+##### New Features
+
+* stop extraneous vote and tids_read data from being saved for remote users (9f729964)
+* add hreflang to buildLinkTag (ba85474d)
+* #13790, allow ssl setup in psql (5bd1f7b7)
+
+##### Bug Fixes
+
+* wrong increment value (b1fc5bfd)
+* increment progress on upgrade script (9f94a721)
+* disallow inline viewing of unsafe files (#13833) (5ae8d553)
+* moving topic to cid=-1 will remove it from list (90a15134)
+* show errors when saving settings (f49f540b)
+* closes #13666, update category label (193aaf55)
+* respect user pagination settings in infinite scroll (#13765) (#13788) (ebf2a2c5)
+* remove hardcoded name for sentinel, #13794 (53e22acf)
+
+##### Other Changes
+
+* fix missing comma (9fb41c69)
+
+##### Reverts
+
+* spec change (b19281b0)
+
+##### Tests
+
+* fix tests (11b01dfc)
+
+#### v4.7.0 (2025-11-26)
+
+##### Chores
+
+* incrementing version number - v4.6.3 (9fc5b0f3)
+* update changelog for v4.6.3 (3fd193e3)
+* incrementing version number - v4.6.2 (f98747db)
+* up dbsearch (dfe53d29)
+* up harmony, closes #13753 (4e33c1df)
+* up express-useragent (b5ea2089)
+* up ttlcache to 2.x (a0a10c8b)
+* up themes (52c56bc5)
+* incrementing version number - v4.6.1 (f47aa678)
+* incrementing version number - v4.6.0 (ee395bc5)
+* incrementing version number - v4.5.2 (ad2da639)
+* incrementing version number - v4.5.1 (69f4b61f)
+* incrementing version number - v4.5.0 (f05c5d06)
+* incrementing version number - v4.4.6 (074043ad)
+* incrementing version number - v4.4.5 (6f106923)
+* incrementing version number - v4.4.4 (d323af44)
+* incrementing version number - v4.4.3 (d354c2eb)
+* incrementing version number - v4.4.2 (55c510ae)
+* incrementing version number - v4.4.1 (5ae79b4e)
+* incrementing version number - v4.4.0 (0a75eee3)
+* incrementing version number - v4.3.2 (b92b5d80)
+* incrementing version number - v4.3.1 (308e6b9f)
+* incrementing version number - v4.3.0 (bff291db)
+* incrementing version number - v4.2.2 (17fecc24)
+* incrementing version number - v4.2.1 (852a270c)
+* incrementing version number - v4.2.0 (87581958)
+* incrementing version number - v4.1.1 (b2afbb16)
+* incrementing version number - v4.1.0 (36c80850)
+* incrementing version number - v4.0.6 (4a52fb2e)
+* incrementing version number - v4.0.5 (1792a62b)
+* incrementing version number - v4.0.4 (b1125cce)
+* incrementing version number - v4.0.3 (2b65c735)
+* incrementing version number - v4.0.2 (73fe5fcf)
+* incrementing version number - v4.0.1 (a461b758)
+* incrementing version number - v4.0.0 (c1eaee45)
+* **deps:**
+ * update dependency @stylistic/eslint-plugin to v5.6.1 (#13778) (894f1988)
+ * update redis docker tag to v8.4.0 (#13782) (e24d8c17)
+ * update postgres docker tag to v18.1 (#13771) (3ea029bd)
+ * update dependency jsdom to v27.2.0 (#13770) (899414f4)
+ * update dependency smtp-server to v3.16.1 (#13755) (bc64d27f)
+ * update dependency mocha to v11.7.5 (#13754) (e1bf80dc)
+ * update redis docker tag to v8.2.3 (#13750) (4c5f7f60)
+ * update github artifact actions (#13730) (13c23fdd)
+ * update dependency @eslint/js to v9.39.1 (#13747) (4e7867a9)
+ * update dependency sass-embedded to v1.93.3 (#13745) (cb96701b)
+ * update dependency jsdom to v27.1.0 (#13743) (4ce4e773)
+ * update mongo docker tag to v8.2 (#13738) (97e5aa1d)
+ * update dependency smtp-server to v3.16.0 (#13737) (07d169d2)
+ * update dependency lint-staged to v16.2.6 (#13725) (e3c55f76)
+ * update dependency lint-staged to v16.2.5 (#13721) (83a172c9)
+ * update dependency @stylistic/eslint-plugin to v5.5.0 (#13717) (93d46c84)
+ * update dependency jsdom to v27.0.1 (#13718) (9d2b83f5)
+ * update dependency @eslint/js to v9.38.0 (#13716) (7fd9e894)
+ * update actions/setup-node action to v6 (#13708) (febe0ae0)
+ * update dependency smtp-server to v3.15.0 (#13702) (238600a0)
+ * update dependency lint-staged to v16.2.4 (#13699) (f608c7c7)
+ * update postgres docker tag to v18 (#13679) (923ddbc1)
+ * update dependency @eslint/js to v9.37.0 (#13693) (d73892ae)
+ * update redis docker tag to v8.2.2 (#13692) (4640a63e)
+ * update dependency mocha to v11.7.4 (#13685) (c7696667)
+ * update dependency @commitlint/cli to v20.1.0 (#13686) (eb06bda8)
+* **i18n:**
+ * fallback strings for new resources: nodebb.admin-manage-categories (49567c72)
+ * fallback strings for new resources: nodebb.admin-settings-uploads (e7498e8f)
+
+##### New Features
+
+* federate out undo(announce) when moving topics (832477f8)
+* native image appending for remote private notes (822f4edc)
+* add isNumber to client-side helpers (172aabcb)
+* handle Move(Context) activity (8ca52c7e)
+* update Remove(Context) to use target instead of origin, federate out Move(Context) on topic move between local cids (d02e188a)
+* context removal logic (aka moving topics to uncategorized, and federating this to other NodeBBs) (34e95e6d)
+* add new setting to control posts uploads being shown as thumbs (97e59fbe)
+* handle Delete(Context) as a move to cid -1 if the remote context still exists (f98a7216)
+* handle incoming Announce(Delete), closes #13712 (4d5005b9)
+* execute 1b12 rebroadcast logic on all tids even if not posted to a local cid (9583f0d4)
+* auto-enable link-preview plugin on new installations (b153941c)
+* bundle link-preview plugin (e7bdf6bc)
+* federate topic deletion on topic deletion as well as purge (4d24309a)
+* federate Delete on post delete as well as purge, topic deletion federates Announce(Delete(Object)) (93b6cb59)
+
+##### Bug Fixes
+
+* **deps:**
+ * bump mentions to fix #13637 (e3ac9ccf)
+ * update dependency rimraf to v6.1.2 (#13784) (5ab8f877)
+ * update dependency @isaacs/ttlcache to v2.1.2 (#13780) (cecc0fee)
+ * update dependency workerpool to v10.0.1 (#13781) (bfffb4b9)
+ * update dependency webpack to v5.103.0 (#13783) (5acfd184)
+ * update dependency sass to v1.94.1 (#13777) (b0c9bb1e)
+ * update dependency mongodb to v6.21.0 (#13772) (111ae163)
+ * update dependency sass to v1.94.0 (#13773) (c95bfcbf)
+ * update dependency validator to v13.15.23 (#13769) (93c69f9d)
+ * update dependency express-useragent to v2.0.2 (#13767) (e14d3ac1)
+ * update dependency autoprefixer to v10.4.22 (#13768) (9271e267)
+ * update dependency @isaacs/ttlcache to v2.1.1 (#13763) (f24bb090)
+ * update dependency esbuild to v0.27.0 (#13766) (63789ebb)
+ * update dependency cron to v4.3.4 (#13762) (6ad93cd3)
+ * update dependency sharp to v0.34.5 (#13758) (5be0a630)
+ * update dependency bcryptjs to v3.0.3 (#13751) (a34284df)
+ * update dependency sitemap to v9 (#13752) (1921ccaa)
+ * update dependency esbuild to v0.25.12 (#13748) (090eb088)
+ * update dependency rimraf to v6.1.0 (#13744) (a36d89fc)
+ * update dependency sass to v1.93.3 (#13746) (ba123073)
+ * update dependency sitemap to v8.0.2 (#13736) (b5c1e8e7)
+ * update mentions (5c3b1261)
+ * update dependency validator to v13.15.20 (#13733) (6f448ce2)
+ * bump mentions to 4.8.0 (964a5388)
+ * update dependency commander to v14.0.2 (#13731) (a49efe49)
+ * update dependency redis to v5.9.0 (#13727) (418717fd)
+ * update dependency nodemailer to v7.0.10 (#13726) (c1f6e52b)
+ * update dependency workerpool to v10 (#13723) (5a6c2097)
+ * update dependency sitemap to v8.0.1 (#13720) (1d9d7fc5)
+ * update dependency ace-builds to v1.43.4 (#13714) (27a0dc73)
+ * bump dbsearch (c25c6290)
+ * update dependency esbuild to v0.25.11 (#13710) (41b7a91d)
+ * update dependency chart.js to v4.5.1 (#13704) (bf37c7bd)
+ * update dependency nodebb-theme-persona to v14.1.15 (#13701) (fa18287d)
+ * update dependency nodebb-theme-harmony to v2.1.21 (#13700) (49a29325)
+ * update dependency nodemailer to v7.0.9 (#13695) (5d3709f0)
+ * update dependency semver to v7.7.3 (#13697) (a2892f60)
+ * update dependency webpack to v5.102.1 (#13698) (bb7b65ea)
+ * update dependency nodemailer to v7.0.7 (#13694) (5dc9f2c5)
+ * update dependency redis to v5.8.3 (#13691) (9b6e9b2a)
+ * update dependency winston to v3.18.3 (#13687) (19dc1025)
+* null check on attachments property in assertPrivate (9d83a3d0)
+* update announce and undo(announce) so that their IDs don't use timestamps (24e17683)
+* incorrect topic event added when topic moved out of cid -1 (used to be a share by the user; since removed.) (2b733e4a)
+* #13654, improper OrderedCollectionPage ID (aa7e078f)
+* IS logic when body.height < window.height (bdb45248)
+* update markdown and web-push to latest versions (c51b7b65)
+* bump mentions to 4.8.2 (2ce691cb)
+* rename activitypub.out.announce.category, federate out Delete on topic move to cid -1 (9bb8a955)
+* bump harmony and persona for #13756 (c616e657)
+* renderOverride to not clobber url if already set in template data (2066727f)
+* bump themes for cross-post support, #13396 (9d3e8179)
+* add replies in parallel during note assertion (4858abe1)
+* logic error in context generation (748cc5ee)
+* relax toPid assertion checks so that it only checks that it is a number or uri (30b1212a)
+* update logic so that purging a post does not remove toPid fields from children, updated addParentPosts so that post existence is checked (f6219d00)
+* update category mock to save full handle (524df6e5)
+* logic error in out.remove.context (ab9154aa)
+* cross-check remove(context) target prop against cid (194cedb4)
+* update logic re: federating out topic moves (4f2f872b)
+* bad var (22868d3f)
+* call api.topics method on topic move during note assertion, have category announce new topic on note assertion (3df4970c)
+* do not include image or icon props if they are falsy values (603068ae)
+* rebroadcasting logic should only execute for local tids if the remote cid is not addressed already (1d529473)
+* move Announce(Delete) out of topics.move and into topics API method (fadac616)
+* do not include actor from reflected activity when rebroadcasting remote cid (3fa74d4c)
+* broken category urls in to, cc (d4695f10)
+* update getPrivateKey to send application actor key when cid 0 (a45f6f9c)
+* update targets in 1b12 rebroadcast when cid is remote (58a9e1c4)
+* update 1b12 rebroadcast logic to send as application actor if post is in remote cid (79d08853)
+* regression caused by d3b3720915f5846e8f5a8e0bee9c17b3ff233902 (af5efbd7)
+* crash in tests (6c210068)
+* add attachments to retrieved post data onNewPost (07bed55e)
+
+##### Other Changes
+
+* //github.com/NodeBB/NodeBB/issues/13713 (2425f3b6)
+
+##### Refactors
+
+* deleteOrRestore internal method to federate out a Delete on delete, not just purge; better adheres to FEP 4f05 (e6911be3)
+* get rid of post.exists check, if post doesnt exist content is falsy (17944037)
+* move all methods in src/api/activitypub.js to src/activitypub.out.js (3ede64d8)
+* user announces no longer occur on topic move. Instead, the new category announces. Only occurs when topic moved to local categories. (e09bb8b6)
+* inbox announce(delete) handling to also handle context deletion, #13712 (2b2028e4)
+* move post attachment handling directly into posts.create (d3b37209)
+
+##### Reverts
+
+* remove `federatedDescription` category field, closes #13757 (ed83bc5b)
+
+##### Tests
+
+* update test for toPid logic to reflect that toPid stays even if parent is purged (98a1101d)
+
+#### v4.6.3 (2025-11-20)
+
+##### Chores
+
+* incrementing version number - v4.6.2 (f98747db)
+* update changelog for v4.6.2 (8da3819c)
+* incrementing version number - v4.6.1 (f47aa678)
+* incrementing version number - v4.6.0 (ee395bc5)
+* incrementing version number - v4.5.2 (ad2da639)
+* incrementing version number - v4.5.1 (69f4b61f)
+* incrementing version number - v4.5.0 (f05c5d06)
+* incrementing version number - v4.4.6 (074043ad)
+* incrementing version number - v4.4.5 (6f106923)
+* incrementing version number - v4.4.4 (d323af44)
+* incrementing version number - v4.4.3 (d354c2eb)
+* incrementing version number - v4.4.2 (55c510ae)
+* incrementing version number - v4.4.1 (5ae79b4e)
+* incrementing version number - v4.4.0 (0a75eee3)
+* incrementing version number - v4.3.2 (b92b5d80)
+* incrementing version number - v4.3.1 (308e6b9f)
+* incrementing version number - v4.3.0 (bff291db)
+* incrementing version number - v4.2.2 (17fecc24)
+* incrementing version number - v4.2.1 (852a270c)
+* incrementing version number - v4.2.0 (87581958)
+* incrementing version number - v4.1.1 (b2afbb16)
+* incrementing version number - v4.1.0 (36c80850)
+* incrementing version number - v4.0.6 (4a52fb2e)
+* incrementing version number - v4.0.5 (1792a62b)
+* incrementing version number - v4.0.4 (b1125cce)
+* incrementing version number - v4.0.3 (2b65c735)
+* incrementing version number - v4.0.2 (73fe5fcf)
+* incrementing version number - v4.0.1 (a461b758)
+* incrementing version number - v4.0.0 (c1eaee45)
+
+##### Bug Fixes
+
+* update validator dep. to get fix for CVE-2025-56200 (af477d0c)
+* missing logic in mocks.notes.private that precluded the use of emoji (76a07d59)
+* tiny fix for IS when page is empty (12dab849)
+
+#### v4.6.2 (2025-11-19)
+
+##### Chores
+
+* up emoji (5bc5bb3d)
+* up peace, closes #13774 (f764b791)
+* incrementing version number - v4.6.1 (f47aa678)
+* update changelog for v4.6.1 (655c858b)
+* incrementing version number - v4.6.0 (ee395bc5)
+* incrementing version number - v4.5.2 (ad2da639)
+* incrementing version number - v4.5.1 (69f4b61f)
+* incrementing version number - v4.5.0 (f05c5d06)
+* incrementing version number - v4.4.6 (074043ad)
+* incrementing version number - v4.4.5 (6f106923)
+* incrementing version number - v4.4.4 (d323af44)
+* incrementing version number - v4.4.3 (d354c2eb)
+* incrementing version number - v4.4.2 (55c510ae)
+* incrementing version number - v4.4.1 (5ae79b4e)
+* incrementing version number - v4.4.0 (0a75eee3)
+* incrementing version number - v4.3.2 (b92b5d80)
+* incrementing version number - v4.3.1 (308e6b9f)
+* incrementing version number - v4.3.0 (bff291db)
+* incrementing version number - v4.2.2 (17fecc24)
+* incrementing version number - v4.2.1 (852a270c)
+* incrementing version number - v4.2.0 (87581958)
+* incrementing version number - v4.1.1 (b2afbb16)
+* incrementing version number - v4.1.0 (36c80850)
+* incrementing version number - v4.0.6 (4a52fb2e)
+* incrementing version number - v4.0.5 (1792a62b)
+* incrementing version number - v4.0.4 (b1125cce)
+* incrementing version number - v4.0.3 (2b65c735)
+* incrementing version number - v4.0.2 (73fe5fcf)
+* incrementing version number - v4.0.1 (a461b758)
+* incrementing version number - v4.0.0 (c1eaee45)
+
+##### Bug Fixes
+
+* #13779, svg uploads (e3002411)
+* #13776, if plugin is in install/package.json use latest version from there (abfb6d13)
+* category labels showing up on infinite scroll on category page (dece0628)
+* crash in resolveInboxes (9900171f)
+* log out user if session cookie resolves to non-existent uid (5d9da603)
+* make i18n test failure message easier to read (3a81f903)
+* wrong auto-categorization if group actor is explicitly included in `audience` (be4d0e81)
+* order of operations when updating category handle (5cfec5b1)
+* closes #13729, fix filename encoding (9410f466)
+
+##### Other Changes
+
+* fix lint (008e1ae4)
+
+##### Refactors
+
+* remove unused share (aacd27ee)
+
+##### Tests
+
+* add test for #13729 (430a3e81)
+
+#### v4.6.1 (2025-10-17)
+
+##### Chores
+
+* up persona (b309a672)
+* up harmony (79327e6c)
+* incrementing version number - v4.6.0 (ee395bc5)
+* update changelog for v4.6.0 (c0d9bb07)
+* incrementing version number - v4.5.2 (ad2da639)
+* incrementing version number - v4.5.1 (69f4b61f)
+* incrementing version number - v4.5.0 (f05c5d06)
+* incrementing version number - v4.4.6 (074043ad)
+* incrementing version number - v4.4.5 (6f106923)
+* incrementing version number - v4.4.4 (d323af44)
+* incrementing version number - v4.4.3 (d354c2eb)
+* incrementing version number - v4.4.2 (55c510ae)
+* incrementing version number - v4.4.1 (5ae79b4e)
+* incrementing version number - v4.4.0 (0a75eee3)
+* incrementing version number - v4.3.2 (b92b5d80)
+* incrementing version number - v4.3.1 (308e6b9f)
+* incrementing version number - v4.3.0 (bff291db)
+* incrementing version number - v4.2.2 (17fecc24)
+* incrementing version number - v4.2.1 (852a270c)
+* incrementing version number - v4.2.0 (87581958)
+* incrementing version number - v4.1.1 (b2afbb16)
+* incrementing version number - v4.1.0 (36c80850)
+* incrementing version number - v4.0.6 (4a52fb2e)
+* incrementing version number - v4.0.5 (1792a62b)
+* incrementing version number - v4.0.4 (b1125cce)
+* incrementing version number - v4.0.3 (2b65c735)
+* incrementing version number - v4.0.2 (73fe5fcf)
+* incrementing version number - v4.0.1 (a461b758)
+* incrementing version number - v4.0.0 (c1eaee45)
+
+##### Bug Fixes
+
+* do not include image or icon props if they are falsy values (ecf95d18)
+* #13705, don't cover link if preview is opening up (499c50a4)
+* logic error in image mime type checking (623cec9d)
+* omg what. (ec399897)
+
+#### v4.6.0 (2025-10-01)
+
+##### Chores
+
+* remove unneeded secureRandom require (3fcaa678)
+* incrementing version number - v4.5.2 (ad2da639)
+* update changelog for v4.5.2 (9a596d67)
+* fix grammatical error in language string (cf3964be)
+* remove formatApiResponse logging (feda629f)
+* up eslint (a5ea4b40)
+* incrementing version number - v4.5.1 (69f4b61f)
+* update default settings (5d653571)
+* incrementing version number - v4.5.0 (f05c5d06)
+* incrementing version number - v4.4.6 (074043ad)
+* incrementing version number - v4.4.5 (6f106923)
+* incrementing version number - v4.4.4 (d323af44)
+* incrementing version number - v4.4.3 (d354c2eb)
+* incrementing version number - v4.4.2 (55c510ae)
+* incrementing version number - v4.4.1 (5ae79b4e)
+* incrementing version number - v4.4.0 (0a75eee3)
+* incrementing version number - v4.3.2 (b92b5d80)
+* incrementing version number - v4.3.1 (308e6b9f)
+* incrementing version number - v4.3.0 (bff291db)
+* incrementing version number - v4.2.2 (17fecc24)
+* incrementing version number - v4.2.1 (852a270c)
+* incrementing version number - v4.2.0 (87581958)
+* incrementing version number - v4.1.1 (b2afbb16)
+* incrementing version number - v4.1.0 (36c80850)
+* incrementing version number - v4.0.6 (4a52fb2e)
+* incrementing version number - v4.0.5 (1792a62b)
+* incrementing version number - v4.0.4 (b1125cce)
+* incrementing version number - v4.0.3 (2b65c735)
+* incrementing version number - v4.0.2 (73fe5fcf)
+* incrementing version number - v4.0.1 (a461b758)
+* incrementing version number - v4.0.0 (c1eaee45)
+* **deps:**
+ * update dependency lint-staged to v16.2.3 (#13681) (d7e93a5d)
+ * update actions/download-artifact action to v5 (#13646) (30ca0000)
+ * update dependency @eslint/js to v9.36.0 (#13670) (a4d8619b)
+ * update commitlint monorepo to v20 (#13678) (6dab3f2e)
+ * update dependency @stylistic/eslint-plugin to v5.4.0 (#13671) (3370c064)
+ * update dependency lint-staged to v16.2.1 (#13672) (13ce106b)
+ * update dependency sass-embedded to v1.93.2 (#13673) (df9d637c)
+ * update dependency jsdom to v27 (#13653) (3238248e)
+ * update dependency sass-embedded to v1.92.1 (#13638) (15b0b540)
+ * update dependency lint-staged to v16.1.6 (#13635) (7147a2e3)
+ * update actions/setup-node action to v5 (#13647) (4f5e770c)
+ * update dependency mocha to v11.7.2 (#13636) (ac90ef8c)
+* **i18n:**
+ * fallback strings for new resources: nodebb.admin-manage-categories (6055b345)
+ * fallback strings for new resources: nodebb.admin-manage-categories (8730073a)
+ * fallback strings for new resources: nodebb.admin-manage-categories (8d4e4652)
+ * fallback strings for new resources: nodebb.admin-settings-activitypub (89390101)
+
+##### Documentation Changes
+
+* update openapi schema to refer to try.nodebb.org instead of example.org (56a93366)
+
+##### New Features
+
+* ability to nickname remote categories, closes #13677 (bd80b77a)
+* allow activities to be addressed to as:Public or Public to be treated as public content (5f4790a4)
+* allow user auto-categorization rule (1d6a9fe7)
+* add minor pre-processing step to better handle header elements in incoming html (15f9fbaa)
+
+##### Bug Fixes
+
+* login handler to handle if non-confirmed email is entered (5ed19ef8)
+* allow quote-inline class in mocks sanitizer so quote-post fallback elements can be detected and removed during title generation, fixes #13688 (675178ac)
+* force outgoing page on direct access to `/ap` handler (9cee7999)
+* update outgoing page to match 404 design (954e7bc8)
+* don\'t begin processing local login if the passed-in username isn't even valid (c3df68f2)
+* #13667, record to instances:lastSeen instead of domains:lastSeen (7184507b)
+* #13676, bug where nested remote categories could not be removed (175dc209)
+* regression 218f5ea from via, stricter check on whether the calling user is a remote uid (8c553b18)
+* #13668, privilege checking on topic create for remote users; was not properly checking against fediverse pseudo-user (218f5eab)
+* update logic as to whether a post is served as an article or not (d122bf4a)
+* update activitypubFilterList logic so that it is also checked on resolveInbox and ActivityPub.get methods, updated instances.isAllowed to no longer return a promise (be9212b5)
+* add missing unlock in nested try/catch (9184a7a4)
+* wrap majority of note assertion logic in try..catch to handle exceptions so that the lock is always released (95fb084c)
+* use newline_boundaries param for tokenizer during title and summary generation, attempt to serve HTML in summary generation (2ea624fc)
+* deprecated call to api.topics.move (0f9015f0)
+* **deps:**
+ * update dependency webpack to v5.102.0 (#13683) (17dba0b0)
+ * update dependency mongodb to v6.20.0 (#13665) (9b00ff1e)
+ * update dependency lru-cache to v11.2.2 (#13669) (00d80616)
+ * update dependency sass to v1.93.2 (#13674) (1b5804e1)
+ * update fontsource monorepo (#13663) (6e84e35f)
+ * update dependency esbuild to v0.25.10 (#13664) (9b48bbd5)
+ * update dependency sharp to v0.34.4 (#13662) (c8680f30)
+ * update dependency satori to v0.18.3 (#13660) (b2d91dc3)
+ * update dependency nodebb-theme-harmony to v2.1.20 (#13659) (b845aa48)
+ * update dependency fs-extra to v11.3.2 (#13658) (8324be2d)
+ * update dependency @fontsource/inter to v5.2.7 (#13655) (db892509)
+ * update dependency commander to v14.0.1 (#13652) (19f39198)
+ * update dependency bootswatch to v5.3.8 (#13651) (1e82af66)
+ * update dependency sass to v1.92.1 (#13645) (10344c98)
+ * update dependency workerpool to v9.3.4 (#13650) (6a1e9e8a)
+ * update dependency lru-cache to v11.2.1 (#13644) (6adfbb24)
+
+##### Other Changes
+
+* disallow checkHeader from returning a URL from a different origin than the passed-in URL (4776d012)
+* 'nickname' and 'descriptionParsed' use in categories controller (051043b6)
+
+##### Performance Improvements
+
+* update old upgrade scripts to use bulkSet/Add (2b987d09)
+
+##### Refactors
+
+* notes.assert to add finally block, update assertPayload to update instances:lastSeen via method instead of direct db call (559155da)
+
+##### Reverts
+
+* post queue changes to fix tests (10350ea6)
+
+##### Tests
+
+* fix message (d6e7e168)
+* show tids on test fail (8614d825)
+* more fixes for note vs. article (3bba9029)
+* short OPs create Notes again (15878087)
+* ap timeouts (8d6a0f02)
+* disable post queue when testing posting logic (9bfce68b)
+
+#### v4.5.2 (2025-09-29)
+
+##### Chores
+
+* remove obsolete deprecation (52fec493)
+* up persona (405d2172)
+* incrementing version number - v4.5.1 (69f4b61f)
+* update changelog for v4.5.1 (a9fffd7c)
+* incrementing version number - v4.5.0 (f05c5d06)
+* incrementing version number - v4.4.6 (074043ad)
+* incrementing version number - v4.4.5 (6f106923)
+* incrementing version number - v4.4.4 (d323af44)
+* incrementing version number - v4.4.3 (d354c2eb)
+* incrementing version number - v4.4.2 (55c510ae)
+* incrementing version number - v4.4.1 (5ae79b4e)
+* incrementing version number - v4.4.0 (0a75eee3)
+* incrementing version number - v4.3.2 (b92b5d80)
+* incrementing version number - v4.3.1 (308e6b9f)
+* incrementing version number - v4.3.0 (bff291db)
+* incrementing version number - v4.2.2 (17fecc24)
+* incrementing version number - v4.2.1 (852a270c)
+* incrementing version number - v4.2.0 (87581958)
+* incrementing version number - v4.1.1 (b2afbb16)
+* incrementing version number - v4.1.0 (36c80850)
+* incrementing version number - v4.0.6 (4a52fb2e)
+* incrementing version number - v4.0.5 (1792a62b)
+* incrementing version number - v4.0.4 (b1125cce)
+* incrementing version number - v4.0.3 (2b65c735)
+* incrementing version number - v4.0.2 (73fe5fcf)
+* incrementing version number - v4.0.1 (a461b758)
+* incrementing version number - v4.0.0 (c1eaee45)
+
+##### New Features
+
+* add a term param to recent controller so it can be controller without req.query.term (9c18c6fe)
+* add a new hook to override generateUrl in navigator.js (68a8db85)
+* add topic templates per category, closes #13649 (0311b98e)
+
+##### Bug Fixes
+
+* skip header checking during note assertion if test runner is active (7abdfd86)
+* update note assertion topic members check to simpler posts.exists check (d0c05826)
+* re-jig handling of ap tag values so that only hashtags are considered (not Piefed community tags, etc.) (4d68e3fe)
+* missing actor assertion on 1b12 announced upboat (f9edb13f)
+* use parameterized query for key lookup (6cca55e3)
+* add pre-processing step to title generation logic so sbd doesn't fall over so badly (f7c47429)
+* switch to action (f7bbec7c)
+* handle cases where incoming ap object tag can be a non-array (b66c30a2)
+* local pids not always converted to absolute URLs on topic actor controller (f67942ca)
+* #13657, fix remote category data inconsistency in `sendNotificationToPostOwner` (225bf85e)
+* don't show votes on unread if rep system disabled (dfe19a98)
+* if reputation is disabled hide votes on /recent (8a786c71)
+* favicon path (e2dc592c)
+* check brand:touchIcon for correct path (56fad0be)
+* remove .auth call (f9ddbeba)
+* port the try/catch for notes.assert from develop (f9688b36)
+* perform Link header check on note assertion only when skipChecks is falsy (953c051c)
+* make auto-categorization logic case-insensitive (527f27af)
+* closes #13641, log test email sending errors server side (b3ffa007)
+* pass object to.auth (290a9395)
+* **deps:** bump 2factor to 7.6.0 (d1f5060f)
+
+##### Other Changes
+
+* remove unused (a6674f67)
+* fix (a37521b0)
+
+##### Performance Improvements
+
+* update upgrade script to use bulk methods (0a2fa45d)
+* update old upgrade scripts to use bulkSet/Add (32d0ee48)
+
+#### v4.5.1 (2025-09-04)
+
+##### Chores
+
+* up dbsearch (c07e81d2)
+* incrementing version number - v4.5.0 (f05c5d06)
+* update changelog for v4.5.0 (86d03b1e)
+* incrementing version number - v4.4.6 (074043ad)
+* incrementing version number - v4.4.5 (6f106923)
+* incrementing version number - v4.4.4 (d323af44)
+* incrementing version number - v4.4.3 (d354c2eb)
+* incrementing version number - v4.4.2 (55c510ae)
+* incrementing version number - v4.4.1 (5ae79b4e)
+* incrementing version number - v4.4.0 (0a75eee3)
+* incrementing version number - v4.3.2 (b92b5d80)
+* incrementing version number - v4.3.1 (308e6b9f)
+* incrementing version number - v4.3.0 (bff291db)
+* incrementing version number - v4.2.2 (17fecc24)
+* incrementing version number - v4.2.1 (852a270c)
+* incrementing version number - v4.2.0 (87581958)
+* incrementing version number - v4.1.1 (b2afbb16)
+* incrementing version number - v4.1.0 (36c80850)
+* incrementing version number - v4.0.6 (4a52fb2e)
+* incrementing version number - v4.0.5 (1792a62b)
+* incrementing version number - v4.0.4 (b1125cce)
+* incrementing version number - v4.0.3 (2b65c735)
+* incrementing version number - v4.0.2 (73fe5fcf)
+* incrementing version number - v4.0.1 (a461b758)
+* incrementing version number - v4.0.0 (c1eaee45)
+
+##### New Features
+
+* use _variables.scss overrides from acp in custom skins and bootswatch skins as well (0c48e0e9)
+
+##### Bug Fixes
+
+* remove unused dependency (8d7e3537)
+* remove test for 1b12 announce on topic move (as this no longer occurs) (9221d34f)
+* use existing id if checkHeader returns false (e6996846)
+* regression that caused Piefed (or potentially others) content to be dropped on receipt (86d9016f)
+* remove faulty code that tried to announce a remote object but couldn't as the ID was not a number (7adfe39e)
+
+#### v4.5.0 (2025-09-03)
+
+##### Chores
+
+* **deps:**
+ * pin dependency @stylistic/eslint-plugin to 5.3.1 (#13634) (4ade6007)
+ * update dependency sass-embedded to v1.91.0 (#13614) (e504ee34)
+ * update dependency @eslint/js to v9.34.0 (#13612) (dfc558cd)
+ * update redis docker tag to v8.2.1 (#13603) (02228c04)
+ * update dependency lint-staged to v16.1.5 (#13585) (f4f7953a)
+ * update postgres docker tag to v17.6 (#13599) (62d15a0e)
+ * update dependency @eslint/js to v9.33.0 (#13589) (bfdf47b6)
+ * update actions/checkout action to v5 (#13590) (311bbefa)
+ * update dependency sass-embedded to v1.90.0 (#13581) (c8694333)
+ * update dependency lint-staged to v16.1.4 (#13575) (34ecdf20)
+ * update redis docker tag to v8.2.0 (#13577) (25bc9ba0)
+ * update dependency @eslint/js to v9.31.0 (#13545) (97a5d543)
+ * update redis docker tag to v8.0.3 (#13539) (1b80910e)
+ * update dependency @eslint/js to v9.30.1 (#13524) (6d7df13f)
+ * update dependency @eslint/js to v9.30.0 (#13519) (15ea1233)
+ * update dependency smtp-server to v3.14.0 (#13515) (a41d2c0b)
+ * update dependency mocha to v11.7.1 (#13509) (bbacd8f6)
+ * update dependency mocha to v11.7.0 (#13502) (0a0dd1c1)
+ * update dependency @eslint/js to v9.29.0 (#13491) (2046ca72)
+ * update dependency lint-staged to v16.1.2 (#13492) (d6ba7930)
+ * update dependency sass-embedded to v1.89.2 (#13482) (f5651787)
+ * update dependency mocha to v11.6.0 (#13479) (9b4082dc)
+ * update dependency smtp-server to v3.13.8 (#13464) (d239125f)
+ * update redis docker tag to v8.0.2 (#13465) (166aaa7a)
+ * update dependency @eslint/js to v9.28.0 (#13469) (b3170c9c)
+ * update dependency sass-embedded to v1.89.1 (#13463) (32f13162)
+ * update dependency lint-staged to v16.1.0 (#13449) (6efe3fdd)
+ * update dependency mocha to v11.5.0 (#13442) (c1846475)
+ * update dependency smtp-server to v3.13.7 (#13437) (136e8814)
+ * update dependency sass-embedded to v1.89.0 (#13425) (aa977282)
+ * update dependency mocha to v11.4.0 (#13435) (5d017710)
+ * update dependency mocha to v11.3.0 (#13426) (650eeac9)
+ * update dependency @eslint/js to v9.27.0 (#13429) (475b0704)
+* **i18n:**
+ * fallback strings for new resources: nodebb.admin-settings-activitypub (cb00fb3b)
+ * fallback strings for new resources: nodebb.admin-manage-categories, nodebb.admin-settings-activitypub (40bda8fc)
+ * fallback strings for new resources: nodebb.social (eeabc990)
+ * fallback strings for new resources: nodebb.admin-dashboard (5d16fdc9)
+ * fallback strings for new resources: nodebb.admin-development-info (59c1ce85)
+ * fallback strings for new resources: nodebb.admin-development-info (5b54e926)
+ * fallback strings for new resources: nodebb.modules (f5aca114)
+ * fallback strings for new resources: nodebb.error (efb14ead)
+ * fallback strings for new resources: nodebb.error (e1eb76fe)
+* enable dbsearch on new installs (567f453b)
+* up peace (fdd0152e)
+* up harmony (6d60f945)
+* use fontsource-utils/scss to get rid of deprecation warning (44c0413c)
+* up eslibt (e68deaac)
+* up widget essentials (e7b47995)
+* incrementing version number - v4.4.6 (074043ad)
+* update changelog for v4.4.6 (3895a059)
+* incrementing version number - v4.4.5 (6f106923)
+* up eslint (637373e3)
+* up dbsearch (dae81b76)
+* up eslint-plugin (18d6e5e1)
+* up eslint (c056bf56)
+* remove logs (0315e369)
+* incrementing version number - v4.4.4 (d323af44)
+* incrementing version number - v4.4.3 (d354c2eb)
+* up eslint (536ae9d6)
+* incrementing version number - v4.4.2 (55c510ae)
+* eslint config (0d595008)
+* incrementing version number - v4.4.1 (5ae79b4e)
+* incrementing version number - v4.4.0 (0a75eee3)
+* incrementing version number - v4.3.2 (b92b5d80)
+* incrementing version number - v4.3.1 (308e6b9f)
+* incrementing version number - v4.3.0 (bff291db)
+* incrementing version number - v4.2.2 (17fecc24)
+* incrementing version number - v4.2.1 (852a270c)
+* incrementing version number - v4.2.0 (87581958)
+* incrementing version number - v4.1.1 (b2afbb16)
+* incrementing version number - v4.1.0 (36c80850)
+* incrementing version number - v4.0.6 (4a52fb2e)
+* incrementing version number - v4.0.5 (1792a62b)
+* incrementing version number - v4.0.4 (b1125cce)
+* incrementing version number - v4.0.3 (2b65c735)
+* incrementing version number - v4.0.2 (73fe5fcf)
+* incrementing version number - v4.0.1 (a461b758)
+* incrementing version number - v4.0.0 (c1eaee45)
+
+##### Continuous Integration
+
+* use native arm runners for building docker images (#13627) (931b7345)
+
+##### Documentation Changes
+
+* add missing routes to openapi schema (0f44034e)
+* openapi typo (560cc2eb)
+* update openapi schema for relays and rules (a9a12a9f)
+* openapi schema fixes for auto-categorization commits (c0248ca5)
+
+##### New Features
+
+* use sbd to more intelligently put together a sub-500 character summary based on existing sentences in post content (35641f37)
+* add sbd dependency to improve title generation (and for summary generation, later) (82686322)
+* send local posts out to established relays (aa26dfb3)
+* relay handshake logic, handle Follow/Accept, send back Accept. (f4d1df7c)
+* adding and removing relays from AP settings page in ACP (1e0fb20d)
+* apply auto-categorization logic (165af50d)
+* ability to add/remove auto-categorization rules for incoming federated content (bdcf28a3)
+* re-jigger 'add category' button to allow addition of remote category to main index (75639c86)
+* add Urdu localisation, thank you! (8c6992f5)
+* add wordpress (82037dee)
+* add wordpress (c10656ec)
+* only mark notifications read that match current filter (9d39ed51)
+* closes #13578, increase uniquevisitors (e1423636)
+* add new brite skin from bootswatch (e851a523)
+* add filter:post.getDiffs (97d4994a)
+* add filter:post.getDiffs (90a65129)
+* add expose-gc flag to loader (bba18e31)
+* add ap pageviews analytics (559a2d23)
+* add heap snapshot (f88329db)
+* add option to toggle chat join/leave message (92a3859f)
+* add protection mechanism to request lib so that network requests to reserved IP ranges throw an error (9d3b8c3a)
+
+##### Bug Fixes
+
+* **deps:**
+ * update dependency satori to v0.18.2 (#13628) (2dc39f1e)
+ * update dependency ace-builds to v1.43.3 (#13633) (7adabd60)
+ * update dependency nodemailer to v7.0.6 (#13630) (07b9cd16)
+ * update dependency mongodb to v6.19.0 (#13619) (6d856545)
+ * update dependency sass to v1.91.0 (#13615) (08ea56bd)
+ * update dependency bootstrap to v5.3.8 (#13618) (29a7402f)
+ * update dependency nodebb-theme-harmony to v2.1.17 (#13607) (2f4cf26c)
+ * update dependency nodebb-theme-peace to v2.2.47 (#13608) (8af76f3c)
+ * update dependency redis to v5.8.2 (#13606) (138c6753)
+ * update dependency webpack to v5.101.3 (#13602) (996740bd)
+ * update dependency webpack to v5.101.2 (#13598) (90bddccb)
+ * update dependency nodebb-widget-essentials to v7.0.40 (#13597) (f5b0444b)
+ * update dependency tough-cookie to v6 (#13600) (ceb65d13)
+ * update dependency esbuild to v0.25.9 (#13593) (9ef4cfa2)
+ * update dependency redis to v5.8.1 (#13594) (0f72b8cd)
+ * update dependency webpack to v5.101.1 (#13588) (c67aa43f)
+ * update dependency sass to v1.90.0 (#13582) (abf7dd74)
+ * update dependency fs-extra to v11.3.1 (#13579) (5ce556d4)
+ * update dependency redis to v5.8.0 (#13580) (3c3e4486)
+ * update dependency redis to v5.7.0 (#13570) (27d60a19)
+ * update dependency cron to v4.3.3 (#13573) (0b4efa14)
+ * update dependency satori to v0.16.2 (#13569) (70d3a29c)
+ * update dependency webpack to v5.101.0 (#13567) (6fc8dfa9)
+ * update dependency satori to v0.16.1 (#13560) (2d1a5fea)
+ * update dependency redis to v5.6.1 (#13564) (1262aee8)
+ * update dependency mongodb to v6.18.0 (#13563) (8e9d3843)
+ * update dependency esbuild to v0.25.8 (#13559) (6a732e36)
+ * update dependency esbuild to v0.25.7 (#13557) (1697e36f)
+ * update dependency express-session to v1.18.2 (#13554) (0eb0a67a)
+ * update dependency morgan to v1.10.1 (#13555) (0e457f15)
+ * update dependency multer to v2.0.2 (#13556) (35ca0e3b)
+ * update dependency compression to v1.8.1 (#13553) (12b9f4c7)
+ * update dependency ace-builds to v1.43.2 (#13548) (57564190)
+ * update dependency webpack to v5.100.2 (#13549) (0b398bba)
+ * update dependency webpack to v5.100.1 (#13544) (d8c26bec)
+ * update dependency cron to v4.3.2 (#13546) (e838bb26)
+ * update dependency nodebb-theme-peace to v2.2.46 (#13542) (e4f56e83)
+ * update dependency webpack to v5.100.0 (#13541) (4a5a4fe6)
+ * update dependency redis to v5.6.0 (#13540) (a6cb933b)
+ * update dependency esbuild to v0.25.6 (#13538) (8960fdb3)
+ * update dependency nodemailer to v7.0.5 (#13537) (c6f4148b)
+ * update dependency nodebb-theme-peace to v2.2.45 (#13529) (991f518e)
+ * update dependency nodebb-plugin-web-push to v0.7.5 (#13523) (ceae2aa1)
+ * update dependency ace-builds to v1.43.1 (#13525) (aba2ddad)
+ * update dependency nodemailer to v7.0.4 (#13522) (f1fbea7b)
+ * update dependency pg to v8.16.3 (#13517) (fd82919e)
+ * update dependency workerpool to v9.3.3 (#13518) (655a3bd3)
+ * update dependency pg-cursor to v2.15.3 (#13516) (6e5083c2)
+ * update dependency pg to v8.16.2 (#13505) (d2f0944e)
+ * update dependency nodebb-theme-peace to v2.2.44 (#13514) (59090931)
+ * update dependency nodebb-theme-harmony to v2.1.16 (#13513) (4be2e82b)
+ * update dependency bootswatch to v5.3.7 (#13510) (1eefaf5c)
+ * update dependency pg-cursor to v2.15.2 (#13506) (10f7b49b)
+ * update dependency ace-builds to v1.43.0 (#13507) (e360f649)
+ * update dependency pg-cursor to v2.15.1 (#13504) (3b364ba1)
+ * update dependency pg to v8.16.1 (#13503) (819e2805)
+ * update dependency bootstrap to v5.3.7 (#13499) (e84fc739)
+ * update dependency connect-redis to v9 (#13497) (d3faff36)
+ * update dependency chart.js to v4.5.0 (#13495) (f36a5ac8)
+ * update dependency postcss to v8.5.6 (#13494) (703fcbbf)
+ * update dependency postcss to v8.5.5 (#13490) (c101d0d5)
+ * update dependency sass to v1.89.2 (#13487) (442c6e71)
+ * update dependency nodebb-plugin-emoji to v6.0.3 (#13486) (efcbbf29)
+ * update dependency serve-favicon to v2.5.1 (#13488) (d2a7eecb)
+ * update dependency @fontsource/inter to v5.2.6 (#13477) (c04bd7cc)
+ * update dependency satori to v0.15.2 (#13481) (78ebe298)
+ * update dependency satori to v0.14.0 (#13476) (29afcd36)
+ * update dependency workerpool to v9.3.2 (#13452) (6b33b1f4)
+ * update dependency satori to v0.13.2 (#13468) (44d1a17b)
+ * update dependency postcss to v8.5.4 (#13453) (1c432925)
+ * update dependency multer to v2.0.1 (#13466) (d0060e5d)
+ * update dependency sass to v1.89.1 (#13467) (602417d0)
+ * update dependency ace-builds to v1.42.0 (#13470) (c363b84e)
+ * update dependency mongodb to v6.17.0 (#13471) (a3cc99a2)
+ * update dependency cron to v4.3.1 (#13457) (3694f655)
+ * update dependency validator to v13.15.15 (#13451) (36f0cf25)
+ * update dependency esbuild to v0.25.5 (#13447) (6a5bbe92)
+ * update dependency nodebb-plugin-dbsearch to v6.2.18 (#13445) (3ca6a9bc)
+ * update dependency bootbox to v6.0.4 (#13443) (e3a7fb5c)
+ * update dependency diff to v8.0.2 (#13440) (76a624b9)
+ * update dependency commander to v14 (#13434) (1d624aad)
+ * update dependency webpack to v5.99.9 (#13438) (314a4ff0)
+ * update dependency connect-redis to v8.1.0 (#13433) (ee8e223f)
+ * update dependency nodebb-plugin-dbsearch to v6.2.17 (#13432) (42f16da5)
+ * update dependency sass to v1.89.0 (#13427) (2417a79b)
+* display proper id if lock fails (19aa8a71)
+* closes #13624, update post fields before schedule code (9d4a9b83)
+* #13622, WordPress blog URLs not asserting properly (4ef605b1)
+* closes #13625, fix utils.params so it works with relative_paths (a0e78ff8)
+* remove webfinger error log (a0be4a28)
+* urlencoded param in openapi spec example (5f7085f3)
+* re-ordering dependencies because raisins (cbdc90a4)
+* missed a tab character (788301a5)
+* random hotkeys adding dependencies to my project smh (771b8dcb)
+* parseAndTranslate bug (40973ca7)
+* internationalize relay states (6576468e)
+* minor fixes for yukimochi/Activity-Relay compatibility (28b63891)
+* inbox.announce to not reject activities from relays (b1dbb19c)
+* handle webfinger responses with subject missing scheme (4967492f)
+* closes #13501 (bf279d71)
+* closes #13620 (027d6f30)
+* rare crash if queued item is no longer in db but id is in post:queue (e79dfeb7)
+* jquery selector on post edit (f5ad7862)
+* relative paths in openapi schema (a771b17f)
+* add missing routes to write.yaml (e8401472)
+* only process unique slugs (312df523)
+* remove special-case logic that added a requested object to a topic if its defined context didn't actually contain it (70d7e329)
+* return null if field is falsy (09898b94)
+* mark-all read notifications button (c16f9d64)
+* catch exceptions in assertPayload, closes #13611 (9bdf24f0)
+* add missing files (057e3b79)
+* add missing file to ur language folder (ecab347b)
+* regression caused by cc6fd49c4d2ddc6970ea23011dece5ba91517ec0 (06c38247)
+* protocol-relative URLs being accidentally munged, #13592 (cc6fd49c)
+* cache lookup error when doing loopback calls (67389639)
+* image handling when image url received is not a path with an extension (b4ff7906)
+* readd retry items (c6889f08)
+* set noindex tag on remote profiles as well (fe160160)
+* duplicate canonical link header (c8ad0867)
+* add rel canonical to remote user profiles (8ce5498f)
+* ap queue id to use payload.type payload.id (a8bf4ea0)
+* clearTimeout if item is evicted from cache (0997fbfa)
+* sometimes summary is null/undefined (65364bfa)
+* don't translate text on admin logs page (f6ed7ec2)
+* change the client side reloginTimer to match setting (c43c3533)
+* redis connect host/port (eac3d0a0)
+* closes #13558, override/extend json opts from config.json (25c24298)
+* add missing cache name (3f520c33)
+* add missing ap pageview middleware (01f2effc)
+* set to empty string if undefined (0ef98ec4)
+* make clickable element anchor (dbed2db9)
+* for attribute, remove upload trigger when click inputs (329f98d5)
+* check topic and thumbs (72fec565)
+* closes #13526, dont send multiple emails when user is invited (5a5ca8a5)
+* pubsub on node-redis (f7f70468)
+* typo (2280ea88)
+* ensure check returns false if no addresses are looked up, fix bug where cached value got changed accidentally (6478532b)
+* wrap cached returns for dns lookups in nextTick (010113a9)
+* #13459, unread indicators for remote categories (6411c197)
+* further guard against DNS rebinding attack (a8e613e1)
+* undefined check, allow plugins to append to allow list (70c04f0c)
+* simplify dns to use .lookup instead of .resolve4 and .resolve6, automatically allow requests to own hostname (df360216)
+* return 200 for non-implemented activities instead of 501 (fcb3bfbc)
+* remove null categories (28c021a0)
+* patch ap .probe() so that it does not execute on requests for its own resources (a80edfa1)
+* bring back auto-categorization if group and object are same-origin, handle Peertube putting channel names in `attributedTo` (8f933459)
+
+##### Other Changes
+
+* fix comma dangle (d4bf5f0c)
+* fix lint issue (5dfd2413)
+* remove unused url (076cc9e8)
+
+##### Refactors
+
+* revert, don't need to pass relative_path (f67265da)
+* leaner utils.params for relative path (648c4543)
+* remove invalid queued items (b73ee309)
+* braces (f83d2536)
+* add missing awaits (5ee1fd02)
+* category listing logic to allow remote categories to be added, disabled, and re-arranged in main forum index (cb0b6092)
+* show code/stack when dep check fails (f8733e06)
+* dont del if cache disabled (bc40d79c)
+* remove old arg (8305a742)
+* if user.delete fails in actor prune (d5f6d158)
+* use promise.all (472df3aa)
+* use promise.all (6eab44a0)
+* move ap retry queue from lru cache to db (#13568) (b3a4a128)
+* log uid that failed (de71cc63)
+* change default teaser to last-post (8ba230a2)
+* copy session/headers when building req (e4a0160e)
+* show both days and hours (1d7c32a5)
+* add missing cache name (272008bb)
+* another missing cache name (0fdde132)
+* add names to caches, add max to request cache (a08551a5)
+* closes #13547, process user uploads via batch (1ad97ac1)
+* move post uploads to post hash (#13533) (24e7cf4a)
+* parallel socket.io adapter (0b9bfc1c)
+* use strings for cids (57a5de26)
+
+##### Reverts
+
+* remove heapdump (e74996fb)
+
+##### Tests
+
+* delete commented-out test (70bbed93)
+* add timeout to ap.helpers.query (8f7411c3)
+* more logs (8e160fe0)
+* add more logs (f703a94b)
+* add more logs (681ce8bf)
+* debug timeout (029da6c5)
+* more logs for failing test (79c6e72c)
+* catch error in failing test (69a6c150)
+* sharp invalid png (1ea10eff)
+* latest sharp (3cdf28bd)
+* add logs for test that's timing out (15155809)
+* use protocol of test runner (04815497)
+* fix notification tests (f8a0a7e1)
+* one more fix (95f6688c)
+* fix spec (7393bdd4)
+* fix openapi (1071ac0c)
+* fix meta test (1776bd1d)
+* test fixes for default teaser change (8eedb38a)
+* add openapi spec (020e0ad1)
+* try timeout again (27aab921)
+* disable timeout (930ff21f)
+* psql fix (85e2d7d3)
+* one more test fix (22d1972f)
+* fix test, add joinLeaveMessages to newRoom (7acd63c2)
+* increase timeout (fa31ba05)
+* on more (1a85fafb)
+* testing timeout on failing test (82c8034c)
+* remove ci env (39d243b0)
+* add a null field test (1fc91d5e)
+
+#### v4.4.6 (2025-08-06)
+
+##### Chores
+
+* incrementing version number - v4.4.5 (6f106923)
+* update changelog for v4.4.5 (de05dad2)
+* incrementing version number - v4.4.4 (d323af44)
+* incrementing version number - v4.4.3 (d354c2eb)
+* incrementing version number - v4.4.2 (55c510ae)
+* incrementing version number - v4.4.1 (5ae79b4e)
+* incrementing version number - v4.4.0 (0a75eee3)
+* incrementing version number - v4.3.2 (b92b5d80)
+* incrementing version number - v4.3.1 (308e6b9f)
+* incrementing version number - v4.3.0 (bff291db)
+* incrementing version number - v4.2.2 (17fecc24)
+* incrementing version number - v4.2.1 (852a270c)
+* incrementing version number - v4.2.0 (87581958)
+* incrementing version number - v4.1.1 (b2afbb16)
+* incrementing version number - v4.1.0 (36c80850)
+* incrementing version number - v4.0.6 (4a52fb2e)
+* incrementing version number - v4.0.5 (1792a62b)
+* incrementing version number - v4.0.4 (b1125cce)
+* incrementing version number - v4.0.3 (2b65c735)
+* incrementing version number - v4.0.2 (73fe5fcf)
+* incrementing version number - v4.0.1 (a461b758)
+* incrementing version number - v4.0.0 (c1eaee45)
+
+##### New Features
+
+* add new brite skin from bootswatch (567ed875)
+
+##### Bug Fixes
+
+* pass max-memory expose-gc as process args (d5f57af3)
+
#### v4.4.5 (2025-07-31)
##### Chores
diff --git a/docker-compose-pgsql.yml b/docker-compose-pgsql.yml
index 9011d0f92a..4ff8db6428 100644
--- a/docker-compose-pgsql.yml
+++ b/docker-compose-pgsql.yml
@@ -14,7 +14,7 @@ services:
- ./install/docker/setup.json:/usr/src/app/setup.json
postgres:
- image: postgres:17.5-alpine
+ image: postgres:18.1-alpine
restart: unless-stopped
environment:
POSTGRES_USER: nodebb
@@ -24,7 +24,7 @@ services:
- postgres-data:/var/lib/postgresql/data
redis:
- image: redis:8.0.1-alpine
+ image: redis:8.4.0-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
diff --git a/docker-compose-redis.yml b/docker-compose-redis.yml
index da31cd6886..6334267ff7 100644
--- a/docker-compose-redis.yml
+++ b/docker-compose-redis.yml
@@ -14,7 +14,7 @@ services:
- ./install/docker/setup.json:/usr/src/app/setup.json
redis:
- image: redis:8.0.1-alpine
+ image: redis:8.4.0-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
diff --git a/docker-compose.yml b/docker-compose.yml
index 637cecb0cd..54e178d336 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -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.0.1-alpine
+ image: redis:8.4.0-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:17.5-alpine
+ image: postgres:18.1-alpine
restart: unless-stopped
environment:
POSTGRES_USER: nodebb
diff --git a/eslint.config.mjs b/eslint.config.mjs
index dd39fc1544..47cfa158f5 100644
--- a/eslint.config.mjs
+++ b/eslint.config.mjs
@@ -5,7 +5,7 @@ import publicConfig from 'eslint-config-nodebb/public';
import commonRules from 'eslint-config-nodebb/common';
import { defineConfig } from 'eslint/config';
-import stylisticJs from '@stylistic/eslint-plugin-js'
+import stylisticJs from '@stylistic/eslint-plugin'
import js from '@eslint/js';
import globals from 'globals';
diff --git a/install/data/defaults.json b/install/data/defaults.json
index b17bbbb135..2f733961ea 100644
--- a/install/data/defaults.json
+++ b/install/data/defaults.json
@@ -24,8 +24,8 @@
"newbieChatMessageDelay": 120000,
"notificationSendDelay": 60,
"newbieReputationThreshold": 3,
- "postQueue": 0,
- "postQueueReputationThreshold": 0,
+ "postQueue": 1,
+ "postQueueReputationThreshold": 1,
"groupsExemptFromPostQueue": ["administrators", "Global Moderators"],
"groupsExemptFromNewUserRestrictions": ["administrators", "Global Moderators"],
"groupsExemptFromMaintenanceMode": ["administrators", "Global Moderators"],
@@ -36,8 +36,9 @@
"maximumTagsPerTopic": 5,
"minimumTagLength": 3,
"maximumTagLength": 15,
- "undoTimeout": 10000,
+ "undoTimeout": 0,
"allowTopicsThumbnail": 1,
+ "showPostUploadsAsThumbnails": 1,
"registrationType": "normal",
"registrationApprovalType": "normal",
"allowAccountDelete": 1,
@@ -69,14 +70,14 @@
"maximumChatMessageLength": 1000,
"maximumRemoteChatMessageLength": 5000,
"maximumChatRoomNameLength": 50,
- "maximumProfileImageSize": 256,
+ "maximumProfileImageSize": 2048,
"maximumCoverImageSize": 2048,
"profileImageDimension": 200,
"profile:convertProfileImageToPNG": 0,
"profile:keepAllUserImages": 0,
"gdpr_enabled": 1,
"allowProfileImageUploads": 1,
- "teaserPost": "last-reply",
+ "teaserPost": "last-post",
"showPostPreviewsOnHover": 1,
"allowPrivateGroups": 1,
"unreadCutoff": 2,
diff --git a/install/docker/entrypoint.sh b/install/docker/entrypoint.sh
index db2a637ee0..a38aa4196f 100755
--- a/install/docker/entrypoint.sh
+++ b/install/docker/entrypoint.sh
@@ -12,6 +12,7 @@ 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
@@ -172,6 +173,33 @@ 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
@@ -182,12 +210,14 @@ 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"
diff --git a/install/package.json b/install/package.json
index aa946a4599..0fa4857df9 100644
--- a/install/package.json
+++ b/install/package.json
@@ -2,7 +2,7 @@
"name": "nodebb",
"license": "GPL-3.0",
"description": "NodeBB Forum",
- "version": "4.4.6",
+ "version": "4.8.0",
"homepage": "https://www.nodebb.org",
"repository": {
"type": "git",
@@ -29,55 +29,55 @@
},
"dependencies": {
"@adactive/bootstrap-tagsinput": "0.8.2",
- "@fontsource/inter": "5.2.5",
- "@fontsource/poppins": "5.2.6",
+ "@fontsource-utils/scss": "0.2.2",
+ "@fontsource/inter": "5.2.8",
+ "@fontsource/poppins": "5.2.7",
"@fortawesome/fontawesome-free": "6.7.2",
- "@isaacs/ttlcache": "1.4.1",
+ "@isaacs/ttlcache": "2.1.4",
"@nodebb/spider-detector": "2.0.3",
"@popperjs/core": "2.11.8",
"@textcomplete/contenteditable": "0.1.13",
"@textcomplete/core": "0.1.13",
"@textcomplete/textarea": "0.1.13",
- "ace-builds": "1.41.0",
+ "ace-builds": "1.43.5",
"archiver": "7.0.1",
"async": "3.2.6",
- "autoprefixer": "10.4.21",
- "bcryptjs": "3.0.2",
+ "autoprefixer": "10.4.23",
+ "bcryptjs": "3.0.3",
"benchpressjs": "2.5.5",
- "body-parser": "2.2.0",
- "bootbox": "6.0.3",
- "bootstrap": "5.3.6",
- "bootswatch": "5.3.6",
+ "body-parser": "2.2.2",
+ "bootbox": "6.0.4",
+ "bootstrap": "5.3.8",
+ "bootswatch": "5.3.8",
"chalk": "4.1.2",
- "chart.js": "4.4.9",
+ "chart.js": "4.5.1",
"cli-graph": "3.2.2",
"clipboard": "2.0.11",
- "commander": "13.1.0",
+ "commander": "14.0.2",
"compare-versions": "6.1.1",
- "compression": "1.8.0",
+ "compression": "1.8.1",
"connect-flash": "0.1.1",
- "connect-mongo": "5.1.0",
- "connect-multiparty": "2.2.0",
+ "connect-mongo": "6.0.0",
"connect-pg-simple": "10.0.0",
- "connect-redis": "8.0.3",
+ "connect-redis": "9.0.0",
"cookie-parser": "1.4.7",
- "cron": "4.3.0",
+ "cron": "4.4.0",
"cropperjs": "1.6.2",
"csrf-sync": "4.2.1",
"daemon": "1.1.0",
- "diff": "8.0.1",
- "esbuild": "0.25.4",
- "express": "4.21.2",
- "express-session": "1.18.1",
- "express-useragent": "1.0.15",
- "fetch-cookie": "3.1.0",
+ "diff": "8.0.3",
+ "esbuild": "0.27.2",
+ "express": "4.22.1",
+ "express-session": "1.18.2",
+ "express-useragent": "2.0.2",
+ "fetch-cookie": "3.2.0",
"file-loader": "6.2.0",
- "fs-extra": "11.3.0",
+ "fs-extra": "11.3.3",
"graceful-fs": "4.2.11",
"helmet": "7.2.0",
"html-to-text": "9.0.5",
"imagesloaded": "5.0.0",
- "ipaddr.js": "2.2.0",
+ "ipaddr.js": "2.3.0",
"jquery": "3.7.1",
"jquery-deserialize": "2.0.0",
"jquery-form": "4.3.0",
@@ -85,71 +85,75 @@
"jquery-ui": "1.14.1",
"jsesc": "3.1.0",
"json2csv": "5.0.7",
- "jsonwebtoken": "9.0.2",
+ "jsonwebtoken": "9.0.3",
"lodash": "4.17.21",
"logrotate-stream": "0.2.9",
- "lru-cache": "11.1.0",
+ "lru-cache": "11.2.4",
"mime": "3.0.0",
"mkdirp": "3.0.1",
- "mongodb": "6.16.0",
- "morgan": "1.10.0",
+ "mongodb": "7.0.0",
+ "morgan": "1.10.1",
"mousetrap": "1.6.5",
- "multiparty": "4.2.3",
+ "multer": "2.0.2",
"nconf": "0.13.0",
- "nodebb-plugin-2factor": "7.5.10",
- "nodebb-plugin-composer-default": "10.2.51",
- "nodebb-plugin-dbsearch": "6.2.19",
- "nodebb-plugin-emoji": "6.0.2",
+ "nodebb-plugin-2factor": "7.6.1",
+ "nodebb-plugin-composer-default": "10.3.1",
+ "nodebb-plugin-dbsearch": "6.3.4",
+ "nodebb-plugin-emoji": "6.0.5",
"nodebb-plugin-emoji-android": "4.1.1",
- "nodebb-plugin-markdown": "13.2.1",
- "nodebb-plugin-mentions": "4.7.6",
+ "nodebb-plugin-link-preview": "2.2.1",
+ "nodebb-plugin-markdown": "13.2.3",
+ "nodebb-plugin-mentions": "4.8.5",
"nodebb-plugin-spam-be-gone": "2.3.2",
- "nodebb-plugin-web-push": "0.7.4",
+ "nodebb-plugin-web-push": "0.7.6",
"nodebb-rewards-essentials": "1.0.2",
- "nodebb-theme-harmony": "file:vendor/nodebb-theme-harmony-2.1.15",
+ "nodebb-theme-harmony": "file:vendor/nodebb-theme-harmony-2.1.35",
"nodebb-theme-lavender": "7.1.19",
- "nodebb-theme-peace": "2.2.43",
- "nodebb-theme-persona": "14.1.12",
- "nodebb-widget-essentials": "7.0.38",
- "nodemailer": "7.0.3",
+ "nodebb-theme-peace": "2.2.49",
+ "nodebb-theme-persona": "14.1.25",
+ "nodebb-widget-essentials": "7.0.41",
+ "nodemailer": "7.0.12",
"nprogress": "0.2.0",
"passport": "0.7.0",
"passport-http-bearer": "1.0.1",
"passport-local": "1.0.0",
- "pg": "8.16.0",
- "pg-cursor": "2.15.0",
- "postcss": "8.5.3",
+ "pg": "8.16.3",
+ "pg-cursor": "2.15.3",
+ "postcss": "8.5.6",
"postcss-clean": "1.2.0",
+ "pretty": "^2.0.0",
"progress-webpack-plugin": "1.0.16",
"prompt": "1.3.0",
- "ioredis": "5.6.1",
- "rimraf": "6.0.1",
+ "redis": "5.10.0",
+ "rimraf": "6.1.2",
"rss": "1.2.2",
"rtlcss": "4.3.0",
"sanitize-html": "2.17.0",
- "sass": "1.88.0",
- "satori": "0.13.1",
- "semver": "7.7.2",
- "serve-favicon": "2.5.0",
- "sharp": "0.32.6",
- "sitemap": "8.0.0",
- "socket.io": "4.8.1",
- "socket.io-client": "4.8.1",
+ "sass": "1.97.2",
+ "satori": "0.18.3",
+ "sbd": "^1.0.19",
+ "semver": "7.7.3",
+ "serve-favicon": "2.5.1",
+ "sharp": "0.34.5",
+ "sitemap": "9.0.0",
+ "socket.io": "4.8.3",
+ "socket.io-client": "4.8.3",
"@socket.io/redis-adapter": "8.3.0",
"sortablejs": "1.15.6",
- "spdx-license-list": "6.10.0",
- "terser-webpack-plugin": "5.3.14",
+ "spdx-license-list": "6.11.0",
+ "terser-webpack-plugin": "5.3.16",
"textcomplete": "0.18.2",
"textcomplete.contenteditable": "0.1.1",
"timeago": "1.6.7",
"tinycon": "0.6.8",
"toobusy-js": "0.5.1",
- "tough-cookie": "5.1.2",
- "validator": "13.15.0",
- "webpack": "5.99.8",
+ "tough-cookie": "6.0.0",
+ "undici": "^7.10.0",
+ "validator": "13.15.26",
+ "webpack": "5.104.1",
"webpack-merge": "6.0.1",
- "winston": "3.17.0",
- "workerpool": "9.2.0",
+ "winston": "3.19.0",
+ "workerpool": "10.0.1",
"xml": "1.0.1",
"xregexp": "5.1.2",
"yargs": "17.7.2",
@@ -157,26 +161,26 @@
},
"devDependencies": {
"@apidevtools/swagger-parser": "10.1.0",
- "@commitlint/cli": "19.8.1",
- "@commitlint/config-angular": "19.8.1",
+ "@commitlint/cli": "20.3.1",
+ "@commitlint/config-angular": "20.3.1",
"coveralls": "3.1.1",
- "@eslint/js": "9.26.0",
- "@stylistic/eslint-plugin-js": "4.4.0",
- "eslint-config-nodebb": "1.1.5",
- "eslint-plugin-import": "2.31.0",
+ "@eslint/js": "9.39.2",
+ "@stylistic/eslint-plugin": "5.7.0",
+ "eslint-config-nodebb": "1.1.11",
+ "eslint-plugin-import": "2.32.0",
"grunt": "1.6.1",
"grunt-contrib-watch": "1.1.0",
"husky": "8.0.3",
- "jsdom": "26.1.0",
- "lint-staged": "16.0.0",
- "mocha": "11.2.2",
+ "jsdom": "27.4.0",
+ "lint-staged": "16.2.7",
+ "mocha": "11.7.5",
"mocha-lcov-reporter": "1.3.0",
"mockdate": "3.0.5",
"nyc": "17.1.0",
- "smtp-server": "3.13.6"
+ "smtp-server": "3.18.0"
},
"optionalDependencies": {
- "sass-embedded": "1.88.0"
+ "sass-embedded": "1.97.2"
},
"resolutions": {
"*/jquery": "3.7.1"
diff --git a/loader.js b/loader.js
index 0f80697633..427c952ff4 100644
--- a/loader.js
+++ b/loader.js
@@ -106,6 +106,7 @@ function forkWorker(index, isPrimary) {
if (nconf.get('expose-gc')) {
execArgv.push('--expose-gc');
}
+
if (!ports[index]) {
return console.log(`[cluster] invalid port for worker : ${index} ports: ${ports.length}`);
}
diff --git a/public/language/ar/admin/dashboard.json b/public/language/ar/admin/dashboard.json
index b44c50d859..fe7d88a0c9 100644
--- a/public/language/ar/admin/dashboard.json
+++ b/public/language/ar/admin/dashboard.json
@@ -75,6 +75,7 @@
"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": "المستخدمين الزوار",
diff --git a/public/language/ar/admin/manage/categories.json b/public/language/ar/admin/manage/categories.json
index 626e15e5bc..64beb3ce28 100644
--- a/public/language/ar/admin/manage/categories.json
+++ b/public/language/ar/admin/manage/categories.json
@@ -1,18 +1,22 @@
{
"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",
- "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.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "Background Colour",
"text-color": "Text Colour",
"bg-image-size": "Background Image Size",
@@ -103,6 +107,11 @@
"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.
Note — 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": "
Do you really want to purge this category \"%1\"?
Warning! All topics and posts in this category will be purged!
Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.
",
"alert.purge-success": "Category purged!",
"alert.copy-success": "Settings Copied!",
diff --git a/public/language/ar/admin/settings/activitypub.json b/public/language/ar/admin/settings/activitypub.json
index 94f9ad7822..5ab4fa43e8 100644
--- a/public/language/ar/admin/settings/activitypub.json
+++ b/public/language/ar/admin/settings/activitypub.json
@@ -18,6 +18,28 @@
"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.
N.B. 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 # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
+ "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 /actor.",
+ "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 %1 server(s)",
"server.filter-help": "Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively allow federation with specific servers, instead. Both options are supported, although they are mutually exclusive.",
diff --git a/public/language/ar/admin/settings/uploads.json b/public/language/ar/admin/settings/uploads.json
index b8d85be443..af3efb16f7 100644
--- a/public/language/ar/admin/settings/uploads.json
+++ b/public/language/ar/admin/settings/uploads.json
@@ -22,6 +22,7 @@
"reject-image-height": "Maximum Image Height (in pixels)",
"reject-image-height-help": "Images taller than this value will be rejected.",
"allow-topic-thumbnails": "السماح للاعضاء برفع الصور المصغرة للموضوع",
+ "show-post-uploads-as-thumbnails": "Show post uploads as thumbnails",
"topic-thumb-size": "حجم الصورة المصغرة للموضوع",
"allowed-file-extensions": "إمتدادات الملفات المسموح بها",
"allowed-file-extensions-help": "أدخل قائمة بامتدادات الملفات مفصولة بفواصل (مثال: pdf,xls,doc). القائمة الفارغة تعني أن كل الامتدادات مسموح بها.",
diff --git a/public/language/ar/aria.json b/public/language/ar/aria.json
index 8e2c565c82..ec7889d2f4 100644
--- a/public/language/ar/aria.json
+++ b/public/language/ar/aria.json
@@ -5,5 +5,6 @@
"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"
+ "group-page-link-for": "Group page link for %1",
+ "show-crossposts": "Show Cross-posts"
}
\ No newline at end of file
diff --git a/public/language/ar/error.json b/public/language/ar/error.json
index 4c9d77e775..9d0edec4bd 100644
--- a/public/language/ar/error.json
+++ b/public/language/ar/error.json
@@ -3,6 +3,7 @@
"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": "البحث في المنتدى يتطلب حساب - الرجاء تسجيل الدخول أو التسجيل",
@@ -146,6 +147,7 @@
"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": "ملف غير مقبول",
@@ -227,6 +229,7 @@
"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",
@@ -236,6 +239,7 @@
"socket-reconnect-failed": "Unable to reach the server at this time. Click here to try again, or try again later",
"invalid-plugin-id": "Invalid plugin ID",
"plugin-not-whitelisted": "Unable to install plugin – only plugins whitelisted by the NodeBB Package Manager can be installed via the ACP",
+ "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",
diff --git a/public/language/ar/global.json b/public/language/ar/global.json
index 5790feee44..9353a7823f 100644
--- a/public/language/ar/global.json
+++ b/public/language/ar/global.json
@@ -68,6 +68,7 @@
"users": "الأعضاء",
"topics": "المواضيع",
"posts": "المشاركات",
+ "crossposts": "Cross-posts",
"x-posts": "%1 posts",
"x-topics": "%1 topics",
"x-reputation": "%1 reputation",
diff --git a/public/language/ar/modules.json b/public/language/ar/modules.json
index 1bf14cdc27..cb15105037 100644
--- a/public/language/ar/modules.json
+++ b/public/language/ar/modules.json
@@ -48,6 +48,7 @@
"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",
diff --git a/public/language/ar/social.json b/public/language/ar/social.json
index b36256840e..4e95bbb8ba 100644
--- a/public/language/ar/social.json
+++ b/public/language/ar/social.json
@@ -8,5 +8,7 @@
"log-in-with-facebook": "تسجيل الدخول باستخدام فيسبوك",
"continue-with-facebook": "التسجيل باستخدام فيسبوك",
"sign-in-with-linkedin": "Sign in with LinkedIn",
- "sign-up-with-linkedin": "Sign up 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"
}
\ No newline at end of file
diff --git a/public/language/ar/topic.json b/public/language/ar/topic.json
index fffdfd022c..1f5d03920f 100644
--- a/public/language/ar/topic.json
+++ b/public/language/ar/topic.json
@@ -103,6 +103,7 @@
"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",
@@ -132,6 +133,7 @@
"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",
@@ -141,6 +143,7 @@
"loading-more-posts": "تحميل المزيد من المشاركات",
"move-topic": "نقل الموضوع",
"move-topics": "نقل المواضيع",
+ "crosspost-topic": "Cross-post Topic",
"move-post": "نقل المشاركة",
"post-moved": "تم نقل المشاركة",
"fork-topic": "فرع الموضوع",
@@ -163,6 +166,9 @@
"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",
diff --git a/public/language/az/admin/dashboard.json b/public/language/az/admin/dashboard.json
index 8e7b0253d4..ec74e422a9 100644
--- a/public/language/az/admin/dashboard.json
+++ b/public/language/az/admin/dashboard.json
@@ -75,6 +75,7 @@
"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",
diff --git a/public/language/az/admin/manage/categories.json b/public/language/az/admin/manage/categories.json
index 460c4cd852..ed6b0c63d5 100644
--- a/public/language/az/admin/manage/categories.json
+++ b/public/language/az/admin/manage/categories.json
@@ -1,18 +1,22 @@
{
"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",
- "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.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "Arxa fon rəngi",
"text-color": "Mətnin rəngi",
"bg-image-size": "Fon şəklinin ölçüsü",
@@ -103,6 +107,11 @@
"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.
Note — 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": "
Bu \"%1\" kateqoriyasını həqiqətən təmizləmək istəyirsiniz?
Xəbərdarlıq! Bu kateqoriyadakı bütün mövzular və yazılar silinəcək!
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ı müvəqqəti olaraq silmək istəyirsinizsə, bunun əvəzinə kateqoriyanı \"deaktiv etmək\" istəyəcəksiniz.
",
"alert.purge-success": "Kateqoriya təmizləndi!",
"alert.copy-success": "Parametrlər kopyalandı!",
diff --git a/public/language/az/admin/settings/activitypub.json b/public/language/az/admin/settings/activitypub.json
index f7bb02e10b..2399a20908 100644
--- a/public/language/az/admin/settings/activitypub.json
+++ b/public/language/az/admin/settings/activitypub.json
@@ -18,6 +18,28 @@
"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.
N.B. 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 # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
+ "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 /actor.",
+ "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 %1 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ə icazə verə bilərsiniz. Hər iki variant bir-birini istisna etsə də, dəstəklənir.",
diff --git a/public/language/az/admin/settings/uploads.json b/public/language/az/admin/settings/uploads.json
index ceed4ae396..a403a54e34 100644
--- a/public/language/az/admin/settings/uploads.json
+++ b/public/language/az/admin/settings/uploads.json
@@ -22,6 +22,7 @@
"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.",
"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, pdf, xls, doc). Boş siyahı bütün genişləndirmələrə icazə verildiyini bildirir.",
diff --git a/public/language/az/aria.json b/public/language/az/aria.json
index d4813bf642..5552b75196 100644
--- a/public/language/az/aria.json
+++ b/public/language/az/aria.json
@@ -5,5 +5,6 @@
"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"
+ "group-page-link-for": "%1 üçün qrup səhifəsi linki",
+ "show-crossposts": "Show Cross-posts"
}
\ No newline at end of file
diff --git a/public/language/az/error.json b/public/language/az/error.json
index 4c364364fb..37d0761e28 100644
--- a/public/language/az/error.json
+++ b/public/language/az/error.json
@@ -3,6 +3,7 @@
"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.",
@@ -146,6 +147,7 @@
"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",
@@ -227,6 +229,7 @@
"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",
@@ -236,6 +239,7 @@
"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 – 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.",
diff --git a/public/language/az/global.json b/public/language/az/global.json
index 9430259eb9..2fe835ca89 100644
--- a/public/language/az/global.json
+++ b/public/language/az/global.json
@@ -68,6 +68,7 @@
"users": "İstifadəçilər",
"topics": "Mövzu",
"posts": "Yazı",
+ "crossposts": "Cross-posts",
"x-posts": "%1 yazı",
"x-topics": "%1 mövzu",
"x-reputation": "%1 reputasiya",
diff --git a/public/language/az/modules.json b/public/language/az/modules.json
index dad624a47f..b82661a7e1 100644
--- a/public/language/az/modules.json
+++ b/public/language/az/modules.json
@@ -48,6 +48,7 @@
"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",
diff --git a/public/language/az/social.json b/public/language/az/social.json
index 42afa9db1a..e9010887fe 100644
--- a/public/language/az/social.json
+++ b/public/language/az/social.json
@@ -8,5 +8,7 @@
"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-up-with-linkedin": "LinkedIn ilə qeydiyyatdan keç",
+ "sign-in-with-wordpress": "Sign in with WordPress",
+ "sign-up-with-wordpress": "Sign up with WordPress"
}
\ No newline at end of file
diff --git a/public/language/az/topic.json b/public/language/az/topic.json
index d8993f4098..5a856f5992 100644
--- a/public/language/az/topic.json
+++ b/public/language/az/topic.json
@@ -103,6 +103,7 @@
"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ş",
@@ -132,6 +133,7 @@
"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",
@@ -141,6 +143,7 @@
"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",
@@ -163,6 +166,9 @@
"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",
diff --git a/public/language/bg/admin/dashboard.json b/public/language/bg/admin/dashboard.json
index d7839ed1ff..f749044a69 100644
--- a/public/language/bg/admin/dashboard.json
+++ b/public/language/bg/admin/dashboard.json
@@ -75,6 +75,7 @@
"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": "Гости",
diff --git a/public/language/bg/admin/manage/categories.json b/public/language/bg/admin/manage/categories.json
index 31531b4c16..755a7a8caa 100644
--- a/public/language/bg/admin/manage/categories.json
+++ b/public/language/bg/admin/manage/categories.json
@@ -1,18 +1,22 @@
{
"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": "Описание на категорията",
- "federatedDescription": "Федерирано описание",
- "federatedDescription.help": "Този текст ще бъде добавен към описанието на категорията, когато други уеб сайтове и приложения изискват информация за нея.",
- "federatedDescription.default": "Това е категория във форума, съдържаща тематични дискусии. Може да започнете нова дискусия, като споменете този форум.",
+ "topic-template": "Шаблон за темите",
+ "topic-template.help": "Създайте шаблон за новите теми в тази категория.",
"bg-color": "Цвят на фона",
"text-color": "Цвят на текста",
"bg-image-size": "Размер на фоновото изображение",
@@ -103,6 +107,11 @@
"alert.create-success": "Категорията е създадена успешно!",
"alert.none-active": "Нямате активни категории.",
"alert.create": "Създаване на категория",
+ "alert.add": "Добавяне на категория",
+ "alert.add-help": "Отдалечена категория може да бъде добавена в списъка с категории, като посочите нейния идентификатор.
Забележка – отдалечената категория може да не отразява всички публикувани теми, освен ако поне един локален потребител не я следи/наблюдава.",
+ "alert.rename": "Преименуване на отдалечена категория",
+ "alert.rename-help": "Въведете новото име за тази категория. Оставете празно, за да върнете оригиналното име.",
+ "alert.confirm-remove": "Наистина ли искате да премахнете тази категория? Можете да я добавите отново по всяко време.",
"alert.confirm-purge": "
Наистина ли искате да изтриете категорията „%1“?
Внимание! Всички теми и публикации в тази категория ще бъдат изтрити!
Изтриването на категорията ще премахне всички теми и публикации, и ще изтрие категорията от базата данни. Ако искате да премахнете категорията временно, можете просто да я „изключите“.
",
"alert.purge-success": "Категорията е изтрита!",
"alert.copy-success": "Настройките са копирани!",
diff --git a/public/language/bg/admin/settings/activitypub.json b/public/language/bg/admin/settings/activitypub.json
index 59c76176bd..dea26e2dfa 100644
--- a/public/language/bg/admin/settings/activitypub.json
+++ b/public/language/bg/admin/settings/activitypub.json
@@ -18,6 +18,28 @@
"probe-timeout": "Време за изчакване на проверката (милисекунди)",
"probe-timeout-help": "(По подразбиране: 2000) Ако проверката не получи отговор в рамките на зададеното време, потребителят ще бъде изпратен директно на адреса на връзката. Задайте по-голямо число, ако уеб сайтовете отговарят по-бавно и искате да им дадете повече време.",
+ "rules": "Категоризиране",
+ "rules-intro": "Съдържанието открито чрез ActivityPub може да бъде категоризирано автоматично следвайки определени правила (например дума отбелязана с диез)",
+ "rules.modal.title": "Как работи това",
+ "rules.modal.instructions": "Цялото входящо съдържание се проверява спрямо правилата и ако има съвпадения – те се преместват в избраната категория.
Забележка Съдържанието, което вече е категоризирано (например в отдалечена категория) няма да преминава тези проверки.",
+ "rules.add": "Добавяне на ново правило",
+ "rules.help-hashtag": "Ще се търсят съвпадения с теми съдържащи тази дума с диез (не се прави разлика между главни и малки букви). Не въвеждайте знака #",
+ "rules.help-user": "Ще се търсят теми създадени от този потребител. Въведете псевдоним или пълен идентификатор (например bob@example.org или https://example.org/users/bob.",
+ "rules.type": "Тип",
+ "rules.value": "Стойност",
+ "rules.cid": "Категория",
+
+ "relays": "Препредавател",
+ "relays.intro": "Препредавателят подобрява отриването на съдържание за и от Вашият NodeBB. Абонирането за препредавател означава, че съдържанието получено от него ще бъде препредавано тук, а съдържанието публикувано тук, ще бъде излъчвано от него за останалите.",
+ "relays.warning": "Забележка: препредавателите могат да доставят огромно количество трафик, което може да увеличи разходите Ви за съхранение и обработка.",
+ "relays.litepub": "NodeBB използва стандарт за препредаване в стила на LitePub. Адресът, който въведете тук, трябва да завършва с /actor.",
+ "relays.add": "Добавяне на нов препредавател",
+ "relays.relay": "Препредавател",
+ "relays.state": "Състояние",
+ "relays.state-0": "В изчакване",
+ "relays.state-1": "Само приемане",
+ "relays.state-2": "Активен",
+
"server-filtering": "Филтриране",
"count": "Този NodeBB в момента знае за наличието на %1 сървър(а)",
"server.filter-help": "Посочете сървърите, с които не искате Вашият NodeBB да осъществява връзка. Или можете вместо това да посочите конкретни сървъри, с които разрешавате връзката. И двете възможности са налични, но може да изберете само една от тях.",
diff --git a/public/language/bg/admin/settings/uploads.json b/public/language/bg/admin/settings/uploads.json
index 4820730824..0cb47ec123 100644
--- a/public/language/bg/admin/settings/uploads.json
+++ b/public/language/bg/admin/settings/uploads.json
@@ -22,6 +22,7 @@
"reject-image-height": "Максимална височина на изображенията (в пиксели)",
"reject-image-height-help": "Изображенията, чиято височина е по-голяма от тази стойност, ще бъдат отхвърляни.",
"allow-topic-thumbnails": "Позволяване на потребителите да качват миниатюрни изображения за темите",
+ "show-post-uploads-as-thumbnails": "Показване на качените файлове в публикациите като миниатюрни изображения",
"topic-thumb-size": "Размер на миниатюрите за темите",
"allowed-file-extensions": "Разрешени файлови разширения",
"allowed-file-extensions-help": "Въведете файловите разширения, разделени със запетаи (пример: pdf,xls,doc). Ако списъкът е празен, всички файлови разширения ще бъдат разрешени.",
diff --git a/public/language/bg/aria.json b/public/language/bg/aria.json
index ac14065b54..ef88594736 100644
--- a/public/language/bg/aria.json
+++ b/public/language/bg/aria.json
@@ -5,5 +5,6 @@
"profile-page-for": "Профилна страница за потребителя %1",
"user-watched-tags": "Наблюдавани от потребителя етикети",
"delete-upload-button": "Бутон за изтриване на каченото",
- "group-page-link-for": "Връзка към груповата страница за %1"
+ "group-page-link-for": "Връзка към груповата страница за %1",
+ "show-crossposts": "Show Cross-posts"
}
\ No newline at end of file
diff --git a/public/language/bg/error.json b/public/language/bg/error.json
index 78566e8bf1..45bdc6a503 100644
--- a/public/language/bg/error.json
+++ b/public/language/bg/error.json
@@ -3,6 +3,7 @@
"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": "Търсенето изисква регистриран акаунт! Моля, впишете се или се регистрирайте!",
@@ -146,6 +147,7 @@
"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": "Грешен файл",
@@ -227,6 +229,7 @@
"no-topics-selected": "Няма избрани теми!",
"cant-move-to-same-topic": "Публикацията не може да бъде преместена в същата тема!",
"cant-move-topic-to-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": "Не можете да блокирате себе си!",
"cannot-block-privileged": "Не можете да блокирате администратори и глобални модератори",
"cannot-block-guest": "Гостите не могат да блокират други потребители",
@@ -236,6 +239,7 @@
"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",
diff --git a/public/language/bg/global.json b/public/language/bg/global.json
index fefc17cb77..a6466bce82 100644
--- a/public/language/bg/global.json
+++ b/public/language/bg/global.json
@@ -68,6 +68,7 @@
"users": "Потребители",
"topics": "Теми",
"posts": "Публ.",
+ "crossposts": "Cross-posts",
"x-posts": "%1 публикации",
"x-topics": "%1 теми",
"x-reputation": "%1 репутация",
diff --git a/public/language/bg/modules.json b/public/language/bg/modules.json
index ba3da12344..170141d17d 100644
--- a/public/language/bg/modules.json
+++ b/public/language/bg/modules.json
@@ -48,6 +48,7 @@
"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": "Само @споменавания",
@@ -120,7 +121,7 @@
"bootbox.ok": "Добре",
"bootbox.cancel": "Отказ",
"bootbox.confirm": "Потвърждаване",
- "bootbox.submit": "Публикуване",
+ "bootbox.submit": "Изпращане",
"bootbox.send": "Изпращане",
"cover.dragging-title": "Наместване на снимката",
"cover.dragging-message": "Преместете снимката на желаното положение и натиснете „Запазване“",
diff --git a/public/language/bg/social.json b/public/language/bg/social.json
index 931e80c8c8..df4532b68e 100644
--- a/public/language/bg/social.json
+++ b/public/language/bg/social.json
@@ -8,5 +8,7 @@
"log-in-with-facebook": "Вписване с Facebook",
"continue-with-facebook": "Продължаване с Facebook",
"sign-in-with-linkedin": "Вписване с LinkedIn",
- "sign-up-with-linkedin": "Регистриране с LinkedIn"
+ "sign-up-with-linkedin": "Регистриране с LinkedIn",
+ "sign-in-with-wordpress": "Вписване с WordPress",
+ "sign-up-with-wordpress": "Регистриране с WordPress"
}
\ No newline at end of file
diff --git a/public/language/bg/topic.json b/public/language/bg/topic.json
index 35a1958077..baa01a79d9 100644
--- a/public/language/bg/topic.json
+++ b/public/language/bg/topic.json
@@ -103,6 +103,7 @@
"thread-tools.lock": "Заключване на темата",
"thread-tools.unlock": "Отключване на темата",
"thread-tools.move": "Преместване на темата",
+ "thread-tools.crosspost": "Crosspost Topic",
"thread-tools.move-posts": "Преместване на публикациите",
"thread-tools.move-all": "Преместване на всички",
"thread-tools.change-owner": "Промяна на собственика",
@@ -132,6 +133,7 @@
"pin-modal-help": "Ако желаете, тук можете да посочите дата на давност за закачените теми. Можете и да оставите полето празно, при което темата ще остане закачена, докато не бъде откачена ръчно.",
"load-categories": "Зареждане на категориите",
"confirm-move": "Преместване",
+ "confirm-crosspost": "Cross-post",
"confirm-fork": "Разделяне",
"bookmark": "Отметка",
"bookmarks": "Отметки",
@@ -141,6 +143,7 @@
"loading-more-posts": "Зареждане на още публикации",
"move-topic": "Преместване на темата",
"move-topics": "Преместване на темите",
+ "crosspost-topic": "Cross-post Topic",
"move-post": "Преместване на публикацията",
"post-moved": "Публикацията беше преместена!",
"fork-topic": "Разделяне на темата",
@@ -163,6 +166,9 @@
"move-topic-instruction": "Изберете целевата категория и натиснете „Преместване“",
"change-owner-instruction": "Натиснете публикациите, които искате да прехвърлите на друг потребител",
"manage-editors-instruction": "Определете потребителите, които могат да редактират тази публикация по-долу.",
+ "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": "Въведете името тук",
"composer.hide": "Скриване",
diff --git a/public/language/bn/admin/dashboard.json b/public/language/bn/admin/dashboard.json
index 6ad973f5f3..0be6d5866c 100644
--- a/public/language/bn/admin/dashboard.json
+++ b/public/language/bn/admin/dashboard.json
@@ -75,6 +75,7 @@
"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",
diff --git a/public/language/bn/admin/manage/categories.json b/public/language/bn/admin/manage/categories.json
index f51152f22d..cdb3e1f356 100644
--- a/public/language/bn/admin/manage/categories.json
+++ b/public/language/bn/admin/manage/categories.json
@@ -1,18 +1,22 @@
{
"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",
- "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.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "Background Colour",
"text-color": "Text Colour",
"bg-image-size": "Background Image Size",
@@ -103,6 +107,11 @@
"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.
Note — 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": "
Do you really want to purge this category \"%1\"?
Warning! All topics and posts in this category will be purged!
Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.
",
"alert.purge-success": "Category purged!",
"alert.copy-success": "Settings Copied!",
diff --git a/public/language/bn/admin/settings/activitypub.json b/public/language/bn/admin/settings/activitypub.json
index 94f9ad7822..5ab4fa43e8 100644
--- a/public/language/bn/admin/settings/activitypub.json
+++ b/public/language/bn/admin/settings/activitypub.json
@@ -18,6 +18,28 @@
"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.
N.B. 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 # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
+ "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 /actor.",
+ "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 %1 server(s)",
"server.filter-help": "Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively allow federation with specific servers, instead. Both options are supported, although they are mutually exclusive.",
diff --git a/public/language/bn/admin/settings/uploads.json b/public/language/bn/admin/settings/uploads.json
index 22046915d9..e91a7bee36 100644
--- a/public/language/bn/admin/settings/uploads.json
+++ b/public/language/bn/admin/settings/uploads.json
@@ -22,6 +22,7 @@
"reject-image-height": "Maximum Image Height (in pixels)",
"reject-image-height-help": "Images taller than this value will be rejected.",
"allow-topic-thumbnails": "Allow users to upload topic thumbnails",
+ "show-post-uploads-as-thumbnails": "Show post uploads as thumbnails",
"topic-thumb-size": "Topic Thumb Size",
"allowed-file-extensions": "Allowed File Extensions",
"allowed-file-extensions-help": "Enter comma-separated list of file extensions here (e.g. pdf,xls,doc). An empty list means all extensions are allowed.",
diff --git a/public/language/bn/aria.json b/public/language/bn/aria.json
index 8e2c565c82..ec7889d2f4 100644
--- a/public/language/bn/aria.json
+++ b/public/language/bn/aria.json
@@ -5,5 +5,6 @@
"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"
+ "group-page-link-for": "Group page link for %1",
+ "show-crossposts": "Show Cross-posts"
}
\ No newline at end of file
diff --git a/public/language/bn/error.json b/public/language/bn/error.json
index 19157e3724..b0466f064c 100644
--- a/public/language/bn/error.json
+++ b/public/language/bn/error.json
@@ -3,6 +3,7 @@
"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": "Searching requires an account - please login or register.",
@@ -146,6 +147,7 @@
"post-already-restored": "এই পোষ্টটি ইতিমধ্যে পুনরোদ্ধার করা হয়েছে",
"topic-already-deleted": "এই টপিকটি ইতিমধ্যে ডিলিট করা হয়েছে",
"topic-already-restored": "এই টপিকটি ইতিমধ্যে পুনরোদ্ধার করা হয়েছে",
+ "topic-already-crossposted": "This topic has already been cross-posted there.",
"cant-purge-main-post": "You can't purge the main post, please delete the topic instead",
"topic-thumbnails-are-disabled": "টপিক থাম্বনেল নিষ্ক্রিয় করা।",
"invalid-file": "ভুল ফাইল",
@@ -227,6 +229,7 @@
"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",
@@ -236,6 +239,7 @@
"socket-reconnect-failed": "Unable to reach the server at this time. Click here to try again, or try again later",
"invalid-plugin-id": "Invalid plugin ID",
"plugin-not-whitelisted": "Unable to install plugin – only plugins whitelisted by the NodeBB Package Manager can be installed via the ACP",
+ "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",
diff --git a/public/language/bn/global.json b/public/language/bn/global.json
index df59f05d33..09da03532a 100644
--- a/public/language/bn/global.json
+++ b/public/language/bn/global.json
@@ -68,6 +68,7 @@
"users": "ব্যবহারকারীগণ",
"topics": "টপিক",
"posts": "পোস্টগুলি",
+ "crossposts": "Cross-posts",
"x-posts": "%1 posts",
"x-topics": "%1 topics",
"x-reputation": "%1 reputation",
diff --git a/public/language/bn/modules.json b/public/language/bn/modules.json
index d010f1ad37..45ce1f0e8c 100644
--- a/public/language/bn/modules.json
+++ b/public/language/bn/modules.json
@@ -48,6 +48,7 @@
"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",
diff --git a/public/language/bn/social.json b/public/language/bn/social.json
index 2ba690a187..5b8dd99a46 100644
--- a/public/language/bn/social.json
+++ b/public/language/bn/social.json
@@ -8,5 +8,7 @@
"log-in-with-facebook": "Log in with Facebook",
"continue-with-facebook": "Continue with Facebook",
"sign-in-with-linkedin": "Sign in with LinkedIn",
- "sign-up-with-linkedin": "Sign up 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"
}
\ No newline at end of file
diff --git a/public/language/bn/topic.json b/public/language/bn/topic.json
index 6a89846c81..4ee9c37159 100644
--- a/public/language/bn/topic.json
+++ b/public/language/bn/topic.json
@@ -103,6 +103,7 @@
"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",
@@ -132,6 +133,7 @@
"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",
@@ -141,6 +143,7 @@
"loading-more-posts": "আরো পোষ্ট লোড করা হচ্ছে",
"move-topic": "টপিক সরান",
"move-topics": "টপিক সমূহ সরান",
+ "crosspost-topic": "Cross-post Topic",
"move-post": "পোষ্ট সরান",
"post-moved": "পোষ্ট সরানো হয়েছে",
"fork-topic": "টপিক ফর্ক করুন",
@@ -163,6 +166,9 @@
"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",
diff --git a/public/language/cs/admin/dashboard.json b/public/language/cs/admin/dashboard.json
index ad5fd7cd94..7fccda35b3 100644
--- a/public/language/cs/admin/dashboard.json
+++ b/public/language/cs/admin/dashboard.json
@@ -75,6 +75,7 @@
"graphs.page-views-registered": "Zobrazených stránek/registrovaní",
"graphs.page-views-guest": "Zobrazených stránek/hosté",
"graphs.page-views-bot": "Zobrazených stránek/bot",
+ "graphs.page-views-ap": "ActivityPub Page Views",
"graphs.unique-visitors": "Jedineční návštěvníci",
"graphs.registered-users": "Registrovaní uživatelé",
"graphs.guest-users": "Guest Users",
diff --git a/public/language/cs/admin/manage/categories.json b/public/language/cs/admin/manage/categories.json
index 6095eb1293..0a8a39620d 100644
--- a/public/language/cs/admin/manage/categories.json
+++ b/public/language/cs/admin/manage/categories.json
@@ -1,18 +1,22 @@
{
"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": "Nastavení kategorie",
"edit-category": "Edit Category",
"privileges": "Oprávnění",
"back-to-categories": "Back to categories",
+ "id": "Category ID",
"name": "Název kategorie",
"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": "Popis kategorie",
- "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.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "Barva pozadí",
"text-color": "Barva textu",
"bg-image-size": "Velikost obrázku pozadí",
@@ -103,6 +107,11 @@
"alert.create-success": "Kategorie byla úspěšně vytvořena.",
"alert.none-active": "Nemáte žádné aktivní kategorie.",
"alert.create": "Vytvořit kategorii",
+ "alert.add": "Add a Category",
+ "alert.add-help": "Remote categories can be added to the categories listing by specifying their handle.
Note — 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": "
Opravdu chcete vyčistit tuto kategorii \"%1\"?
UpozorněníVšechny témata a příspěvky v této kategorii budou smazána.
Smazání kategorie vyjme všechny témata a příspěvky a odstraní kategorii z databáze. Pokud chcete vyjmout kategorii dočasně, raději místo toho kategorii „zakažte”.
",
"alert.purge-success": "Kategorie byla vyčištěna.",
"alert.copy-success": "Nastavení bylo zkopírováno.",
diff --git a/public/language/cs/admin/menu.json b/public/language/cs/admin/menu.json
index a7adf69e7f..9c04206f3f 100644
--- a/public/language/cs/admin/menu.json
+++ b/public/language/cs/admin/menu.json
@@ -10,7 +10,7 @@
"section-manage": "Spravovat",
"manage/categories": "Kategorie",
"manage/privileges": "Oprávnění",
- "manage/tags": "Značky",
+ "manage/tags": "Štítky",
"manage/users": "Uživatelé",
"manage/admins-mods": "Správci a moderátoři",
"manage/registration": "Registrační fronta",
@@ -35,7 +35,7 @@
"settings/post": "Posts",
"settings/chat": "Chats",
"settings/pagination": "Stránkování",
- "settings/tags": "Značky",
+ "settings/tags": "Štítky",
"settings/notifications": "Oznámení",
"settings/api": "API Access",
"settings/activitypub": "Federation (ActivityPub)",
diff --git a/public/language/cs/admin/settings/activitypub.json b/public/language/cs/admin/settings/activitypub.json
index 94f9ad7822..5ab4fa43e8 100644
--- a/public/language/cs/admin/settings/activitypub.json
+++ b/public/language/cs/admin/settings/activitypub.json
@@ -18,6 +18,28 @@
"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.
N.B. 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 # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
+ "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 /actor.",
+ "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 %1 server(s)",
"server.filter-help": "Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively allow federation with specific servers, instead. Both options are supported, although they are mutually exclusive.",
diff --git a/public/language/cs/admin/settings/advanced.json b/public/language/cs/admin/settings/advanced.json
index 6f65a2bc45..608e14ba8f 100644
--- a/public/language/cs/admin/settings/advanced.json
+++ b/public/language/cs/admin/settings/advanced.json
@@ -38,7 +38,7 @@
"sockets.settings": "WebSocket Settings",
"sockets.max-attempts": "Max Reconnection Attempts",
- "sockets.default-placeholder": "Default: %1",
+ "sockets.default-placeholder": "Výchozí: %1",
"sockets.delay": "Reconnection Delay",
"compression.settings": "Compression Settings",
diff --git a/public/language/cs/admin/settings/post.json b/public/language/cs/admin/settings/post.json
index b0627af793..5b757e31de 100644
--- a/public/language/cs/admin/settings/post.json
+++ b/public/language/cs/admin/settings/post.json
@@ -4,11 +4,11 @@
"sorting.post-default": "Výchozí třídění příspěvků",
"sorting.oldest-to-newest": "Od nejstarších po nejnovější",
"sorting.newest-to-oldest": "Od nejnovějších po nejstarší",
- "sorting.recently-replied": "Recently Replied",
+ "sorting.recently-replied": "Poslední příspěvky",
"sorting.recently-created": "Recently Created",
"sorting.most-votes": "Dle počtu hlasů",
"sorting.most-posts": "Dle počtu příspěvků",
- "sorting.most-views": "Most Views",
+ "sorting.most-views": "Nejvíce zobrazení",
"sorting.topic-default": "Výchozí třídění tématu",
"length": "Délka příspěvku",
"post-queue": "Příspěvky ve frontě",
diff --git a/public/language/cs/admin/settings/uploads.json b/public/language/cs/admin/settings/uploads.json
index dea6aa44df..90d14e88d8 100644
--- a/public/language/cs/admin/settings/uploads.json
+++ b/public/language/cs/admin/settings/uploads.json
@@ -22,6 +22,7 @@
"reject-image-height": "Maximální výška obrázku (v pixelech)",
"reject-image-height-help": "Vyšší obrázek než tato hodnota bude zamítnut.",
"allow-topic-thumbnails": "Povolit uživatelům nahrát miniatury témat",
+ "show-post-uploads-as-thumbnails": "Show post uploads as thumbnails",
"topic-thumb-size": "Velikost miniatury tématu",
"allowed-file-extensions": "Povolené přípony souborů",
"allowed-file-extensions-help": "Zadejte seznam přípon souborů oddělených čárkou (např.: pdf, xls, doc). Prázdný seznam znamená, že všechny přípony jsou povoleny.",
diff --git a/public/language/cs/aria.json b/public/language/cs/aria.json
index 8e2c565c82..00d51a79f8 100644
--- a/public/language/cs/aria.json
+++ b/public/language/cs/aria.json
@@ -1,9 +1,10 @@
{
- "post-sort-option": "Post sort option, %1",
- "topic-sort-option": "Topic sort option, %1",
- "user-avatar-for": "User avatar for %1",
- "profile-page-for": "Profile page for user %1",
- "user-watched-tags": "User watched tags",
- "delete-upload-button": "Delete upload button",
- "group-page-link-for": "Group page link for %1"
+ "post-sort-option": "Možnost řazení příspěvků, %1",
+ "topic-sort-option": "Možnost řazení témat, %1",
+ "user-avatar-for": "Uživatelský avatar pro %1",
+ "profile-page-for": "Profilová stránka uživatele %1",
+ "user-watched-tags": "Štítky sledované uživatelem",
+ "delete-upload-button": "Tlačítko pro smazání nahraného souboru",
+ "group-page-link-for": "Odkaz na stránku skupiny pro %1",
+ "show-crossposts": "Show Cross-posts"
}
\ No newline at end of file
diff --git a/public/language/cs/error.json b/public/language/cs/error.json
index be1a799f5b..5e8ea072e0 100644
--- a/public/language/cs/error.json
+++ b/public/language/cs/error.json
@@ -3,6 +3,7 @@
"invalid-json": "Neplatný 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": "Síťové požadavky na vyhrazené IP rozsahy nejsou povoleny.",
"not-logged-in": "Zdá se, že nejste přihlášen/a",
"account-locked": "Váš účet byl dočasně uzamknut",
"search-requires-login": "Pro hledání je vyžadován účet – přihlaste se nebo zaregistrujte.",
@@ -32,7 +33,7 @@
"folder-exists": "Folder exists",
"invalid-pagination-value": "Neplatná hodnota stránkování, musí být alespoň %1 a nejvýše %2",
"username-taken": "Uživatelské jméno je již použito",
- "email-taken": "Email address is already taken.",
+ "email-taken": "E-mailová adresa je již použita.",
"email-nochange": "The email entered is the same as the email already on file.",
"email-invited": "Email was already invited",
"email-not-confirmed": "Posting in some categories or topics is enabled once your email is confirmed, please click here to send a confirmation email.",
@@ -67,8 +68,8 @@
"no-chat-room": "Chat room does not exist",
"no-privileges": "Na tuto akci nemáte dostatečné oprávnění.",
"category-disabled": "Kategorie zakázána",
- "post-deleted": "Post deleted",
- "topic-locked": "Topic locked",
+ "post-deleted": "Příspěvek smazán",
+ "topic-locked": "Téma zamčeno",
"post-edit-duration-expired": "Je vám umožněno upravit příspěvky jen po %1 sekund/y od jeho vytvoření",
"post-edit-duration-expired-minutes": "Je vám umožněno upravit příspěvky jen po %1 minut/y od jeho vytvoření",
"post-edit-duration-expired-minutes-seconds": "Je vám umožněno upravit příspěvky jen po %1 minut/y a %2 sekund/y od jeho vytvoření",
@@ -92,7 +93,7 @@
"category-not-selected": "Nebyla vybrána kategorie.",
"too-many-posts": "Můžete přispívat jednou za %1 sekund - vyčkejte tedy, než vytvoříte další příspěvek",
"too-many-posts-newbie": "Jako nový uživatel, můžete přispívat jednou za %1 sekund, dokud nezískáte pověst %2 - vyčkejte tedy, než vytvoříte další příspěvek",
- "too-many-posts-newbie-minutes": "As a new user, you can only post once every %1 minute(s) until you have earned %2 reputation - please wait before posting again",
+ "too-many-posts-newbie-minutes": "Jako nový uživatel můžete psát pouze jednou každých %1 minut, dokud nezískáte %2 reputace – počkejte prosím před dalším příspěvkem.",
"already-posting": "You are already posting",
"tag-too-short": "Zadejte delší značku. Značky by měli mít alespoň %1 znaků",
"tag-too-long": "Zadejte kratší značku. Značky nesmí být delší než %1 znaků",
@@ -146,6 +147,7 @@
"post-already-restored": "Tento příspěvek byl již obnoven",
"topic-already-deleted": "Toto téma bylo již odstraněno",
"topic-already-restored": "Toto téma bylo již obnoveno",
+ "topic-already-crossposted": "This topic has already been cross-posted there.",
"cant-purge-main-post": "Nemůžete vymazat hlavní příspěvek, místo toho odstraňte téma",
"topic-thumbnails-are-disabled": "Miniatury témat jsou zakázány.",
"invalid-file": "Neplatný soubor",
@@ -154,9 +156,9 @@
"about-me-too-long": "Omlouváme se, ale \"O mně\" nesmí být delší než %1 znaků.",
"cant-chat-with-yourself": "Nemůžete konverzovat sami se sebou.",
"chat-restricted": "Tento uživatel má omezené konverzační zprávy. Nejdříve vás musí začít sledovat, než začnete spolu konverzovat",
- "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-allow-list-user-already-added": "Tento uživatel je již na vašem seznamu povolených.",
+ "chat-deny-list-user-already-added": "Tento uživatel je již na vašem seznamu zakázaných.",
+ "chat-user-blocked": "Byli jste tímto uživatelem zablokováni.",
"chat-disabled": "Konverzační systém zakázán",
"too-many-messages": "Odeslal/a jste příliš mnoho zpráv, vyčkejte chvíli.",
"invalid-chat-message": "Neplatná konverzační zpráva",
@@ -171,7 +173,7 @@
"cant-add-users-to-chat-room": "Can't add users to chat room.",
"cant-remove-users-from-chat-room": "Can't remove users from chat room.",
"chat-room-name-too-long": "Chat room name too long. Names can't be longer than %1 characters.",
- "remote-chat-received-too-long": "You received a chat message from %1, but it was too long and was rejected.",
+ "remote-chat-received-too-long": "Obdrželi jste zprávu z chatu od %1, ale byla příliš dlouhá a byla zamítnuta.",
"already-voting-for-this-post": "Již jste v tomto příspěvku hlasoval.",
"reputation-system-disabled": "Systém reputací je zakázán.",
"downvoting-disabled": "Systém nesouhlasu je zakázán",
@@ -185,22 +187,22 @@
"not-enough-reputation-min-rep-signature": "You need %1 reputation to add a signature",
"not-enough-reputation-min-rep-profile-picture": "You need %1 reputation to add a profile picture",
"not-enough-reputation-min-rep-cover-picture": "You need %1 reputation to add a cover picture",
- "not-enough-reputation-custom-field": "You need %1 reputation for %2",
- "custom-user-field-value-too-long": "Custom field value too long, %1",
- "custom-user-field-select-value-invalid": "Custom field selected option is invalid, %1",
- "custom-user-field-invalid-text": "Custom field text is invalid, %1",
- "custom-user-field-invalid-link": "Custom field link is invalid, %1",
- "custom-user-field-invalid-number": "Custom field number is invalid, %1",
- "custom-user-field-invalid-date": "Custom field date is invalid, %1",
- "invalid-custom-user-field": "Invalid custom user field, \"%1\" is already used by NodeBB",
+ "not-enough-reputation-custom-field": "Potřebujete %1 reputace pro %2.",
+ "custom-user-field-value-too-long": "Hodnota vlastního pole je příliš dlouhá, %1",
+ "custom-user-field-select-value-invalid": "Vybraná možnost vlastního pole je neplatná, %1",
+ "custom-user-field-invalid-text": "Text vlastního pole je neplatný, %1",
+ "custom-user-field-invalid-link": "Odkaz ve vlastním poli je neplatný, %1",
+ "custom-user-field-invalid-number": "Číslo ve vlastním poli je neplatné, %1",
+ "custom-user-field-invalid-date": "Datum ve vlastním poli je neplatné, %1",
+ "invalid-custom-user-field": "Neplatné vlastní uživatelské pole, „%1“ již používá NodeBB.",
"post-already-flagged": "You have already flagged this post",
"user-already-flagged": "You have already flagged this user",
"post-flagged-too-many-times": "This post has been flagged by others already",
"user-flagged-too-many-times": "This user has been flagged by others already",
- "too-many-post-flags-per-day": "You can only flag %1 post(s) per day",
- "too-many-user-flags-per-day": "You can only flag %1 user(s) per day",
+ "too-many-post-flags-per-day": "Můžete označit maximálně %1 příspěvek/příspěvky za den",
+ "too-many-user-flags-per-day": "Můžete označit maxilmálně %1 uživatele/uživatelů za den",
"cant-flag-privileged": "You are not allowed to flag the profiles or content of privileged users (moderators/global moderators/admins)",
- "cant-locate-flag-report": "Cannot locate flag report",
+ "cant-locate-flag-report": "Nelze najít hlášení o označení.",
"self-vote": "U svého vlastního příspěvku nemůžete hlasovat",
"too-many-upvotes-today": "You can only upvote %1 times a day",
"too-many-upvotes-today-user": "You can only upvote a user %1 times a day",
@@ -227,6 +229,7 @@
"no-topics-selected": "Žádná vybraná témata.",
"cant-move-to-same-topic": "Není možné přesunout příspěvek do stejného tématu!",
"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": "Nemůžete zablokovat sebe sama!",
"cannot-block-privileged": "Nemůžete zablokovat správce nebo hlavní moderátory",
"cannot-block-guest": "Hosté nemohou blokovat ostatní uživatele.",
@@ -234,13 +237,14 @@
"already-unblocked": "Tento uživatel již byl odblokován",
"no-connection": "Zdá se, že nastal problém s připojením k internetu",
"socket-reconnect-failed": "Unable to reach the server at this time. Click here to try again, or try again later",
- "invalid-plugin-id": "Invalid plugin ID",
+ "invalid-plugin-id": "Neplatné ID pluginu",
"plugin-not-whitelisted": "Unable to install plugin – only plugins whitelisted by the NodeBB Package Manager can be installed via the ACP",
- "plugin-installation-via-acp-disabled": "Plugin installation via ACP is disabled",
+ "cannot-toggle-system-plugin": "Nemůžete měnit stav systémového pluginu.",
+ "plugin-installation-via-acp-disabled": "Instalace pluginů přes ACP je zakázána",
"plugins-set-in-configuration": "You are not allowed to change plugin state as they are defined at runtime (config.json, environmental variables or terminal arguments), please modify the configuration instead.",
"theme-not-set-in-configuration": "When defining active plugins in configuration, changing themes requires adding the new theme to the list of active plugins before updating it in the ACP",
"topic-event-unrecognized": "Topic event '%1' unrecognized",
- "category.handle-taken": "Category handle is already taken, please choose another.",
+ "category.handle-taken": "Identifikátor kategorie je již použit, vyberte prosím jiný.",
"cant-set-child-as-parent": "Can't set child as parent category",
"cant-set-self-as-parent": "Can't set self as parent category",
"api.master-token-no-uid": "A master token was received without a corresponding `_uid` in the request body",
@@ -254,11 +258,11 @@
"api.501": "The route you are trying to call is not implemented yet, please try again tomorrow",
"api.503": "The route you are trying to call is not currently available due to a server configuration",
"api.reauth-required": "The resource you are trying to access requires (re-)authentication.",
- "activitypub.not-enabled": "Federation is not enabled on this server",
- "activitypub.invalid-id": "Unable to resolve the input id, likely as it is malformed.",
- "activitypub.get-failed": "Unable to retrieve the specified resource.",
- "activitypub.pubKey-not-found": "Unable to resolve public key, so payload verification cannot take place.",
- "activitypub.origin-mismatch": "The received object's origin does not match the sender's origin",
- "activitypub.actor-mismatch": "The received activity is being carried out by an actor that is different from expected.",
- "activitypub.not-implemented": "The request was denied because it or an aspect of it is not implemented by the recipient server"
+ "activitypub.not-enabled": "Federace na tomto serveru není povolena",
+ "activitypub.invalid-id": "Nelze rozpoznat zadané ID, pravděpodobně je poškozené nebo nesprávně zformátované.",
+ "activitypub.get-failed": "Nelze získat zadaný zdroj.",
+ "activitypub.pubKey-not-found": "Nelze ověřit veřejný klíč, proto není možné provést ověření obsahu.",
+ "activitypub.origin-mismatch": "Původ přijatého objektu neodpovídá původu odesílatele",
+ "activitypub.actor-mismatch": "Přijatou aktivitu provedl někdo jiný, než bylo očekáváno.",
+ "activitypub.not-implemented": "Požadavek byl zamítnut, protože cílový server tuto funkci nepodporuje"
}
\ No newline at end of file
diff --git a/public/language/cs/global.json b/public/language/cs/global.json
index 8e2dd50230..a69cd6e1de 100644
--- a/public/language/cs/global.json
+++ b/public/language/cs/global.json
@@ -24,20 +24,20 @@
"cancel": "Cancel",
"close": "Zrušit",
"pagination": "Stránkování",
- "pagination.previouspage": "Previous Page",
- "pagination.nextpage": "Next Page",
- "pagination.firstpage": "First Page",
- "pagination.lastpage": "Last Page",
+ "pagination.previouspage": "Předchozí stránka",
+ "pagination.nextpage": "Další stránka",
+ "pagination.firstpage": "První stránka",
+ "pagination.lastpage": "Poslední stránka",
"pagination.out-of": "%1 z %2",
"pagination.enter-index": "Přejít na n-tý příspěvek",
- "pagination.go-to-page": "Go to page",
- "pagination.page-x": "Page %1",
- "header.brand-logo": "Brand Logo",
+ "pagination.go-to-page": "Jít na stránku",
+ "pagination.page-x": "Stránka %1",
+ "header.brand-logo": "Logo značky",
"header.admin": "Administrace",
"header.categories": "Kategorie",
"header.recent": "Nejnovější",
"header.unread": "Nepřečtené",
- "header.tags": "Značky",
+ "header.tags": "Štítky",
"header.popular": "Populární",
"header.top": "Nejlepší",
"header.users": "Uživatelé",
@@ -50,7 +50,7 @@
"header.navigation": "Navigace",
"header.manage": "Manage",
"header.drafts": "Drafts",
- "header.world": "World",
+ "header.world": "Svět",
"notifications.loading": "Načítání upozornění",
"chats.loading": "Načítání chatů",
"drafts.loading": "Loading Drafts",
@@ -68,6 +68,7 @@
"users": "Uživatelé",
"topics": "Témata",
"posts": "Příspěvky",
+ "crossposts": "Cross-posts",
"x-posts": "%1 posts",
"x-topics": "%1 topics",
"x-reputation": "%1 reputation",
@@ -82,7 +83,7 @@
"downvoted": "Nesouhlasů",
"views": "Zobrazení",
"posters": "Přispěvatelé",
- "watching": "Watching",
+ "watching": "Sleduji",
"reputation": "Reputace",
"lastpost": "Poslední příspěvek",
"firstpost": "První příspěvek",
@@ -112,7 +113,7 @@
"dnd": "Nevyrušovat",
"invisible": "Neviditelný",
"offline": "Offline",
- "remote-user": "This user is from outside of this forum",
+ "remote-user": "Tento uživatel není z tohoto fóra",
"email": "E-mail",
"language": "Jazyk",
"guest": "Host",
@@ -143,12 +144,12 @@
"edited": "Upraveno",
"disabled": "Nepovoleno",
"select": "Vyberte",
- "selected": "Selected",
+ "selected": "Vybráno",
"copied": "Copied",
"user-search-prompt": "Pro hledání uživatelů, zde pište...",
"hidden": "Hidden",
- "sort": "Sort",
+ "sort": "Řazení",
"actions": "Actions",
- "rss-feed": "RSS Feed",
- "skip-to-content": "Skip to content"
+ "rss-feed": "RSS kanál",
+ "skip-to-content": "Přejít na obsah"
}
\ No newline at end of file
diff --git a/public/language/cs/modules.json b/public/language/cs/modules.json
index f8d89bde37..57219f8b88 100644
--- a/public/language/cs/modules.json
+++ b/public/language/cs/modules.json
@@ -16,8 +16,8 @@
"chat.user-typing-n": "%1, %2 and %3 others are typing ...",
"chat.user-has-messaged-you": "%1 Vám napsal.",
"chat.replying-to": "Replying to %1",
- "chat.see-all": "All chats",
- "chat.mark-all-read": "Mark all read",
+ "chat.see-all": "Všechny konverzace",
+ "chat.mark-all-read": "Označit vše jako přečtené",
"chat.no-messages": "Vyberte příjemce k prohlédnutí historie zpráv.",
"chat.no-users-in-room": "Žádní uživatelé v místnosti.",
"chat.recent-chats": "Aktuální konverzace",
@@ -48,6 +48,7 @@
"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",
@@ -79,7 +80,7 @@
"composer.compose": "Napsat",
"composer.show-preview": "Ukázat náhled",
"composer.hide-preview": "Skrýt náhled",
- "composer.help": "Help",
+ "composer.help": "Nápověda",
"composer.user-said-in": "%1 řekl v %2:",
"composer.user-said": "%1 řekl:",
"composer.discard": "Jste si jisti, že chcete zrušit tento příspěvek?",
@@ -88,23 +89,23 @@
"composer.uploading": "Nahrávám %1",
"composer.formatting.bold": "Tučné",
"composer.formatting.italic": "Kurzíva",
- "composer.formatting.heading": "Heading",
- "composer.formatting.heading1": "Heading 1",
- "composer.formatting.heading2": "Heading 2",
- "composer.formatting.heading3": "Heading 3",
- "composer.formatting.heading4": "Heading 4",
- "composer.formatting.heading5": "Heading 5",
- "composer.formatting.heading6": "Heading 6",
+ "composer.formatting.heading": "Nadpis",
+ "composer.formatting.heading1": "Nadpis 1",
+ "composer.formatting.heading2": "Nadpis 2",
+ "composer.formatting.heading3": "Nadpis 3",
+ "composer.formatting.heading4": "Nadpis 4",
+ "composer.formatting.heading5": "Nadpis 5",
+ "composer.formatting.heading6": "Nadpis 6",
"composer.formatting.list": "Seznam",
"composer.formatting.strikethrough": "Přeškrtnutí",
"composer.formatting.code": "Kód",
"composer.formatting.link": "Odkaz",
- "composer.formatting.picture": "Image Link",
+ "composer.formatting.picture": "Odkaz na obrázek",
"composer.upload-picture": "Nahrát obrázek",
"composer.upload-file": "Nahrát soubor",
"composer.zen-mode": "Režim Zem",
"composer.select-category": "Vyberte kategorii",
- "composer.textarea.placeholder": "Enter your post content here, drag and drop images",
+ "composer.textarea.placeholder": "Sem vložte obsah příspěvku nebo přetáhněte obrázky",
"composer.post-queue-alert": "Hello👋! This forum uses a post queue system, since you are a new user your post will be hidden until it is approved by our moderation team.",
"composer.schedule-for": "Schedule topic for",
"composer.schedule-date": "Date",
@@ -120,7 +121,7 @@
"bootbox.ok": "OK",
"bootbox.cancel": "Zrušit",
"bootbox.confirm": "Potvrdit",
- "bootbox.submit": "Submit",
+ "bootbox.submit": "Odeslat",
"bootbox.send": "Send",
"cover.dragging-title": "Umístění fotografie",
"cover.dragging-message": "Přesuňte fotku na požadovanou pozici a klikněte na „Uložit”",
diff --git a/public/language/cs/notifications.json b/public/language/cs/notifications.json
index 86769f152b..ef870baa7b 100644
--- a/public/language/cs/notifications.json
+++ b/public/language/cs/notifications.json
@@ -12,15 +12,15 @@
"you-have-unread-notifications": "Máte nepřečtená upozornění.",
"all": "Vše",
"topics": "Témata",
- "tags": "Tags",
- "categories": "Categories",
+ "tags": "Štítky",
+ "categories": "Kategorie",
"replies": "Odpovědi",
"chat": "Konverzace",
"group-chat": "Skupinová konverzace",
- "public-chat": "Public Chats",
+ "public-chat": "Veřejné konverzace",
"follows": "Sledování",
"upvote": "Souhlasy",
- "awards": "Awards",
+ "awards": "Odměny",
"new-flags": "Nové označení",
"my-flags": "Označení přiřazené mě",
"bans": "Blokace",
@@ -82,14 +82,14 @@
"notification-and-email": "Oznámení a e-mail",
"notificationType-upvote": "Jakmile někdo vyjádří souhlas s vaším příspěvkem",
"notificationType-new-topic": "Jakmile někdo koho sledujete vytvoří nové téma",
- "notificationType-new-topic-with-tag": "When a topic is posted with a tag you follow",
- "notificationType-new-topic-in-category": "When a topic is posted in a category you are watching",
+ "notificationType-new-topic-with-tag": "Jakmile někdo vytvoří téma se štítkem, který sledujete",
+ "notificationType-new-topic-in-category": "Jakmile někdo vytvoří téma v kategorii, kterou sledujete",
"notificationType-new-reply": "Jakmile je přidán nový příspěvek v tématu, které sledujete",
"notificationType-post-edit": "Jakmile je upraven příspěvek v tématu, které sledujete",
"notificationType-follow": "Jakmile vás někdo začne sledovat",
"notificationType-new-chat": "Obdržíte-li novou konverzační zprávu",
"notificationType-new-group-chat": "Když obdržíte zprávu ve skupinové konverzaci",
- "notificationType-new-public-chat": "When you receive a public group chat message",
+ "notificationType-new-public-chat": "Jakmile obdržíte zprávu ve veřejné konverzaci",
"notificationType-group-invite": "Obdržíte-li pozvání ke skupině",
"notificationType-group-leave": "Když uživatel opustí Vaši skupinu",
"notificationType-group-request-membership": "Jakmile někdo pošle žádost o připojení se do vaší skupiny",
@@ -97,7 +97,7 @@
"notificationType-post-queue": "Bude-li přidán nový příspěvek do fronty",
"notificationType-new-post-flag": "Bude-li příspěvek označen",
"notificationType-new-user-flag": "Bude-li uživatel označen",
- "notificationType-new-reward": "When you earn a new reward",
+ "notificationType-new-reward": "Když získáte novou odměnu",
"activitypub.announce": "%1 shared your post in %2 to their followers.",
"activitypub.announce-dual": "%1 and %2 shared your post in %3 to their followers.",
"activitypub.announce-triple": "%1, %2 and %3 shared your post in %4 to their followers.",
diff --git a/public/language/cs/pages.json b/public/language/cs/pages.json
index bcb7d69cc7..1d51c7ef47 100644
--- a/public/language/cs/pages.json
+++ b/public/language/cs/pages.json
@@ -23,7 +23,7 @@
"users/most-flags": "Nejoznačovanější uživatelé",
"users/search": "Hledat uživatele",
"notifications": "Upozornění",
- "tags": "Značky",
+ "tags": "Štítky",
"tag": "Témata označená "%1"",
"register": "Zaregistrovat účet",
"registration-complete": "Registrace dokončena",
@@ -49,7 +49,7 @@
"account/topics": "Příspěvky vytvořeny uživatelem %1",
"account/groups": "%1's skupiny",
"account/watched-categories": "%1's sledovaných kategorii",
- "account/watched-tags": "%1's Watched Tags",
+ "account/watched-tags": "%1's Sledované štítky",
"account/bookmarks": "%1's zazáložkované příspěvky",
"account/settings": "Uživatelské nastavení",
"account/settings-of": "Changing settings of %1",
diff --git a/public/language/cs/register.json b/public/language/cs/register.json
index 356bcc7f2b..f0ccb8e441 100644
--- a/public/language/cs/register.json
+++ b/public/language/cs/register.json
@@ -21,9 +21,9 @@
"registration-added-to-queue": "Vaše registrace byla přidána do fronty. Obdržíte e-mail až ji správce schválí.",
"registration-queue-average-time": "Our average time for approving memberships is %1 hours %2 minutes.",
"registration-queue-auto-approve-time": "Your membership to this forum will be fully activated in up to %1 hours.",
- "interstitial.intro": "We'd like some additional information in order to update your account…",
- "interstitial.intro-new": "We'd like some additional information before we can create your account…",
- "interstitial.errors-found": "Please review the entered information:",
+ "interstitial.intro": "Před vytvořením účtu vyžadujeme některé dodatečné informace.",
+ "interstitial.intro-new": "Před vytvořením účtu vyžadujeme některé dodatečné informace.",
+ "interstitial.errors-found": "Prosím zkontrolujte zadané údaje:",
"gdpr-agree-data": "Dávám souhlas se sběrem a zpracováním mých osobních údajů na této webové stránce.",
"gdpr-agree-email": "Dávám souhlas k dostávání e-mailových přehledů a oznámení z týkající se této webové stránky.",
"gdpr-consent-denied": "Musíte dát souhlas této stránce sbírat/zpracovávat informace o vaší činnosti a odesílat vám e-maily.",
diff --git a/public/language/cs/search.json b/public/language/cs/search.json
index 02fa6a52c5..4a364aefa7 100644
--- a/public/language/cs/search.json
+++ b/public/language/cs/search.json
@@ -11,12 +11,12 @@
"in-categories": "In categories",
"in-users": "In users",
"in-tags": "In tags",
- "categories": "Categories",
+ "categories": "Kategorie",
"all-categories": "All categories",
"categories-x": "Categories: %1",
"categories-watched-categories": "Categories: Watched categories",
"type-a-category": "Type a category",
- "tags": "Tags",
+ "tags": "Štítky",
"tags-x": "Tags: %1",
"type-a-tag": "Type a tag",
"match-words": "Shodná slova",
diff --git a/public/language/cs/social.json b/public/language/cs/social.json
index 2ba690a187..5b8dd99a46 100644
--- a/public/language/cs/social.json
+++ b/public/language/cs/social.json
@@ -8,5 +8,7 @@
"log-in-with-facebook": "Log in with Facebook",
"continue-with-facebook": "Continue with Facebook",
"sign-in-with-linkedin": "Sign in with LinkedIn",
- "sign-up-with-linkedin": "Sign up 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"
}
\ No newline at end of file
diff --git a/public/language/cs/tags.json b/public/language/cs/tags.json
index dceab72efc..f6c6f0af11 100644
--- a/public/language/cs/tags.json
+++ b/public/language/cs/tags.json
@@ -2,9 +2,9 @@
"all-tags": "All tags",
"no-tag-topics": "Není zde žádné téma s tímto označením.",
"no-tags-found": "No tags found",
- "tags": "Označení",
+ "tags": "Štítky",
"enter-tags-here": "Enter tags, %1 - %2 characters.",
- "enter-tags-here-short": "Zadejte označení…",
+ "enter-tags-here-short": "Zadejte štítky…",
"no-tags": "Zatím tu není žádné označení.",
"select-tags": "Select Tags",
"tag-whitelist": "Tag Whitelist",
diff --git a/public/language/cs/themes/harmony.json b/public/language/cs/themes/harmony.json
index 727a1b0553..0a93e71d13 100644
--- a/public/language/cs/themes/harmony.json
+++ b/public/language/cs/themes/harmony.json
@@ -5,7 +5,7 @@
"expand": "Expand",
"sidebar-toggle": "Sidebar Toggle",
"login-register-to-search": "Login or register to search.",
- "settings.title": "Theme settings",
+ "settings.title": "Nastavení motivu",
"settings.enableQuickReply": "Enable quick reply",
"settings.enableBreadcrumbs": "Show breadcrumbs in Category and Topic pages",
"settings.enableBreadcrumbs.why": "Breadcrumbs are visible in most pages for ease-of-navigation. The base design of the category and topic pages has alternative means to link back to parent pages, but the breadcrumb can be toggled off to reduce clutter.",
diff --git a/public/language/cs/themes/persona.json b/public/language/cs/themes/persona.json
index e7d1945303..075fde6f3a 100644
--- a/public/language/cs/themes/persona.json
+++ b/public/language/cs/themes/persona.json
@@ -1,5 +1,5 @@
{
- "settings.title": "Theme settings",
+ "settings.title": "Nastavení motivu",
"settings.intro": "You can customise your theme settings here. Settings are stored on a per-device basis, so you are able to have different settings on different devices (phone, tablet, desktop, etc.)",
"settings.mobile-menu-side": "Switch which side each mobile menu is on",
"settings.autoHidingNavbar": "Automatically hide the navbar on scroll",
diff --git a/public/language/cs/topic.json b/public/language/cs/topic.json
index fd5c6a50d5..a84be0982a 100644
--- a/public/language/cs/topic.json
+++ b/public/language/cs/topic.json
@@ -1,6 +1,6 @@
{
"topic": "Téma",
- "title": "Title",
+ "title": "Název",
"no-topics-found": "Nebyla nalezena žádná témata.",
"no-posts-found": "Nebyly nalezeny žádné příspěvky.",
"post-is-deleted": "Tento příspěvek je vymazán.",
@@ -15,54 +15,54 @@
"replies-to-this-post": "%1 odpovědí",
"one-reply-to-this-post": "1 odpověď",
"last-reply-time": "Poslední odpověď",
- "reply-options": "Reply options",
+ "reply-options": "Možnosti odpovědi",
"reply-as-topic": "Odpovědět jako Téma",
"guest-login-reply": "Přihlásit se pro odpověď",
"login-to-view": "Přihlásit se pro zobrazení",
"edit": "Upravit",
"delete": "Odstranit",
- "delete-event": "Delete Event",
- "delete-event-confirm": "Are you sure you want to delete this event?",
+ "delete-event": "Smazat událost",
+ "delete-event-confirm": "Opravdu chcete smazat tuto událost?",
"purge": "Vypráznit",
"restore": "Obnovit",
"move": "Přesunout",
"change-owner": "Změnit vlastníka",
- "manage-editors": "Manage Editors",
+ "manage-editors": "Správa editorů",
"fork": "Rozdělit",
"link": "Odkaz",
"share": "Sdílet",
"tools": "Nástroje",
"locked": "Uzamknuto",
"pinned": "Připnuto",
- "pinned-with-expiry": "Pinned until %1",
- "scheduled": "Scheduled",
- "deleted": "Deleted",
+ "pinned-with-expiry": "Připnuto dol %1",
+ "scheduled": "Naplánováno",
+ "deleted": "Smazané",
"moved": "Přesunuto",
- "moved-from": "Moved from %1",
- "copy-code": "Copy Code",
+ "moved-from": "Přesunuto z %1",
+ "copy-code": "Zkopírovat kód",
"copy-ip": "Kopírovat IP",
"ban-ip": "Zakázat IP",
"view-history": "Upravit historii",
- "wrote-ago": "wrote ",
- "wrote-on": "wrote on ",
- "replied-to-user-ago": "replied to %3",
- "replied-to-user-on": "replied to %3 on ",
- "user-locked-topic-ago": "%1 locked this topic %2",
- "user-locked-topic-on": "%1 locked this topic on %2",
- "user-unlocked-topic-ago": "%1 unlocked this topic %2",
- "user-unlocked-topic-on": "%1 unlocked this topic on %2",
- "user-pinned-topic-ago": "%1 pinned this topic %2",
- "user-pinned-topic-on": "%1 pinned this topic on %2",
- "user-unpinned-topic-ago": "%1 unpinned this topic %2",
- "user-unpinned-topic-on": "%1 unpinned this topic on %2",
- "user-deleted-topic-ago": "%1 deleted this topic %2",
- "user-deleted-topic-on": "%1 deleted this topic on %2",
- "user-restored-topic-ago": "%1 restored this topic %2",
- "user-restored-topic-on": "%1 restored this topic on %2",
- "user-moved-topic-from-ago": "%1 moved this topic from %2 %3",
- "user-moved-topic-from-on": "%1 moved this topic from %2 on %3",
- "user-shared-topic-ago": "%1 shared this topic %2",
- "user-shared-topic-on": "%1 shared this topic on %2",
+ "wrote-ago": "napsal ",
+ "wrote-on": "napsal na ",
+ "replied-to-user-ago": "odpověděll %3",
+ "replied-to-user-on": "odpověděl %3 na ",
+ "user-locked-topic-ago": "%1 uzamkl toto téma %2",
+ "user-locked-topic-on": "%1 uzamkl toto téma na %2",
+ "user-unlocked-topic-ago": "%1 odemkl toto téma %2",
+ "user-unlocked-topic-on": "%1 odemkl toto téma na %2",
+ "user-pinned-topic-ago": "%1 připnul toto téma %2",
+ "user-pinned-topic-on": "%1 připnul toto téma na %2",
+ "user-unpinned-topic-ago": "%1 odepnul toto téma %2",
+ "user-unpinned-topic-on": "%1 odepnul toto téma na %2",
+ "user-deleted-topic-ago": "%1 smazal toto téma %2",
+ "user-deleted-topic-on": "%1 smazal toto téma na %2",
+ "user-restored-topic-ago": "%1 obnovil toto téma %2",
+ "user-restored-topic-on": "%1 obnovil toto téma na %2",
+ "user-moved-topic-from-ago": "%1 přesunul toto téma z %2 %3",
+ "user-moved-topic-from-on": "%1 přesunul toto téma z %2 na %3",
+ "user-shared-topic-ago": "%1 sdílel(a) toto téma %2",
+ "user-shared-topic-on": "%1 sdílel(a) toto téma %2",
"user-queued-post-ago": "%1 queued post for approval %3",
"user-queued-post-on": "%1 queued post for approval on %3",
"user-referenced-topic-ago": "%1 referenced this topic %3",
@@ -103,10 +103,11 @@
"thread-tools.lock": "Zamknout téma",
"thread-tools.unlock": "Odemknout téma",
"thread-tools.move": "Přesunout téma",
+ "thread-tools.crosspost": "Crosspost Topic",
"thread-tools.move-posts": "Přesunout příspěvky",
"thread-tools.move-all": "Přesunout vše",
"thread-tools.change-owner": "Změnit vlastníka",
- "thread-tools.manage-editors": "Manage Editors",
+ "thread-tools.manage-editors": "Správa editorů",
"thread-tools.select-category": "Vybrat kategorii",
"thread-tools.fork": "Větvit téma",
"thread-tools.tag": "Tag Topic",
@@ -118,7 +119,7 @@
"thread-tools.purge": "Vyčistit téma",
"thread-tools.purge-confirm": "Jste si jist/a, že chcete vyčistit toto téma?",
"thread-tools.merge-topics": "Sloučit témata",
- "thread-tools.merge": "Merge Topic",
+ "thread-tools.merge": "Sloučit téma",
"topic-move-success": "This topic will be moved to \"%1\" shortly. Click here to undo.",
"topic-move-multiple-success": "These topics will be moved to \"%1\" shortly. Click here to undo.",
"topic-move-all-success": "All topics will be moved to \"%1\" shortly. Click here to undo.",
@@ -132,48 +133,53 @@
"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": "Načítání kategorií",
"confirm-move": "Přesunout",
+ "confirm-crosspost": "Cross-post",
"confirm-fork": "Rozdělit",
"bookmark": "Záložka",
"bookmarks": "Záložky",
"bookmarks.has-no-bookmarks": "Ještě jste nezazáložkoval žádný příspěvek.",
- "copy-permalink": "Copy Permalink",
- "go-to-original": "View Original Post",
+ "copy-permalink": "Zkopírovat odkaz",
+ "go-to-original": "Zobrazit původní příspěvek",
"loading-more-posts": "Načítání více příspěvků",
"move-topic": "Přesunout téma",
"move-topics": "Přesunout témata",
+ "crosspost-topic": "Cross-post Topic",
"move-post": "Přesunout příspěvek",
"post-moved": "Příspěvek přesunut.",
"fork-topic": "Rozdělit příspěvek",
- "enter-new-topic-title": "Enter new topic title",
+ "enter-new-topic-title": "Zadejte nový název tématu",
"fork-topic-instruction": "Click the posts you want to fork, enter a title for the new topic and click fork topic",
"fork-no-pids": "Nebyly vybrány žádné příspěvky.",
- "no-posts-selected": "No posts selected!",
- "x-posts-selected": "%1 post(s) selected",
- "x-posts-will-be-moved-to-y": "%1 post(s) will be moved to \"%2\"",
+ "no-posts-selected": "Nebyl vybrán žádný příspěvek!",
+ "x-posts-selected": "Vybráno %1 příspěvků",
+ "x-posts-will-be-moved-to-y": "%1 přízpěvků bude přesunuto do \"%2\"",
"fork-pid-count": "Vybráno %1 příspěvek/ů",
"fork-success": "Téma úspěšně rozděleno. Pro přejití na rozdělené téma, zde klikněte.",
"delete-posts-instruction": "Klikněte na příspěvek, který chcete odstranit/vyčistit",
"merge-topics-instruction": "Click the topics you want to merge or search for them",
"merge-topic-list-title": "List of topics to be merged",
"merge-options": "Merge options",
- "merge-select-main-topic": "Select the main topic",
- "merge-new-title-for-topic": "New title for topic",
- "topic-id": "Topic ID",
+ "merge-select-main-topic": "Vybrat hlavní téma",
+ "merge-new-title-for-topic": "Nový název tématu",
+ "topic-id": "ID tématu",
"move-posts-instruction": "Click the posts you want to move then enter a topic ID or go to the target topic",
"move-topic-instruction": "Select the target category and then click move",
"change-owner-instruction": "Klikněte na příspěvek u kterého chcete změnit vlastníka",
- "manage-editors-instruction": "Manage the users who can edit this post below.",
+ "manage-editors-instruction": "Spravujte uživatele, kteří mohou tento příspěvek upravovat, níže.",
+ "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": "Zadejte název tématu…",
- "composer.handle-placeholder": "Enter your name/handle here",
- "composer.hide": "Hide",
+ "composer.handle-placeholder": "Zadejte zde své jméno/přezdívku",
+ "composer.hide": "Skrýt",
"composer.discard": "Zrušit",
"composer.submit": "Odeslat",
- "composer.additional-options": "Additional Options",
- "composer.post-later": "Post Later",
- "composer.schedule": "Schedule",
+ "composer.additional-options": "Další možnosti",
+ "composer.post-later": "Publikovat později",
+ "composer.schedule": "Naplánovat",
"composer.replying-to": "Odpovídání na %1",
"composer.new-topic": "Nové téma",
- "composer.editing-in": "Editing post in %1",
+ "composer.editing-in": "Úprava příspěvku v %1",
"composer.uploading": "nahrávání…",
"composer.thumb-url-label": "Vložit URL náhledu tématu",
"composer.thumb-title": "Přidat k tématu náhled",
@@ -188,11 +194,11 @@
"sort-by": "Seřadit dle",
"oldest-to-newest": "Od nejstarších po nejnovější",
"newest-to-oldest": "Od nejnovějších po nejstarší",
- "recently-replied": "Recently Replied",
- "recently-created": "Recently Created",
+ "recently-replied": "Poslední příspěvky",
+ "recently-created": "Nedávno vytvořené",
"most-votes": "S nejvíce hlasy",
"most-posts": "S nejvíce příspěvky",
- "most-views": "Most Views",
+ "most-views": "Nejvíce zobrazení",
"stale.title": "Raději vytvořit nové téma?",
"stale.warning": "Reagujete na starší téma. Nechcete raději vytvořit nové téma a na původní v něm odkázat?",
"stale.create": "Vytvořit nové téma",
@@ -203,26 +209,26 @@
"diffs.no-revisions-description": "Tento příspěvek má %1 změn.",
"diffs.current-revision": "aktuální revize",
"diffs.original-revision": "originální revize",
- "diffs.restore": "Restore this revision",
- "diffs.restore-description": "A new revision will be appended to this post's edit history after restoring.",
- "diffs.post-restored": "Post successfully restored to earlier revision",
- "diffs.delete": "Delete this revision",
- "diffs.deleted": "Revision deleted",
+ "diffs.restore": "Obnovit tuto verzi",
+ "diffs.restore-description": "Po obnovení bude k historii úprav tohoto příspěvku přidána nová verze.",
+ "diffs.post-restored": "Příspěvek byl úspěšně obnoven do předchozí verze.",
+ "diffs.delete": "Smazat tuto verzi",
+ "diffs.deleted": "Verze smazána",
"timeago-later": "%1 později",
"timeago-earlier": "%1 dříve",
- "first-post": "First post",
- "last-post": "Last post",
- "go-to-my-next-post": "Go to my next post",
- "no-more-next-post": "You don't have more posts in this topic",
- "open-composer": "Open composer",
- "post-quick-reply": "Quick reply",
- "navigator.index": "Post %1 of %2",
- "navigator.unread": "%1 unread",
- "upvote-post": "Upvote post",
- "downvote-post": "Downvote post",
- "post-tools": "Post tools",
- "unread-posts-link": "Unread posts link",
- "thumb-image": "Topic thumbnail image",
- "announcers": "Shares",
- "announcers-x": "Shares (%1)"
+ "first-post": "První příspěvek",
+ "last-post": "Poslední příspěvek",
+ "go-to-my-next-post": "Přejít do mého následujícího příspěvku",
+ "no-more-next-post": "V tomto tématu nemáte další příspěvky",
+ "open-composer": "Otevřít editor příspěvku",
+ "post-quick-reply": "Rychlá odpověď",
+ "navigator.index": "Publikovat %1 of %2",
+ "navigator.unread": "%1 nepřečteno",
+ "upvote-post": "Dát příspěvku kladný hlas",
+ "downvote-post": "Dát příspěvku záporný hlas",
+ "post-tools": "Nástroje příspěvku",
+ "unread-posts-link": "Odkaz na nepřečtené příspěvky",
+ "thumb-image": "Miniatura tématu",
+ "announcers": "Sdílení",
+ "announcers-x": "Sdílení (%1)"
}
\ No newline at end of file
diff --git a/public/language/cs/unread.json b/public/language/cs/unread.json
index 63d013e0f6..1d4fefddcc 100644
--- a/public/language/cs/unread.json
+++ b/public/language/cs/unread.json
@@ -3,7 +3,7 @@
"no-unread-topics": "Nejsou zde žádné nepřečtené témata.",
"load-more": "Načíst další",
"mark-as-read": "Označit jako přečtené",
- "mark-as-unread": "Mark as Unread",
+ "mark-as-unread": "Označ jako nepřečtené",
"selected": "Vybrané",
"all": "Vše",
"all-categories": "Všechny kategorie",
diff --git a/public/language/cs/user.json b/public/language/cs/user.json
index dc591695da..fa2e2dad41 100644
--- a/public/language/cs/user.json
+++ b/public/language/cs/user.json
@@ -39,7 +39,7 @@
"reputation": "Reputace",
"bookmarks": "Záložky",
"watched-categories": "Sledované kategorie",
- "watched-tags": "Watched tags",
+ "watched-tags": "Sledované štítky",
"change-all": "Změnit vše",
"watched": "Sledován",
"ignored": "Ignorován",
@@ -100,7 +100,7 @@
"remove-cover-picture-confirm": "Jste si jist/a, že chcete smazat obrázek?",
"crop-picture": "Oříznout obrázek",
"upload-cropped-picture": "Oříznout a nahrát",
- "avatar-background-colour": "Avatar background colour",
+ "avatar-background-colour": "Barva pozadí",
"settings": "Nastavení",
"show-email": "Zobrazovat můj e-mail",
"show-fullname": "Zobrazovat celé jméno",
@@ -134,8 +134,8 @@
"paginate-description": "Stránkovat témata a příspěvky místo použití nekonečného posunování",
"topics-per-page": "Témat na stránce",
"posts-per-page": "Příspěvků na stránce",
- "category-topic-sort": "Category topic sort",
- "topic-post-sort": "Topic post sort",
+ "category-topic-sort": "Řazení podle kategorie",
+ "topic-post-sort": "Řazení příspěvků v tématu",
"max-items-per-page": "Maximum %1",
"acp-language": "Jazyk stránky správce",
"notifications": "Oznámení",
@@ -162,8 +162,8 @@
"order-group-down": "Order group down",
"no-group-title": "Žádný nadpis skupiny",
"select-skin": "Vybrat vzhled",
- "default": "Default (%1)",
- "no-skin": "No Skin",
+ "default": "Výchozí (%1)",
+ "no-skin": "žádný vzhled",
"select-homepage": "Vybrat domovskou stránku",
"homepage": "Domovská stránka",
"homepage-description": "Vyberte stránku, která má být domovskou stránkou fóra nebo vyberte „Nic” a bude použita výchozí domovská stránka.",
diff --git a/public/language/cs/users.json b/public/language/cs/users.json
index 195ee52f14..9ebf1bee91 100644
--- a/public/language/cs/users.json
+++ b/public/language/cs/users.json
@@ -21,6 +21,6 @@
"popular-topics": "Oblíbená témata",
"unread-topics": "Nepřečtená témata",
"categories": "Kategorie",
- "tags": "Značky",
+ "tags": "Štítky",
"no-users-found": "Nebyly nalezeny žádní uživatelé."
}
\ No newline at end of file
diff --git a/public/language/cs/world.json b/public/language/cs/world.json
index 7fdb1569f2..9073a90af5 100644
--- a/public/language/cs/world.json
+++ b/public/language/cs/world.json
@@ -2,7 +2,7 @@
"name": "World",
"popular": "Popular topics",
"recent": "All topics",
- "help": "Help",
+ "help": "Nápověda",
"help.title": "What is this page?",
"help.intro": "Welcome to your corner of the fediverse.",
diff --git a/public/language/da/admin/dashboard.json b/public/language/da/admin/dashboard.json
index 98aeb80e34..4774deb49f 100644
--- a/public/language/da/admin/dashboard.json
+++ b/public/language/da/admin/dashboard.json
@@ -75,6 +75,7 @@
"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",
diff --git a/public/language/da/admin/manage/categories.json b/public/language/da/admin/manage/categories.json
index bd3e7b8f22..7ba0e7739a 100644
--- a/public/language/da/admin/manage/categories.json
+++ b/public/language/da/admin/manage/categories.json
@@ -1,18 +1,22 @@
{
"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",
- "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.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "Background Colour",
"text-color": "Text Colour",
"bg-image-size": "Background Image Size",
@@ -103,6 +107,11 @@
"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.
Note — 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": "
Do you really want to purge this category \"%1\"?
Warning! All topics and posts in this category will be purged!
Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.
",
"alert.purge-success": "Category purged!",
"alert.copy-success": "Settings Copied!",
diff --git a/public/language/da/admin/settings/activitypub.json b/public/language/da/admin/settings/activitypub.json
index 360d4ebfcf..b70d230cf5 100644
--- a/public/language/da/admin/settings/activitypub.json
+++ b/public/language/da/admin/settings/activitypub.json
@@ -18,6 +18,28 @@
"probe-timeout": "Opslag Ventetid (millisekunder)",
"probe-timeout-help": "(Udgangspunkt: 2000) Hvis opslagsforespørgslen ikke modtager et svar inden for den angivne tidsramme, vil vil brugeren blive sendt til linket direkte i stedet for. Justér dette tal højere, hvis sider responderer langsomt og du gerne vil give dem ekstra tid.",
+ "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.
N.B. 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 # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
+ "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 /actor.",
+ "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": "Filtrering",
"count": "Denne NodeBB instans er lige nu bevidst om %1 server(e)",
"server.filter-help": "Specificér servere, som du gerne vil stoppe fra at føderere med din NodeBB instans. Alternativt, kan du vælge at selektivt tillade føderation med udvalgte servere i stedet. Begge muligheder er understøttet, men man kan kun vælge en metode ad gangen.",
diff --git a/public/language/da/admin/settings/uploads.json b/public/language/da/admin/settings/uploads.json
index 22046915d9..e91a7bee36 100644
--- a/public/language/da/admin/settings/uploads.json
+++ b/public/language/da/admin/settings/uploads.json
@@ -22,6 +22,7 @@
"reject-image-height": "Maximum Image Height (in pixels)",
"reject-image-height-help": "Images taller than this value will be rejected.",
"allow-topic-thumbnails": "Allow users to upload topic thumbnails",
+ "show-post-uploads-as-thumbnails": "Show post uploads as thumbnails",
"topic-thumb-size": "Topic Thumb Size",
"allowed-file-extensions": "Allowed File Extensions",
"allowed-file-extensions-help": "Enter comma-separated list of file extensions here (e.g. pdf,xls,doc). An empty list means all extensions are allowed.",
diff --git a/public/language/da/aria.json b/public/language/da/aria.json
index c508ad09f3..47d81b3e1c 100644
--- a/public/language/da/aria.json
+++ b/public/language/da/aria.json
@@ -5,5 +5,6 @@
"profile-page-for": "Profile page for user %1",
"user-watched-tags": "Bruger-fulgte etiketter",
"delete-upload-button": "Delete upload button",
- "group-page-link-for": "Group page link for %1"
+ "group-page-link-for": "Group page link for %1",
+ "show-crossposts": "Show Cross-posts"
}
\ No newline at end of file
diff --git a/public/language/da/error.json b/public/language/da/error.json
index 657c4a479d..5be58578d4 100644
--- a/public/language/da/error.json
+++ b/public/language/da/error.json
@@ -3,6 +3,7 @@
"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": "Det ser ikke ud til at du er logget ind.",
"account-locked": "Din konto er blevet blokeret midlertidigt.",
"search-requires-login": "Du skal have en konto for at søge - log venligst ind eller registrer dig.",
@@ -146,6 +147,7 @@
"post-already-restored": "Dette indlæg er allerede blevet genskabt",
"topic-already-deleted": "Denne tråd er allerede blevet slettet",
"topic-already-restored": "Denne tråd er allerede blevet genskabt",
+ "topic-already-crossposted": "This topic has already been cross-posted there.",
"cant-purge-main-post": "Du kan ikke udradere hoved indlægget, fjern venligt tråden istedet",
"topic-thumbnails-are-disabled": "Tråd miniaturebilleder er slået fra.",
"invalid-file": "Ugyldig fil",
@@ -227,6 +229,7 @@
"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",
@@ -236,6 +239,7 @@
"socket-reconnect-failed": "Unable to reach the server at this time. Click here to try again, or try again later",
"invalid-plugin-id": "Invalid plugin ID",
"plugin-not-whitelisted": "Unable to install plugin – only plugins whitelisted by the NodeBB Package Manager can be installed via the ACP",
+ "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",
diff --git a/public/language/da/global.json b/public/language/da/global.json
index 1530a7cd55..5a9b870534 100644
--- a/public/language/da/global.json
+++ b/public/language/da/global.json
@@ -68,6 +68,7 @@
"users": "Bruger",
"topics": "Emner",
"posts": "Indlæg",
+ "crossposts": "Cross-posts",
"x-posts": "%1 posts",
"x-topics": "%1 topics",
"x-reputation": "%1 reputation",
diff --git a/public/language/da/modules.json b/public/language/da/modules.json
index 85a9e8fdfa..e8ceb340f2 100644
--- a/public/language/da/modules.json
+++ b/public/language/da/modules.json
@@ -48,6 +48,7 @@
"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",
diff --git a/public/language/da/social.json b/public/language/da/social.json
index d2dec7d2f0..308b0f1065 100644
--- a/public/language/da/social.json
+++ b/public/language/da/social.json
@@ -8,5 +8,7 @@
"log-in-with-facebook": "Log ind med Facebook",
"continue-with-facebook": "Fortsæt med Facebook",
"sign-in-with-linkedin": "Log ind med LinkedIn",
- "sign-up-with-linkedin": "Meld dig ind med LinkedIn"
+ "sign-up-with-linkedin": "Meld dig ind med LinkedIn",
+ "sign-in-with-wordpress": "Sign in with WordPress",
+ "sign-up-with-wordpress": "Sign up with WordPress"
}
\ No newline at end of file
diff --git a/public/language/da/topic.json b/public/language/da/topic.json
index 4b3720e0ca..7bb88e5473 100644
--- a/public/language/da/topic.json
+++ b/public/language/da/topic.json
@@ -103,6 +103,7 @@
"thread-tools.lock": "Lås tråd",
"thread-tools.unlock": "Lås tråd op",
"thread-tools.move": "Flyt tråd",
+ "thread-tools.crosspost": "Crosspost Topic",
"thread-tools.move-posts": "Move Posts",
"thread-tools.move-all": "Flyt alt",
"thread-tools.change-owner": "Change Owner",
@@ -132,6 +133,7 @@
"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": "Indlæser kategorier",
"confirm-move": "Flyt",
+ "confirm-crosspost": "Cross-post",
"confirm-fork": "Fraskil",
"bookmark": "Bogmærke",
"bookmarks": "Bogmærker",
@@ -141,6 +143,7 @@
"loading-more-posts": "Indlæser flere indlæg",
"move-topic": "Flyt tråd",
"move-topics": "Flyt tråde",
+ "crosspost-topic": "Cross-post Topic",
"move-post": "Flyt indlæg",
"post-moved": "Indlæg flyttet!",
"fork-topic": "Fraskil tråd",
@@ -163,6 +166,9 @@
"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": "Angiv din trådtittel her ...",
"composer.handle-placeholder": "Enter your name/handle here",
"composer.hide": "Hide",
diff --git a/public/language/de/admin/dashboard.json b/public/language/de/admin/dashboard.json
index 9229f720aa..4067ac8311 100644
--- a/public/language/de/admin/dashboard.json
+++ b/public/language/de/admin/dashboard.json
@@ -75,6 +75,7 @@
"graphs.page-views-registered": "Registrierte Seitenaufrufe",
"graphs.page-views-guest": "Seitenaufrufe von Gästen",
"graphs.page-views-bot": "Seitenaufrufe von Bots",
+ "graphs.page-views-ap": "ActivityPub Page Views",
"graphs.unique-visitors": "Verschiedene Besucher",
"graphs.registered-users": "Registrierte Benutzer",
"graphs.guest-users": "Gast-Benutzer",
diff --git a/public/language/de/admin/manage/categories.json b/public/language/de/admin/manage/categories.json
index 1cc1282011..c5c971a259 100644
--- a/public/language/de/admin/manage/categories.json
+++ b/public/language/de/admin/manage/categories.json
@@ -1,18 +1,22 @@
{
"manage-categories": "Kategorien verwalten",
"add-category": "Kategorie hinzufügen",
+ "add-local-category": "Add Local category",
+ "add-remote-category": "Add Remote category",
+ "remove": "Remove",
+ "rename": "Rename",
"jump-to": "Springen zu...",
"settings": "Kategorieeinstellungen",
"edit-category": "Kategorie bearbeiten",
"privileges": "Berechtigungen",
"back-to-categories": "Zurück zu Kategorien",
+ "id": "Category ID",
"name": "Kategoriename",
"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": "Kategorie-Beschreibung",
- "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.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "Hintergrundfarbe",
"text-color": "Textfarbe",
"bg-image-size": "Hintergrundbildgröße",
@@ -103,6 +107,11 @@
"alert.create-success": "Kategorie erfolgreich erstellt!",
"alert.none-active": "Du hast keine aktiven Kategorien.",
"alert.create": "Erstelle eine Kategorie",
+ "alert.add": "Add a Category",
+ "alert.add-help": "Remote categories can be added to the categories listing by specifying their handle.
Note — 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": "
Möchtest du die Kategorie \"%1\" wirklich löschen?
Warnung! Alle Themen und Beiträge in dieser Kategorie werden gelöscht!
Löschen einer Kategorie wird alle Themen und Beiträge zu entfernen, und die Kategorie aus der Datenbank löschen. Falls du eine Kategorie temporär entfernen möchstest, dann kannst du sie stattdessen \"deaktivieren\".",
"alert.purge-success": "Kategorie gelöscht!",
"alert.copy-success": "Einstellungen kopiert!",
diff --git a/public/language/de/admin/settings/activitypub.json b/public/language/de/admin/settings/activitypub.json
index 7475cf5d4b..34f2635f78 100644
--- a/public/language/de/admin/settings/activitypub.json
+++ b/public/language/de/admin/settings/activitypub.json
@@ -1,26 +1,48 @@
{
"intro-lead": "Was ist Föderation?",
- "intro-body": "NodeBB is able to communicate with other NodeBB instances that support it. This is achieved through a protocol called ActivityPub. If enabled, NodeBB will also be able to communicate with other apps and websites that use ActivityPub (e.g. Mastodon, Peertube, etc.)",
+ "intro-body": "NodeBB kann mit anderen NodeBB-Instanzen kommunizieren, die dies unterstützen. Dies geschieht über ein Protokoll namens ActivityPub. Wenn es aktiviert ist, kann NodeBB auch mit anderen Apps und Websites kommunizieren, die ActivityPub verwenden (z. B. Mastodon, Peertube usw.).",
"general": "Allgemein",
"pruning": "Inhaltsbereinigung",
- "content-pruning": "Days to keep remote content",
- "content-pruning-help": "Note that remote content that has received engagement (a reply or a upvote/downvote) will be preserved. (0 for disabled)",
- "user-pruning": "Days to cache remote user accounts",
- "user-pruning-help": "Remote user accounts will only be pruned if they have no posts. Otherwise they will be re-retrieved. (0 for disabled)",
+ "content-pruning": "Tage, an denen der Remote-Inhalt aufbewahrt werden soll.",
+ "content-pruning-help": "Inhalte von extern, die Interaktionen bekommen haben (z. B. eine Antwort oder ein Upvote/Downvote), bleiben erhalten. (0 = deaktiviert)",
+ "user-pruning": "Tage, um externe Benutzerkonten zwischenzuspeichern",
+ "user-pruning-help": "Externe Benutzerkonten werden nur gelöscht, wenn sie keine Beiträge haben. Andernfalls werden sie erneut abgerufen. (0 = deaktiviert)",
"enabled": "Föderation aktivieren",
- "enabled-help": "If enabled, will allow this NodeBB will be able to communicate with all Activitypub-enabled clients on the wider fediverse.",
- "allowLoopback": "Allow loopback processing",
- "allowLoopback-help": "Useful for debugging purposes only. You should probably leave this disabled.",
+ "enabled-help": "Wenn aktiviert, kann dieses NodeBB mit allen ActivityPub-fähigen Clients im weiteren Fediverse kommunizieren.",
+ "allowLoopback": "Loopback-Verarbeitung erlauben",
+ "allowLoopback-help": "Nur für Debugging-Zwecke nützlich. Sollte am besten deaktiviert bleiben.",
"probe": "In App öffnen",
- "probe-enabled": "Try to open ActivityPub-enabled resources in NodeBB",
- "probe-enabled-help": "If enabled, NodeBB will check every external link for an ActivityPub equivalent, and load it in NodeBB instead.",
- "probe-timeout": "Lookup Timeout (milliseconds)",
- "probe-timeout-help": "(Default: 2000) If the lookup query does not receive a response within the set timeframe, will send the user to the link directly instead. Adjust this number higher if sites are responding slowly and you wish to give extra time.",
+ "probe-enabled": "Versuchen, ActivityPub-fähige Ressourcen in NodeBB zu öffnen",
+ "probe-enabled-help": "Wenn aktiviert, überprüft NodeBB jeden externen Link auf ein ActivityPub-Äquivalent und lädt diesen stattdessen in NodeBB.",
+ "probe-timeout": "Lookup-Timeout (Millisekunden)",
+ "probe-timeout-help": "(Standard: 2000) Wenn die Lookup-Anfrage innerhalb des festgelegten Zeitraums keine Antwort erhält, wird der Nutzer stattdessen direkt zum Link weitergeleitet. Erhöhe diesen Wert, wenn Seiten langsam reagieren und du mehr Zeit einräumen möchtest.",
+
+ "rules": "Kategorisierung",
+ "rules-intro": "Über ActivityPub entdeckte Inhalte können automatisch anhand bestimmter Regeln (z. B. Hashtags) kategorisiert werden.",
+ "rules.modal.title": "Wie es funktioniert",
+ "rules.modal.instructions": "Eingehende Inhalte werden mit diesen Kategorisierungsregeln abgeglichen, und passende Inhalte werden automatisch in die gewünschte Kategorie verschoben. Hinweis: Inhalte, die bereits kategorisiert sind (z. B. in einer externen Kategorie), durchlaufen diese Regeln nicht.",
+ "rules.add": "Neue Regel hinzufügen",
+ "rules.help-hashtag": "Topics containing this case-insensitive hashtag will match. Do not enter the # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
+ "rules.type": "Typ",
+ "rules.value": "Wert",
+ "rules.cid": "Kategorie",
+
+ "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 /actor.",
+ "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": "Filterung",
- "count": "This NodeBB is currently aware of %1 server(s)",
- "server.filter-help": "Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively allow federation with specific servers, instead. Both options are supported, although they are mutually exclusive.",
- "server.filter-help-hostname": "Enter just the instance hostname below (e.g. example.org), separated by line breaks.",
- "server.filter-allow-list": "Use this as an Allow List instead"
+ "count": "Dieses NodeBB kennt derzeit %1 Server",
+ "server.filter-help": "Gib die Server an, die du von der Föderation mit deinem NodeBB ausschließen möchtest. Alternativ kannst du auch festlegen, dass die Föderation nur mit bestimmten Servern erlaubt ist. Beide Optionen werden unterstützt, schließen sich jedoch gegenseitig aus.",
+ "server.filter-help-hostname": "Gib unten nur den Instanz-Hostnamen ein (z. B. example.org), jeweils durch Zeilenumbrüche getrennt.",
+ "server.filter-allow-list": "Stattdessen als Allow-Liste verwenden"
}
\ No newline at end of file
diff --git a/public/language/de/admin/settings/uploads.json b/public/language/de/admin/settings/uploads.json
index 269bfb8178..75a5223588 100644
--- a/public/language/de/admin/settings/uploads.json
+++ b/public/language/de/admin/settings/uploads.json
@@ -22,6 +22,7 @@
"reject-image-height": "Maximale Bildhöhe (in Pixeln)",
"reject-image-height-help": "Höhere Bilder werden abgelehnt.",
"allow-topic-thumbnails": "Nutzern erlauben Themen Thumbnails hochzuladen",
+ "show-post-uploads-as-thumbnails": "Show post uploads as thumbnails",
"topic-thumb-size": "Thema Thumbnailgröße",
"allowed-file-extensions": "Erlaubte Dateiendungen",
"allowed-file-extensions-help": "Komma-getrennte Liste der Dateiendungen hier einfügen (z.B. pdf,xls,doc). Eine leere Liste bedeutet, dass alle Dateiendungen erlaubt sind.",
diff --git a/public/language/de/aria.json b/public/language/de/aria.json
index bece04e6d6..a33c879516 100644
--- a/public/language/de/aria.json
+++ b/public/language/de/aria.json
@@ -5,5 +5,6 @@
"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"
+ "group-page-link-for": "Group page link for %1",
+ "show-crossposts": "Show Cross-posts"
}
\ No newline at end of file
diff --git a/public/language/de/error.json b/public/language/de/error.json
index 8c44aceccd..27ce16174c 100644
--- a/public/language/de/error.json
+++ b/public/language/de/error.json
@@ -3,6 +3,7 @@
"invalid-json": "Ungültiges JSON",
"wrong-parameter-type": "Für die Eigenschaft „%1“ wurde ein Wert vom Typ %3 erwartet, aber stattdessen wurde %2 empfangen",
"required-parameters-missing": "Bei diesem API-Aufruf fehlten erforderliche Parameter: %1",
+ "reserved-ip-address": "Netzwerkanfragen an reservierte IP-Bereiche sind nicht erlaubt.",
"not-logged-in": "Du bist nicht angemeldet.",
"account-locked": "Dein Konto wurde vorübergehend gesperrt.",
"search-requires-login": "Die Suche erfordert ein Konto, bitte einloggen oder registrieren.",
@@ -67,8 +68,8 @@
"no-chat-room": "Der Chatroom existiert nicht",
"no-privileges": "Du verfügst nicht über ausreichende Berechtigungen, um die Aktion durchzuführen.",
"category-disabled": "Kategorie ist deaktiviert",
- "post-deleted": "Post deleted",
- "topic-locked": "Topic locked",
+ "post-deleted": "Beitrag gelöscht",
+ "topic-locked": "Thema gesperrt",
"post-edit-duration-expired": "Entschuldigung, du darfst Beiträge nur %1 Sekunde(n) nach dem Veröffentlichen editieren.",
"post-edit-duration-expired-minutes": "Du darfst Beiträge lediglich innerhalb von %1 Minuten/n nach dem Erstellen editieren",
"post-edit-duration-expired-minutes-seconds": "Du darfst Beiträge lediglich innerhalb von %1 Minuten/n und %2 Sekunden nach dem Erstellen editieren",
@@ -146,6 +147,7 @@
"post-already-restored": "Dieser Beitrag ist bereits wiederhergestellt worden",
"topic-already-deleted": "Dieses Thema ist bereits gelöscht worden",
"topic-already-restored": "Dieses Thema ist bereits wiederhergestellt worden",
+ "topic-already-crossposted": "This topic has already been cross-posted there.",
"cant-purge-main-post": "Du kannst den Hauptbeitrag nicht löschen, bitte lösche stattdessen das Thema",
"topic-thumbnails-are-disabled": "Vorschaubilder für Themen sind deaktiviert",
"invalid-file": "Ungültige Datei",
@@ -154,9 +156,9 @@
"about-me-too-long": "Entschuldigung, dein \"über mich\" kann nicht länger als %1 Zeichen sein.",
"cant-chat-with-yourself": "Du kannst nicht mit dir selber chatten!",
"chat-restricted": "Dieser Benutzer hat seine Chatfunktion eingeschränkt. Du kannst nur mit diesem Benutzer chatten, wenn er dir folgt.",
- "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-allow-list-user-already-added": "Dieser Benutzer befindet sich bereits in deiner Allow-Liste.",
+ "chat-deny-list-user-already-added": "Dieser Benutzer befindet sich bereits in deiner Deny-Liste.",
+ "chat-user-blocked": "Du wurdest von diesem Benutzer blockiert.",
"chat-disabled": "Das Chatsystem deaktiviert",
"too-many-messages": "Du hast zu viele Nachrichten versandt, bitte warte eine Weile.",
"invalid-chat-message": "Ungültige Nachricht",
@@ -171,7 +173,7 @@
"cant-add-users-to-chat-room": "Kann Benutzer nicht zu Chatroom hinzufügen",
"cant-remove-users-from-chat-room": "Kann Benutzer nicht aus Chatroom entfernen.",
"chat-room-name-too-long": "Der Name des Chat-Raums ist zu lang. Die Namen dürfen nicht länger als %1 Zeichen sein.",
- "remote-chat-received-too-long": "You received a chat message from %1, but it was too long and was rejected.",
+ "remote-chat-received-too-long": "Du hast eine Chat-Nachricht von %1 erhalten, aber sie war zu lang und wurde abgelehnt.",
"already-voting-for-this-post": "Du hast diesen Beitrag bereits bewertet.",
"reputation-system-disabled": "Das Reputationssystem ist deaktiviert.",
"downvoting-disabled": "Downvotes sind deaktiviert.",
@@ -185,20 +187,20 @@
"not-enough-reputation-min-rep-signature": "Du benötigst %1 Reputation, um eine Signatur hinzuzufügen",
"not-enough-reputation-min-rep-profile-picture": "Du benötigst %1 Ruf, um ein Profilbild hinzuzufügen",
"not-enough-reputation-min-rep-cover-picture": "Du benötigst %1 Ruf, um ein Titelbild hinzuzufügen",
- "not-enough-reputation-custom-field": "You need %1 reputation for %2",
- "custom-user-field-value-too-long": "Custom field value too long, %1",
- "custom-user-field-select-value-invalid": "Custom field selected option is invalid, %1",
- "custom-user-field-invalid-text": "Custom field text is invalid, %1",
- "custom-user-field-invalid-link": "Custom field link is invalid, %1",
- "custom-user-field-invalid-number": "Custom field number is invalid, %1",
- "custom-user-field-invalid-date": "Custom field date is invalid, %1",
- "invalid-custom-user-field": "Invalid custom user field, \"%1\" is already used by NodeBB",
+ "not-enough-reputation-custom-field": "Du benötigst %1 Reputation für %2",
+ "custom-user-field-value-too-long": "Benutzerdefiniertes Feld zu lang, %1",
+ "custom-user-field-select-value-invalid": "Die ausgewählte Option im benutzerdefinierten Feld ist ungültig, %1",
+ "custom-user-field-invalid-text": "Der Text im benutzerdefinierten Feld ist ungültig, %1",
+ "custom-user-field-invalid-link": "Der Link im benutzerdefinierten Feld ist ungültig, %1",
+ "custom-user-field-invalid-number": "Die Zahl im benutzerdefinierten Feld ist ungültig, %1",
+ "custom-user-field-invalid-date": "Das Datum im benutzerdefinierten Feld ist ungültig, %1",
+ "invalid-custom-user-field": "Ungültiges benutzerdefiniertes Feld, %1 wird bereits von NodeBB verwendet",
"post-already-flagged": "Du hast diesen Beitrag bereits gemeldet",
"user-already-flagged": "Du hast diesen Benutzer bereits gemeldet",
"post-flagged-too-many-times": "Dieser Beitrag wurde bereits von anderen Benutzern gemeldet",
"user-flagged-too-many-times": "Dieser Benutzer wurde bereits von anderen Benutzern gemeldet",
- "too-many-post-flags-per-day": "You can only flag %1 post(s) per day",
- "too-many-user-flags-per-day": "You can only flag %1 user(s) per day",
+ "too-many-post-flags-per-day": "Du kannst pro Tag nur %1 Beitrag/Beiträge melden",
+ "too-many-user-flags-per-day": "Du kannst pro Tag nur %1 Benutzer melden",
"cant-flag-privileged": "Sie dürfen die Profile oder Inhalte von privilegierten Benutzern (Moderatoren/Globalmoderatoren/Admins) nicht kennzeichnen.",
"cant-locate-flag-report": "Meldung-Report kann nicht gefunden werden",
"self-vote": "Du kannst deine eigenen Beiträge nicht bewerten",
@@ -227,6 +229,7 @@
"no-topics-selected": "Keine Beiträge ausgewählt!",
"cant-move-to-same-topic": "Du kannst den Beitrag nicht in das selbe Thema schieben!",
"cant-move-topic-to-same-category": "Das Thema kann nicht zur selben Kategorie verschoben werden!",
+ "cant-move-topic-to-from-remote-categories": "You cannot move topics in or out of remote categories; consider cross-posting instead.",
"cannot-block-self": "Du kannst dich nicht selbst blocken!",
"cannot-block-privileged": "Du kannst keine Administratoren bzw. Globale Moderatoren blocken.",
"cannot-block-guest": "Gäste können andere Nutzer nicht blockieren.",
@@ -234,13 +237,14 @@
"already-unblocked": "Dieser Nutzer ist bereits entsperrt",
"no-connection": "Es scheint als gäbe es ein Problem mit deiner Internetverbindung",
"socket-reconnect-failed": "Der Server kann zurzeit nicht erreicht werden. Klicken Sie hier, um es erneut zu versuchen, oder versuchen Sie es später erneut",
- "invalid-plugin-id": "Invalid plugin ID",
+ "invalid-plugin-id": "Ungültige Plugin-ID",
"plugin-not-whitelisted": "Plugin kann nicht installiert werden – nur Plugins, die vom NodeBB Package Manager in die Whitelist aufgenommen wurden, können über den ACP installiert werden",
- "plugin-installation-via-acp-disabled": "Plugin installation via ACP is disabled",
+ "cannot-toggle-system-plugin": "Du kannst den Status eines System-Plugins nicht umschalten",
+ "plugin-installation-via-acp-disabled": "Die Plugin-Installation über das ACP ist deaktiviert",
"plugins-set-in-configuration": "Du darfst den Status der Plugins nicht ändern, da sie zur Laufzeit definiert werden (config.json, Umgebungsvariablen oder Terminalargumente). Bitte ändere stattdessen die Konfiguration.",
"theme-not-set-in-configuration": "Wenn in der Konfiguration aktive Plugins definiert werden, muss bei einem Themenwechsel das neue Thema zur Liste der aktiven Plugins hinzugefügt werden, bevor es im ACP aktualisiert wird.",
"topic-event-unrecognized": "Themenereignis „%1“ nicht erkannt",
- "category.handle-taken": "Category handle is already taken, please choose another.",
+ "category.handle-taken": "Kategorie-Handle ist bereits vergeben, bitte wähle ein anderes.",
"cant-set-child-as-parent": "Untergeordnete Kategorie kann nicht als übergeordnete Kategorie festgelegt werden",
"cant-set-self-as-parent": "Die aktuelle Kategorie kann nicht als übergeordnete Kategorie festgelegt werden",
"api.master-token-no-uid": "Ein Master-Token wurde ohne eine entsprechende `_uid` im Anfrage-Body empfangen",
@@ -254,11 +258,11 @@
"api.501": "Die Route, die Sie anrufen möchten, ist noch nicht implementiert. Bitte versuchen Sie es morgen erneut",
"api.503": "Die Route, die Sie anrufen möchten, ist derzeit aufgrund einer Serverkonfiguration nicht verfügbar",
"api.reauth-required": "Die angeforderte Ressource erfordert eine (Re-)Authentifizierung.",
- "activitypub.not-enabled": "Federation is not enabled on this server",
- "activitypub.invalid-id": "Unable to resolve the input id, likely as it is malformed.",
- "activitypub.get-failed": "Unable to retrieve the specified resource.",
- "activitypub.pubKey-not-found": "Unable to resolve public key, so payload verification cannot take place.",
- "activitypub.origin-mismatch": "The received object's origin does not match the sender's origin",
- "activitypub.actor-mismatch": "The received activity is being carried out by an actor that is different from expected.",
- "activitypub.not-implemented": "The request was denied because it or an aspect of it is not implemented by the recipient server"
+ "activitypub.not-enabled": "Die Föderation ist auf diesem Server nicht aktiviert",
+ "activitypub.invalid-id": "Die Eingabe-ID kann nicht aufgelöst werden, wahrscheinlich weil sie fehlerhaft ist.",
+ "activitypub.get-failed": "Die angegebene Ressource kann nicht abgerufen werden.",
+ "activitypub.pubKey-not-found": "Der öffentliche Schlüssel kann nicht aufgelöst werden, daher ist eine Überprüfung des Payloads nicht möglich.",
+ "activitypub.origin-mismatch": "Der Ursprung des empfangenen Objekts stimmt nicht mit dem Ursprung des Absenders überein",
+ "activitypub.actor-mismatch": "Die empfangene Aktivität wird von einem anderen Akteur ausgeführt als erwartet",
+ "activitypub.not-implemented": "Die Anfrage wurde abgelehnt, weil sie oder ein Teil davon vom empfangenden Server nicht implementiert ist"
}
\ No newline at end of file
diff --git a/public/language/de/global.json b/public/language/de/global.json
index 47604413e5..5b55c71acf 100644
--- a/public/language/de/global.json
+++ b/public/language/de/global.json
@@ -68,6 +68,7 @@
"users": "Benutzer",
"topics": "Themen",
"posts": "Beiträge",
+ "crossposts": "Cross-posts",
"x-posts": "%1 Beiträge",
"x-topics": "%1 Themen",
"x-reputation": "%1 Reputation",
diff --git a/public/language/de/modules.json b/public/language/de/modules.json
index 5edc6169e8..cf5c776242 100644
--- a/public/language/de/modules.json
+++ b/public/language/de/modules.json
@@ -48,6 +48,7 @@
"chat.add-user": "Benutzer hinzufügen",
"chat.notification-settings": "Benachrichtigungseinstellungen",
"chat.default-notification-setting": "Standardeinstellung für die Benachrichtigung",
+ "chat.join-leave-messages": "Join/Leave Messages",
"chat.notification-setting-room-default": "Raum Standard",
"chat.notification-setting-none": "Keine Benachrichtigungen",
"chat.notification-setting-at-mention-only": "@nur Erwähnung",
diff --git a/public/language/de/social.json b/public/language/de/social.json
index 0e8ce251b3..1ae8106ef9 100644
--- a/public/language/de/social.json
+++ b/public/language/de/social.json
@@ -8,5 +8,7 @@
"log-in-with-facebook": "Mit Facebook anmelden",
"continue-with-facebook": "Mit Facebook fortsetzen",
"sign-in-with-linkedin": "Mit LinkedIn anmelden",
- "sign-up-with-linkedin": "Mit LinkedIn registrieren"
+ "sign-up-with-linkedin": "Mit LinkedIn registrieren",
+ "sign-in-with-wordpress": "Sign in with WordPress",
+ "sign-up-with-wordpress": "Sign up with WordPress"
}
\ No newline at end of file
diff --git a/public/language/de/topic.json b/public/language/de/topic.json
index 67a22712f3..7ddf907569 100644
--- a/public/language/de/topic.json
+++ b/public/language/de/topic.json
@@ -103,6 +103,7 @@
"thread-tools.lock": "Thema schließen",
"thread-tools.unlock": "Thema öffnen",
"thread-tools.move": "Thema verschieben",
+ "thread-tools.crosspost": "Crosspost Topic",
"thread-tools.move-posts": "Beiträge verschieben",
"thread-tools.move-all": "Alle verschieben",
"thread-tools.change-owner": "Besitzer ändern",
@@ -132,6 +133,7 @@
"pin-modal-help": "Optional können Sie hier ein Ablaufdatum für das gepinnte Thema (die gepinnten Themen) festlegen. Alternativ können Sie dieses Feld leer lassen, damit das Thema fixiert bleibt, bis es manuell gelöst wird.",
"load-categories": "Kategorien laden",
"confirm-move": "Verschieben",
+ "confirm-crosspost": "Cross-post",
"confirm-fork": "Aufspalten",
"bookmark": "Lesezeichen",
"bookmarks": "Lesezeichen",
@@ -141,6 +143,7 @@
"loading-more-posts": "Lade mehr Beiträge",
"move-topic": "Thema verschieben",
"move-topics": "Themen verschieben",
+ "crosspost-topic": "Cross-post Topic",
"move-post": "Beitrag verschieben",
"post-moved": "Beitrag wurde verschoben!",
"fork-topic": "Thema aufspalten",
@@ -163,6 +166,9 @@
"move-topic-instruction": "Wähle die Ziel-Kategorie und klicke \"Verschieben\"",
"change-owner-instruction": "Klicke auf die Beiträge, die einem anderen Benutzer zugeordnet werden sollen",
"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": "Hier den Titel des Themas eingeben...",
"composer.handle-placeholder": "Gib deinen Namen/Nick hier ein",
"composer.hide": "Verstecken",
diff --git a/public/language/el/admin/dashboard.json b/public/language/el/admin/dashboard.json
index 6ad973f5f3..0be6d5866c 100644
--- a/public/language/el/admin/dashboard.json
+++ b/public/language/el/admin/dashboard.json
@@ -75,6 +75,7 @@
"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",
diff --git a/public/language/el/admin/manage/categories.json b/public/language/el/admin/manage/categories.json
index f51152f22d..cdb3e1f356 100644
--- a/public/language/el/admin/manage/categories.json
+++ b/public/language/el/admin/manage/categories.json
@@ -1,18 +1,22 @@
{
"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",
- "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.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "Background Colour",
"text-color": "Text Colour",
"bg-image-size": "Background Image Size",
@@ -103,6 +107,11 @@
"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.
Note — 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": "
Do you really want to purge this category \"%1\"?
Warning! All topics and posts in this category will be purged!
Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.
",
"alert.purge-success": "Category purged!",
"alert.copy-success": "Settings Copied!",
diff --git a/public/language/el/admin/settings/activitypub.json b/public/language/el/admin/settings/activitypub.json
index 94f9ad7822..5ab4fa43e8 100644
--- a/public/language/el/admin/settings/activitypub.json
+++ b/public/language/el/admin/settings/activitypub.json
@@ -18,6 +18,28 @@
"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.
N.B. 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 # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
+ "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 /actor.",
+ "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 %1 server(s)",
"server.filter-help": "Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively allow federation with specific servers, instead. Both options are supported, although they are mutually exclusive.",
diff --git a/public/language/el/admin/settings/uploads.json b/public/language/el/admin/settings/uploads.json
index 22046915d9..e91a7bee36 100644
--- a/public/language/el/admin/settings/uploads.json
+++ b/public/language/el/admin/settings/uploads.json
@@ -22,6 +22,7 @@
"reject-image-height": "Maximum Image Height (in pixels)",
"reject-image-height-help": "Images taller than this value will be rejected.",
"allow-topic-thumbnails": "Allow users to upload topic thumbnails",
+ "show-post-uploads-as-thumbnails": "Show post uploads as thumbnails",
"topic-thumb-size": "Topic Thumb Size",
"allowed-file-extensions": "Allowed File Extensions",
"allowed-file-extensions-help": "Enter comma-separated list of file extensions here (e.g. pdf,xls,doc). An empty list means all extensions are allowed.",
diff --git a/public/language/el/aria.json b/public/language/el/aria.json
index 8e2c565c82..ec7889d2f4 100644
--- a/public/language/el/aria.json
+++ b/public/language/el/aria.json
@@ -5,5 +5,6 @@
"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"
+ "group-page-link-for": "Group page link for %1",
+ "show-crossposts": "Show Cross-posts"
}
\ No newline at end of file
diff --git a/public/language/el/error.json b/public/language/el/error.json
index 9043105827..f8eb99ac4f 100644
--- a/public/language/el/error.json
+++ b/public/language/el/error.json
@@ -3,6 +3,7 @@
"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": "Searching requires an account - please login or register.",
@@ -146,6 +147,7 @@
"post-already-restored": "This post has already been restored",
"topic-already-deleted": "This topic has already been deleted",
"topic-already-restored": "This topic has already been restored",
+ "topic-already-crossposted": "This topic has already been cross-posted there.",
"cant-purge-main-post": "You can't purge the main post, please delete the topic instead",
"topic-thumbnails-are-disabled": "Οι εικόνες θεμάτων είναι απενεργοποιημένες",
"invalid-file": "Άκυρο Αρχείο",
@@ -227,6 +229,7 @@
"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",
@@ -236,6 +239,7 @@
"socket-reconnect-failed": "Unable to reach the server at this time. Click here to try again, or try again later",
"invalid-plugin-id": "Invalid plugin ID",
"plugin-not-whitelisted": "Unable to install plugin – only plugins whitelisted by the NodeBB Package Manager can be installed via the ACP",
+ "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",
diff --git a/public/language/el/global.json b/public/language/el/global.json
index 1fa9b54024..bab622f332 100644
--- a/public/language/el/global.json
+++ b/public/language/el/global.json
@@ -68,6 +68,7 @@
"users": "Χρήστες",
"topics": "Θέματα",
"posts": "Δημοσιεύσεις",
+ "crossposts": "Cross-posts",
"x-posts": "%1 posts",
"x-topics": "%1 topics",
"x-reputation": "%1 reputation",
diff --git a/public/language/el/modules.json b/public/language/el/modules.json
index a1d1259471..2768fec8a4 100644
--- a/public/language/el/modules.json
+++ b/public/language/el/modules.json
@@ -48,6 +48,7 @@
"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",
diff --git a/public/language/el/social.json b/public/language/el/social.json
index 2ba690a187..5b8dd99a46 100644
--- a/public/language/el/social.json
+++ b/public/language/el/social.json
@@ -8,5 +8,7 @@
"log-in-with-facebook": "Log in with Facebook",
"continue-with-facebook": "Continue with Facebook",
"sign-in-with-linkedin": "Sign in with LinkedIn",
- "sign-up-with-linkedin": "Sign up 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"
}
\ No newline at end of file
diff --git a/public/language/el/topic.json b/public/language/el/topic.json
index d7acb0c3ae..783bf09fb3 100644
--- a/public/language/el/topic.json
+++ b/public/language/el/topic.json
@@ -103,6 +103,7 @@
"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",
@@ -132,6 +133,7 @@
"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",
@@ -141,6 +143,7 @@
"loading-more-posts": "Φόρτωση περισσότερων δημοσιεύσεων",
"move-topic": "Μετακίνηση Θέματος",
"move-topics": "Μετακίνηση Θεμάτων",
+ "crosspost-topic": "Cross-post Topic",
"move-post": "Μετακίνηση Δημοσίευσης",
"post-moved": "Η δημοσίευση μετακινήθηκε!",
"fork-topic": "Διαχωρισμός Θέματος",
@@ -163,6 +166,9 @@
"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",
diff --git a/public/language/en-GB/admin/dashboard.json b/public/language/en-GB/admin/dashboard.json
index 6ad973f5f3..0be6d5866c 100644
--- a/public/language/en-GB/admin/dashboard.json
+++ b/public/language/en-GB/admin/dashboard.json
@@ -75,6 +75,7 @@
"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",
diff --git a/public/language/en-GB/admin/manage/categories.json b/public/language/en-GB/admin/manage/categories.json
index f51152f22d..cdb3e1f356 100644
--- a/public/language/en-GB/admin/manage/categories.json
+++ b/public/language/en-GB/admin/manage/categories.json
@@ -1,18 +1,22 @@
{
"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",
- "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.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "Background Colour",
"text-color": "Text Colour",
"bg-image-size": "Background Image Size",
@@ -103,6 +107,11 @@
"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.
Note — 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": "
Do you really want to purge this category \"%1\"?
Warning! All topics and posts in this category will be purged!
Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.
",
"alert.purge-success": "Category purged!",
"alert.copy-success": "Settings Copied!",
diff --git a/public/language/en-GB/admin/settings/activitypub.json b/public/language/en-GB/admin/settings/activitypub.json
index 94f9ad7822..5ab4fa43e8 100644
--- a/public/language/en-GB/admin/settings/activitypub.json
+++ b/public/language/en-GB/admin/settings/activitypub.json
@@ -18,6 +18,28 @@
"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.
N.B. 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 # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
+ "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 /actor.",
+ "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 %1 server(s)",
"server.filter-help": "Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively allow federation with specific servers, instead. Both options are supported, although they are mutually exclusive.",
diff --git a/public/language/en-GB/admin/settings/uploads.json b/public/language/en-GB/admin/settings/uploads.json
index 22046915d9..e91a7bee36 100644
--- a/public/language/en-GB/admin/settings/uploads.json
+++ b/public/language/en-GB/admin/settings/uploads.json
@@ -22,6 +22,7 @@
"reject-image-height": "Maximum Image Height (in pixels)",
"reject-image-height-help": "Images taller than this value will be rejected.",
"allow-topic-thumbnails": "Allow users to upload topic thumbnails",
+ "show-post-uploads-as-thumbnails": "Show post uploads as thumbnails",
"topic-thumb-size": "Topic Thumb Size",
"allowed-file-extensions": "Allowed File Extensions",
"allowed-file-extensions-help": "Enter comma-separated list of file extensions here (e.g. pdf,xls,doc). An empty list means all extensions are allowed.",
diff --git a/public/language/en-GB/aria.json b/public/language/en-GB/aria.json
index 8e2c565c82..ec7889d2f4 100644
--- a/public/language/en-GB/aria.json
+++ b/public/language/en-GB/aria.json
@@ -5,5 +5,6 @@
"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"
+ "group-page-link-for": "Group page link for %1",
+ "show-crossposts": "Show Cross-posts"
}
\ No newline at end of file
diff --git a/public/language/en-GB/error.json b/public/language/en-GB/error.json
index ec51a88ead..b32ccfedfb 100644
--- a/public/language/en-GB/error.json
+++ b/public/language/en-GB/error.json
@@ -4,6 +4,8 @@
"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": "You don't seem to be logged in.",
"account-locked": "Your account has been locked temporarily",
"search-requires-login": "Searching requires an account - please login or register.",
@@ -168,6 +170,8 @@
"topic-already-deleted": "This topic has already been deleted",
"topic-already-restored": "This topic has already been restored",
+ "topic-already-crossposted": "This topic has already been cross-posted there.",
+
"cant-purge-main-post": "You can't purge the main post, please delete the topic instead",
"topic-thumbnails-are-disabled": "Topic thumbnails are disabled.",
@@ -260,6 +264,7 @@
"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",
diff --git a/public/language/en-GB/global.json b/public/language/en-GB/global.json
index 7e66953d0a..8c76edde4c 100644
--- a/public/language/en-GB/global.json
+++ b/public/language/en-GB/global.json
@@ -81,6 +81,7 @@
"users": "Users",
"topics": "Topics",
"posts": "Posts",
+ "crossposts": "Cross-posts",
"x-posts": "%1 posts",
"x-topics": "%1 topics",
"x-reputation": "%1 reputation",
diff --git a/public/language/en-GB/modules.json b/public/language/en-GB/modules.json
index 29ba02726f..f4b473992a 100644
--- a/public/language/en-GB/modules.json
+++ b/public/language/en-GB/modules.json
@@ -48,6 +48,7 @@
"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",
diff --git a/public/language/en-GB/social.json b/public/language/en-GB/social.json
index 2ba690a187..5b8dd99a46 100644
--- a/public/language/en-GB/social.json
+++ b/public/language/en-GB/social.json
@@ -8,5 +8,7 @@
"log-in-with-facebook": "Log in with Facebook",
"continue-with-facebook": "Continue with Facebook",
"sign-in-with-linkedin": "Sign in with LinkedIn",
- "sign-up-with-linkedin": "Sign up 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"
}
\ No newline at end of file
diff --git a/public/language/en-GB/topic.json b/public/language/en-GB/topic.json
index bfb3101c2c..f736000fb9 100644
--- a/public/language/en-GB/topic.json
+++ b/public/language/en-GB/topic.json
@@ -116,6 +116,7 @@
"thread-tools.lock": "Lock Topic",
"thread-tools.unlock": "Unlock Topic",
"thread-tools.move": "Move Topic",
+ "thread-tools.crosspost": "Crosspost Topic",
"thread-tools.move-posts": "Move Posts",
"thread-tools.move-all": "Move All",
"thread-tools.change-owner": "Change Owner",
@@ -149,6 +150,7 @@
"load-categories": "Loading Categories",
"confirm-move": "Move",
+ "confirm-crosspost": "Cross-post",
"confirm-fork": "Fork",
"bookmark": "Bookmark",
@@ -161,6 +163,7 @@
"loading-more-posts": "Loading More Posts",
"move-topic": "Move Topic",
"move-topics": "Move Topics",
+ "crosspost-topic": "Cross-post Topic",
"move-post": "Move Post",
"post-moved": "Post moved!",
"fork-topic": "Fork Topic",
@@ -184,6 +187,10 @@
"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": "Enter your topic title here...",
"composer.handle-placeholder": "Enter your name/handle here",
"composer.hide": "Hide",
diff --git a/public/language/en-US/admin/dashboard.json b/public/language/en-US/admin/dashboard.json
index 6ad973f5f3..0be6d5866c 100644
--- a/public/language/en-US/admin/dashboard.json
+++ b/public/language/en-US/admin/dashboard.json
@@ -75,6 +75,7 @@
"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",
diff --git a/public/language/en-US/admin/manage/categories.json b/public/language/en-US/admin/manage/categories.json
index f51152f22d..cdb3e1f356 100644
--- a/public/language/en-US/admin/manage/categories.json
+++ b/public/language/en-US/admin/manage/categories.json
@@ -1,18 +1,22 @@
{
"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",
- "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.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "Background Colour",
"text-color": "Text Colour",
"bg-image-size": "Background Image Size",
@@ -103,6 +107,11 @@
"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.
Note — 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": "
Do you really want to purge this category \"%1\"?
Warning! All topics and posts in this category will be purged!
Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.
",
"alert.purge-success": "Category purged!",
"alert.copy-success": "Settings Copied!",
diff --git a/public/language/en-US/admin/settings/activitypub.json b/public/language/en-US/admin/settings/activitypub.json
index 94f9ad7822..5ab4fa43e8 100644
--- a/public/language/en-US/admin/settings/activitypub.json
+++ b/public/language/en-US/admin/settings/activitypub.json
@@ -18,6 +18,28 @@
"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.
N.B. 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 # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
+ "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 /actor.",
+ "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 %1 server(s)",
"server.filter-help": "Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively allow federation with specific servers, instead. Both options are supported, although they are mutually exclusive.",
diff --git a/public/language/en-US/admin/settings/uploads.json b/public/language/en-US/admin/settings/uploads.json
index 22046915d9..e91a7bee36 100644
--- a/public/language/en-US/admin/settings/uploads.json
+++ b/public/language/en-US/admin/settings/uploads.json
@@ -22,6 +22,7 @@
"reject-image-height": "Maximum Image Height (in pixels)",
"reject-image-height-help": "Images taller than this value will be rejected.",
"allow-topic-thumbnails": "Allow users to upload topic thumbnails",
+ "show-post-uploads-as-thumbnails": "Show post uploads as thumbnails",
"topic-thumb-size": "Topic Thumb Size",
"allowed-file-extensions": "Allowed File Extensions",
"allowed-file-extensions-help": "Enter comma-separated list of file extensions here (e.g. pdf,xls,doc). An empty list means all extensions are allowed.",
diff --git a/public/language/en-US/aria.json b/public/language/en-US/aria.json
index 8e2c565c82..ec7889d2f4 100644
--- a/public/language/en-US/aria.json
+++ b/public/language/en-US/aria.json
@@ -5,5 +5,6 @@
"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"
+ "group-page-link-for": "Group page link for %1",
+ "show-crossposts": "Show Cross-posts"
}
\ No newline at end of file
diff --git a/public/language/en-US/error.json b/public/language/en-US/error.json
index 535a568d1e..ea28a9a51c 100644
--- a/public/language/en-US/error.json
+++ b/public/language/en-US/error.json
@@ -3,6 +3,7 @@
"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": "You don't seem to be logged in.",
"account-locked": "Your account has been locked temporarily",
"search-requires-login": "Searching requires an account - please login or register.",
@@ -146,6 +147,7 @@
"post-already-restored": "This post has already been restored",
"topic-already-deleted": "This topic has already been deleted",
"topic-already-restored": "This topic has already been restored",
+ "topic-already-crossposted": "This topic has already been cross-posted there.",
"cant-purge-main-post": "You can't purge the main post, please delete the topic instead",
"topic-thumbnails-are-disabled": "Topic thumbnails are disabled.",
"invalid-file": "Invalid File",
@@ -227,6 +229,7 @@
"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",
@@ -236,6 +239,7 @@
"socket-reconnect-failed": "Unable to reach the server at this time. Click here to try again, or try again later",
"invalid-plugin-id": "Invalid plugin ID",
"plugin-not-whitelisted": "Unable to install plugin – only plugins whitelisted by the NodeBB Package Manager can be installed via the ACP",
+ "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",
diff --git a/public/language/en-US/global.json b/public/language/en-US/global.json
index 71b4d886e3..0b95f7d360 100644
--- a/public/language/en-US/global.json
+++ b/public/language/en-US/global.json
@@ -68,6 +68,7 @@
"users": "Users",
"topics": "Topics",
"posts": "Posts",
+ "crossposts": "Cross-posts",
"x-posts": "%1 posts",
"x-topics": "%1 topics",
"x-reputation": "%1 reputation",
diff --git a/public/language/en-US/modules.json b/public/language/en-US/modules.json
index a1d1259471..2768fec8a4 100644
--- a/public/language/en-US/modules.json
+++ b/public/language/en-US/modules.json
@@ -48,6 +48,7 @@
"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",
diff --git a/public/language/en-US/social.json b/public/language/en-US/social.json
index 2ba690a187..5b8dd99a46 100644
--- a/public/language/en-US/social.json
+++ b/public/language/en-US/social.json
@@ -8,5 +8,7 @@
"log-in-with-facebook": "Log in with Facebook",
"continue-with-facebook": "Continue with Facebook",
"sign-in-with-linkedin": "Sign in with LinkedIn",
- "sign-up-with-linkedin": "Sign up 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"
}
\ No newline at end of file
diff --git a/public/language/en-US/topic.json b/public/language/en-US/topic.json
index 25ff8a6dc9..42c3c17e66 100644
--- a/public/language/en-US/topic.json
+++ b/public/language/en-US/topic.json
@@ -103,6 +103,7 @@
"thread-tools.lock": "Lock Topic",
"thread-tools.unlock": "Unlock Topic",
"thread-tools.move": "Move Topic",
+ "thread-tools.crosspost": "Crosspost Topic",
"thread-tools.move-posts": "Move Posts",
"thread-tools.move-all": "Move All",
"thread-tools.change-owner": "Change Owner",
@@ -132,6 +133,7 @@
"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": "Loading Categories",
"confirm-move": "Move",
+ "confirm-crosspost": "Cross-post",
"confirm-fork": "Fork",
"bookmark": "Bookmark",
"bookmarks": "Bookmarks",
@@ -141,6 +143,7 @@
"loading-more-posts": "Loading More Posts",
"move-topic": "Move Topic",
"move-topics": "Move Topics",
+ "crosspost-topic": "Cross-post Topic",
"move-post": "Move Post",
"post-moved": "Post moved!",
"fork-topic": "Fork Topic",
@@ -163,6 +166,9 @@
"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": "Enter your topic title here...",
"composer.handle-placeholder": "Enter your name/handle here",
"composer.hide": "Hide",
diff --git a/public/language/en-x-pirate/admin/dashboard.json b/public/language/en-x-pirate/admin/dashboard.json
index 6ad973f5f3..0be6d5866c 100644
--- a/public/language/en-x-pirate/admin/dashboard.json
+++ b/public/language/en-x-pirate/admin/dashboard.json
@@ -75,6 +75,7 @@
"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",
diff --git a/public/language/en-x-pirate/admin/manage/categories.json b/public/language/en-x-pirate/admin/manage/categories.json
index f51152f22d..cdb3e1f356 100644
--- a/public/language/en-x-pirate/admin/manage/categories.json
+++ b/public/language/en-x-pirate/admin/manage/categories.json
@@ -1,18 +1,22 @@
{
"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",
- "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.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "Background Colour",
"text-color": "Text Colour",
"bg-image-size": "Background Image Size",
@@ -103,6 +107,11 @@
"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.
Note — 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": "
Do you really want to purge this category \"%1\"?
Warning! All topics and posts in this category will be purged!
Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.
",
"alert.purge-success": "Category purged!",
"alert.copy-success": "Settings Copied!",
diff --git a/public/language/en-x-pirate/admin/settings/activitypub.json b/public/language/en-x-pirate/admin/settings/activitypub.json
index 94f9ad7822..5ab4fa43e8 100644
--- a/public/language/en-x-pirate/admin/settings/activitypub.json
+++ b/public/language/en-x-pirate/admin/settings/activitypub.json
@@ -18,6 +18,28 @@
"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.
N.B. 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 # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
+ "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 /actor.",
+ "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 %1 server(s)",
"server.filter-help": "Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively allow federation with specific servers, instead. Both options are supported, although they are mutually exclusive.",
diff --git a/public/language/en-x-pirate/admin/settings/uploads.json b/public/language/en-x-pirate/admin/settings/uploads.json
index 22046915d9..e91a7bee36 100644
--- a/public/language/en-x-pirate/admin/settings/uploads.json
+++ b/public/language/en-x-pirate/admin/settings/uploads.json
@@ -22,6 +22,7 @@
"reject-image-height": "Maximum Image Height (in pixels)",
"reject-image-height-help": "Images taller than this value will be rejected.",
"allow-topic-thumbnails": "Allow users to upload topic thumbnails",
+ "show-post-uploads-as-thumbnails": "Show post uploads as thumbnails",
"topic-thumb-size": "Topic Thumb Size",
"allowed-file-extensions": "Allowed File Extensions",
"allowed-file-extensions-help": "Enter comma-separated list of file extensions here (e.g. pdf,xls,doc). An empty list means all extensions are allowed.",
diff --git a/public/language/en-x-pirate/aria.json b/public/language/en-x-pirate/aria.json
index 8e2c565c82..ec7889d2f4 100644
--- a/public/language/en-x-pirate/aria.json
+++ b/public/language/en-x-pirate/aria.json
@@ -5,5 +5,6 @@
"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"
+ "group-page-link-for": "Group page link for %1",
+ "show-crossposts": "Show Cross-posts"
}
\ No newline at end of file
diff --git a/public/language/en-x-pirate/error.json b/public/language/en-x-pirate/error.json
index 535a568d1e..ea28a9a51c 100644
--- a/public/language/en-x-pirate/error.json
+++ b/public/language/en-x-pirate/error.json
@@ -3,6 +3,7 @@
"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": "You don't seem to be logged in.",
"account-locked": "Your account has been locked temporarily",
"search-requires-login": "Searching requires an account - please login or register.",
@@ -146,6 +147,7 @@
"post-already-restored": "This post has already been restored",
"topic-already-deleted": "This topic has already been deleted",
"topic-already-restored": "This topic has already been restored",
+ "topic-already-crossposted": "This topic has already been cross-posted there.",
"cant-purge-main-post": "You can't purge the main post, please delete the topic instead",
"topic-thumbnails-are-disabled": "Topic thumbnails are disabled.",
"invalid-file": "Invalid File",
@@ -227,6 +229,7 @@
"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",
@@ -236,6 +239,7 @@
"socket-reconnect-failed": "Unable to reach the server at this time. Click here to try again, or try again later",
"invalid-plugin-id": "Invalid plugin ID",
"plugin-not-whitelisted": "Unable to install plugin – only plugins whitelisted by the NodeBB Package Manager can be installed via the ACP",
+ "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",
diff --git a/public/language/en-x-pirate/global.json b/public/language/en-x-pirate/global.json
index 00e084c8c6..b90e710f60 100644
--- a/public/language/en-x-pirate/global.json
+++ b/public/language/en-x-pirate/global.json
@@ -68,6 +68,7 @@
"users": "Users",
"topics": "Topics",
"posts": "Messages",
+ "crossposts": "Cross-posts",
"x-posts": "%1 posts",
"x-topics": "%1 topics",
"x-reputation": "%1 reputation",
diff --git a/public/language/en-x-pirate/modules.json b/public/language/en-x-pirate/modules.json
index c78a052be8..fb7c802ccb 100644
--- a/public/language/en-x-pirate/modules.json
+++ b/public/language/en-x-pirate/modules.json
@@ -48,6 +48,7 @@
"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",
diff --git a/public/language/en-x-pirate/social.json b/public/language/en-x-pirate/social.json
index 2ba690a187..5b8dd99a46 100644
--- a/public/language/en-x-pirate/social.json
+++ b/public/language/en-x-pirate/social.json
@@ -8,5 +8,7 @@
"log-in-with-facebook": "Log in with Facebook",
"continue-with-facebook": "Continue with Facebook",
"sign-in-with-linkedin": "Sign in with LinkedIn",
- "sign-up-with-linkedin": "Sign up 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"
}
\ No newline at end of file
diff --git a/public/language/en-x-pirate/topic.json b/public/language/en-x-pirate/topic.json
index 25ff8a6dc9..42c3c17e66 100644
--- a/public/language/en-x-pirate/topic.json
+++ b/public/language/en-x-pirate/topic.json
@@ -103,6 +103,7 @@
"thread-tools.lock": "Lock Topic",
"thread-tools.unlock": "Unlock Topic",
"thread-tools.move": "Move Topic",
+ "thread-tools.crosspost": "Crosspost Topic",
"thread-tools.move-posts": "Move Posts",
"thread-tools.move-all": "Move All",
"thread-tools.change-owner": "Change Owner",
@@ -132,6 +133,7 @@
"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": "Loading Categories",
"confirm-move": "Move",
+ "confirm-crosspost": "Cross-post",
"confirm-fork": "Fork",
"bookmark": "Bookmark",
"bookmarks": "Bookmarks",
@@ -141,6 +143,7 @@
"loading-more-posts": "Loading More Posts",
"move-topic": "Move Topic",
"move-topics": "Move Topics",
+ "crosspost-topic": "Cross-post Topic",
"move-post": "Move Post",
"post-moved": "Post moved!",
"fork-topic": "Fork Topic",
@@ -163,6 +166,9 @@
"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": "Enter your topic title here...",
"composer.handle-placeholder": "Enter your name/handle here",
"composer.hide": "Hide",
diff --git a/public/language/es/admin/dashboard.json b/public/language/es/admin/dashboard.json
index 791546b5ee..211df77bc0 100644
--- a/public/language/es/admin/dashboard.json
+++ b/public/language/es/admin/dashboard.json
@@ -75,6 +75,7 @@
"graphs.page-views-registered": "Vistas de la página registradas",
"graphs.page-views-guest": "Vistas de la página visitantes",
"graphs.page-views-bot": "Vistas de la página Bot",
+ "graphs.page-views-ap": "ActivityPub Page Views",
"graphs.unique-visitors": "Visitantes Unicos",
"graphs.registered-users": "Usuarios Registrados",
"graphs.guest-users": "Guest Users",
diff --git a/public/language/es/admin/manage/categories.json b/public/language/es/admin/manage/categories.json
index 23d64eb58a..2980f59ab2 100644
--- a/public/language/es/admin/manage/categories.json
+++ b/public/language/es/admin/manage/categories.json
@@ -1,18 +1,22 @@
{
"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": "Configuración de Categoría",
"edit-category": "Edit Category",
"privileges": "Privilegios",
"back-to-categories": "Back to categories",
+ "id": "Category ID",
"name": "Nombre de Categoría",
"handle": "Identificador de categoría ",
"handle.help": "Tu identificador de categoría está siendo utilizado como representación de esta categoría a través de otras redes, similar al nombre de usuario. El identificador de la categoría no puede ser igual a un nombre de usuario o usuario de grupo existente.",
"description": "Descripción de Categoría",
- "federatedDescription": "Descripción federada",
- "federatedDescription.help": "Este texto será agregado a la descripción de la categoría cuando sea buscado por otros sitios y aplicaciones.",
- "federatedDescription.default": "Esta es una categoría de foro que contiene discusiones pasadas. Puedes iniciar nuevas discusiones mencionando esta categoría.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "Color de Fondo",
"text-color": "Color del Texto",
"bg-image-size": "Tamaño de la Imagen de Fondo",
@@ -103,6 +107,11 @@
"alert.create-success": "¡Categoría creada con éxito!",
"alert.none-active": "No tienes categorías activas.",
"alert.create": "Crear una Categoría",
+ "alert.add": "Add a Category",
+ "alert.add-help": "Remote categories can be added to the categories listing by specifying their handle.
Note — 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": "
¿Realmente quieres purgar esta categoría\"%1\"?
¡Cuidado! ¡Todos los temas y respuestas en esta categoría serán purgados!
Purgar una categoría eliminará todos los temas y respuestas, y borrará la categoría de la base de datos. Si quieres eliminar una categoría temporalmente, deberías \"desactivar\" esa categoría en su lugar.
",
"alert.purge-success": "¡Categoría purgada!",
"alert.copy-success": "¡Configuración Copiada!",
diff --git a/public/language/es/admin/manage/user-custom-fields.json b/public/language/es/admin/manage/user-custom-fields.json
index dab10670d2..49096d7021 100644
--- a/public/language/es/admin/manage/user-custom-fields.json
+++ b/public/language/es/admin/manage/user-custom-fields.json
@@ -1,28 +1,28 @@
{
- "title": "Manage Custom User Fields",
- "create-field": "Create Field",
- "edit-field": "Edit Field",
- "manage-custom-fields": "Manage Custom Fields",
- "type-of-input": "Type of input",
- "key": "Key",
- "name": "Name",
- "icon": "Icon",
- "type": "Type",
- "min-rep": "Minimum Reputation",
- "input-type-text": "Input (Text)",
- "input-type-link": "Input (Link)",
- "input-type-number": "Input (Number)",
- "input-type-date": "Input (Date)",
- "input-type-select": "Select",
- "input-type-select-multi": "Select Multiple",
- "select-options": "Options",
+ "title": "Gestionar campos personalizados del usuario",
+ "create-field": "Crear campo",
+ "edit-field": "Editar campo",
+ "manage-custom-fields": "Gestionar campos personalizados",
+ "type-of-input": "Tipo de campo",
+ "key": "Clave",
+ "name": "Nombre",
+ "icon": "Icono",
+ "type": "Tipo",
+ "min-rep": "Reputación mínima",
+ "input-type-text": "Campo (Texto)",
+ "input-type-link": "Campo (Link)",
+ "input-type-number": "Campo (Número)",
+ "input-type-date": "Campo (Fecha)",
+ "input-type-select": "Selector",
+ "input-type-select-multi": "Selector múltiple",
+ "select-options": "Opciones",
"select-options-help": "Add one option per line for the select element",
- "minimum-reputation": "Minimum reputation",
+ "minimum-reputation": "Reputación mínima",
"minimum-reputation-help": "If a user has less than this value they won't be able to use this field",
"delete-field-confirm-x": "Do you really want to delete custom field \"%1\"?",
- "custom-fields-saved": "Custom fields saved",
- "visibility": "Visibility",
- "visibility-all": "Everyone can see the field",
- "visibility-loggedin": "Only logged in users can see the field",
+ "custom-fields-saved": "Campos personalizados guardados",
+ "visibility": "Visibilidad",
+ "visibility-all": "Todo el mundo puede ver este campo",
+ "visibility-loggedin": "Solo usuarios logeados pueden ver este campo",
"visibility-privileged": "Only privileged users like admins & moderators can see the field"
}
\ No newline at end of file
diff --git a/public/language/es/admin/settings/activitypub.json b/public/language/es/admin/settings/activitypub.json
index 6e6585b295..5bc9a80078 100644
--- a/public/language/es/admin/settings/activitypub.json
+++ b/public/language/es/admin/settings/activitypub.json
@@ -18,6 +18,28 @@
"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.
N.B. 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 # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
+ "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 /actor.",
+ "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 %1 server(s)",
"server.filter-help": "Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively allow federation with specific servers, instead. Both options are supported, although they are mutually exclusive.",
diff --git a/public/language/es/admin/settings/uploads.json b/public/language/es/admin/settings/uploads.json
index 60273aa8ac..d92fe07210 100644
--- a/public/language/es/admin/settings/uploads.json
+++ b/public/language/es/admin/settings/uploads.json
@@ -22,6 +22,7 @@
"reject-image-height": "Altura máxima de la imágen (en píxeles)",
"reject-image-height-help": "Las imágenes más altas que este valor serán rechazadas.",
"allow-topic-thumbnails": "Permitir a los usuarios subir imágenes en miniatura para los temas",
+ "show-post-uploads-as-thumbnails": "Show post uploads as thumbnails",
"topic-thumb-size": "Tamaño de la Imagen en Miniatura para el Tema",
"allowed-file-extensions": "Permitir Extensiones de Archivo",
"allowed-file-extensions-help": "Introduzca una lista de extensiones de archivos, separadas por comas, aquí (por ejemplo: pdf,xls,doc). Una lista vacía significa que se permiten todas las extensiones.",
diff --git a/public/language/es/aria.json b/public/language/es/aria.json
index fd05ccc7be..0eae0089a4 100644
--- a/public/language/es/aria.json
+++ b/public/language/es/aria.json
@@ -5,5 +5,6 @@
"profile-page-for": "Página de perfil para usuario %1",
"user-watched-tags": "Etiquetas de usuario seguidas",
"delete-upload-button": "Eliminar botón de subida ",
- "group-page-link-for": "Link de página de grupo para %1"
+ "group-page-link-for": "Link de página de grupo para %1",
+ "show-crossposts": "Show Cross-posts"
}
\ No newline at end of file
diff --git a/public/language/es/error.json b/public/language/es/error.json
index b1e53c4474..8cc79669d9 100644
--- a/public/language/es/error.json
+++ b/public/language/es/error.json
@@ -3,6 +3,7 @@
"invalid-json": "JSON no válido",
"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": "No has iniciado sesión.",
"account-locked": "Tu cuenta ha sido bloqueada temporalmente.",
"search-requires-login": "¡Buscar requiere estar registrado! Por favor, entra o regístrate.",
@@ -146,6 +147,7 @@
"post-already-restored": "Esta publicación ya ha sido restaurada",
"topic-already-deleted": "Este tema ya ha sido borrado",
"topic-already-restored": "Este tema ya ha sido restaurado",
+ "topic-already-crossposted": "This topic has already been cross-posted there.",
"cant-purge-main-post": "No puedes purgar el mensaje principal, por favor utiliza borrar tema",
"topic-thumbnails-are-disabled": "Las miniaturas de los temas están deshabilitadas.",
"invalid-file": "Archivo no válido",
@@ -227,6 +229,7 @@
"no-topics-selected": "¡No se han seleccionado temas!",
"cant-move-to-same-topic": "¡No puedes mover el mensaje al mismo tema!",
"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": "¡No puedes bloquearte a tí mismo!",
"cannot-block-privileged": "No puedes bloquear administradores o moderadores globales",
"cannot-block-guest": "Los invitados no pueden bloquear a otros usuarios",
@@ -236,6 +239,7 @@
"socket-reconnect-failed": "Unable to reach the server at this time. Click here to try again, or try again later",
"invalid-plugin-id": "ID de plugin inválido",
"plugin-not-whitelisted": "Unable to install plugin – 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": "Instalación de extensiones vía ACP está deshabilitada",
"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",
diff --git a/public/language/es/global.json b/public/language/es/global.json
index 79a12f7364..a94ec5471c 100644
--- a/public/language/es/global.json
+++ b/public/language/es/global.json
@@ -68,6 +68,7 @@
"users": "Usuarios",
"topics": "Temas",
"posts": "Mensajes",
+ "crossposts": "Cross-posts",
"x-posts": "%1 posts",
"x-topics": "%1 topics",
"x-reputation": "%1 reputation",
diff --git a/public/language/es/modules.json b/public/language/es/modules.json
index 1fd0eda552..be35e9c442 100644
--- a/public/language/es/modules.json
+++ b/public/language/es/modules.json
@@ -48,6 +48,7 @@
"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",
diff --git a/public/language/es/social.json b/public/language/es/social.json
index 84474c4ecb..bebb366304 100644
--- a/public/language/es/social.json
+++ b/public/language/es/social.json
@@ -8,5 +8,7 @@
"log-in-with-facebook": "Accede con Facebook",
"continue-with-facebook": "Regístrate con Facebook",
"sign-in-with-linkedin": "Iniciar sesión con LinkedIn",
- "sign-up-with-linkedin": "Registrarse con LinkedIn"
+ "sign-up-with-linkedin": "Registrarse con LinkedIn",
+ "sign-in-with-wordpress": "Sign in with WordPress",
+ "sign-up-with-wordpress": "Sign up with WordPress"
}
\ No newline at end of file
diff --git a/public/language/es/topic.json b/public/language/es/topic.json
index 440bc2254a..10fac46e19 100644
--- a/public/language/es/topic.json
+++ b/public/language/es/topic.json
@@ -103,6 +103,7 @@
"thread-tools.lock": "Cerrar tema",
"thread-tools.unlock": "Reabrir tema",
"thread-tools.move": "Mover tema",
+ "thread-tools.crosspost": "Crosspost Topic",
"thread-tools.move-posts": "Mover mensajes",
"thread-tools.move-all": "Mover todo",
"thread-tools.change-owner": "Cambiar propietario",
@@ -132,6 +133,7 @@
"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": "Cargando categorías",
"confirm-move": "Mover",
+ "confirm-crosspost": "Cross-post",
"confirm-fork": "Dividir",
"bookmark": "Marcador",
"bookmarks": "Marcadores",
@@ -141,6 +143,7 @@
"loading-more-posts": "Cargando más mensajes",
"move-topic": "Mover tema",
"move-topics": "Mover temas",
+ "crosspost-topic": "Cross-post Topic",
"move-post": "Mover mensaje",
"post-moved": "¡Mensaje movido!",
"fork-topic": "Dividir tema",
@@ -163,6 +166,9 @@
"move-topic-instruction": "Select the target category and then click move",
"change-owner-instruction": "Haz click en los mensajes que quieres asignar a otro usuario",
"manage-editors-instruction": "Gestionar abajo los usuarios que pueden editar esta entrada.",
+ "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": "Ingresa el título de tu tema...",
"composer.handle-placeholder": "Enter your name/handle here",
"composer.hide": "Ocultar",
diff --git a/public/language/es/user.json b/public/language/es/user.json
index 66dfc6c8dd..76e9c3c181 100644
--- a/public/language/es/user.json
+++ b/public/language/es/user.json
@@ -105,10 +105,10 @@
"show-email": "Mostrar mi correo electrónico",
"show-fullname": "Mostrar mi nombre completo",
"restrict-chats": "Solo permitir mensajes de chat de usuarios a los que sigo",
- "disable-incoming-chats": "Disable incoming chat messages ",
+ "disable-incoming-chats": "Desactivar mensajes de chat entrantes",
"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",
+ "chat-list-add-user": "Agregar usuario",
"digest-label": "Suscribirse al resumen",
"digest-description": "Suscribirse a actualizaciones por correo electrónico a este foro (nuevas notificaciones y temas) de acuerdo a una recurrencia definida",
"digest-off": "Apagado",
diff --git a/public/language/et/admin/dashboard.json b/public/language/et/admin/dashboard.json
index 6ad973f5f3..0be6d5866c 100644
--- a/public/language/et/admin/dashboard.json
+++ b/public/language/et/admin/dashboard.json
@@ -75,6 +75,7 @@
"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",
diff --git a/public/language/et/admin/manage/categories.json b/public/language/et/admin/manage/categories.json
index f51152f22d..cdb3e1f356 100644
--- a/public/language/et/admin/manage/categories.json
+++ b/public/language/et/admin/manage/categories.json
@@ -1,18 +1,22 @@
{
"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",
- "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.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "Background Colour",
"text-color": "Text Colour",
"bg-image-size": "Background Image Size",
@@ -103,6 +107,11 @@
"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.
Note — 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": "
Do you really want to purge this category \"%1\"?
Warning! All topics and posts in this category will be purged!
Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.
",
"alert.purge-success": "Category purged!",
"alert.copy-success": "Settings Copied!",
diff --git a/public/language/et/admin/settings/activitypub.json b/public/language/et/admin/settings/activitypub.json
index 94f9ad7822..5ab4fa43e8 100644
--- a/public/language/et/admin/settings/activitypub.json
+++ b/public/language/et/admin/settings/activitypub.json
@@ -18,6 +18,28 @@
"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.
N.B. 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 # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
+ "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 /actor.",
+ "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 %1 server(s)",
"server.filter-help": "Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively allow federation with specific servers, instead. Both options are supported, although they are mutually exclusive.",
diff --git a/public/language/et/admin/settings/uploads.json b/public/language/et/admin/settings/uploads.json
index 22046915d9..e91a7bee36 100644
--- a/public/language/et/admin/settings/uploads.json
+++ b/public/language/et/admin/settings/uploads.json
@@ -22,6 +22,7 @@
"reject-image-height": "Maximum Image Height (in pixels)",
"reject-image-height-help": "Images taller than this value will be rejected.",
"allow-topic-thumbnails": "Allow users to upload topic thumbnails",
+ "show-post-uploads-as-thumbnails": "Show post uploads as thumbnails",
"topic-thumb-size": "Topic Thumb Size",
"allowed-file-extensions": "Allowed File Extensions",
"allowed-file-extensions-help": "Enter comma-separated list of file extensions here (e.g. pdf,xls,doc). An empty list means all extensions are allowed.",
diff --git a/public/language/et/aria.json b/public/language/et/aria.json
index 8e2c565c82..ec7889d2f4 100644
--- a/public/language/et/aria.json
+++ b/public/language/et/aria.json
@@ -5,5 +5,6 @@
"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"
+ "group-page-link-for": "Group page link for %1",
+ "show-crossposts": "Show Cross-posts"
}
\ No newline at end of file
diff --git a/public/language/et/error.json b/public/language/et/error.json
index caffd57a57..b19da887ce 100644
--- a/public/language/et/error.json
+++ b/public/language/et/error.json
@@ -3,6 +3,7 @@
"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": "Sa ei ole sisse logitud",
"account-locked": "Su kasutaja on ajutiselt lukustatud",
"search-requires-login": "Otsing nõuab kasutajat - palun registreeruge või logige sisse.",
@@ -146,6 +147,7 @@
"post-already-restored": "Postitus on juba taastatud",
"topic-already-deleted": "Teema on juba kustutatud",
"topic-already-restored": "Teema on juba taastatud",
+ "topic-already-crossposted": "This topic has already been cross-posted there.",
"cant-purge-main-post": "Te ei saa eemaldada peamist postitust, pigem kustutage teema ära.",
"topic-thumbnails-are-disabled": "Teema thumbnailid on keelatud.",
"invalid-file": "Vigane fail",
@@ -227,6 +229,7 @@
"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",
@@ -236,6 +239,7 @@
"socket-reconnect-failed": "Unable to reach the server at this time. Click here to try again, or try again later",
"invalid-plugin-id": "Invalid plugin ID",
"plugin-not-whitelisted": "Unable to install plugin – only plugins whitelisted by the NodeBB Package Manager can be installed via the ACP",
+ "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",
diff --git a/public/language/et/global.json b/public/language/et/global.json
index 4d5ec65539..06966e2234 100644
--- a/public/language/et/global.json
+++ b/public/language/et/global.json
@@ -68,6 +68,7 @@
"users": "Kasutajad",
"topics": "Teemat",
"posts": "Postitust",
+ "crossposts": "Cross-posts",
"x-posts": "%1 posts",
"x-topics": "%1 topics",
"x-reputation": "%1 reputation",
diff --git a/public/language/et/modules.json b/public/language/et/modules.json
index 1aa6c0d427..8a8c22cc93 100644
--- a/public/language/et/modules.json
+++ b/public/language/et/modules.json
@@ -48,6 +48,7 @@
"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",
diff --git a/public/language/et/social.json b/public/language/et/social.json
index 2ba690a187..5b8dd99a46 100644
--- a/public/language/et/social.json
+++ b/public/language/et/social.json
@@ -8,5 +8,7 @@
"log-in-with-facebook": "Log in with Facebook",
"continue-with-facebook": "Continue with Facebook",
"sign-in-with-linkedin": "Sign in with LinkedIn",
- "sign-up-with-linkedin": "Sign up 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"
}
\ No newline at end of file
diff --git a/public/language/et/topic.json b/public/language/et/topic.json
index a1cede1835..8dce5b3405 100644
--- a/public/language/et/topic.json
+++ b/public/language/et/topic.json
@@ -103,6 +103,7 @@
"thread-tools.lock": "Lukusta teema",
"thread-tools.unlock": "Taasava teema",
"thread-tools.move": "Liiguta teema",
+ "thread-tools.crosspost": "Crosspost Topic",
"thread-tools.move-posts": "Move Posts",
"thread-tools.move-all": "Liiguta kõik",
"thread-tools.change-owner": "Change Owner",
@@ -132,6 +133,7 @@
"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": "Laen kategooriaid",
"confirm-move": "Liiguta",
+ "confirm-crosspost": "Cross-post",
"confirm-fork": "Fork",
"bookmark": "Bookmark",
"bookmarks": "Bookmarks",
@@ -141,6 +143,7 @@
"loading-more-posts": "Laen postitusi",
"move-topic": "Liiguta teemat",
"move-topics": "Liiguta teemasi",
+ "crosspost-topic": "Cross-post Topic",
"move-post": "Liiguta postitust",
"post-moved": "Postitus liigutatud!",
"fork-topic": "Fork Topic",
@@ -163,6 +166,9 @@
"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": "Sisesta teema pealkiri siia...",
"composer.handle-placeholder": "Enter your name/handle here",
"composer.hide": "Hide",
diff --git a/public/language/fa-IR/admin/dashboard.json b/public/language/fa-IR/admin/dashboard.json
index 77ff6d56e8..b5f458d0c0 100644
--- a/public/language/fa-IR/admin/dashboard.json
+++ b/public/language/fa-IR/admin/dashboard.json
@@ -75,6 +75,7 @@
"graphs.page-views-registered": "Page Views Registered",
"graphs.page-views-guest": "Page Views Guest",
"graphs.page-views-bot": "ربات بازدید از صفحه",
+ "graphs.page-views-ap": "ActivityPub Page Views",
"graphs.unique-visitors": "بازدیدکنندگان منحصر به فرد",
"graphs.registered-users": "کاربران ثبت نام شده",
"graphs.guest-users": "کاربران مهمان",
diff --git a/public/language/fa-IR/admin/manage/categories.json b/public/language/fa-IR/admin/manage/categories.json
index 53f79fbd20..923d4defe7 100644
--- a/public/language/fa-IR/admin/manage/categories.json
+++ b/public/language/fa-IR/admin/manage/categories.json
@@ -1,18 +1,22 @@
{
"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": "Privileges",
"back-to-categories": "Back to categories",
+ "id": "Category ID",
"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": "توضیحات دستهبندی",
- "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.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "Background Colour",
"text-color": "Text Colour",
"bg-image-size": "Background Image Size",
@@ -103,6 +107,11 @@
"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.
Note — 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": "
Do you really want to purge this category \"%1\"?
Warning! All topics and posts in this category will be purged!
Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.
",
"alert.purge-success": "Category purged!",
"alert.copy-success": "Settings Copied!",
diff --git a/public/language/fa-IR/admin/settings/activitypub.json b/public/language/fa-IR/admin/settings/activitypub.json
index 94f9ad7822..5ab4fa43e8 100644
--- a/public/language/fa-IR/admin/settings/activitypub.json
+++ b/public/language/fa-IR/admin/settings/activitypub.json
@@ -18,6 +18,28 @@
"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.
N.B. 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 # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
+ "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 /actor.",
+ "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 %1 server(s)",
"server.filter-help": "Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively allow federation with specific servers, instead. Both options are supported, although they are mutually exclusive.",
diff --git a/public/language/fa-IR/admin/settings/uploads.json b/public/language/fa-IR/admin/settings/uploads.json
index baf90ba0e4..507f64c898 100644
--- a/public/language/fa-IR/admin/settings/uploads.json
+++ b/public/language/fa-IR/admin/settings/uploads.json
@@ -22,6 +22,7 @@
"reject-image-height": "Maximum Image Height (in pixels)",
"reject-image-height-help": "Images taller than this value will be rejected.",
"allow-topic-thumbnails": "Allow users to upload topic thumbnails",
+ "show-post-uploads-as-thumbnails": "Show post uploads as thumbnails",
"topic-thumb-size": "Topic Thumb Size",
"allowed-file-extensions": "Allowed File Extensions",
"allowed-file-extensions-help": "Enter comma-separated list of file extensions here (e.g. pdf,xls,doc). An empty list means all extensions are allowed.",
diff --git a/public/language/fa-IR/aria.json b/public/language/fa-IR/aria.json
index 8e2c565c82..ec7889d2f4 100644
--- a/public/language/fa-IR/aria.json
+++ b/public/language/fa-IR/aria.json
@@ -5,5 +5,6 @@
"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"
+ "group-page-link-for": "Group page link for %1",
+ "show-crossposts": "Show Cross-posts"
}
\ No newline at end of file
diff --git a/public/language/fa-IR/error.json b/public/language/fa-IR/error.json
index 827290a155..75e694bfda 100644
--- a/public/language/fa-IR/error.json
+++ b/public/language/fa-IR/error.json
@@ -3,6 +3,7 @@
"invalid-json": "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": "استفاده از جستجو نیازمند ورود با نامکاربری و رمزعبور است. لطفا ابتدا وارد شوید.",
@@ -146,6 +147,7 @@
"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": "فایل نامعتبر است.",
@@ -227,6 +229,7 @@
"no-topics-selected": "هیچ موضوعی انتخاب نشده است !",
"cant-move-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": "شما نمی توانید خودتان را بلاک کنید!",
"cannot-block-privileged": "شما نمی توانید ادمین ها یا مدیر ها را بلاک کنید",
"cannot-block-guest": "Guest are not able to block other users",
@@ -236,6 +239,7 @@
"socket-reconnect-failed": "Unable to reach the server at this time. Click here to try again, or try again later",
"invalid-plugin-id": "Invalid plugin ID",
"plugin-not-whitelisted": "Unable to install plugin – only plugins whitelisted by the NodeBB Package Manager can be installed via the ACP",
+ "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",
diff --git a/public/language/fa-IR/global.json b/public/language/fa-IR/global.json
index 37cae2906a..428903f329 100644
--- a/public/language/fa-IR/global.json
+++ b/public/language/fa-IR/global.json
@@ -68,6 +68,7 @@
"users": "کاربران",
"topics": "موضوع ها",
"posts": "دیدگاهها",
+ "crossposts": "Cross-posts",
"x-posts": "%1 posts",
"x-topics": "1% موضوعها",
"x-reputation": "%1 reputation",
diff --git a/public/language/fa-IR/modules.json b/public/language/fa-IR/modules.json
index ddd073ddbf..0115f29ae5 100644
--- a/public/language/fa-IR/modules.json
+++ b/public/language/fa-IR/modules.json
@@ -48,6 +48,7 @@
"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",
diff --git a/public/language/fa-IR/social.json b/public/language/fa-IR/social.json
index 2ba690a187..5b8dd99a46 100644
--- a/public/language/fa-IR/social.json
+++ b/public/language/fa-IR/social.json
@@ -8,5 +8,7 @@
"log-in-with-facebook": "Log in with Facebook",
"continue-with-facebook": "Continue with Facebook",
"sign-in-with-linkedin": "Sign in with LinkedIn",
- "sign-up-with-linkedin": "Sign up 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"
}
\ No newline at end of file
diff --git a/public/language/fa-IR/topic.json b/public/language/fa-IR/topic.json
index cb940c2db5..c1a12ef12a 100644
--- a/public/language/fa-IR/topic.json
+++ b/public/language/fa-IR/topic.json
@@ -103,6 +103,7 @@
"thread-tools.lock": "قفل کردن موضوع",
"thread-tools.unlock": "باز کردن موضوع",
"thread-tools.move": "جابجا کردن موضوع",
+ "thread-tools.crosspost": "Crosspost Topic",
"thread-tools.move-posts": "انتقال پست ها",
"thread-tools.move-all": "جابجایی همه",
"thread-tools.change-owner": "تغییر مالک پست",
@@ -132,6 +133,7 @@
"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": "نشانک",
"bookmarks": "نشانکها",
@@ -141,6 +143,7 @@
"loading-more-posts": "بارگذاری پستهای بیشتر",
"move-topic": "جابهجایی موضوع",
"move-topics": "انتقال موضوع",
+ "crosspost-topic": "Cross-post Topic",
"move-post": "جابهجایی موضوع",
"post-moved": "پست جابهجا شد!",
"fork-topic": "شاخه ساختن از موضوع",
@@ -163,6 +166,9 @@
"move-topic-instruction": "دسته مقصد را انتخاب کنید و سپس روی جابهجا کردن کلیک کنید",
"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": "نام خود را اینجا وارد کنید",
"composer.hide": "پیش نویس",
diff --git a/public/language/fi/admin/dashboard.json b/public/language/fi/admin/dashboard.json
index 83c4b42c58..57c63fdf9d 100644
--- a/public/language/fi/admin/dashboard.json
+++ b/public/language/fi/admin/dashboard.json
@@ -75,6 +75,7 @@
"graphs.page-views-registered": "Kirjautuneiden sivulatausta",
"graphs.page-views-guest": "Vieraiden sivulatausta",
"graphs.page-views-bot": "Bottien sivulatausta",
+ "graphs.page-views-ap": "ActivityPub Page Views",
"graphs.unique-visitors": "Ainutalaatuista kävijää",
"graphs.registered-users": "Rekisteröitynyttä käyttäjää",
"graphs.guest-users": "Vieraskäyttäjää",
diff --git a/public/language/fi/admin/manage/categories.json b/public/language/fi/admin/manage/categories.json
index d458c9c5e9..c15a783323 100644
--- a/public/language/fi/admin/manage/categories.json
+++ b/public/language/fi/admin/manage/categories.json
@@ -1,18 +1,22 @@
{
"manage-categories": "Hallitse kategorioita",
"add-category": "Lisää kategoria",
+ "add-local-category": "Add Local category",
+ "add-remote-category": "Add Remote category",
+ "remove": "Remove",
+ "rename": "Rename",
"jump-to": "Siirry...",
"settings": "Kategoria-asetukset",
"edit-category": "Muokkaa kategoriaa",
"privileges": "Privileges",
"back-to-categories": "Palaa kategorioihin",
+ "id": "Category ID",
"name": "Kategorian nimi",
"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": "Kategorian kuvaus",
- "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.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "Taustaväri",
"text-color": "Tekstin väri",
"bg-image-size": "Taustakuvan koko",
@@ -103,6 +107,11 @@
"alert.create-success": "Kategoria luotiin!",
"alert.none-active": "Sinulla ei ole aktiivisia kategorioita.",
"alert.create": "Luo kategoria.",
+ "alert.add": "Add a Category",
+ "alert.add-help": "Remote categories can be added to the categories listing by specifying their handle.
Note — 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": "
Do you really want to purge this category \"%1\"?
Warning! All topics and posts in this category will be purged!
Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.
",
"alert.purge-success": "Kategoria poistettiin!",
"alert.copy-success": "Asetukset kopioitiin!",
diff --git a/public/language/fi/admin/settings/activitypub.json b/public/language/fi/admin/settings/activitypub.json
index 94f9ad7822..a916af734e 100644
--- a/public/language/fi/admin/settings/activitypub.json
+++ b/public/language/fi/admin/settings/activitypub.json
@@ -1,23 +1,45 @@
{
- "intro-lead": "What is Federation?",
- "intro-body": "NodeBB is able to communicate with other NodeBB instances that support it. This is achieved through a protocol called ActivityPub. If enabled, NodeBB will also be able to communicate with other apps and websites that use ActivityPub (e.g. Mastodon, Peertube, etc.)",
- "general": "General",
- "pruning": "Content Pruning",
+ "intro-lead": "Mikä on federaatio?",
+ "intro-body": "NodeBB pystyy yhdistämään muihin NodeBB instansseihin, jotka tukevat tätä ominaisuutta. Tämä on toteutettuActivityPub protokollaa käyttäen ja, jos se on aktivoitu, NodeBB pystyy yhdistämään myös toisten sovellusten ja sivustojen kanssa jotka tukevat ActivityPub Protokollaa( esim. Mastodon, Peertube jne.) ",
+ "general": "Yleinen",
+ "pruning": "Sisällön karsiminen",
"content-pruning": "Days to keep remote content",
"content-pruning-help": "Note that remote content that has received engagement (a reply or a upvote/downvote) will be preserved. (0 for disabled)",
"user-pruning": "Days to cache remote user accounts",
"user-pruning-help": "Remote user accounts will only be pruned if they have no posts. Otherwise they will be re-retrieved. (0 for disabled)",
- "enabled": "Enable Federation",
+ "enabled": "Ota federointi käyttöön",
"enabled-help": "If enabled, will allow this NodeBB will be able to communicate with all Activitypub-enabled clients on the wider fediverse.",
"allowLoopback": "Allow loopback processing",
"allowLoopback-help": "Useful for debugging purposes only. You should probably leave this disabled.",
- "probe": "Open in App",
+ "probe": "Avaa sovelluksessa",
"probe-enabled": "Try to open ActivityPub-enabled resources in NodeBB",
"probe-enabled-help": "If enabled, NodeBB will check every external link for an ActivityPub equivalent, and load it in NodeBB instead.",
"probe-timeout": "Lookup Timeout (milliseconds)",
"probe-timeout-help": "(Default: 2000) If the lookup query does not receive a response within the set timeframe, will send the user to the link directly instead. Adjust this number higher if sites are responding slowly and you wish to give extra time.",
+ "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.
N.B. 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 # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
+ "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 /actor.",
+ "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 %1 server(s)",
"server.filter-help": "Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively allow federation with specific servers, instead. Both options are supported, although they are mutually exclusive.",
diff --git a/public/language/fi/admin/settings/uploads.json b/public/language/fi/admin/settings/uploads.json
index a1412b0ed2..792ccd9d3d 100644
--- a/public/language/fi/admin/settings/uploads.json
+++ b/public/language/fi/admin/settings/uploads.json
@@ -22,6 +22,7 @@
"reject-image-height": "Kuvan suurin sallittu korkeus (kuvapisteinä)",
"reject-image-height-help": "Images taller than this value will be rejected.",
"allow-topic-thumbnails": "Allow users to upload topic thumbnails",
+ "show-post-uploads-as-thumbnails": "Show post uploads as thumbnails",
"topic-thumb-size": "Topic Thumb Size",
"allowed-file-extensions": "Allowed File Extensions",
"allowed-file-extensions-help": "Enter comma-separated list of file extensions here (e.g. pdf,xls,doc). An empty list means all extensions are allowed.",
diff --git a/public/language/fi/aria.json b/public/language/fi/aria.json
index 8e2c565c82..ec7889d2f4 100644
--- a/public/language/fi/aria.json
+++ b/public/language/fi/aria.json
@@ -5,5 +5,6 @@
"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"
+ "group-page-link-for": "Group page link for %1",
+ "show-crossposts": "Show Cross-posts"
}
\ No newline at end of file
diff --git a/public/language/fi/category.json b/public/language/fi/category.json
index 1df5d1b218..2d2f4f99de 100644
--- a/public/language/fi/category.json
+++ b/public/language/fi/category.json
@@ -1,8 +1,8 @@
{
"category": "Kategoria",
"subcategories": "Alikategoria",
- "uncategorized": "Uncategorized",
- "uncategorized.description": "Topics that do not strictly fit in with any existing categories",
+ "uncategorized": "Kategoroimattomat",
+ "uncategorized.description": "Aiheet jotka eivät suoraan sovi minkään kategorian alle.",
"handle.description": "This category can be followed from the open social web via the handle %1",
"new-topic-button": "Uusi aihe",
"guest-login-post": "Kirjaudu sisään julkastaksesi",
diff --git a/public/language/fi/error.json b/public/language/fi/error.json
index 905a03415a..1d94258881 100644
--- a/public/language/fi/error.json
+++ b/public/language/fi/error.json
@@ -3,6 +3,7 @@
"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": "Et taida olla kirjautuneena sisään.",
"account-locked": "Käyttäjätilisi on lukittu väliaikaisesti",
"search-requires-login": "Haku vaatii tunnukset. Kirjaudu sisään tai luo tunnus.",
@@ -146,6 +147,7 @@
"post-already-restored": "Tämä viesti on jo palautettu",
"topic-already-deleted": "Tämä aihe on jo poistettu",
"topic-already-restored": "Tämä aihe on jo palautettu",
+ "topic-already-crossposted": "This topic has already been cross-posted there.",
"cant-purge-main-post": "You can't purge the main post, please delete the topic instead",
"topic-thumbnails-are-disabled": "Aiheiden kuvakkeet eivät ole käytössä",
"invalid-file": "Virheellinen tiedosto",
@@ -227,6 +229,7 @@
"no-topics-selected": "Ei aiheita valittuna",
"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",
@@ -236,6 +239,7 @@
"socket-reconnect-failed": "Unable to reach the server at this time. Click here to try again, or try again later",
"invalid-plugin-id": "Invalid plugin ID",
"plugin-not-whitelisted": "Unable to install plugin – only plugins whitelisted by the NodeBB Package Manager can be installed via the ACP",
+ "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",
diff --git a/public/language/fi/global.json b/public/language/fi/global.json
index 2d4cf5edb8..899dad2a1b 100644
--- a/public/language/fi/global.json
+++ b/public/language/fi/global.json
@@ -68,6 +68,7 @@
"users": "Käyttäjät",
"topics": "Aiheet",
"posts": "Viestejä",
+ "crossposts": "Cross-posts",
"x-posts": "%1 posts",
"x-topics": "%1 topics",
"x-reputation": "%1 reputation",
diff --git a/public/language/fi/modules.json b/public/language/fi/modules.json
index d68c1bbaef..f118e6568a 100644
--- a/public/language/fi/modules.json
+++ b/public/language/fi/modules.json
@@ -3,7 +3,7 @@
"chat.chatting-with": "Pikaviesti käyttäjälle",
"chat.placeholder": "Kirjoita pikaviesti ja raahaa kuvia tähän",
"chat.placeholder.mobile": "Kirjoita pikaviesti",
- "chat.placeholder.message-room": "Message #%1",
+ "chat.placeholder.message-room": "Viesti #%1",
"chat.scroll-up-alert": "Siirry uusimpaan viestiin",
"chat.usernames-and-x-others": "%1 & %2 others",
"chat.chat-with-usernames": "Keskustelu käyttäjän %1 kanssa",
@@ -42,12 +42,13 @@
"chat.private-rooms": "Private Rooms (%1)",
"chat.create-room": "Luo keskusteluhuone",
"chat.private.option": "Private (Only visible to users added to room)",
- "chat.public.option": "Public (Visible to every user in selected groups)",
+ "chat.public.option": "Julkinen (Kaikki valitusta ryhmästä voivat nähdä tämän)",
"chat.public.groups-help": "To create a chat room that is visible to all users select registered-users from the group list.",
"chat.manage-room": "Hallitse keskusteluhuonetta",
"chat.add-user": "Add User",
"chat.notification-settings": "Ilmoitusasetukset",
"chat.default-notification-setting": "Ilmoitusten oletusasetukset",
+ "chat.join-leave-messages": "Join/Leave Messages",
"chat.notification-setting-room-default": "Huoneen oletus",
"chat.notification-setting-none": "Ilmoituksia ei ole",
"chat.notification-setting-at-mention-only": "vain @maininta",
@@ -69,8 +70,8 @@
"chat.in-room": "In this room",
"chat.kick": "Kick",
"chat.show-ip": "Näytä IP-osoite",
- "chat.copy-text": "Copy Text",
- "chat.copy-link": "Copy Link",
+ "chat.copy-text": "Kopioi teksti",
+ "chat.copy-link": "Kopioi linkki",
"chat.owner": "Room Owner",
"chat.grant-rescind-ownership": "Grant/Rescind Ownership",
"chat.system.user-join": "%1 has joined the room ",
diff --git a/public/language/fi/recent.json b/public/language/fi/recent.json
index 93fbd99645..9e8f26e97b 100644
--- a/public/language/fi/recent.json
+++ b/public/language/fi/recent.json
@@ -8,6 +8,6 @@
"no-recent-topics": "Tuoreita aiheita ei ole.",
"no-popular-topics": "Ei päivityksiä suosituimmissa aiheissa",
"load-new-posts": "Load new posts",
- "uncategorized.title": "All known topics",
+ "uncategorized.title": "Kaikki aiheet",
"uncategorized.intro": "This page shows a chronological listing of every topic that this forum has received. The views and opinions expressed in the topics below are not moderated and may not represent the views and opinions of this website."
}
\ No newline at end of file
diff --git a/public/language/fi/social.json b/public/language/fi/social.json
index 2ba690a187..5b8dd99a46 100644
--- a/public/language/fi/social.json
+++ b/public/language/fi/social.json
@@ -8,5 +8,7 @@
"log-in-with-facebook": "Log in with Facebook",
"continue-with-facebook": "Continue with Facebook",
"sign-in-with-linkedin": "Sign in with LinkedIn",
- "sign-up-with-linkedin": "Sign up 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"
}
\ No newline at end of file
diff --git a/public/language/fi/topic.json b/public/language/fi/topic.json
index 0ebb73285d..ccfcc5d418 100644
--- a/public/language/fi/topic.json
+++ b/public/language/fi/topic.json
@@ -103,6 +103,7 @@
"thread-tools.lock": "Lukitse aihe",
"thread-tools.unlock": "Poista aiheen lukitus",
"thread-tools.move": "Siirrä aihe",
+ "thread-tools.crosspost": "Crosspost Topic",
"thread-tools.move-posts": "Siirrä viestit",
"thread-tools.move-all": "Siirrä kaikki",
"thread-tools.change-owner": "Vaihda omistaja",
@@ -132,6 +133,7 @@
"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": "Ladataan aihealueita",
"confirm-move": "Siirrä",
+ "confirm-crosspost": "Cross-post",
"confirm-fork": "Haaroita",
"bookmark": "Lisää/poista krjanmerkki",
"bookmarks": "Kirjanmerkit",
@@ -141,6 +143,7 @@
"loading-more-posts": "Ladataan lisää viestejä",
"move-topic": "Siirrä aihe",
"move-topics": "Siirrä aiheet",
+ "crosspost-topic": "Cross-post Topic",
"move-post": "Siirrä viesti",
"post-moved": "Viestit siirretty!",
"fork-topic": "Haaroita aihe",
@@ -163,6 +166,9 @@
"move-topic-instruction": "Select the target category and then click move",
"change-owner-instruction": "Valitse viestit jotka haluat siirtää toiselle henkilölle",
"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": "Syötä aiheesi otsikko tähän...",
"composer.handle-placeholder": "Enter your name/handle here",
"composer.hide": "Piilota",
diff --git a/public/language/fi/unread.json b/public/language/fi/unread.json
index 6e4ce6039d..a1c9b8f408 100644
--- a/public/language/fi/unread.json
+++ b/public/language/fi/unread.json
@@ -3,7 +3,7 @@
"no-unread-topics": "Ei lukemattomia aiheita.",
"load-more": "Lataa lisää",
"mark-as-read": "Merkitse luetuksi",
- "mark-as-unread": "Mark as Unread",
+ "mark-as-unread": "Merkitse lukemattomaksi",
"selected": "Valitut",
"all": "Kaikki",
"all-categories": "Kaikki kategoriat",
diff --git a/public/language/fi/user.json b/public/language/fi/user.json
index 735c574adb..582b3d363e 100644
--- a/public/language/fi/user.json
+++ b/public/language/fi/user.json
@@ -1,9 +1,9 @@
{
- "user-menu": "User menu",
+ "user-menu": "Käyttäjävalikko",
"banned": "Bannattu",
- "unbanned": "Unbanned",
+ "unbanned": "Estot poistettu",
"muted": "Muted",
- "unmuted": "Unmuted",
+ "unmuted": "Hiljennys poistettu",
"offline": "Offline",
"deleted": "Poistettu",
"username": "Käyttäjän nimi",
@@ -43,11 +43,11 @@
"change-all": "Muuta kaikki",
"watched": "Seurataan",
"ignored": "Ohitetut",
- "read": "Read",
+ "read": "Lue",
"default-category-watch-state": "Kategoriaseurannan oletustaso",
"followers": "Seuraajat",
"following": "Seuratut",
- "shares": "Shares",
+ "shares": "Jaettu",
"blocks": "Estot",
"blocked-users": "Estetyt käyttäjät",
"block-toggle": "Toggle Block",
@@ -59,12 +59,12 @@
"chat": "Keskustele",
"chat-with": "Jatka keskustelua käyttäjän %1 kanssa",
"new-chat-with": "Aloita keskutelu käyttäjän %1 kanssa",
- "view-remote": "View Original",
+ "view-remote": "Näytä alkuperäinen",
"flag-profile": "Flag Profile",
- "profile-flagged": "Already flagged",
+ "profile-flagged": "Liputettu jo aiemmin",
"follow": "Seuraa",
"unfollow": "Älä seuraa",
- "cancel-follow": "Cancel follow request",
+ "cancel-follow": "Peruuta seuraamispyyntö",
"more": "Lisää",
"profile-update-success": "Profiili päivitettiin onnistuneesti!",
"change-picture": "Vaihda kuva",
@@ -83,7 +83,7 @@
"change-password": "Vaihda salasana",
"change-password-error": "Virheellinen salasana",
"change-password-error-wrong-current": "Nykyinen salasanasi ei ole oikein!",
- "change-password-error-same-password": "Your new password matches your current password, please use a new password.",
+ "change-password-error-same-password": "Uusi salasana on sama kuin aiemmin käyttämäsi, ole hyvä ja käytä eri salasanaa.",
"change-password-error-match": "Salasanojen täytyy olla samat!",
"change-password-error-privileges": "Sinulla ei ole oikeuksia vaihtaa tätä salasanaa.",
"change-password-success": "Salasanasi on päivitetty!",
diff --git a/public/language/fi/world.json b/public/language/fi/world.json
index 7fdb1569f2..8af989e006 100644
--- a/public/language/fi/world.json
+++ b/public/language/fi/world.json
@@ -1,12 +1,12 @@
{
"name": "World",
- "popular": "Popular topics",
- "recent": "All topics",
- "help": "Help",
+ "popular": "Suositut aiheet",
+ "recent": "Kaikki aiheet",
+ "help": "Apua",
- "help.title": "What is this page?",
- "help.intro": "Welcome to your corner of the fediverse.",
- "help.fediverse": "The \"fediverse\" is a network of interconnected applications and websites that all talk to one another and whose users can see each other. This forum is federated, and can interact with that social web (or \"fediverse\"). This page is your corner of the fediverse. It consists solely of topics created by — and shared from — users you follow.",
+ "help.title": "Mikä tämä sivu on?",
+ "help.intro": "Tervetuloa omaan fediverse kulmaasi.",
+ "help.fediverse": "\"Fediverse\" on verkko, joka mahdollistaa sovellusten ja sivustojen keskustella keskenään ja näiden käyttäjien nähdä toisensa. Tämä foorumi on yhteydessä tähän verkkoon ja pystyy yhdistymään muun sosiaalinen verkon(\"fediverse\") kanssa. Tämä sivusto on sinun henkilökohtainen kulma fediverseä ja se sisältään pelkästään seuraamiesi käyttäjien luomia ja jakamia aiheita.",
"help.build": "There might not be a lot of topics here to start; that's normal. You will start to see more content here over time when you start following other users.",
"help.federating": "Likewise, if users from outside of this forum start following you, then your posts will start appearing on those apps and websites as well.",
"help.next-generation": "This is the next generation of social media, start contributing today!",
diff --git a/public/language/fr/admin/dashboard.json b/public/language/fr/admin/dashboard.json
index eb7bc530e3..6206354f7b 100644
--- a/public/language/fr/admin/dashboard.json
+++ b/public/language/fr/admin/dashboard.json
@@ -75,6 +75,7 @@
"graphs.page-views-registered": "Membres",
"graphs.page-views-guest": "Invités",
"graphs.page-views-bot": "Robots",
+ "graphs.page-views-ap": "ActivityPub Page Views",
"graphs.unique-visitors": "Visiteurs uniques",
"graphs.registered-users": "Utilisateurs enregistrés",
"graphs.guest-users": "Utilisateurs invités",
diff --git a/public/language/fr/admin/manage/categories.json b/public/language/fr/admin/manage/categories.json
index fd10c37800..c84cbc67d2 100644
--- a/public/language/fr/admin/manage/categories.json
+++ b/public/language/fr/admin/manage/categories.json
@@ -1,18 +1,22 @@
{
"manage-categories": "Gérer les catégories",
"add-category": "Ajouter une catégorie",
+ "add-local-category": "Add Local category",
+ "add-remote-category": "Add Remote category",
+ "remove": "Remove",
+ "rename": "Rename",
"jump-to": "Aller à...",
"settings": "Paramètres de la catégorie",
"edit-category": "Modifier les catégories",
"privileges": "Privilèges",
"back-to-categories": "Retour aux catégories",
+ "id": "Category ID",
"name": "Nom de la catégorie",
"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": "Description de la catégorie",
- "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.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "Couleur d'arrière plan",
"text-color": "Couleur du texte",
"bg-image-size": "Taille de l'image d'arrière plan",
@@ -103,6 +107,11 @@
"alert.create-success": "Catégorie créée avec succès !",
"alert.none-active": "Vous n'avez aucune catégorie active.",
"alert.create": "Créer une catégorie",
+ "alert.add": "Add a Category",
+ "alert.add-help": "Remote categories can be added to the categories listing by specifying their handle.
Note — 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": "
Voulez-vous vraiment purger cette catégorie \"%1\" ?
Attentionc!Tous les sujets et messages dans cette catégorie vont être supprimés
Purger une catégorie va enlever tous les sujets et messages en supprimant la catégorie de la base de données. Si vous voulez seulement enlevez une catégorietemporairement, il faut plutôt \"désactiver\" la catégorie.",
"alert.purge-success": "Catégorie purgée !",
"alert.copy-success": "Paramètres copiés !",
diff --git a/public/language/fr/admin/manage/user-custom-fields.json b/public/language/fr/admin/manage/user-custom-fields.json
index dab10670d2..cd7ec8a52d 100644
--- a/public/language/fr/admin/manage/user-custom-fields.json
+++ b/public/language/fr/admin/manage/user-custom-fields.json
@@ -1,8 +1,8 @@
{
- "title": "Manage Custom User Fields",
- "create-field": "Create Field",
- "edit-field": "Edit Field",
- "manage-custom-fields": "Manage Custom Fields",
+ "title": "Gérer les champs utilisateur personnalisés",
+ "create-field": "Créer un champ",
+ "edit-field": "Editer un champ",
+ "manage-custom-fields": "Gérer les champs personnalisés",
"type-of-input": "Type of input",
"key": "Key",
"name": "Name",
diff --git a/public/language/fr/admin/settings/activitypub.json b/public/language/fr/admin/settings/activitypub.json
index 94f9ad7822..5ab4fa43e8 100644
--- a/public/language/fr/admin/settings/activitypub.json
+++ b/public/language/fr/admin/settings/activitypub.json
@@ -18,6 +18,28 @@
"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.
N.B. 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 # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
+ "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 /actor.",
+ "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 %1 server(s)",
"server.filter-help": "Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively allow federation with specific servers, instead. Both options are supported, although they are mutually exclusive.",
diff --git a/public/language/fr/admin/settings/uploads.json b/public/language/fr/admin/settings/uploads.json
index 453b6be283..6662c0d074 100644
--- a/public/language/fr/admin/settings/uploads.json
+++ b/public/language/fr/admin/settings/uploads.json
@@ -22,6 +22,7 @@
"reject-image-height": "Hauteur maximale des images (en pixels)",
"reject-image-height-help": "Les images plus grandes que cette valeur seront rejetées.",
"allow-topic-thumbnails": "Autoriser les utilisateurs à téléverser des miniatures de sujet",
+ "show-post-uploads-as-thumbnails": "Show post uploads as thumbnails",
"topic-thumb-size": "Miniature du sujet",
"allowed-file-extensions": "Extensions de fichiers autorisées",
"allowed-file-extensions-help": "Entrer une liste d’extensions de fichier séparées par une virgule (ex : pdf,xls,doc). Une liste vide signifie que toutes les extensions sont autorisées.",
diff --git a/public/language/fr/aria.json b/public/language/fr/aria.json
index b0d6da7437..e4b383b847 100644
--- a/public/language/fr/aria.json
+++ b/public/language/fr/aria.json
@@ -2,8 +2,9 @@
"post-sort-option": "Option de tri des messages, %1",
"topic-sort-option": "Option de tri des sujets, %1",
"user-avatar-for": "Avatar de l'utilisateur pour %1",
- "profile-page-for": "Profile page for user %1",
+ "profile-page-for": "Page de profil de l'utilisateur %1",
"user-watched-tags": "L'utilisateur a regardé les tags",
"delete-upload-button": "Supprimer le bouton de téléchargement",
- "group-page-link-for": "Lien vers la page de groupe pour %1"
+ "group-page-link-for": "Lien vers la page de groupe pour %1",
+ "show-crossposts": "Show Cross-posts"
}
\ No newline at end of file
diff --git a/public/language/fr/error.json b/public/language/fr/error.json
index 94ea74f7ab..1000046ef5 100644
--- a/public/language/fr/error.json
+++ b/public/language/fr/error.json
@@ -3,6 +3,7 @@
"invalid-json": "JSON invalide",
"wrong-parameter-type": "Une valeur de type %3 était attendue pour la propriété `%1`, mais %2 a été reçu à la place",
"required-parameters-missing": "Les paramètres requis étaient manquants dans cet appel d'API : %1",
+ "reserved-ip-address": "Network requests to reserved IP ranges are not allowed.",
"not-logged-in": "Vous ne semblez pas être connecté.",
"account-locked": "Votre compte a été temporairement suspendu",
"search-requires-login": "Rechercher nécessite d'avoir un compte. Veuillez vous identifier ou vous enregistrer.",
@@ -67,8 +68,8 @@
"no-chat-room": "Le salon de discussion n'existe pas.",
"no-privileges": "Vous n'avez pas les privilèges nécessaires pour effectuer cette action.",
"category-disabled": "Catégorie désactivée",
- "post-deleted": "Post deleted",
- "topic-locked": "Topic locked",
+ "post-deleted": "Message supprimé",
+ "topic-locked": "Sujet verrouillé",
"post-edit-duration-expired": "Vous ne pouvez modifier un message que pendant %1 seconde(s) après l'avoir posté.",
"post-edit-duration-expired-minutes": "Vous ne pouvez éditer un message que pendant %1 minute(s) après l'avoir posté.",
"post-edit-duration-expired-minutes-seconds": "Vous ne pouvez éditer un message que pendant %1 minute(s) et %2 seconde(s) après l'avoir posté.",
@@ -146,6 +147,7 @@
"post-already-restored": "Message déjà restauré",
"topic-already-deleted": "Sujet déjà supprimé",
"topic-already-restored": "Sujet déjà restauré",
+ "topic-already-crossposted": "This topic has already been cross-posted there.",
"cant-purge-main-post": "Il n'est pas possible d'effacer le message principal, veuillez supprimer le sujet entier à la place.",
"topic-thumbnails-are-disabled": "Les miniatures de sujet sont désactivés",
"invalid-file": "Fichier invalide",
@@ -227,6 +229,7 @@
"no-topics-selected": "Aucun sujet sélectionné !",
"cant-move-to-same-topic": "Impossible de déplacer le message dans le même sujet !",
"cant-move-topic-to-same-category": "Impossible de déplacer le sujet dans la même catégorie !",
+ "cant-move-topic-to-from-remote-categories": "You cannot move topics in or out of remote categories; consider cross-posting instead.",
"cannot-block-self": "Vous ne pouvez pas vous bloquer !",
"cannot-block-privileged": "Vous ne pouvez pas bloquer les administrateurs ou les modérateurs globaux",
"cannot-block-guest": "Les Invités ne peuvent pas bloquer d'autres utilisateurs",
@@ -236,6 +239,7 @@
"socket-reconnect-failed": "Serveur inaccessible pour le moment. Cliquez ici pour réessayer ou réessayez plus tard",
"invalid-plugin-id": "ID de plugin invalide",
"plugin-not-whitelisted": "Impossible d'installer le plugin, seuls les plugins mis en liste blanche dans le gestionnaire de packages NodeBB peuvent être installés via l'ACP",
+ "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": "Vous n'êtes pas autorisé à modifier l'état des plugins car ils sont définis au moment de l'exécution (config.json, variables d'environnement ou arguments de terminal), veuillez plutôt modifier la configuration.",
"theme-not-set-in-configuration": "Lors de la définition des plugins actifs, le changement de thème nécessite d'ajouter le nouveau thème à la liste des plugins actifs avant de le mettre à jour dans l'ACP",
@@ -254,7 +258,7 @@
"api.501": "L'accès n'est pas encore fonctionnel, veuillez réessayer demain",
"api.503": "L'accès n'est pas disponible actuellement en raison de la configuration du serveur",
"api.reauth-required": "La ressource à laquelle vous tentez d'accéder nécessite une (ré-)authentification.",
- "activitypub.not-enabled": "Federation is not enabled on this server",
+ "activitypub.not-enabled": "La fédération n'est pas activée sur ce serveur.",
"activitypub.invalid-id": "Unable to resolve the input id, likely as it is malformed.",
"activitypub.get-failed": "Unable to retrieve the specified resource.",
"activitypub.pubKey-not-found": "Unable to resolve public key, so payload verification cannot take place.",
diff --git a/public/language/fr/global.json b/public/language/fr/global.json
index ef41d31500..d440f9e321 100644
--- a/public/language/fr/global.json
+++ b/public/language/fr/global.json
@@ -50,7 +50,7 @@
"header.navigation": "Navigation",
"header.manage": "Gestion",
"header.drafts": "Brouillons",
- "header.world": "World",
+ "header.world": "Web",
"notifications.loading": "Chargement des notifications",
"chats.loading": "Chargement des discussions",
"drafts.loading": "Chargement des brouillons",
@@ -68,6 +68,7 @@
"users": "Utilisateurs",
"topics": "Sujets",
"posts": "Messages",
+ "crossposts": "Cross-posts",
"x-posts": "%1 messages",
"x-topics": "%1 sujets",
"x-reputation": "%1 réputation",
@@ -82,7 +83,7 @@
"downvoted": "Vote(s) négatif(s)",
"views": "Vues",
"posters": "Publieurs",
- "watching": "Watching",
+ "watching": "Abonné",
"reputation": "Réputation",
"lastpost": "Dernier message",
"firstpost": "Premier message",
@@ -112,7 +113,7 @@
"dnd": "Occupé",
"invisible": "Invisible",
"offline": "Hors-ligne",
- "remote-user": "This user is from outside of this forum",
+ "remote-user": "Cet utilisateur ne fait pas partie de ce forum.",
"email": "Email",
"language": "Langue",
"guest": "Invité",
diff --git a/public/language/fr/modules.json b/public/language/fr/modules.json
index 475fd1d297..2b54930f35 100644
--- a/public/language/fr/modules.json
+++ b/public/language/fr/modules.json
@@ -48,6 +48,7 @@
"chat.add-user": "Ajouter un utilisateur",
"chat.notification-settings": "Paramètres de notification",
"chat.default-notification-setting": "Paramètres de notification par défaut",
+ "chat.join-leave-messages": "Join/Leave Messages",
"chat.notification-setting-room-default": "Salon par défaut",
"chat.notification-setting-none": "Aucune notification",
"chat.notification-setting-at-mention-only": "@mention seulement",
diff --git a/public/language/fr/social.json b/public/language/fr/social.json
index c0a67052a8..b2b66a6cf6 100644
--- a/public/language/fr/social.json
+++ b/public/language/fr/social.json
@@ -8,5 +8,7 @@
"log-in-with-facebook": "Connectez-vous avec Facebook",
"continue-with-facebook": "Continuer avec Facebook",
"sign-in-with-linkedin": "Connectez-vous avec LinkedIn",
- "sign-up-with-linkedin": "Inscrivez-vous avec LinkedIn"
+ "sign-up-with-linkedin": "Inscrivez-vous avec LinkedIn",
+ "sign-in-with-wordpress": "Sign in with WordPress",
+ "sign-up-with-wordpress": "Sign up with WordPress"
}
\ No newline at end of file
diff --git a/public/language/fr/topic.json b/public/language/fr/topic.json
index 35fe9b1dc4..6a28ab9fec 100644
--- a/public/language/fr/topic.json
+++ b/public/language/fr/topic.json
@@ -27,7 +27,7 @@
"restore": "Restaurer",
"move": "Déplacer",
"change-owner": "Changer de propriétaire",
- "manage-editors": "Manage Editors",
+ "manage-editors": "Gérer les éditeurs",
"fork": "Scinder",
"link": "Lien",
"share": "Partager",
@@ -103,10 +103,11 @@
"thread-tools.lock": "Verrouiller le sujet",
"thread-tools.unlock": "Déverouiller le sujet",
"thread-tools.move": "Déplacer le sujet",
+ "thread-tools.crosspost": "Crosspost Topic",
"thread-tools.move-posts": "Déplacer les messages",
"thread-tools.move-all": "Déplacer tout",
"thread-tools.change-owner": "Changer de propriétaire",
- "thread-tools.manage-editors": "Manage Editors",
+ "thread-tools.manage-editors": "Gérer les éditeurs",
"thread-tools.select-category": "Sélectionner une catégorie",
"thread-tools.fork": "Scinder le sujet",
"thread-tools.tag": "Mot-clé de sujet",
@@ -132,15 +133,17 @@
"pin-modal-help": "Vous pouvez éventuellement définir une date d'expiration pour le(s) sujet(s) épinglé(s) ici. Vous pouvez également laisser ce champ vide pour que le sujet reste épinglé jusqu'à ce qu'il soit supprimé manuellement.",
"load-categories": "Chargement des catégories en cours",
"confirm-move": "Déplacer",
+ "confirm-crosspost": "Cross-post",
"confirm-fork": "Scinder",
"bookmark": "Marque-page",
"bookmarks": "Marque-pages",
"bookmarks.has-no-bookmarks": "Vous n'avez encore aucun marque-page.",
"copy-permalink": "Copier le permalien",
- "go-to-original": "View Original Post",
+ "go-to-original": "Voir le message original",
"loading-more-posts": "Charger plus de messages",
"move-topic": "Déplacer le sujet",
"move-topics": "Déplacer les sujets",
+ "crosspost-topic": "Cross-post Topic",
"move-post": "Déplacer",
"post-moved": "Message déplacé !",
"fork-topic": "Scinder le sujet",
@@ -163,6 +166,9 @@
"move-topic-instruction": "Sélectionner la catégorie cible puis cliquer sur déplacer",
"change-owner-instruction": "Cliquer sur les messages que vous souhaitez attribuer à un autre utilisateur.",
"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": "Entrer le titre du sujet ici…",
"composer.handle-placeholder": "Entrez votre nom/identifiant ici",
"composer.hide": "Cacher",
@@ -223,6 +229,6 @@
"post-tools": "Outils pour les messages",
"unread-posts-link": "Lien pour les messages non lus",
"thumb-image": "Vignette du sujet",
- "announcers": "Shares",
- "announcers-x": "Shares (%1)"
+ "announcers": "Partager",
+ "announcers-x": "Partages (%1)"
}
\ No newline at end of file
diff --git a/public/language/gl/admin/dashboard.json b/public/language/gl/admin/dashboard.json
index 6ad973f5f3..0be6d5866c 100644
--- a/public/language/gl/admin/dashboard.json
+++ b/public/language/gl/admin/dashboard.json
@@ -75,6 +75,7 @@
"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",
diff --git a/public/language/gl/admin/manage/categories.json b/public/language/gl/admin/manage/categories.json
index f51152f22d..cdb3e1f356 100644
--- a/public/language/gl/admin/manage/categories.json
+++ b/public/language/gl/admin/manage/categories.json
@@ -1,18 +1,22 @@
{
"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",
- "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.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "Background Colour",
"text-color": "Text Colour",
"bg-image-size": "Background Image Size",
@@ -103,6 +107,11 @@
"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.
Note — 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": "
Do you really want to purge this category \"%1\"?
Warning! All topics and posts in this category will be purged!
Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.
",
"alert.purge-success": "Category purged!",
"alert.copy-success": "Settings Copied!",
diff --git a/public/language/gl/admin/settings/activitypub.json b/public/language/gl/admin/settings/activitypub.json
index 94f9ad7822..5ab4fa43e8 100644
--- a/public/language/gl/admin/settings/activitypub.json
+++ b/public/language/gl/admin/settings/activitypub.json
@@ -18,6 +18,28 @@
"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.
N.B. 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 # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
+ "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 /actor.",
+ "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 %1 server(s)",
"server.filter-help": "Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively allow federation with specific servers, instead. Both options are supported, although they are mutually exclusive.",
diff --git a/public/language/gl/admin/settings/uploads.json b/public/language/gl/admin/settings/uploads.json
index 22046915d9..e91a7bee36 100644
--- a/public/language/gl/admin/settings/uploads.json
+++ b/public/language/gl/admin/settings/uploads.json
@@ -22,6 +22,7 @@
"reject-image-height": "Maximum Image Height (in pixels)",
"reject-image-height-help": "Images taller than this value will be rejected.",
"allow-topic-thumbnails": "Allow users to upload topic thumbnails",
+ "show-post-uploads-as-thumbnails": "Show post uploads as thumbnails",
"topic-thumb-size": "Topic Thumb Size",
"allowed-file-extensions": "Allowed File Extensions",
"allowed-file-extensions-help": "Enter comma-separated list of file extensions here (e.g. pdf,xls,doc). An empty list means all extensions are allowed.",
diff --git a/public/language/gl/aria.json b/public/language/gl/aria.json
index 8e2c565c82..ec7889d2f4 100644
--- a/public/language/gl/aria.json
+++ b/public/language/gl/aria.json
@@ -5,5 +5,6 @@
"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"
+ "group-page-link-for": "Group page link for %1",
+ "show-crossposts": "Show Cross-posts"
}
\ No newline at end of file
diff --git a/public/language/gl/error.json b/public/language/gl/error.json
index 40b34fe8be..dc3e5bff65 100644
--- a/public/language/gl/error.json
+++ b/public/language/gl/error.json
@@ -3,6 +3,7 @@
"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": "Parece que estás desconectado.",
"account-locked": "A túa conta foi bloqueada temporalmente.",
"search-requires-login": "As buscas requiren unha conta. Por favor inicia sesión ou rexístrate.",
@@ -146,6 +147,7 @@
"post-already-restored": "A publicación foi restaurada",
"topic-already-deleted": "O tema foi borrado",
"topic-already-restored": "O tema foi restaurado",
+ "topic-already-crossposted": "This topic has already been cross-posted there.",
"cant-purge-main-post": "Non podes purgar a publicación principal, por favor, elimínaa no seu canto.",
"topic-thumbnails-are-disabled": "Miniaturas do tema deshabilitadas.",
"invalid-file": "Arquivo Inválido",
@@ -227,6 +229,7 @@
"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",
@@ -236,6 +239,7 @@
"socket-reconnect-failed": "Unable to reach the server at this time. Click here to try again, or try again later",
"invalid-plugin-id": "Invalid plugin ID",
"plugin-not-whitelisted": "Unable to install plugin – only plugins whitelisted by the NodeBB Package Manager can be installed via the ACP",
+ "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",
diff --git a/public/language/gl/global.json b/public/language/gl/global.json
index 3d966b4b34..28d534d971 100644
--- a/public/language/gl/global.json
+++ b/public/language/gl/global.json
@@ -68,6 +68,7 @@
"users": "Usuarios",
"topics": "Temas",
"posts": "Publicacións",
+ "crossposts": "Cross-posts",
"x-posts": "%1 posts",
"x-topics": "%1 topics",
"x-reputation": "%1 reputation",
diff --git a/public/language/gl/modules.json b/public/language/gl/modules.json
index 437ec89919..02ae4bd868 100644
--- a/public/language/gl/modules.json
+++ b/public/language/gl/modules.json
@@ -48,6 +48,7 @@
"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",
diff --git a/public/language/gl/social.json b/public/language/gl/social.json
index 2ba690a187..5b8dd99a46 100644
--- a/public/language/gl/social.json
+++ b/public/language/gl/social.json
@@ -8,5 +8,7 @@
"log-in-with-facebook": "Log in with Facebook",
"continue-with-facebook": "Continue with Facebook",
"sign-in-with-linkedin": "Sign in with LinkedIn",
- "sign-up-with-linkedin": "Sign up 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"
}
\ No newline at end of file
diff --git a/public/language/gl/topic.json b/public/language/gl/topic.json
index 1422a1cd53..d29158105c 100644
--- a/public/language/gl/topic.json
+++ b/public/language/gl/topic.json
@@ -103,6 +103,7 @@
"thread-tools.lock": "Pechar Tema",
"thread-tools.unlock": "Reabrir Tema",
"thread-tools.move": "Mover Tema",
+ "thread-tools.crosspost": "Crosspost Topic",
"thread-tools.move-posts": "Move Posts",
"thread-tools.move-all": "Mover todo",
"thread-tools.change-owner": "Change Owner",
@@ -132,6 +133,7 @@
"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": "Cargando categorías",
"confirm-move": "Mover",
+ "confirm-crosspost": "Cross-post",
"confirm-fork": "Dividir",
"bookmark": "Marcador",
"bookmarks": "Marcadores",
@@ -141,6 +143,7 @@
"loading-more-posts": "Cargando máis publicacións",
"move-topic": "Mover Tema",
"move-topics": "Mover Temas",
+ "crosspost-topic": "Cross-post Topic",
"move-post": "Mover publicación",
"post-moved": "Publicación movida correctamente!",
"fork-topic": "Dividir Tema",
@@ -163,6 +166,9 @@
"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": "Introduce o título do teu tema",
"composer.handle-placeholder": "Enter your name/handle here",
"composer.hide": "Hide",
diff --git a/public/language/he/admin/dashboard.json b/public/language/he/admin/dashboard.json
index bdaa869915..1304c758a1 100644
--- a/public/language/he/admin/dashboard.json
+++ b/public/language/he/admin/dashboard.json
@@ -75,6 +75,7 @@
"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": "משתמשים אורחים",
diff --git a/public/language/he/admin/manage/categories.json b/public/language/he/admin/manage/categories.json
index c6837046d1..ace84ca716 100644
--- a/public/language/he/admin/manage/categories.json
+++ b/public/language/he/admin/manage/categories.json
@@ -1,18 +1,22 @@
{
"manage-categories": "ניהול קטגוריות",
"add-category": "הוספת קטגוריה",
+ "add-local-category": "Add Local category",
+ "add-remote-category": "Add Remote category",
+ "remove": "Remove",
+ "rename": "Rename",
"jump-to": "קפיצה אל...",
"settings": "הגדרות קטגוריות",
"edit-category": "עריכת קטגוריה",
"privileges": "הרשאות",
"back-to-categories": "חזרה לרשימת הקטגוריות",
+ "id": "Category ID",
"name": "שם קטגוריה",
"handle": "מקשר קטגוריה",
"handle.help": "המקשר לקטגוריה שלך משמשת כייצוג של קטגוריה זו ברשתות אחרות, בדומה לשם משתמש. נקודת אחיזה בקטגוריה אינה יכולה להתאים לשם משתמש או קבוצת משתמשים קיימים.",
"description": "תיאור קטגוריה",
- "federatedDescription": "תיאור פדרציה",
- "federatedDescription.help": "טקסט זה יצורף לתיאור הקטגוריה כאשר הוא יתבקש על ידי אתרים או אפליקציות אחרות.",
- "federatedDescription.default": "זוהי קטגוריית פורום המכילה דיון אקטואלי. תוכלו להתחיל דיונים חדשים על ידי אזכור קטגוריה זו.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "צבע רקע",
"text-color": "צבע טקסט",
"bg-image-size": "גודל תמונת רקע",
@@ -103,6 +107,11 @@
"alert.create-success": "קטגוריה נוצרה בהצלחה!",
"alert.none-active": "אין לכם קטגוריות פעילות.",
"alert.create": "יצירת קטגוריה",
+ "alert.add": "Add a Category",
+ "alert.add-help": "Remote categories can be added to the categories listing by specifying their handle.
Note — 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": "
האם אתם בטוחים שאתם רוצים למחוק את קטגוריית \"%1\"?
אזהרה! כל הנושאים והפוסטים בקטגוריה זו ימחקו!
מחיקת קטגוריה תסיר את כל הנושאים והפוסטים ותמחק את הקטגוריה ממסד הנתונים. אם ברצונכם להסיר את הקטגוריה באופן זמני, בחרו ב\"השבתת\" הקטגוריה.
",
"alert.purge-success": "הקטגוריה נמחקה!",
"alert.copy-success": "ההגדרות הועתקו!",
diff --git a/public/language/he/admin/settings/activitypub.json b/public/language/he/admin/settings/activitypub.json
index 912aab7975..784350dfff 100644
--- a/public/language/he/admin/settings/activitypub.json
+++ b/public/language/he/admin/settings/activitypub.json
@@ -18,6 +18,28 @@
"probe-timeout": "פסק זמן לחיפוש (מילישניות)",
"probe-timeout-help": "(ברירת מחדל: 2000) אם שאילתת החיפוש לא תקבל תגובה בתוך מסגרת הזמן שנקבעה, המשתמש יישלח ישירות לקישור. התאימו מספר זה גבוה יותר אם אתרים מגיבים באיטיות וברצונכם להקדיש זמן נוסף.",
+ "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.
N.B. 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 # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
+ "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 /actor.",
+ "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": "סינון",
"count": "NodeBB זה מודע כרגע ל-%1 שרתים",
"server.filter-help": "ציין שרתים שברצונך למנוע מהתאחדות עם ה-NodeBB שלך. לחלופין, אתה יכול לבחור באופן סלקטיבי פדרציה מאושרים עם שרתים ספציפיים, במקום זאת. שתי האפשרויות נתמכות, אם כי הן סותרות זו את זו.",
diff --git a/public/language/he/admin/settings/uploads.json b/public/language/he/admin/settings/uploads.json
index 55286bd76d..3b4c72a82b 100644
--- a/public/language/he/admin/settings/uploads.json
+++ b/public/language/he/admin/settings/uploads.json
@@ -22,6 +22,7 @@
"reject-image-height": "גובה תמונה מקסימלי (בפיקסלים)",
"reject-image-height-help": "תמונות גבוהות יותר מערך זה יידחו",
"allow-topic-thumbnails": "אפשרו למשתמשים להעלות תמונה ממוזערת לנושא",
+ "show-post-uploads-as-thumbnails": "Show post uploads as thumbnails",
"topic-thumb-size": "גודל תמונה ממוזערת לנושא",
"allowed-file-extensions": "סיומות קבצים מאושרים",
"allowed-file-extensions-help": "הכניסו כאן רשימת פורמטי קבצים מאושרים (לדוגמא. pdf,xls,doc). השארת השורה ללא תוכן פירושו שכל הקבצים יהיו מאושרים.",
diff --git a/public/language/he/admin/settings/user.json b/public/language/he/admin/settings/user.json
index 0c0d227b39..3f1b6958b6 100644
--- a/public/language/he/admin/settings/user.json
+++ b/public/language/he/admin/settings/user.json
@@ -67,7 +67,7 @@
"disable-incoming-chats": "השבתת הודעות צ'אט נכנסות",
"outgoing-new-tab": "פתח קישורים חיצוניים בכרטיסייה חדשה",
"topic-search": "הפעל חיפוש בתוך נושא",
- "update-url-with-post-index": "עדכן את כתובת הURL עם מספר הפוסט הנוכחי בזמן גלישה בנושאים",
+ "update-url-with-post-index": "עדכן את כתובת ה-URL עם מספר הפוסט הנוכחי בזמן גלישה בנושאים",
"digest-freq": "הרשם לקבלת תקציר",
"digest-freq.off": "כבוי",
"digest-freq.daily": "יומי",
diff --git a/public/language/he/aria.json b/public/language/he/aria.json
index adc95d19d6..d7102b1e5d 100644
--- a/public/language/he/aria.json
+++ b/public/language/he/aria.json
@@ -5,5 +5,6 @@
"profile-page-for": "דף פרופיל למשתמש %1",
"user-watched-tags": "צפיית משתמש בתגיות",
"delete-upload-button": "כפתור מחיקת העלאה",
- "group-page-link-for": "%1 קבוצת דפים מקושרים "
+ "group-page-link-for": "%1 קבוצת דפים מקושרים ",
+ "show-crossposts": "Show Cross-posts"
}
\ No newline at end of file
diff --git a/public/language/he/error.json b/public/language/he/error.json
index 82af4336b3..8ede669d3e 100644
--- a/public/language/he/error.json
+++ b/public/language/he/error.json
@@ -3,6 +3,7 @@
"invalid-json": "אובייקט JSON לא תקין",
"wrong-parameter-type": "ערך מסוג %3 היה צפוי למאפיין `%1`, אבל %2 התקבל במקום זאת",
"required-parameters-missing": "פרמטרים נדרשים היו חסרים בקריאת API זו: %1",
+ "reserved-ip-address": "אין לבקש בקשות רשת לטווחי IP שמורים.",
"not-logged-in": "נראה שאינכם מחוברים למערכת.",
"account-locked": "חשבונכם נחסם באופן זמני",
"search-requires-login": "חיפוש מצריך חשבון - אנא הירשמו או התחברו.",
@@ -146,6 +147,7 @@
"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": "קובץ לא תקין",
@@ -227,6 +229,7 @@
"no-topics-selected": "לא נבחרו נושאים!",
"cant-move-to-same-topic": "לא ניתן להעביר פוסט לאותו נושא!",
"cant-move-topic-to-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": "לא ניתן לחסום את עצמך!",
"cannot-block-privileged": "לא ניתן לחסום מנהלים או מנחים גלובליים",
"cannot-block-guest": "אורחים אינם יכולים לחסום משתמשים אחרים",
@@ -236,6 +239,7 @@
"socket-reconnect-failed": "לא ניתן להגיע לשרת בשלב זה. לחצו כאן כדי לנסות שוב, או נסו שוב במועד מאוחר יותר",
"invalid-plugin-id": "מזהה תוסף לא תקין",
"plugin-not-whitelisted": "לא ניתן להתקין את התוסף – ניתן להתקין דרך הניהול רק תוספים שנמצאים ברשימה הלבנה של מנהל החבילות של NodeBB.",
+ "cannot-toggle-system-plugin": "לא ניתן להחליף מצב של תוסף מערכת",
"plugin-installation-via-acp-disabled": "התקנת תוסף באמצעות ACP מושבתת",
"plugins-set-in-configuration": "לא ניתן לשנות את מצב התוסף כפי שהם מוגדרים בזמן ריצה (config.json, משתני סביבה או ארגומנטים של מסוף), שנו את התצורה במקום זאת.",
"theme-not-set-in-configuration": "כאשר מגדירים תוספים פעילים בתצורה, שינוי ערכות נושא מחייב הוספת ערכת הנושא החדשה לרשימת התוספים הפעילים לפני עדכון שלו ב-ACP",
diff --git a/public/language/he/global.json b/public/language/he/global.json
index 428cd81ac4..884b522e0c 100644
--- a/public/language/he/global.json
+++ b/public/language/he/global.json
@@ -32,7 +32,7 @@
"pagination.enter-index": "עבור למיקום פוסט",
"pagination.go-to-page": "ניווט לדף",
"pagination.page-x": "עמוד %1",
- "header.brand-logo": "לוגו מותג",
+ "header.brand-logo": "לוגו אתר",
"header.admin": "ניהול",
"header.categories": "קטגוריות",
"header.recent": "פוסטים אחרונים",
@@ -68,6 +68,7 @@
"users": "משתמשים",
"topics": "נושאים",
"posts": "פוסטים",
+ "crossposts": "Cross-posts",
"x-posts": "%1 פוסטים",
"x-topics": "%1 נושאים",
"x-reputation": "%1 מוניטין",
@@ -134,8 +135,8 @@
"upload": "העלאה",
"uploads": "העלאות",
"allowed-file-types": "פורמטי הקבצים המורשים הם %1",
- "unsaved-changes": "יש לכם שינויים שלא נשמרו. האם הנכם בטוחים שברצונכם להמשיך?",
- "reconnecting-message": "החיבור ל-%1 אבד, אנא המתינו בזמן שאנו מנסים לחבר אתכם מחדש",
+ "unsaved-changes": "יש שינויים שלא נשמרו. האם אתם בטוחים שברצונכם להמשיך?",
+ "reconnecting-message": "החיבור ל-%1 אבד, נא להמתין בזמן שאנו מנסים לחבר אתכם מחדש",
"play": "נגן",
"cookies.message": "אתר זה משתמש ב cookies על מנת לשפר את חוויות המשתמש.",
"cookies.accept": "קיבלתי!",
diff --git a/public/language/he/modules.json b/public/language/he/modules.json
index fb546965c1..8505d4ccba 100644
--- a/public/language/he/modules.json
+++ b/public/language/he/modules.json
@@ -48,6 +48,7 @@
"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": "@אזכור בלבד",
diff --git a/public/language/he/social.json b/public/language/he/social.json
index 31633e056a..a08072bc9a 100644
--- a/public/language/he/social.json
+++ b/public/language/he/social.json
@@ -8,5 +8,7 @@
"log-in-with-facebook": "היכנס באמצעות Facebook",
"continue-with-facebook": "המשך בFacebook",
"sign-in-with-linkedin": "היכנס באמצעות LinkedIn",
- "sign-up-with-linkedin": "הירשם באמצעות LinkedIn"
+ "sign-up-with-linkedin": "הירשם באמצעות LinkedIn",
+ "sign-in-with-wordpress": "Sign in with WordPress",
+ "sign-up-with-wordpress": "Sign up with WordPress"
}
\ No newline at end of file
diff --git a/public/language/he/topic.json b/public/language/he/topic.json
index 9e479a2da8..f63e796f95 100644
--- a/public/language/he/topic.json
+++ b/public/language/he/topic.json
@@ -103,6 +103,7 @@
"thread-tools.lock": "נעילת נושא",
"thread-tools.unlock": "הסרת נעילה",
"thread-tools.move": "הזזת נושא",
+ "thread-tools.crosspost": "Crosspost Topic",
"thread-tools.move-posts": "הזזת פוסטים",
"thread-tools.move-all": "הזזת הכל",
"thread-tools.change-owner": "שינוי שם כותב הפוסט",
@@ -132,6 +133,7 @@
"pin-modal-help": "באפשרותכם להגדיר כאן תאריך תפוגה לנושאים המוצמדים. לחלופין, ביכולתכם להשאיר שדה זו ריקה, כדי שהנושא יישאר נעוץ עד לביטול ההצמדה ידנית.",
"load-categories": "טוען קטגוריות",
"confirm-move": "העברה",
+ "confirm-crosspost": "Cross-post",
"confirm-fork": "פיצול",
"bookmark": "הוספה למועדפים",
"bookmarks": "מועדפים",
@@ -141,6 +143,7 @@
"loading-more-posts": "טוען פוסטים נוספים",
"move-topic": "העברת נושא",
"move-topics": "העברת נושאים",
+ "crosspost-topic": "Cross-post Topic",
"move-post": "העבר פוסט",
"post-moved": "הפוסט הועבר!",
"fork-topic": "פיצול נושא",
@@ -163,6 +166,9 @@
"move-topic-instruction": "בחרו את קטגוריית היעד ולאחר מכן לחצו על העברה",
"change-owner-instruction": "לחצו על הפוסטים בהם תרצו לשנות את שם כותב ההודעה",
"manage-editors-instruction": "נהל את המשתמשים שיכולים לערוך את הפוסט הזה למטה.",
+ "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": "הזינו שם / כינוי שלכם כאן",
"composer.hide": "הסתרה",
diff --git a/public/language/hr/admin/dashboard.json b/public/language/hr/admin/dashboard.json
index 1e4fedf429..e1c060d8b7 100644
--- a/public/language/hr/admin/dashboard.json
+++ b/public/language/hr/admin/dashboard.json
@@ -75,6 +75,7 @@
"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": "Jedninstveni posjetitelji",
"graphs.registered-users": "Registrirani korisnici",
"graphs.guest-users": "Guest Users",
diff --git a/public/language/hr/admin/manage/categories.json b/public/language/hr/admin/manage/categories.json
index 7375875737..5ae77e77e5 100644
--- a/public/language/hr/admin/manage/categories.json
+++ b/public/language/hr/admin/manage/categories.json
@@ -1,18 +1,22 @@
{
"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": "Postavke kategorije",
"edit-category": "Edit Category",
"privileges": "Privilegije",
"back-to-categories": "Back to categories",
+ "id": "Category ID",
"name": "Ime kategorije",
"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": "Opis kategorije",
- "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.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "Pozadniska boja",
"text-color": "Boja teksta",
"bg-image-size": "Veličina pozadinske slike",
@@ -103,6 +107,11 @@
"alert.create-success": "Kategorija uspješno kreirana!",
"alert.none-active": "Nemate aktivnih kategorija.",
"alert.create": "Napravi kategoriju",
+ "alert.add": "Add a Category",
+ "alert.add-help": "Remote categories can be added to the categories listing by specifying their handle.
Note — 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": "
Do you really want to purge this category \"%1\"?
Warning! All topics and posts in this category will be purged!
Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.
",
"alert.purge-success": "Kategorija odbačena!",
"alert.copy-success": "Postavke kopirane!",
diff --git a/public/language/hr/admin/settings/activitypub.json b/public/language/hr/admin/settings/activitypub.json
index 94f9ad7822..5ab4fa43e8 100644
--- a/public/language/hr/admin/settings/activitypub.json
+++ b/public/language/hr/admin/settings/activitypub.json
@@ -18,6 +18,28 @@
"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.
N.B. 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 # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
+ "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 /actor.",
+ "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 %1 server(s)",
"server.filter-help": "Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively allow federation with specific servers, instead. Both options are supported, although they are mutually exclusive.",
diff --git a/public/language/hr/admin/settings/uploads.json b/public/language/hr/admin/settings/uploads.json
index 1efba861e4..e206adf803 100644
--- a/public/language/hr/admin/settings/uploads.json
+++ b/public/language/hr/admin/settings/uploads.json
@@ -22,6 +22,7 @@
"reject-image-height": "Maximum Image Height (in pixels)",
"reject-image-height-help": "Images taller than this value will be rejected.",
"allow-topic-thumbnails": "Dozvoli korisnicima da učitaju sliku teme",
+ "show-post-uploads-as-thumbnails": "Show post uploads as thumbnails",
"topic-thumb-size": "Veličina slike teme",
"allowed-file-extensions": "Dozvoljene ekstenzije datoteka",
"allowed-file-extensions-help": "Unesite popis dozvoljenih ekstenzija datoteka sa zarezima između (npr. pdf,xls,doc ).Prazan popis znači da su sve ekstenzije dozvoljene.",
diff --git a/public/language/hr/aria.json b/public/language/hr/aria.json
index 8e2c565c82..ec7889d2f4 100644
--- a/public/language/hr/aria.json
+++ b/public/language/hr/aria.json
@@ -5,5 +5,6 @@
"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"
+ "group-page-link-for": "Group page link for %1",
+ "show-crossposts": "Show Cross-posts"
}
\ No newline at end of file
diff --git a/public/language/hr/category.json b/public/language/hr/category.json
index ff5b1cb9c5..a02822d8d7 100644
--- a/public/language/hr/category.json
+++ b/public/language/hr/category.json
@@ -5,7 +5,7 @@
"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": "Nova Tema",
- "guest-login-post": "Prijavi se za objavu",
+ "guest-login-post": "Prijavite se da biste objavili",
"no-topics": "Nema tema u ovoj kategoriji. Zašto ne probate napisati novu?",
"no-followers": "Nobody on this website is tracking or watching this category. Track or watch this category in order to begin receiving updates.",
"browsing": "pregledavanje",
diff --git a/public/language/hr/error.json b/public/language/hr/error.json
index 9160c18653..c4f777e0aa 100644
--- a/public/language/hr/error.json
+++ b/public/language/hr/error.json
@@ -3,6 +3,7 @@
"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": "Izgleda da niste prijavljeni.",
"account-locked": "Vaš račun je privremeno blokiran",
"search-requires-login": "Pretraga zahtijeva prijavu - prijavite se ili se registrirajte.",
@@ -146,6 +147,7 @@
"post-already-restored": "Ova objava je povraćena",
"topic-already-deleted": "Ova tema je već obrisana",
"topic-already-restored": "Ova tema je povraćena",
+ "topic-already-crossposted": "This topic has already been cross-posted there.",
"cant-purge-main-post": "Nemožete odbaciti glavnu objavu, obrišite temu za brisanje",
"topic-thumbnails-are-disabled": "Slike tema su onemogućene",
"invalid-file": "Pogrešna datoteka",
@@ -227,6 +229,7 @@
"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": "Ne možete blokirati sami sebe",
"cannot-block-privileged": "Ne možete blokirati administratore ni globalne administratore",
"cannot-block-guest": "Gosti ne mogu blokirati druge korisnike",
@@ -236,6 +239,7 @@
"socket-reconnect-failed": "Unable to reach the server at this time. Click here to try again, or try again later",
"invalid-plugin-id": "Invalid plugin ID",
"plugin-not-whitelisted": "Unable to install plugin – only plugins whitelisted by the NodeBB Package Manager can be installed via the ACP",
+ "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",
diff --git a/public/language/hr/global.json b/public/language/hr/global.json
index 20c3fd9b17..385b9df1e7 100644
--- a/public/language/hr/global.json
+++ b/public/language/hr/global.json
@@ -68,6 +68,7 @@
"users": "Korisnici",
"topics": "Teme",
"posts": "Objave",
+ "crossposts": "Cross-posts",
"x-posts": "%1 posts",
"x-topics": "%1 topics",
"x-reputation": "%1 reputation",
diff --git a/public/language/hr/modules.json b/public/language/hr/modules.json
index ae32d6f0d7..c3d8f47ad4 100644
--- a/public/language/hr/modules.json
+++ b/public/language/hr/modules.json
@@ -48,6 +48,7 @@
"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",
diff --git a/public/language/hr/register.json b/public/language/hr/register.json
index 4d52f4ea15..ca8637095b 100644
--- a/public/language/hr/register.json
+++ b/public/language/hr/register.json
@@ -22,7 +22,7 @@
"registration-queue-average-time": "Our average time for approving memberships is %1 hours %2 minutes.",
"registration-queue-auto-approve-time": "Your membership to this forum will be fully activated in up to %1 hours.",
"interstitial.intro": "We'd like some additional information in order to update your account…",
- "interstitial.intro-new": "We'd like some additional information before we can create your account…",
+ "interstitial.intro-new": "Željeli bismo neke dodatne informacije prije nego što možemo kreirati vaš račun…",
"interstitial.errors-found": "Please review the entered information:",
"gdpr-agree-data": "I consent to the collection and processing of my personal information on this website.",
"gdpr-agree-email": "I consent to receive digest and notification emails from this website.",
diff --git a/public/language/hr/social.json b/public/language/hr/social.json
index 2ba690a187..5b8dd99a46 100644
--- a/public/language/hr/social.json
+++ b/public/language/hr/social.json
@@ -8,5 +8,7 @@
"log-in-with-facebook": "Log in with Facebook",
"continue-with-facebook": "Continue with Facebook",
"sign-in-with-linkedin": "Sign in with LinkedIn",
- "sign-up-with-linkedin": "Sign up 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"
}
\ No newline at end of file
diff --git a/public/language/hr/themes/harmony.json b/public/language/hr/themes/harmony.json
index 727a1b0553..3d91fe5a4f 100644
--- a/public/language/hr/themes/harmony.json
+++ b/public/language/hr/themes/harmony.json
@@ -6,7 +6,7 @@
"sidebar-toggle": "Sidebar Toggle",
"login-register-to-search": "Login or register to search.",
"settings.title": "Theme settings",
- "settings.enableQuickReply": "Enable quick reply",
+ "settings.enableQuickReply": "Omogući brzi odgovor",
"settings.enableBreadcrumbs": "Show breadcrumbs in Category and Topic pages",
"settings.enableBreadcrumbs.why": "Breadcrumbs are visible in most pages for ease-of-navigation. The base design of the category and topic pages has alternative means to link back to parent pages, but the breadcrumb can be toggled off to reduce clutter.",
"settings.centerHeaderElements": "Center header elements",
diff --git a/public/language/hr/topic.json b/public/language/hr/topic.json
index 3b5ca2abc8..b57a83c3bd 100644
--- a/public/language/hr/topic.json
+++ b/public/language/hr/topic.json
@@ -17,8 +17,8 @@
"last-reply-time": "Zadnji odgovor",
"reply-options": "Reply options",
"reply-as-topic": "Odgovori kao temu",
- "guest-login-reply": "Prijavi se za objavu",
- "login-to-view": "🔒 Log in to view",
+ "guest-login-reply": "Prijavite se kako bi odgovorili",
+ "login-to-view": "🔒 Prijavite se kako bi vidjeli sadržaj",
"edit": "Uredi",
"delete": "Obriši",
"delete-event": "Delete Event",
@@ -103,6 +103,7 @@
"thread-tools.lock": "Zaključaj temu",
"thread-tools.unlock": "Odključaj temu",
"thread-tools.move": "Premjesti temu",
+ "thread-tools.crosspost": "Crosspost Topic",
"thread-tools.move-posts": "Move Posts",
"thread-tools.move-all": "Premjesti sve",
"thread-tools.change-owner": "Change Owner",
@@ -132,6 +133,7 @@
"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": "Učitavam kategorije",
"confirm-move": "Pomakni",
+ "confirm-crosspost": "Cross-post",
"confirm-fork": "Dupliraj",
"bookmark": "Zabilježi",
"bookmarks": "Zabilješke",
@@ -141,6 +143,7 @@
"loading-more-posts": "Učitavam više objava",
"move-topic": "Pomakni temu",
"move-topics": "Pomakni teme",
+ "crosspost-topic": "Cross-post Topic",
"move-post": "Pomakni objavu",
"post-moved": "Objava pomaknuta!",
"fork-topic": "Dupliraj temu",
@@ -163,6 +166,9 @@
"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": "Unesite naslov teme ovdje ...",
"composer.handle-placeholder": "Enter your name/handle here",
"composer.hide": "Hide",
@@ -215,7 +221,7 @@
"go-to-my-next-post": "Go to my next post",
"no-more-next-post": "You don't have more posts in this topic",
"open-composer": "Open composer",
- "post-quick-reply": "Quick reply",
+ "post-quick-reply": " Brzi odgovor",
"navigator.index": "Post %1 of %2",
"navigator.unread": "%1 unread",
"upvote-post": "Upvote post",
diff --git a/public/language/hr/user.json b/public/language/hr/user.json
index e5d7875220..f6d5802e04 100644
--- a/public/language/hr/user.json
+++ b/public/language/hr/user.json
@@ -225,10 +225,10 @@
"consent.export-uploads-success": "Exporting uploads, you will get a notification when it is complete.",
"consent.export-posts": "Export Posts (.csv)",
"consent.export-posts-success": "Exporting posts, you will get a notification when it is complete.",
- "emailUpdate.intro": "Please enter your email address below. This forum uses your email address for scheduled digest and notifications, as well as for account recovery in the event of a lost password.",
- "emailUpdate.optional": "This field is optional. You are not obligated to provide your email address, but without a validated email you will not be able to recover your account or login with your email.",
- "emailUpdate.required": "This field is required.",
- "emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page.",
- "emailUpdate.password-challenge": "Please enter your password in order to verify account ownership.",
- "emailUpdate.pending": "Your email address has not yet been confirmed, but an email has been sent out requesting confirmation. If you wish to invalidate that request and send a new confirmation request, please fill in the form below."
+ "emailUpdate.intro": "Molimo unesite svoju e-adresu u nastavku. Ovaj forum koristi vašu e-adresu za planirane sažetke i obavijesti, kao i za oporavak računa u slučaju izgubljene lozinke.",
+ "emailUpdate.optional": "Ovo polje je opcionalno.. Niste obavezni dati svoju e-adresu, ali bez potvrđene e-pošte nećete moći oporaviti svoj račun niti se prijaviti koristeći e-poštu.",
+ "emailUpdate.required": "Ovo polje je obavezno.",
+ "emailUpdate.change-instructions": "Na unesenu e-adresu biće poslana e-poruka za potvrdu s jedinstvenim linkom. Pristupom tom linku potvrđuje se vaše vlasništvo nad adresom e-pošte i ona će postati aktivna na vašem računu. U bilo kojem trenutku možete ažurirati e-adresu u svojoj evidenciji putem stranice svog računa.",
+ "emailUpdate.password-challenge": "Molimo unesite svoju lozinku kako biste potvrdili vlasništvo nad računom.",
+ "emailUpdate.pending": "Vaša e-adresa još nije potvrđena, ali je poslana e-poruka za potvrdu. Ako želite poništiti taj zahtjev i poslati novi zahtjev za potvrdu, molimo popunite obrazac u nastavku."
}
\ No newline at end of file
diff --git a/public/language/hu/admin/dashboard.json b/public/language/hu/admin/dashboard.json
index 1016b5b833..0427cd36c6 100644
--- a/public/language/hu/admin/dashboard.json
+++ b/public/language/hu/admin/dashboard.json
@@ -75,6 +75,7 @@
"graphs.page-views-registered": "Regisztrált látogatások",
"graphs.page-views-guest": "Vendég látogatások",
"graphs.page-views-bot": "Bot látogatások",
+ "graphs.page-views-ap": "ActivityPub Page Views",
"graphs.unique-visitors": "Egyedi látogatók",
"graphs.registered-users": "Regisztrált felhasználók",
"graphs.guest-users": "Vendég Felhasználók",
diff --git a/public/language/hu/admin/manage/categories.json b/public/language/hu/admin/manage/categories.json
index 78abec813a..e9b029a849 100644
--- a/public/language/hu/admin/manage/categories.json
+++ b/public/language/hu/admin/manage/categories.json
@@ -1,18 +1,22 @@
{
"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": "Kategória beállítások",
"edit-category": "Edit Category",
"privileges": "Jogosultságok",
"back-to-categories": "Back to categories",
+ "id": "Category ID",
"name": "Kategória neve",
"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": "Kategória leírása",
- "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.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "Háttérszín",
"text-color": "Szövegszín",
"bg-image-size": "Háttérkép mérete",
@@ -103,6 +107,11 @@
"alert.create-success": "Kategória sikeresen létrehozva!",
"alert.none-active": "Nincsenek aktív kategóriáid.",
"alert.create": "Kategória létrehozása",
+ "alert.add": "Add a Category",
+ "alert.add-help": "Remote categories can be added to the categories listing by specifying their handle.
Note — 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": "
Biztosan szeretnéd teljesen törölni ezt a kategóriát \"%1\"?
Figyelem! Minden témakör és hozzászólás teljesen törlésre kerül ebben a kategóriában!
Egy kategória teljes törlése eltávolítja a témaköröket és hozzászólásokat, valamint törli a kategóriát az adatbázisból. Amennyiben szeretnél egy kategóriát ideiglenesen törölni, használd a kategória \"kikapcsolása\" funkciót.
",
"alert.purge-success": "Kategória törölve!",
"alert.copy-success": "Beállítások másolva!",
diff --git a/public/language/hu/admin/settings/activitypub.json b/public/language/hu/admin/settings/activitypub.json
index 94f9ad7822..5ab4fa43e8 100644
--- a/public/language/hu/admin/settings/activitypub.json
+++ b/public/language/hu/admin/settings/activitypub.json
@@ -18,6 +18,28 @@
"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.
N.B. 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 # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
+ "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 /actor.",
+ "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 %1 server(s)",
"server.filter-help": "Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively allow federation with specific servers, instead. Both options are supported, although they are mutually exclusive.",
diff --git a/public/language/hu/admin/settings/uploads.json b/public/language/hu/admin/settings/uploads.json
index fb103aea58..8a575d432f 100644
--- a/public/language/hu/admin/settings/uploads.json
+++ b/public/language/hu/admin/settings/uploads.json
@@ -22,6 +22,7 @@
"reject-image-height": "Képek maximális magassága (pixelben)",
"reject-image-height-help": "Azon képek, amik magasabbak ennél az értéknél visszautasításra kerülnek.",
"allow-topic-thumbnails": "Kis képek feltöltésének engedélyezése témakörhöz a felhasználók számára",
+ "show-post-uploads-as-thumbnails": "Show post uploads as thumbnails",
"topic-thumb-size": "Témakörkép mérete",
"allowed-file-extensions": "Megengedett fájlkiterjesztések",
"allowed-file-extensions-help": "Itt adj meg fájlkiterjesztési listát, vesszővel elválasztva (pl. pdf,xls,doc). Az üres lista azt jelenti, hogy minden kiterjesztés megengedett.",
diff --git a/public/language/hu/aria.json b/public/language/hu/aria.json
index ea39fea7e9..e8fee4b22f 100644
--- a/public/language/hu/aria.json
+++ b/public/language/hu/aria.json
@@ -5,5 +5,6 @@
"profile-page-for": "Profile page for user %1",
"user-watched-tags": "Felhasználó által figyelt címkék",
"delete-upload-button": "Feltöltő gomb törlése",
- "group-page-link-for": "Csoport oldal linkje %1"
+ "group-page-link-for": "Csoport oldal linkje %1",
+ "show-crossposts": "Show Cross-posts"
}
\ No newline at end of file
diff --git a/public/language/hu/error.json b/public/language/hu/error.json
index 63e9d7f465..859581ec70 100644
--- a/public/language/hu/error.json
+++ b/public/language/hu/error.json
@@ -3,6 +3,7 @@
"invalid-json": "Érvénytelen 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": "Úgy tűnik, nem vagy bejelentkezve.",
"account-locked": "A fiókod ideiglenesen zárolva lett.",
"search-requires-login": "A kereséshez fiók szükséges - kérlek, lépj be vagy regisztrálj.",
@@ -146,6 +147,7 @@
"post-already-restored": "Ez a bejegyzés már visszaállításra került",
"topic-already-deleted": "Ezt a témakör már törlésre került",
"topic-already-restored": "Ez a témakör már helyreállításra került",
+ "topic-already-crossposted": "This topic has already been cross-posted there.",
"cant-purge-main-post": "Nem tisztíthatod ki ezt a témakört, inkább töröld",
"topic-thumbnails-are-disabled": "Témakör bélyegképek tíltásra kerültek.",
"invalid-file": "Érvénytelen fájl",
@@ -227,6 +229,7 @@
"no-topics-selected": "Nincs témakör kiválasztva",
"cant-move-to-same-topic": "Nem mozgathatsz hozzászólást azonos témakörbe!",
"cant-move-topic-to-same-category": "Nem mozgathatod a témakört azonos kategóriába!",
+ "cant-move-topic-to-from-remote-categories": "You cannot move topics in or out of remote categories; consider cross-posting instead.",
"cannot-block-self": "Nem tudod letiltani magad!",
"cannot-block-privileged": "Nem tilthatsz le adminisztrátort és moderátort",
"cannot-block-guest": "Vendégek nem tilthatnak le felhasználókat",
@@ -236,6 +239,7 @@
"socket-reconnect-failed": "Nem lehet elérni a szervert. Kattints ide az újra próbáláshoz vagy várj egy kicsit",
"invalid-plugin-id": "Érvénytelen plugin ID",
"plugin-not-whitelisted": "Ez a bővítmény nem telepíthető – csak olyan bővítmények telepíthetőek amiket a NodeBB Package Manager az ACP-n keresztül tud telepíteni",
+ "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",
diff --git a/public/language/hu/global.json b/public/language/hu/global.json
index 09f66b03df..ceaf8233f0 100644
--- a/public/language/hu/global.json
+++ b/public/language/hu/global.json
@@ -68,6 +68,7 @@
"users": "Felhasználók",
"topics": "Témakörök",
"posts": "Hozzászólások",
+ "crossposts": "Cross-posts",
"x-posts": "%1 bejegyzés",
"x-topics": "%1 témakör",
"x-reputation": "%1 reputation",
diff --git a/public/language/hu/modules.json b/public/language/hu/modules.json
index 8b50449c1d..a3544a3bf1 100644
--- a/public/language/hu/modules.json
+++ b/public/language/hu/modules.json
@@ -48,6 +48,7 @@
"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",
diff --git a/public/language/hu/social.json b/public/language/hu/social.json
index b0beb0b1cf..d5765bc529 100644
--- a/public/language/hu/social.json
+++ b/public/language/hu/social.json
@@ -8,5 +8,7 @@
"log-in-with-facebook": "Log in with Facebook",
"continue-with-facebook": "Continue with Facebook",
"sign-in-with-linkedin": "Belépés LinkedIn-el",
- "sign-up-with-linkedin": "Regisztráció LinkedIn-el"
+ "sign-up-with-linkedin": "Regisztráció LinkedIn-el",
+ "sign-in-with-wordpress": "Sign in with WordPress",
+ "sign-up-with-wordpress": "Sign up with WordPress"
}
\ No newline at end of file
diff --git a/public/language/hu/topic.json b/public/language/hu/topic.json
index 9e887e5264..dfad41e707 100644
--- a/public/language/hu/topic.json
+++ b/public/language/hu/topic.json
@@ -103,6 +103,7 @@
"thread-tools.lock": "Témakör zárolása",
"thread-tools.unlock": "Témakör feloldása",
"thread-tools.move": "Témakör áthelyezése",
+ "thread-tools.crosspost": "Crosspost Topic",
"thread-tools.move-posts": "Bejegyzések mozgatása",
"thread-tools.move-all": "Mind áthelyezése",
"thread-tools.change-owner": "Tulaj megváltoztatása",
@@ -132,6 +133,7 @@
"pin-modal-help": "Itt beállíthatod a lejárat idejét a kitűzött témaköröknek. Ha a mezőt üresen hagyod akkor témakör kitűzve marad amíg manuálisan le nem szedik.",
"load-categories": "Kategóriák betöltése",
"confirm-move": "Áthelyezés",
+ "confirm-crosspost": "Cross-post",
"confirm-fork": "Szétszedés",
"bookmark": "Könyvjelző",
"bookmarks": "Könyvjelzők",
@@ -141,6 +143,7 @@
"loading-more-posts": "További hozzászólások betöltése",
"move-topic": "Témakör áthelyezése",
"move-topics": "Témakörök áthelyezése",
+ "crosspost-topic": "Cross-post Topic",
"move-post": "Hozzászólás áthelyezése",
"post-moved": "Hozzászólás áthelyezve!",
"fork-topic": "Témakör szétszedése",
@@ -163,6 +166,9 @@
"move-topic-instruction": "Válassza ki a célkategóriát, majd kattintson az áthelyezés gombra",
"change-owner-instruction": "Kattints a bejegyzésre amelyiket hozzá szeretnéd utalni egy felhasználóhoz",
"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": "Add meg a témakör címét...",
"composer.handle-placeholder": "Adj meg egy nevet/kezelőt",
"composer.hide": "Elrejt",
diff --git a/public/language/hy/admin/dashboard.json b/public/language/hy/admin/dashboard.json
index 5e4f140474..b6eef0c2ee 100644
--- a/public/language/hy/admin/dashboard.json
+++ b/public/language/hy/admin/dashboard.json
@@ -75,6 +75,7 @@
"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": "Հյուր օգտատերեր",
diff --git a/public/language/hy/admin/manage/categories.json b/public/language/hy/admin/manage/categories.json
index 7e07ab83be..a890b90dd9 100644
--- a/public/language/hy/admin/manage/categories.json
+++ b/public/language/hy/admin/manage/categories.json
@@ -1,18 +1,22 @@
{
"manage-categories": "Կառավարեք կատեգորիաները",
"add-category": "Ավելացնել Կատեգորիա",
+ "add-local-category": "Add Local category",
+ "add-remote-category": "Add Remote category",
+ "remove": "Remove",
+ "rename": "Rename",
"jump-to": "Անցնել դեպի․․․",
"settings": "Կատեգորիայի կարգավորումներ",
"edit-category": "Խմբագրել Կատեգորիան",
"privileges": "Արտոնություններ",
"back-to-categories": "Վերադառնալ կատեգորիաներ",
+ "id": "Category ID",
"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": "Կատեգորիայի նկարագրություն",
- "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.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "Ֆոնի գույնը",
"text-color": "Տեքստի գույն ",
"bg-image-size": "Ֆոնային նկարի չափը",
@@ -103,6 +107,11 @@
"alert.create-success": "Կատեգորիան հաջողությամբ ստեղծվեց:",
"alert.none-active": "Դուք չունեք ակտիվ կատեգորիաներ:",
"alert.create": "Ստեղծել կատեգորիա",
+ "alert.add": "Add a Category",
+ "alert.add-help": "Remote categories can be added to the categories listing by specifying their handle.
Note — 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": "Վստա՞հ եք, որ ուզում եք մաքրել այս «%1» կատեգորիան: Զգուշացում: Այս կատեգորիայի բոլոր թեմաներն ու գրառումները կջնջվեն: Կատեգորիայի մաքրումը կհեռացնի բոլոր թեմաներն ու գրառումները և կջնջի կատեգորիան տվյալների բազայից: Եթե ցանկանում եք ժամանակավորապես հեռացնել կատեգորիան, փոխարենը կցանկանաք «անջատել» կատեգորիան:",
"alert.purge-success": "Կատեգորիան մաքրվել է:",
"alert.copy-success": "Կարգավորումները պատճենվեցին:",
diff --git a/public/language/hy/admin/settings/activitypub.json b/public/language/hy/admin/settings/activitypub.json
index 94f9ad7822..5ab4fa43e8 100644
--- a/public/language/hy/admin/settings/activitypub.json
+++ b/public/language/hy/admin/settings/activitypub.json
@@ -18,6 +18,28 @@
"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.
N.B. 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 # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
+ "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 /actor.",
+ "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 %1 server(s)",
"server.filter-help": "Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively allow federation with specific servers, instead. Both options are supported, although they are mutually exclusive.",
diff --git a/public/language/hy/admin/settings/uploads.json b/public/language/hy/admin/settings/uploads.json
index 6fa6f789fa..388ddc3c09 100644
--- a/public/language/hy/admin/settings/uploads.json
+++ b/public/language/hy/admin/settings/uploads.json
@@ -22,6 +22,7 @@
"reject-image-height": "Նկարի առավելագույն բարձրությունը (պիքսելներով)",
"reject-image-height-help": "Այս արժեքից բարձր նկարները կմերժվեն:",
"allow-topic-thumbnails": "Թույլ տվեք օգտատերերին վերբեռնել թեմայի մանրապատկերները",
+ "show-post-uploads-as-thumbnails": "Show post uploads as thumbnails",
"topic-thumb-size": "Թեմայի Thumb չափ",
"allowed-file-extensions": "Թույլատրված ֆայլերի ընդարձակումներ",
"allowed-file-extensions-help": "Մուտքագրեք ստորակետերով բաժանված ֆայլերի ընդարձակման ցանկն այստեղ (օրինակ՝ pdf, xls, doc): Դատարկ ցուցակը նշանակում է, որ բոլոր ընդլայնումները թույլատրված են:",
diff --git a/public/language/hy/aria.json b/public/language/hy/aria.json
index 8e2c565c82..ec7889d2f4 100644
--- a/public/language/hy/aria.json
+++ b/public/language/hy/aria.json
@@ -5,5 +5,6 @@
"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"
+ "group-page-link-for": "Group page link for %1",
+ "show-crossposts": "Show Cross-posts"
}
\ No newline at end of file
diff --git a/public/language/hy/error.json b/public/language/hy/error.json
index 553a5f00b4..29adcb6fe0 100644
--- a/public/language/hy/error.json
+++ b/public/language/hy/error.json
@@ -3,6 +3,7 @@
"invalid-json": "Անվավեր JSON",
"wrong-parameter-type": "«%1» հատկության համար սպասվում էր %3 տիպի արժեք, բայց փոխարենը ստացվեց %2",
"required-parameters-missing": "Պահանջվող պարամետրերը բացակայում էին այս API զանգից՝ %1",
+ "reserved-ip-address": "Network requests to reserved IP ranges are not allowed.",
"not-logged-in": "Դուք, կարծես, մուտք չեք գործել:",
"account-locked": "Ձեր հաշիվը ժամանակավորապես արգելափակվել է",
"search-requires-login": "Որոնումը պահանջում է հաշիվ. խնդրում ենք մուտք գործել կամ գրանցվել:",
@@ -146,6 +147,7 @@
"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": "Անվավեր ֆայլ",
@@ -227,6 +229,7 @@
"no-topics-selected": "Ընտրված թեմաներ չկան:",
"cant-move-to-same-topic": "Հնարավոր չէ հաղորդագրությունը տեղափոխել նույն թեմա:",
"cant-move-topic-to-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": "Դուք չեք կարող արգելափակել ինքներդ ձեզ:",
"cannot-block-privileged": "Դուք չեք կարող արգելափակել ադմինիստրատորներին կամ ընդհանուր մոդերատորներին",
"cannot-block-guest": "Հյուրը չի կարող արգելափակել այլ օգտատերին",
@@ -236,6 +239,7 @@
"socket-reconnect-failed": "Այս պահին հնարավոր չէ միանալ սերվերին: Սեղմեք այստեղ՝ նորից փորձելու համար, կամ ավելի ուշ նորից փորձեք",
"invalid-plugin-id": "Invalid plugin ID",
"plugin-not-whitelisted": "Հնարավոր չէ տեղադրել plugin – ACP-ի միջոցով կարող են տեղադրվել միայն NodeBB Package Manager-ի կողմից սպիտակ ցուցակում ներառված պլագինները",
+ "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": "Ձեզ չի թույլատրվում փոխել plugin-ի վիճակը, քանի որ դրանք սահմանված են գործարկման ժամանակ (config.json, շրջակա միջավայրի փոփոխականներ կամ տերմինալի արգումենտներ), փոխարենը փոխեք կազմաձևը:",
"theme-not-set-in-configuration": "Կազմաձևում ակտիվ պլագիններ սահմանելիս, թեմաները փոխելիս անհրաժեշտ է ավելացնել նոր թեման ակտիվ հավելումների ցանկում՝ նախքան այն թարմացնելը ACP-ում:",
diff --git a/public/language/hy/global.json b/public/language/hy/global.json
index f3a6813f6b..07593edddb 100644
--- a/public/language/hy/global.json
+++ b/public/language/hy/global.json
@@ -68,6 +68,7 @@
"users": "Օգտվողներ",
"topics": "Թեմաներ",
"posts": "Գրառումներ",
+ "crossposts": "Cross-posts",
"x-posts": "%1 գրառումներ",
"x-topics": "%1 թեմաներ",
"x-reputation": "%1 հեղինակություն",
diff --git a/public/language/hy/modules.json b/public/language/hy/modules.json
index 2de14aeb1e..381dcdfa51 100644
--- a/public/language/hy/modules.json
+++ b/public/language/hy/modules.json
@@ -48,6 +48,7 @@
"chat.add-user": "Ավելացնել օգտատեր",
"chat.notification-settings": "Ծանուցման կարգավորումներ",
"chat.default-notification-setting": "Ծանուցման հիմնական կարգավորումներ",
+ "chat.join-leave-messages": "Join/Leave Messages",
"chat.notification-setting-room-default": "Սենյակի հիմնական վիճակ",
"chat.notification-setting-none": "Ծանուցումներ չկան",
"chat.notification-setting-at-mention-only": "@նշում միայն",
diff --git a/public/language/hy/social.json b/public/language/hy/social.json
index 1f88d125ba..e54b7c8a69 100644
--- a/public/language/hy/social.json
+++ b/public/language/hy/social.json
@@ -8,5 +8,7 @@
"log-in-with-facebook": "Մուտք գործեք Facebook-ով",
"continue-with-facebook": "Շարունակեք Facebook-ով",
"sign-in-with-linkedin": "Մուտք գործեք LinkedIn-ով",
- "sign-up-with-linkedin": "Գրանցվեք LinkedIn-ով"
+ "sign-up-with-linkedin": "Գրանցվեք LinkedIn-ով",
+ "sign-in-with-wordpress": "Sign in with WordPress",
+ "sign-up-with-wordpress": "Sign up with WordPress"
}
\ No newline at end of file
diff --git a/public/language/hy/topic.json b/public/language/hy/topic.json
index fc8d08db95..1fe2851d2f 100644
--- a/public/language/hy/topic.json
+++ b/public/language/hy/topic.json
@@ -103,6 +103,7 @@
"thread-tools.lock": "Փակել թեման",
"thread-tools.unlock": "Վերաբացել թեման",
"thread-tools.move": "Տեղափոխել թեման",
+ "thread-tools.crosspost": "Crosspost Topic",
"thread-tools.move-posts": "Տեղափոխել գրառումները",
"thread-tools.move-all": "Տեղափոխել բոլորը",
"thread-tools.change-owner": "Փոխել սեփականատիրոջը",
@@ -132,6 +133,7 @@
"pin-modal-help": "Դուք կարող եք ըստ ցանկության սահմանել ամրացված թեմայի (թեմայի) պիտանելիության ժամկետը այստեղ: Որպես այլընտրանք, դուք կարող եք թողնել այս դաշտը դատարկ, որպեսզի թեման մնա ամրացված, մինչև այն ձեռքով չապամրացվի:",
"load-categories": "Կատեգորիաների բեռնում",
"confirm-move": "Տեղափոխել",
+ "confirm-crosspost": "Cross-post",
"confirm-fork": "Մասնատել",
"bookmark": "Էջանիշ",
"bookmarks": "Էջանիշեր",
@@ -141,6 +143,7 @@
"loading-more-posts": "Լրացուցիչ գրառումների բեռնում",
"move-topic": "Տեղափոխել թեման",
"move-topics": "Տեղափոխել թեմաները",
+ "crosspost-topic": "Cross-post Topic",
"move-post": "Տեղափոխել գրառումը",
"post-moved": "Գրառումը տեղափոխված է։",
"fork-topic": "Մասնատել թեման",
@@ -163,6 +166,9 @@
"move-topic-instruction": "Ընտրեք թիրախային կատեգորիան և սեղմեք «Տեղափոխել»:",
"change-owner-instruction": "Սեղմեք այն գրառումները, որոնք ցանկանում եք վերագրել մեկ այլ օգտատիրոջ",
"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": "Մուտքագրեք ձեր անունը/բռնակը այստեղ",
"composer.hide": "Թաքցնել",
diff --git a/public/language/id/admin/dashboard.json b/public/language/id/admin/dashboard.json
index 6ad973f5f3..0be6d5866c 100644
--- a/public/language/id/admin/dashboard.json
+++ b/public/language/id/admin/dashboard.json
@@ -75,6 +75,7 @@
"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",
diff --git a/public/language/id/admin/manage/categories.json b/public/language/id/admin/manage/categories.json
index f51152f22d..cdb3e1f356 100644
--- a/public/language/id/admin/manage/categories.json
+++ b/public/language/id/admin/manage/categories.json
@@ -1,18 +1,22 @@
{
"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",
- "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.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "Background Colour",
"text-color": "Text Colour",
"bg-image-size": "Background Image Size",
@@ -103,6 +107,11 @@
"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.
Note — 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": "
Do you really want to purge this category \"%1\"?
Warning! All topics and posts in this category will be purged!
Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.
",
"alert.purge-success": "Category purged!",
"alert.copy-success": "Settings Copied!",
diff --git a/public/language/id/admin/settings/activitypub.json b/public/language/id/admin/settings/activitypub.json
index 94f9ad7822..5ab4fa43e8 100644
--- a/public/language/id/admin/settings/activitypub.json
+++ b/public/language/id/admin/settings/activitypub.json
@@ -18,6 +18,28 @@
"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.
N.B. 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 # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
+ "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 /actor.",
+ "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 %1 server(s)",
"server.filter-help": "Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively allow federation with specific servers, instead. Both options are supported, although they are mutually exclusive.",
diff --git a/public/language/id/admin/settings/uploads.json b/public/language/id/admin/settings/uploads.json
index 22046915d9..e91a7bee36 100644
--- a/public/language/id/admin/settings/uploads.json
+++ b/public/language/id/admin/settings/uploads.json
@@ -22,6 +22,7 @@
"reject-image-height": "Maximum Image Height (in pixels)",
"reject-image-height-help": "Images taller than this value will be rejected.",
"allow-topic-thumbnails": "Allow users to upload topic thumbnails",
+ "show-post-uploads-as-thumbnails": "Show post uploads as thumbnails",
"topic-thumb-size": "Topic Thumb Size",
"allowed-file-extensions": "Allowed File Extensions",
"allowed-file-extensions-help": "Enter comma-separated list of file extensions here (e.g. pdf,xls,doc). An empty list means all extensions are allowed.",
diff --git a/public/language/id/aria.json b/public/language/id/aria.json
index 8e2c565c82..ec7889d2f4 100644
--- a/public/language/id/aria.json
+++ b/public/language/id/aria.json
@@ -5,5 +5,6 @@
"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"
+ "group-page-link-for": "Group page link for %1",
+ "show-crossposts": "Show Cross-posts"
}
\ No newline at end of file
diff --git a/public/language/id/error.json b/public/language/id/error.json
index 7cc7b20821..314ef3bfbd 100644
--- a/public/language/id/error.json
+++ b/public/language/id/error.json
@@ -3,6 +3,7 @@
"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": "Kamu terlihat belum login",
"account-locked": "Akun kamu dikunci sementara",
"search-requires-login": "Searching requires an account - please login or register.",
@@ -146,6 +147,7 @@
"post-already-restored": "Postingan ini sudah direstore",
"topic-already-deleted": "Topik ini sudah dihapus",
"topic-already-restored": "Topik ini sudah direstore",
+ "topic-already-crossposted": "This topic has already been cross-posted there.",
"cant-purge-main-post": "You can't purge the main post, please delete the topic instead",
"topic-thumbnails-are-disabled": "Thumbnail di topik ditiadakan",
"invalid-file": "File Salah",
@@ -227,6 +229,7 @@
"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",
@@ -236,6 +239,7 @@
"socket-reconnect-failed": "Unable to reach the server at this time. Click here to try again, or try again later",
"invalid-plugin-id": "Invalid plugin ID",
"plugin-not-whitelisted": "Unable to install plugin – only plugins whitelisted by the NodeBB Package Manager can be installed via the ACP",
+ "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",
diff --git a/public/language/id/global.json b/public/language/id/global.json
index 65c9c601c9..e73f120804 100644
--- a/public/language/id/global.json
+++ b/public/language/id/global.json
@@ -68,6 +68,7 @@
"users": "Pengguna",
"topics": "Topik",
"posts": "Post",
+ "crossposts": "Cross-posts",
"x-posts": "%1 posts",
"x-topics": "%1 topics",
"x-reputation": "%1 reputation",
diff --git a/public/language/id/modules.json b/public/language/id/modules.json
index 5b15156ff3..86afe16b09 100644
--- a/public/language/id/modules.json
+++ b/public/language/id/modules.json
@@ -48,6 +48,7 @@
"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",
diff --git a/public/language/id/social.json b/public/language/id/social.json
index 2ba690a187..5b8dd99a46 100644
--- a/public/language/id/social.json
+++ b/public/language/id/social.json
@@ -8,5 +8,7 @@
"log-in-with-facebook": "Log in with Facebook",
"continue-with-facebook": "Continue with Facebook",
"sign-in-with-linkedin": "Sign in with LinkedIn",
- "sign-up-with-linkedin": "Sign up 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"
}
\ No newline at end of file
diff --git a/public/language/id/topic.json b/public/language/id/topic.json
index 7483052649..599fd67b52 100644
--- a/public/language/id/topic.json
+++ b/public/language/id/topic.json
@@ -103,6 +103,7 @@
"thread-tools.lock": "Kunci Topik",
"thread-tools.unlock": "Lepas Topik",
"thread-tools.move": "Pindah Topik",
+ "thread-tools.crosspost": "Crosspost Topic",
"thread-tools.move-posts": "Move Posts",
"thread-tools.move-all": "Pindah Semua",
"thread-tools.change-owner": "Change Owner",
@@ -132,6 +133,7 @@
"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": "Memuat Kategori",
"confirm-move": "Pindah",
+ "confirm-crosspost": "Cross-post",
"confirm-fork": "Cabangkan",
"bookmark": "Bookmark",
"bookmarks": "Bookmarks",
@@ -141,6 +143,7 @@
"loading-more-posts": "Memuat Lebih Banyak Posting",
"move-topic": "Pindahkan Topik",
"move-topics": "Pindahkan Beberapa Topik",
+ "crosspost-topic": "Cross-post Topic",
"move-post": "Pindahkan Posting",
"post-moved": "Posting dipindahkan!",
"fork-topic": "Cabangkan Topik",
@@ -163,6 +166,9 @@
"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": "Masukkan judul topik di sini...",
"composer.handle-placeholder": "Enter your name/handle here",
"composer.hide": "Hide",
diff --git a/public/language/it/admin/dashboard.json b/public/language/it/admin/dashboard.json
index 691b2914e7..ceaff8c06e 100644
--- a/public/language/it/admin/dashboard.json
+++ b/public/language/it/admin/dashboard.json
@@ -75,6 +75,7 @@
"graphs.page-views-registered": "Pagine viste Registrati",
"graphs.page-views-guest": "Pagine viste Ospite",
"graphs.page-views-bot": "Pagine viste Bot",
+ "graphs.page-views-ap": "Visualizzazioni della pagina ActivityPub",
"graphs.unique-visitors": "Visitatori Unici",
"graphs.registered-users": "Utenti Registrati",
"graphs.guest-users": "Utenti ospiti",
diff --git a/public/language/it/admin/manage/categories.json b/public/language/it/admin/manage/categories.json
index 6ff6e53395..5b081acb6a 100644
--- a/public/language/it/admin/manage/categories.json
+++ b/public/language/it/admin/manage/categories.json
@@ -1,18 +1,22 @@
{
"manage-categories": "Gestisci categorie",
"add-category": "Aggiungi categoria",
+ "add-local-category": "Aggiungi categoria locale",
+ "add-remote-category": "Aggiungi categoria remota",
+ "remove": "Rimuovi",
+ "rename": "Rinomina",
"jump-to": "Vai a...",
"settings": "Impostazioni Categoria",
"edit-category": "Modifica categoria",
"privileges": "Privilegi",
"back-to-categories": "Torna alle categorie",
+ "id": "ID Categoria",
"name": "Nome Categoria",
"handle": "Pseudonimo categoria",
"handle.help": "Lo pseudonimo della categoria è utilizzato come rappresentazione di questa categoria in altre reti, in modo simile a un nome utente. Lo pseudonimo di una categoria non deve corrispondere a un nome utente o a un gruppo di utenti esistenti.",
"description": "Descrizione categoria",
- "federatedDescription": "Descrizione federazione",
- "federatedDescription.help": "Questo testo sarà aggiunto alla descrizione della categoria quando interrogato da altri siti web/app.",
- "federatedDescription.default": "Questa è una categoria del forum che contiene discussioni di attualità. Puoi iniziare nuove discussioni menzionando questa categoria.",
+ "topic-template": "Modello discussione",
+ "topic-template.help": "Definisci un modello per le nuove discussioni create in questa categoria.",
"bg-color": "Colore sfondo",
"text-color": "Colore testo",
"bg-image-size": "Dimensione dell'immagine di sfondo",
@@ -103,6 +107,11 @@
"alert.create-success": "Categoria creata con successo!",
"alert.none-active": "Hai una categoria non attiva.",
"alert.create": "Crea una Categoria",
+ "alert.add": "Aggiungi una categoria",
+ "alert.add-help": "Le categorie remote possono essere aggiunte all'elenco delle categorie specificando il loro identificatore.
Nota — La categoria remota potrebbe non riflettere tutte le discussioni pubblicate a meno che almeno un utente locale non ne tenga traccia.",
+ "alert.rename": "Rinomina una categoria remota",
+ "alert.rename-help": "Inserisci un nuovo nome per questa categoria. Lascialo vuoto per ripristinare il nome originale.",
+ "alert.confirm-remove": "Vuoi davvero rimuovere questa categoria? Puoi aggiungerla di nuovo in qualsiasi momento.",
"alert.confirm-purge": "
Vuoi davvero eliminare definitivamente questa categoria \"%1\"?
Attenzione!Tutte le discussioni e i post in questa categoria saranno eliminati definitivamente!
Eliminare definitivamente una categoria rimuoverà tutte le discussioni e i post ed eliminerà la categoria dal database. Se vuoi rimuovere una categoria temporaneamente, puoi invece \"disabilitare\" la categoria.",
"alert.purge-success": "Categoria eliminata definitivamente!",
"alert.copy-success": "Impostazioni copiate!",
diff --git a/public/language/it/admin/manage/users.json b/public/language/it/admin/manage/users.json
index 689d129570..9f6a986e84 100644
--- a/public/language/it/admin/manage/users.json
+++ b/public/language/it/admin/manage/users.json
@@ -59,7 +59,7 @@
"users.no-email": "(nessuna email)",
"users.validated": "Convalidato",
"users.not-validated": "Non convalidato",
- "users.validation-pending": "In attesa di convalida",
+ "users.validation-pending": "Validazione in sospeso",
"users.validation-expired": "Convalida scaduta",
"users.ip": "IP",
"users.postcount": "numero di post",
diff --git a/public/language/it/admin/settings/activitypub.json b/public/language/it/admin/settings/activitypub.json
index 23c19f82e1..faaf555e92 100644
--- a/public/language/it/admin/settings/activitypub.json
+++ b/public/language/it/admin/settings/activitypub.json
@@ -18,6 +18,28 @@
"probe-timeout": "Timeout di ricerca (millisecondi)",
"probe-timeout-help": "(Predefinito: 2000) Se la query di ricerca non riceve una risposta entro l'intervallo di tempo impostato, l'utente l'utente sarà indirizzato direttamente al link. Aumenta questo numero se i siti rispondono lentamente e desideri concedere più tempo.",
+ "rules": "Categorizzazione",
+ "rules-intro": "I contenuti scoperti tramite ActivityPub possono essere categorizzati automaticamente in base a determinate regole (ad es. hashtag)",
+ "rules.modal.title": "Come funziona",
+ "rules.modal.instructions": "Tutti i contenuti in arrivo sono controllati in base a queste regole di categorizzazione e i contenuti corrispondenti sono automaticamente spostati nella categoria scelta.
N.B. Contenuti già categorizzati (ad es. in una categoria remota) non passerà attraverso queste regole.",
+ "rules.add": "Aggiungi nuova regola",
+ "rules.help-hashtag": "Le discussioni contenenti questo hashtag senza distinzione tra maiuscole e minuscole corrisponderanno. Non inserire il simbolo #",
+ "rules.help-user": "Le discussioni create dall'utente inserito corrisponderanno. Inserisci un nome utente o un ID completo (ad es. bob@example.org or https://example.org/users/bob.",
+ "rules.type": "Tipo",
+ "rules.value": "Valore",
+ "rules.cid": "Categoria",
+
+ "relays": "Relè",
+ "relays.intro": "Un relè migliora la scoperta dei contenuti da e verso il tuo NodeBB. Iscriversi a un relè significa che i contenuti ricevuti dal relè vengono inoltrati qui, e i contenuti pubblicati qui vengono distribuiti all'esterno dal relè.",
+ "relays.warning": "Nota: I relè possono inviare grandi quantità di traffico e potrebbero far aumentare i costi di archiviazione ed elaborazione.",
+ "relays.litepub": "NodeBB segue lo standard del relè in stile LitePub. L'URL inserito deve terminare con /actor.",
+ "relays.add": "Aggiungi nuovo relè",
+ "relays.relay": "Relè",
+ "relays.state": "Stato",
+ "relays.state-0": "In sospeso",
+ "relays.state-1": "Solo ricezione",
+ "relays.state-2": "Attivo",
+
"server-filtering": "Filtraggio",
"count": "Questo NodeBB è attualmente a conoscenza di %1 server",
"server.filter-help": "Specifica i server a cui desideri impedire la federazione con il tuo NodeBB. In alternativa, puoi scegliere di consentire in modo selettivo la federazione con server specifici. Entrambe le opzioni sono supportate, anche se si escludono a vicenda.",
diff --git a/public/language/it/admin/settings/uploads.json b/public/language/it/admin/settings/uploads.json
index a2ba8602e9..d40563b47f 100644
--- a/public/language/it/admin/settings/uploads.json
+++ b/public/language/it/admin/settings/uploads.json
@@ -22,6 +22,7 @@
"reject-image-height": "Lunghezza Massima Immagine (in pixel)",
"reject-image-height-help": "Le immagini più alte di questo valore saranno rifiutate.",
"allow-topic-thumbnails": "Consenti agli utenti di caricare le miniature degli argomenti",
+ "show-post-uploads-as-thumbnails": "Mostra i post caricati come miniature",
"topic-thumb-size": "Dimensione miniatura Argomento",
"allowed-file-extensions": "Abilita Estensioni File",
"allowed-file-extensions-help": "Inserisci una lista di estensioni separati da virgola quì (es. pdf,xls,doc). Una lista vuota indica che tutte le estensioni sono abilitate.",
diff --git a/public/language/it/aria.json b/public/language/it/aria.json
index 4f891a009f..9b5eda125f 100644
--- a/public/language/it/aria.json
+++ b/public/language/it/aria.json
@@ -5,5 +5,6 @@
"profile-page-for": "Pagina del profilo dell'utente %1",
"user-watched-tags": "Tag seguiti dall'utente",
"delete-upload-button": "Pulsante annulla caricamento",
- "group-page-link-for": "Link alla pagina del gruppo per %1"
+ "group-page-link-for": "Link alla pagina del gruppo per %1",
+ "show-crossposts": "Show Cross-posts"
}
\ No newline at end of file
diff --git a/public/language/it/error.json b/public/language/it/error.json
index 1b862ddede..aac05e3ae5 100644
--- a/public/language/it/error.json
+++ b/public/language/it/error.json
@@ -3,12 +3,13 @@
"invalid-json": "JSON non valido",
"wrong-parameter-type": "Era previsto un valore di tipo %3 per la proprietà '%1', ma invece è stato ricevuto %2",
"required-parameters-missing": "I parametri richiesti sono mancanti in questa chiamata API: %1",
+ "reserved-ip-address": "Le richieste di rete agli intervalli IP riservati non sono consentite.",
"not-logged-in": "Non sembra che tu abbia effettuato l'accesso.",
"account-locked": "Il tuo account è stato bloccato temporaneamente",
"search-requires-login": "La ricerca richiede un account! Si prega di effettuare l'accesso o registrarsi!",
"goback": "Premi indietro per tornare alla pagina precedente",
"invalid-cid": "ID Categoria non valido",
- "invalid-tid": "ID Topic non valido",
+ "invalid-tid": "ID discussione non valido",
"invalid-pid": "ID Post non valido",
"invalid-uid": "ID Utente non valido",
"invalid-mid": "ID messaggio chat non valido",
@@ -144,8 +145,9 @@
"gorup-user-not-invited": "L'utente non è stato invitato a far parte di questo gruppo.",
"post-already-deleted": "Questo post è già stato eliminato",
"post-already-restored": "Questo post è già stato ripristinato",
- "topic-already-deleted": "Questo topic è già stato eliminato",
- "topic-already-restored": "Questo Topic è già stato ripristinato",
+ "topic-already-deleted": "Questa discussione è già stata eliminata",
+ "topic-already-restored": "Questa discussione è già stata ripristinata",
+ "topic-already-crossposted": "This topic has already been cross-posted there.",
"cant-purge-main-post": "Non puoi eliminare definitivamente il post principale, per favore elimina invece la discussione",
"topic-thumbnails-are-disabled": "Le miniature della Discussione sono disabilitate.",
"invalid-file": "File non valido",
@@ -227,6 +229,7 @@
"no-topics-selected": "Nessuna discussione selezionata!",
"cant-move-to-same-topic": "Non puoi spostare il post nella stessa discussione!",
"cant-move-topic-to-same-category": "Non si può spostare la discussione nella stessa categoria!",
+ "cant-move-topic-to-from-remote-categories": "You cannot move topics in or out of remote categories; consider cross-posting instead.",
"cannot-block-self": "Non puoi auto bloccarti!",
"cannot-block-privileged": "Impossibile bloccare amministratori o moderatori globali",
"cannot-block-guest": "Gli Ospiti non sono in grado di bloccare altri utenti",
@@ -236,6 +239,7 @@
"socket-reconnect-failed": "Impossibile raggiungere il server al momento. Clicca qui per riprovare o riprova in un secondo momento",
"invalid-plugin-id": "ID plugin non valido",
"plugin-not-whitelisted": "Impossibile installare il plug-in & solo i plugin nella whitelist del Gestione Pacchetti di NodeBB possono essere installati tramite ACP",
+ "cannot-toggle-system-plugin": "Non puoi attivare/disattivare lo stato di un plugin di sistema.",
"plugin-installation-via-acp-disabled": "L'installazione dei plugin tramite ACP è disabilitata",
"plugins-set-in-configuration": "Non è possibile modificare lo stato dei plugin, poiché sono definiti in fase di esecuzione. (config.json, variabili ambientali o argomenti del terminale); modificare invece la configurazione.",
"theme-not-set-in-configuration": "Quando si definiscono i plugin attivi nella configurazione, la modifica dei temi richiede l'aggiunta del nuovo tema all'elenco dei plugin attivi prima di aggiornarlo nell'ACP",
diff --git a/public/language/it/global.json b/public/language/it/global.json
index 23c607afac..69d766ee34 100644
--- a/public/language/it/global.json
+++ b/public/language/it/global.json
@@ -68,6 +68,7 @@
"users": "Utenti",
"topics": "Discussioni",
"posts": "Post",
+ "crossposts": "Cross-posts",
"x-posts": "%1 post",
"x-topics": "%1 discussioni",
"x-reputation": "%1 reputazione",
diff --git a/public/language/it/modules.json b/public/language/it/modules.json
index 2646ad5d5f..c5b60f5c4b 100644
--- a/public/language/it/modules.json
+++ b/public/language/it/modules.json
@@ -48,6 +48,7 @@
"chat.add-user": "Aggiungi utente",
"chat.notification-settings": "Impostazioni di notifica",
"chat.default-notification-setting": "Impostazioni di notifica predefinite",
+ "chat.join-leave-messages": "Messaggi di iscrizione/uscita",
"chat.notification-setting-room-default": "Stanza predefinita",
"chat.notification-setting-none": "Nessuna notifica",
"chat.notification-setting-at-mention-only": "@solo menzione",
diff --git a/public/language/it/social.json b/public/language/it/social.json
index 4fb4c6bd3e..6868cad941 100644
--- a/public/language/it/social.json
+++ b/public/language/it/social.json
@@ -8,5 +8,7 @@
"log-in-with-facebook": "Accedi con Facebook",
"continue-with-facebook": "Continua con Facebook",
"sign-in-with-linkedin": "Accedi con LinkedIn",
- "sign-up-with-linkedin": "Registrati con LinkedIn"
+ "sign-up-with-linkedin": "Registrati con LinkedIn",
+ "sign-in-with-wordpress": "Accedi con WordPress",
+ "sign-up-with-wordpress": "Iscriviti a WordPress"
}
\ No newline at end of file
diff --git a/public/language/it/topic.json b/public/language/it/topic.json
index bf3382d63a..96f61aa439 100644
--- a/public/language/it/topic.json
+++ b/public/language/it/topic.json
@@ -16,7 +16,7 @@
"one-reply-to-this-post": "1 Risposta",
"last-reply-time": "Ultima Risposta",
"reply-options": "Opzioni di risposta",
- "reply-as-topic": "Topic risposta",
+ "reply-as-topic": "Risposta alla discussione",
"guest-login-reply": "Effettua l'accesso per rispondere",
"login-to-view": "Accedi per visualizzare",
"edit": "Modifica",
@@ -103,6 +103,7 @@
"thread-tools.lock": "Blocca Discussione",
"thread-tools.unlock": "Sblocca Discussione",
"thread-tools.move": "Sposta Discussione",
+ "thread-tools.crosspost": "Crosspost Topic",
"thread-tools.move-posts": "Sposta Post",
"thread-tools.move-all": "Sposta Tutto",
"thread-tools.change-owner": "Cambia proprietario",
@@ -132,6 +133,7 @@
"pin-modal-help": "Facoltativamente, è possibile impostare una data di scadenza per le discussioni fissate qui. In alternativa, è possibile lasciare vuoto questo campo per mantenere la discussione fissata fino a quando non viene liberata manualmente.",
"load-categories": "Caricamento Categorie",
"confirm-move": "Sposta",
+ "confirm-crosspost": "Cross-post",
"confirm-fork": "Dividi",
"bookmark": "Favorito",
"bookmarks": "Segnalibri",
@@ -141,6 +143,7 @@
"loading-more-posts": "Caricamento altri post",
"move-topic": "Sposta Discussione",
"move-topics": "Sposta Discussioni",
+ "crosspost-topic": "Cross-post Topic",
"move-post": "Sposta Post",
"post-moved": "Post spostato!",
"fork-topic": "Dividi Discussione",
@@ -151,7 +154,7 @@
"x-posts-selected": "%1 post selezionato(i)",
"x-posts-will-be-moved-to-y": "%1 post sarà(anno) spostato(i) in \"%2\"",
"fork-pid-count": "%1 post selezionati",
- "fork-success": "Topic Diviso con successo ! Clicca qui per andare al Topic Diviso.",
+ "fork-success": "Discussione divisa con successo ! Clicca qui per andare alla discussione divisa.",
"delete-posts-instruction": "Clicca sui post che vuoi eliminare/eliminare definitivamente",
"merge-topics-instruction": "Clicca sulle discussioni che vuoi unire o cercare",
"merge-topic-list-title": "Elenco delle discussioni da unire",
@@ -163,6 +166,9 @@
"move-topic-instruction": "Seleziona la categoria di destinazione e fai clic su sposta",
"change-owner-instruction": "Clicca sui post che vuoi assegnare ad un altro utente",
"manage-editors-instruction": "Gestisci gli utenti che possono modificare questo post qui sotto.",
+ "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": "Inserisci qui il titolo della discussione...",
"composer.handle-placeholder": "Inserisci qui il tuo nome/pseudonimo",
"composer.hide": "Nascondi",
@@ -194,7 +200,7 @@
"most-posts": "Più Post",
"most-views": "Più visualizzazioni",
"stale.title": "Preferisci creare una nuova discussione?",
- "stale.warning": "Il topic al quale stai rispondendo è abbastanza vecchio. Vorresti piuttosto creare un nuovo topic in riferimento a questo nella tua risposta?",
+ "stale.warning": "La discussione alla quale stai rispondendo è piuttosto vecchia. Vorresti invece creare una nuova discussione e fare riferimento a questa nella tua risposta?",
"stale.create": "Crea una nuova discussione",
"stale.reply-anyway": "Rispondi comunque a questa discussione",
"link-back": "Re: [%1](%2)",
diff --git a/public/language/ja/admin/dashboard.json b/public/language/ja/admin/dashboard.json
index 60e2fad225..f9354ce880 100644
--- a/public/language/ja/admin/dashboard.json
+++ b/public/language/ja/admin/dashboard.json
@@ -75,6 +75,7 @@
"graphs.page-views-registered": "ページビュー登録済み",
"graphs.page-views-guest": "ページビューゲスト",
"graphs.page-views-bot": "ページビューBot",
+ "graphs.page-views-ap": "ActivityPub Page Views",
"graphs.unique-visitors": "ユニークな訪問者",
"graphs.registered-users": "登録したユーザー",
"graphs.guest-users": "Guest Users",
diff --git a/public/language/ja/admin/manage/categories.json b/public/language/ja/admin/manage/categories.json
index 0044cf2f6d..560eb4b239 100644
--- a/public/language/ja/admin/manage/categories.json
+++ b/public/language/ja/admin/manage/categories.json
@@ -1,18 +1,22 @@
{
"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": "カテゴリ名",
"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": "カテゴリの説明",
- "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.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "背景色",
"text-color": "テキストカラー",
"bg-image-size": "背景画像サイズ",
@@ -103,6 +107,11 @@
"alert.create-success": "カテゴリが正常に作成されました!",
"alert.none-active": "アクティブなカテゴリがありません。",
"alert.create": "カテゴリを作成",
+ "alert.add": "Add a Category",
+ "alert.add-help": "Remote categories can be added to the categories listing by specifying their handle.
Note — 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": "
",
"alert.purge-success": "カテゴリが切り離されました!",
"alert.copy-success": "設定をコピーしました。",
diff --git a/public/language/ja/admin/settings/activitypub.json b/public/language/ja/admin/settings/activitypub.json
index 94f9ad7822..5ab4fa43e8 100644
--- a/public/language/ja/admin/settings/activitypub.json
+++ b/public/language/ja/admin/settings/activitypub.json
@@ -18,6 +18,28 @@
"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.
N.B. 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 # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
+ "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 /actor.",
+ "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 %1 server(s)",
"server.filter-help": "Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively allow federation with specific servers, instead. Both options are supported, although they are mutually exclusive.",
diff --git a/public/language/ja/admin/settings/uploads.json b/public/language/ja/admin/settings/uploads.json
index 84b216ba93..1e7ff65241 100644
--- a/public/language/ja/admin/settings/uploads.json
+++ b/public/language/ja/admin/settings/uploads.json
@@ -22,6 +22,7 @@
"reject-image-height": "Maximum Image Height (in pixels)",
"reject-image-height-help": "Images taller than this value will be rejected.",
"allow-topic-thumbnails": "ユーザーがスレッドのサムネイルをアップロードできるようにする",
+ "show-post-uploads-as-thumbnails": "Show post uploads as thumbnails",
"topic-thumb-size": "スレッドのサムネイルの大きさ",
"allowed-file-extensions": "ファイル拡張子が有効になりました。",
"allowed-file-extensions-help": "ここにファイル拡張子のカンマ区切りリストを入力します(例: pdf,xls,doc code>)。空のリストは、すべての拡張が許可されていることを意味します。",
diff --git a/public/language/ja/aria.json b/public/language/ja/aria.json
index 8e2c565c82..ec7889d2f4 100644
--- a/public/language/ja/aria.json
+++ b/public/language/ja/aria.json
@@ -5,5 +5,6 @@
"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"
+ "group-page-link-for": "Group page link for %1",
+ "show-crossposts": "Show Cross-posts"
}
\ No newline at end of file
diff --git a/public/language/ja/error.json b/public/language/ja/error.json
index ce848d8b34..130607f24a 100644
--- a/public/language/ja/error.json
+++ b/public/language/ja/error.json
@@ -3,6 +3,7 @@
"invalid-json": "無効な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": "検索するにはアカウントが必要です - ログインするかアカウントを作成してください。",
@@ -146,6 +147,7 @@
"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": "無効なファイル",
@@ -227,6 +229,7 @@
"no-topics-selected": "スレッドが選択されていません!!",
"cant-move-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": "自分をブロックすることは出来ません!",
"cannot-block-privileged": "管理者またはグローバルモデレーターはブロックできません",
"cannot-block-guest": "ゲストは他のユーザーをブロックできません",
@@ -236,6 +239,7 @@
"socket-reconnect-failed": "Unable to reach the server at this time. Click here to try again, or try again later",
"invalid-plugin-id": "Invalid plugin ID",
"plugin-not-whitelisted": "Unable to install plugin – only plugins whitelisted by the NodeBB Package Manager can be installed via the ACP",
+ "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",
diff --git a/public/language/ja/global.json b/public/language/ja/global.json
index eb6ce87591..68d0b4d88d 100644
--- a/public/language/ja/global.json
+++ b/public/language/ja/global.json
@@ -68,6 +68,7 @@
"users": "ユーザー",
"topics": "スレッド",
"posts": "投稿",
+ "crossposts": "Cross-posts",
"x-posts": "%1 posts",
"x-topics": "%1 topics",
"x-reputation": "%1 reputation",
diff --git a/public/language/ja/modules.json b/public/language/ja/modules.json
index e177131774..19b23706f7 100644
--- a/public/language/ja/modules.json
+++ b/public/language/ja/modules.json
@@ -48,6 +48,7 @@
"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",
diff --git a/public/language/ja/social.json b/public/language/ja/social.json
index 2ba690a187..5b8dd99a46 100644
--- a/public/language/ja/social.json
+++ b/public/language/ja/social.json
@@ -8,5 +8,7 @@
"log-in-with-facebook": "Log in with Facebook",
"continue-with-facebook": "Continue with Facebook",
"sign-in-with-linkedin": "Sign in with LinkedIn",
- "sign-up-with-linkedin": "Sign up 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"
}
\ No newline at end of file
diff --git a/public/language/ja/topic.json b/public/language/ja/topic.json
index b05507a7f1..895440aeea 100644
--- a/public/language/ja/topic.json
+++ b/public/language/ja/topic.json
@@ -103,6 +103,7 @@
"thread-tools.lock": "スレッドをロック",
"thread-tools.unlock": "スレッドをアンロック",
"thread-tools.move": "スレッドを移動",
+ "thread-tools.crosspost": "Crosspost Topic",
"thread-tools.move-posts": "投稿を移動",
"thread-tools.move-all": "すべてを移動",
"thread-tools.change-owner": "Change Owner",
@@ -132,6 +133,7 @@
"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": "ブックマーク",
"bookmarks": "ブックマーク",
@@ -141,6 +143,7 @@
"loading-more-posts": "もっと見る",
"move-topic": "スレッドを移動",
"move-topics": "スレッドを移動する",
+ "crosspost-topic": "Cross-post Topic",
"move-post": "投稿を移動",
"post-moved": "投稿を移動しました!",
"fork-topic": "スレッドをフォーク",
@@ -163,6 +166,9 @@
"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",
diff --git a/public/language/ko/admin/dashboard.json b/public/language/ko/admin/dashboard.json
index b0dd16eb86..8828269697 100644
--- a/public/language/ko/admin/dashboard.json
+++ b/public/language/ko/admin/dashboard.json
@@ -75,6 +75,7 @@
"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": "비회원 사용자",
diff --git a/public/language/ko/admin/manage/categories.json b/public/language/ko/admin/manage/categories.json
index 2afb2d7a89..8eb6c15d16 100644
--- a/public/language/ko/admin/manage/categories.json
+++ b/public/language/ko/admin/manage/categories.json
@@ -1,18 +1,22 @@
{
"manage-categories": "카테고리 관리",
"add-category": "카테고리 추가",
+ "add-local-category": "Add Local category",
+ "add-remote-category": "Add Remote category",
+ "remove": "Remove",
+ "rename": "Rename",
"jump-to": "이동...",
"settings": "카테고리 설정",
"edit-category": "카테고리 수정",
"privileges": "권한",
"back-to-categories": "카테고리로 돌아가기",
+ "id": "Category ID",
"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": "카테고리 설명",
- "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.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "배경 색상",
"text-color": "텍스트 색상",
"bg-image-size": "배경 이미지 크기",
@@ -103,6 +107,11 @@
"alert.create-success": "카테고리를 성공적으로 생성했습니다!",
"alert.none-active": "활성화된 카테고리가 없습니다.",
"alert.create": "카테고리 만들기",
+ "alert.add": "Add a Category",
+ "alert.add-help": "Remote categories can be added to the categories listing by specifying their handle.
Note — 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": "
정말로 이 카테고리 \"%1\"를 정리하시겠습니까?
경고! 이 카테고리의 모든 토픽과 게시물을 정리합니다!
카테고리를 정리하면 모든 토픽과 게시물이 제거되며 데이터베이스에서 카테고리가 삭제됩니다. 카테고리를 일시적으로 제거하려면 카테고리를 대신 \"비활성화\"해야 합니다.
",
"alert.purge-success": "카테고리를 정리했습니다!",
"alert.copy-success": "설정을 복사했습니다!",
diff --git a/public/language/ko/admin/settings/activitypub.json b/public/language/ko/admin/settings/activitypub.json
index 94f9ad7822..5ab4fa43e8 100644
--- a/public/language/ko/admin/settings/activitypub.json
+++ b/public/language/ko/admin/settings/activitypub.json
@@ -18,6 +18,28 @@
"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.
N.B. 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 # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
+ "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 /actor.",
+ "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 %1 server(s)",
"server.filter-help": "Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively allow federation with specific servers, instead. Both options are supported, although they are mutually exclusive.",
diff --git a/public/language/ko/admin/settings/uploads.json b/public/language/ko/admin/settings/uploads.json
index f222e5fe80..c6ae4c5a87 100644
--- a/public/language/ko/admin/settings/uploads.json
+++ b/public/language/ko/admin/settings/uploads.json
@@ -22,6 +22,7 @@
"reject-image-height": "최대 이미지 높이(픽셀 단위)",
"reject-image-height-help": "이 값보다 큰 이미지는 등록할 수 없습니다.",
"allow-topic-thumbnails": "사용자가 토픽 썸네일 업로드 허용",
+ "show-post-uploads-as-thumbnails": "Show post uploads as thumbnails",
"topic-thumb-size": "토픽 썸네일 크기",
"allowed-file-extensions": "허용된 파일 확장자",
"allowed-file-extensions-help": "허용된 파일 확장자를 쉼표로 구분하여 입력하세요 (예: pdf,xls,doc). 비어 있는 목록은 모든 확장자가 허용됨을 의미합니다.",
diff --git a/public/language/ko/aria.json b/public/language/ko/aria.json
index dd73d4d8ee..39db1d1695 100644
--- a/public/language/ko/aria.json
+++ b/public/language/ko/aria.json
@@ -5,5 +5,6 @@
"profile-page-for": "Profile page for user %1",
"user-watched-tags": "사용자 관심 태그",
"delete-upload-button": "업로드 버튼 삭제",
- "group-page-link-for": "그룹 페이지 링크, %1"
+ "group-page-link-for": "그룹 페이지 링크, %1",
+ "show-crossposts": "Show Cross-posts"
}
\ No newline at end of file
diff --git a/public/language/ko/error.json b/public/language/ko/error.json
index b81d681962..8b950fadc8 100644
--- a/public/language/ko/error.json
+++ b/public/language/ko/error.json
@@ -3,6 +3,7 @@
"invalid-json": "잘못된 JSON",
"wrong-parameter-type": "속성 `%1`에 대해 %3 유형의 값이 예상되었지만 대신 %2가 수신되었습니다",
"required-parameters-missing": "이 API 호출에서 필수 매개변수가 누락되었습니다: %1",
+ "reserved-ip-address": "Network requests to reserved IP ranges are not allowed.",
"not-logged-in": "로그인되지 않았습니다.",
"account-locked": "계정이 일시적으로 잠겼습니다.",
"search-requires-login": "검색에는 계정이 필요합니다. 로그인하거나 등록하세요.",
@@ -146,6 +147,7 @@
"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": "잘못된 파일",
@@ -227,6 +229,7 @@
"no-topics-selected": "선택된 토픽이 없습니다!",
"cant-move-to-same-topic": "게시물을 동일한 토픽으로 이동할 수 없습니다!",
"cant-move-topic-to-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": "자신을 차단할 수 없습니다!",
"cannot-block-privileged": "관리자나 전역 중재자를 차단할 수 없습니다",
"cannot-block-guest": "비회원는 다른 사용자를 차단할 수 없습니다",
@@ -236,6 +239,7 @@
"socket-reconnect-failed": "현재 서버에 연결할 수 없습니다. 여기를 클릭 후 다시 시도하거나 나중에 다시 시도하세요",
"invalid-plugin-id": "잘못된 플러그인 ID",
"plugin-not-whitelisted": "플러그인을 설치할 수 없습니다 - NodeBB 패키지 관리자에서 허용목록에 등록된 플러그인만 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": "실행 중에 정의된 플러그인 상태를 변경할 수 없습니다 (config.json, 환경 변수 또는 터미널 인수). 대신 구성을 수정하세요.",
"theme-not-set-in-configuration": "구성에서 활성 플러그인을 정의할 때 새 테마를 추가하기 전에 ACP에서 테마를 업데이트해야 합니다",
diff --git a/public/language/ko/global.json b/public/language/ko/global.json
index f58db1beb3..56a4ed4e48 100644
--- a/public/language/ko/global.json
+++ b/public/language/ko/global.json
@@ -68,6 +68,7 @@
"users": "사용자",
"topics": "토픽",
"posts": "게시물",
+ "crossposts": "Cross-posts",
"x-posts": "%1 개의 게시물",
"x-topics": "%1 개의 토픽",
"x-reputation": "%1 평판",
diff --git a/public/language/ko/modules.json b/public/language/ko/modules.json
index 090984bfd0..b79e2f7028 100644
--- a/public/language/ko/modules.json
+++ b/public/language/ko/modules.json
@@ -48,6 +48,7 @@
"chat.add-user": "사용자 추가",
"chat.notification-settings": "알림 설정",
"chat.default-notification-setting": "기본 알림 설정",
+ "chat.join-leave-messages": "Join/Leave Messages",
"chat.notification-setting-room-default": "방 기본값",
"chat.notification-setting-none": "알림 없음",
"chat.notification-setting-at-mention-only": "@언급만",
diff --git a/public/language/ko/social.json b/public/language/ko/social.json
index 49b91bdf69..2e38a019d2 100644
--- a/public/language/ko/social.json
+++ b/public/language/ko/social.json
@@ -8,5 +8,7 @@
"log-in-with-facebook": "Facebook으로 로그인",
"continue-with-facebook": "Facebook으로 계속하기",
"sign-in-with-linkedin": "LinkedIn으로 로그인",
- "sign-up-with-linkedin": "LinkedIn으로 가입"
+ "sign-up-with-linkedin": "LinkedIn으로 가입",
+ "sign-in-with-wordpress": "Sign in with WordPress",
+ "sign-up-with-wordpress": "Sign up with WordPress"
}
\ No newline at end of file
diff --git a/public/language/ko/topic.json b/public/language/ko/topic.json
index f626bea9d8..f943483ad1 100644
--- a/public/language/ko/topic.json
+++ b/public/language/ko/topic.json
@@ -103,6 +103,7 @@
"thread-tools.lock": "토픽 잠금",
"thread-tools.unlock": "토픽 잠금 해제",
"thread-tools.move": "토픽 이동",
+ "thread-tools.crosspost": "Crosspost Topic",
"thread-tools.move-posts": "게시물 이동",
"thread-tools.move-all": "모두 이동",
"thread-tools.change-owner": "소유자 변경",
@@ -132,6 +133,7 @@
"pin-modal-help": "여기에서 고정된 토픽에 대한 만료일을 선택적으로 설정할 수 있습니다. 또는 토픽이 수동으로 고정 해제될 때까지 이 필드를 비워 둘 수도 있습니다.",
"load-categories": "카테고리 로드 중",
"confirm-move": "이동",
+ "confirm-crosspost": "Cross-post",
"confirm-fork": "포크",
"bookmark": "북마크",
"bookmarks": "북마크",
@@ -141,6 +143,7 @@
"loading-more-posts": "게시물 더 불러오는 중",
"move-topic": "토픽 이동",
"move-topics": "토픽 이동",
+ "crosspost-topic": "Cross-post Topic",
"move-post": "게시물 이동",
"post-moved": "게시물이 이동되었습니다!",
"fork-topic": "토픽 포크",
@@ -163,6 +166,9 @@
"move-topic-instruction": "대상 카테고리를 선택한 다음 이동을 클릭하세요",
"change-owner-instruction": "다른 사용자에게 할당할 게시물을 클릭하세요",
"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": "여기에 이름/핸들을 입력하세요",
"composer.hide": "숨기기",
diff --git a/public/language/lt/admin/dashboard.json b/public/language/lt/admin/dashboard.json
index 6ad973f5f3..0be6d5866c 100644
--- a/public/language/lt/admin/dashboard.json
+++ b/public/language/lt/admin/dashboard.json
@@ -75,6 +75,7 @@
"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",
diff --git a/public/language/lt/admin/manage/categories.json b/public/language/lt/admin/manage/categories.json
index f51152f22d..cdb3e1f356 100644
--- a/public/language/lt/admin/manage/categories.json
+++ b/public/language/lt/admin/manage/categories.json
@@ -1,18 +1,22 @@
{
"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",
- "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.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "Background Colour",
"text-color": "Text Colour",
"bg-image-size": "Background Image Size",
@@ -103,6 +107,11 @@
"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.
Note — 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": "
Do you really want to purge this category \"%1\"?
Warning! All topics and posts in this category will be purged!
Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.
",
"alert.purge-success": "Category purged!",
"alert.copy-success": "Settings Copied!",
diff --git a/public/language/lt/admin/settings/activitypub.json b/public/language/lt/admin/settings/activitypub.json
index 94f9ad7822..5ab4fa43e8 100644
--- a/public/language/lt/admin/settings/activitypub.json
+++ b/public/language/lt/admin/settings/activitypub.json
@@ -18,6 +18,28 @@
"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.
N.B. 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 # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
+ "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 /actor.",
+ "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 %1 server(s)",
"server.filter-help": "Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively allow federation with specific servers, instead. Both options are supported, although they are mutually exclusive.",
diff --git a/public/language/lt/admin/settings/uploads.json b/public/language/lt/admin/settings/uploads.json
index 22046915d9..e91a7bee36 100644
--- a/public/language/lt/admin/settings/uploads.json
+++ b/public/language/lt/admin/settings/uploads.json
@@ -22,6 +22,7 @@
"reject-image-height": "Maximum Image Height (in pixels)",
"reject-image-height-help": "Images taller than this value will be rejected.",
"allow-topic-thumbnails": "Allow users to upload topic thumbnails",
+ "show-post-uploads-as-thumbnails": "Show post uploads as thumbnails",
"topic-thumb-size": "Topic Thumb Size",
"allowed-file-extensions": "Allowed File Extensions",
"allowed-file-extensions-help": "Enter comma-separated list of file extensions here (e.g. pdf,xls,doc). An empty list means all extensions are allowed.",
diff --git a/public/language/lt/aria.json b/public/language/lt/aria.json
index 8e2c565c82..ec7889d2f4 100644
--- a/public/language/lt/aria.json
+++ b/public/language/lt/aria.json
@@ -5,5 +5,6 @@
"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"
+ "group-page-link-for": "Group page link for %1",
+ "show-crossposts": "Show Cross-posts"
}
\ No newline at end of file
diff --git a/public/language/lt/error.json b/public/language/lt/error.json
index 1b1c92380d..fd7ae6e0db 100644
--- a/public/language/lt/error.json
+++ b/public/language/lt/error.json
@@ -3,6 +3,7 @@
"invalid-json": "Nevalidus 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": "Atrodo, kad jūs neesate prisijungęs.",
"account-locked": "Jūsų paskyra buvo laikinai užrakinta",
"search-requires-login": "Paieška reikalauja vartotojo - prašome prisijungti arba užsiregistruoti",
@@ -146,6 +147,7 @@
"post-already-restored": "Šis įrašas jau atstatytas",
"topic-already-deleted": "Ši tema jau ištrinta",
"topic-already-restored": "Ši tema jau atkurta",
+ "topic-already-crossposted": "This topic has already been cross-posted there.",
"cant-purge-main-post": "Jūs negalite išvalyti pagrindinio pranešimo, prašome ištrinkite temą nedelsiant",
"topic-thumbnails-are-disabled": "Temos paveikslėliai neleidžiami.",
"invalid-file": "Klaidingas failas",
@@ -227,6 +229,7 @@
"no-topics-selected": "Nepasirinkta jokia tema!",
"cant-move-to-same-topic": "Negalima perkelti įrašo į tą pačią temą!",
"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": "Savęs užblokuoti negalima!",
"cannot-block-privileged": "Negalima blokuoti administratorių arba visuotinių moderatorių",
"cannot-block-guest": "Guest are not able to block other users",
@@ -236,6 +239,7 @@
"socket-reconnect-failed": "Unable to reach the server at this time. Click here to try again, or try again later",
"invalid-plugin-id": "Invalid plugin ID",
"plugin-not-whitelisted": "Unable to install plugin – only plugins whitelisted by the NodeBB Package Manager can be installed via the ACP",
+ "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",
diff --git a/public/language/lt/global.json b/public/language/lt/global.json
index 12e8cb089f..4d54fec520 100644
--- a/public/language/lt/global.json
+++ b/public/language/lt/global.json
@@ -68,6 +68,7 @@
"users": "Vartotojai",
"topics": "Temos",
"posts": "Pranešimai",
+ "crossposts": "Cross-posts",
"x-posts": "%1 posts",
"x-topics": "%1 topics",
"x-reputation": "%1 reputation",
diff --git a/public/language/lt/modules.json b/public/language/lt/modules.json
index 6a1a9c3c7a..6f9cb47059 100644
--- a/public/language/lt/modules.json
+++ b/public/language/lt/modules.json
@@ -48,6 +48,7 @@
"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",
diff --git a/public/language/lt/social.json b/public/language/lt/social.json
index 2ba690a187..5b8dd99a46 100644
--- a/public/language/lt/social.json
+++ b/public/language/lt/social.json
@@ -8,5 +8,7 @@
"log-in-with-facebook": "Log in with Facebook",
"continue-with-facebook": "Continue with Facebook",
"sign-in-with-linkedin": "Sign in with LinkedIn",
- "sign-up-with-linkedin": "Sign up 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"
}
\ No newline at end of file
diff --git a/public/language/lt/topic.json b/public/language/lt/topic.json
index 4146e1bce6..b551ce6eb2 100644
--- a/public/language/lt/topic.json
+++ b/public/language/lt/topic.json
@@ -103,6 +103,7 @@
"thread-tools.lock": "Užrakinti temą",
"thread-tools.unlock": "Atrakinti temą",
"thread-tools.move": "Perkelti temą",
+ "thread-tools.crosspost": "Crosspost Topic",
"thread-tools.move-posts": "Move Posts",
"thread-tools.move-all": "Perkelti visus",
"thread-tools.change-owner": "Change Owner",
@@ -132,6 +133,7 @@
"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": "Įkeliamos kategorijos",
"confirm-move": "Perkelti",
+ "confirm-crosspost": "Cross-post",
"confirm-fork": "Išskaidyti",
"bookmark": "Bookmark",
"bookmarks": "Bookmarks",
@@ -141,6 +143,7 @@
"loading-more-posts": "Įkeliama daugiau įrašų",
"move-topic": "Perkelti temą",
"move-topics": "Perkelti temas",
+ "crosspost-topic": "Cross-post Topic",
"move-post": "Perkelti įrašą",
"post-moved": "Pranešimas perkeltas!",
"fork-topic": "Išskaidyti temą",
@@ -163,6 +166,9 @@
"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": "Įrašykite temos pavadinimą...",
"composer.handle-placeholder": "Enter your name/handle here",
"composer.hide": "Hide",
diff --git a/public/language/lv/admin/dashboard.json b/public/language/lv/admin/dashboard.json
index ee1358bb7b..4f55f41c5d 100644
--- a/public/language/lv/admin/dashboard.json
+++ b/public/language/lv/admin/dashboard.json
@@ -75,6 +75,7 @@
"graphs.page-views-registered": "Lapu skatījumi no lietotājiem",
"graphs.page-views-guest": "Lapu skatījumi no viesiem",
"graphs.page-views-bot": "Lapu skatījumi no botiem",
+ "graphs.page-views-ap": "ActivityPub Page Views",
"graphs.unique-visitors": "Unikālie apmeklētāji",
"graphs.registered-users": "Reģistrētie lietotāji",
"graphs.guest-users": "Guest Users",
diff --git a/public/language/lv/admin/manage/categories.json b/public/language/lv/admin/manage/categories.json
index 1358f338ac..20933eec31 100644
--- a/public/language/lv/admin/manage/categories.json
+++ b/public/language/lv/admin/manage/categories.json
@@ -1,18 +1,22 @@
{
"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": "Kategorijas iestatījumi",
"edit-category": "Edit Category",
"privileges": "Privilēģijas",
"back-to-categories": "Back to categories",
+ "id": "Category ID",
"name": "Kategorijas nosaukums",
"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": "Kategorijas apraksts",
- "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.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "Fona krāsa",
"text-color": "Teksta krāsa",
"bg-image-size": "Fona bildes lielums",
@@ -103,6 +107,11 @@
"alert.create-success": "Kategorija veiksmīgi izveidota",
"alert.none-active": "Nav aktīvo kategoriju",
"alert.create": "Izveidot kategoriju",
+ "alert.add": "Add a Category",
+ "alert.add-help": "Remote categories can be added to the categories listing by specifying their handle.
Note — 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": "
Vai tiešām vēlies iztīrīt šo kategoriju \"%1\"?
Brīdinājums!Visi temati un raksti šajā kategorijā tiks iztīrīti!
Iztukšojot kategoriju, tiks noņemti visi temati un raksti un kategorija tiks izdzēsta no datu bāzes. Ja vēlies īslaicīgi noņemt kategoriju, \"atspējo\" to.
",
"alert.purge-success": "Kategorija iztīrīta!",
"alert.copy-success": "Iestatījumi kopēti!",
diff --git a/public/language/lv/admin/settings/activitypub.json b/public/language/lv/admin/settings/activitypub.json
index 94f9ad7822..5ab4fa43e8 100644
--- a/public/language/lv/admin/settings/activitypub.json
+++ b/public/language/lv/admin/settings/activitypub.json
@@ -18,6 +18,28 @@
"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.
N.B. 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 # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
+ "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 /actor.",
+ "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 %1 server(s)",
"server.filter-help": "Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively allow federation with specific servers, instead. Both options are supported, although they are mutually exclusive.",
diff --git a/public/language/lv/admin/settings/uploads.json b/public/language/lv/admin/settings/uploads.json
index 0b79f6bb9a..94082ee915 100644
--- a/public/language/lv/admin/settings/uploads.json
+++ b/public/language/lv/admin/settings/uploads.json
@@ -22,6 +22,7 @@
"reject-image-height": "Maksimālais bildes augstums (pikseļos)",
"reject-image-height-help": "Bildes, kas ir augstākas par šo vērtību, tiks noraidītas.",
"allow-topic-thumbnails": "Atļaut lietotājiem augšupielādēt tematu sīktēlus",
+ "show-post-uploads-as-thumbnails": "Show post uploads as thumbnails",
"topic-thumb-size": "Tematu sīktēlu lielums",
"allowed-file-extensions": "Atļautie failu paplašinājumi",
"allowed-file-extensions-help": "Ievadīt ar komatu atdalītu failu paplašinājumu sarakstu (piemērām pdf,xls,doc). Tukšais saraksts nozīmē, ka visi failu paplašinājumi ir atļauti.",
diff --git a/public/language/lv/aria.json b/public/language/lv/aria.json
index 8e2c565c82..ec7889d2f4 100644
--- a/public/language/lv/aria.json
+++ b/public/language/lv/aria.json
@@ -5,5 +5,6 @@
"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"
+ "group-page-link-for": "Group page link for %1",
+ "show-crossposts": "Show Cross-posts"
}
\ No newline at end of file
diff --git a/public/language/lv/error.json b/public/language/lv/error.json
index e902e1e6b7..76f62525c8 100644
--- a/public/language/lv/error.json
+++ b/public/language/lv/error.json
@@ -3,6 +3,7 @@
"invalid-json": "Nederīgs 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": "Šķiet, ka neesi ielogojies.",
"account-locked": "Tavs konts ir uz laiku bloķēts",
"search-requires-login": "Meklēšanai nepieciešams konts - lūdzu, ielogojies vai reģistrējies.",
@@ -146,6 +147,7 @@
"post-already-restored": "Raksts jau ir atjaunots",
"topic-already-deleted": "Temats jau ir izdzēsts",
"topic-already-restored": "Temats jau ir atjaunots",
+ "topic-already-crossposted": "This topic has already been cross-posted there.",
"cant-purge-main-post": "Nevar iztīrīt galveno rakstu, lūdzu, tā vietā izdzēsi tematu",
"topic-thumbnails-are-disabled": "Tematu sīktēli ir atspējoti.",
"invalid-file": "Nederīgs fails",
@@ -227,6 +229,7 @@
"no-topics-selected": "Nav atlasīts neviens temats",
"cant-move-to-same-topic": "Nevar pārnest uz savu pašu tematu!",
"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": "Nevar pats sevi bloķēt!",
"cannot-block-privileged": "Nevar bloķēt administratorus vai globālos moderatorus",
"cannot-block-guest": "Guest are not able to block other users",
@@ -236,6 +239,7 @@
"socket-reconnect-failed": "Unable to reach the server at this time. Click here to try again, or try again later",
"invalid-plugin-id": "Invalid plugin ID",
"plugin-not-whitelisted": "Unable to install plugin – only plugins whitelisted by the NodeBB Package Manager can be installed via the ACP",
+ "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",
diff --git a/public/language/lv/global.json b/public/language/lv/global.json
index 85f1c6f3d2..88445d05f3 100644
--- a/public/language/lv/global.json
+++ b/public/language/lv/global.json
@@ -68,6 +68,7 @@
"users": "Lietotāji",
"topics": "Temati",
"posts": "Raksti",
+ "crossposts": "Cross-posts",
"x-posts": "%1 posts",
"x-topics": "%1 topics",
"x-reputation": "%1 reputation",
diff --git a/public/language/lv/modules.json b/public/language/lv/modules.json
index 0c1a36c576..940d9e52a1 100644
--- a/public/language/lv/modules.json
+++ b/public/language/lv/modules.json
@@ -48,6 +48,7 @@
"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",
diff --git a/public/language/lv/social.json b/public/language/lv/social.json
index 2ba690a187..5b8dd99a46 100644
--- a/public/language/lv/social.json
+++ b/public/language/lv/social.json
@@ -8,5 +8,7 @@
"log-in-with-facebook": "Log in with Facebook",
"continue-with-facebook": "Continue with Facebook",
"sign-in-with-linkedin": "Sign in with LinkedIn",
- "sign-up-with-linkedin": "Sign up 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"
}
\ No newline at end of file
diff --git a/public/language/lv/topic.json b/public/language/lv/topic.json
index d55b6c985c..e20f510da6 100644
--- a/public/language/lv/topic.json
+++ b/public/language/lv/topic.json
@@ -103,6 +103,7 @@
"thread-tools.lock": "Slēgt tematu",
"thread-tools.unlock": "Atslēgt tematu",
"thread-tools.move": "Pārvietot tematu",
+ "thread-tools.crosspost": "Crosspost Topic",
"thread-tools.move-posts": "Pārvietot rakstus",
"thread-tools.move-all": "Pārvietot visus",
"thread-tools.change-owner": "Change Owner",
@@ -132,6 +133,7 @@
"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": "Ielādē kategorijas",
"confirm-move": "Pārvietot",
+ "confirm-crosspost": "Cross-post",
"confirm-fork": "Nozarot",
"bookmark": "Atzīme",
"bookmarks": "Atzīmētie",
@@ -141,6 +143,7 @@
"loading-more-posts": "Ielādē vēl rakstus",
"move-topic": "Pārvietot tematu",
"move-topics": "Pārvietot tematus",
+ "crosspost-topic": "Cross-post Topic",
"move-post": "Pārvietot rakstu",
"post-moved": "Raksts pārvietots!",
"fork-topic": "Nozarot tematu",
@@ -163,6 +166,9 @@
"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": "Ievadīt temata virsrakstu...",
"composer.handle-placeholder": "Enter your name/handle here",
"composer.hide": "Hide",
diff --git a/public/language/ms/admin/dashboard.json b/public/language/ms/admin/dashboard.json
index 6ad973f5f3..0be6d5866c 100644
--- a/public/language/ms/admin/dashboard.json
+++ b/public/language/ms/admin/dashboard.json
@@ -75,6 +75,7 @@
"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",
diff --git a/public/language/ms/admin/manage/categories.json b/public/language/ms/admin/manage/categories.json
index f51152f22d..cdb3e1f356 100644
--- a/public/language/ms/admin/manage/categories.json
+++ b/public/language/ms/admin/manage/categories.json
@@ -1,18 +1,22 @@
{
"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",
- "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.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "Background Colour",
"text-color": "Text Colour",
"bg-image-size": "Background Image Size",
@@ -103,6 +107,11 @@
"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.
Note — 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": "
Do you really want to purge this category \"%1\"?
Warning! All topics and posts in this category will be purged!
Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.
",
"alert.purge-success": "Category purged!",
"alert.copy-success": "Settings Copied!",
diff --git a/public/language/ms/admin/settings/activitypub.json b/public/language/ms/admin/settings/activitypub.json
index 94f9ad7822..5ab4fa43e8 100644
--- a/public/language/ms/admin/settings/activitypub.json
+++ b/public/language/ms/admin/settings/activitypub.json
@@ -18,6 +18,28 @@
"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.
N.B. 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 # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
+ "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 /actor.",
+ "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 %1 server(s)",
"server.filter-help": "Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively allow federation with specific servers, instead. Both options are supported, although they are mutually exclusive.",
diff --git a/public/language/ms/admin/settings/uploads.json b/public/language/ms/admin/settings/uploads.json
index 22046915d9..e91a7bee36 100644
--- a/public/language/ms/admin/settings/uploads.json
+++ b/public/language/ms/admin/settings/uploads.json
@@ -22,6 +22,7 @@
"reject-image-height": "Maximum Image Height (in pixels)",
"reject-image-height-help": "Images taller than this value will be rejected.",
"allow-topic-thumbnails": "Allow users to upload topic thumbnails",
+ "show-post-uploads-as-thumbnails": "Show post uploads as thumbnails",
"topic-thumb-size": "Topic Thumb Size",
"allowed-file-extensions": "Allowed File Extensions",
"allowed-file-extensions-help": "Enter comma-separated list of file extensions here (e.g. pdf,xls,doc). An empty list means all extensions are allowed.",
diff --git a/public/language/ms/aria.json b/public/language/ms/aria.json
index 8e2c565c82..ec7889d2f4 100644
--- a/public/language/ms/aria.json
+++ b/public/language/ms/aria.json
@@ -5,5 +5,6 @@
"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"
+ "group-page-link-for": "Group page link for %1",
+ "show-crossposts": "Show Cross-posts"
}
\ No newline at end of file
diff --git a/public/language/ms/error.json b/public/language/ms/error.json
index a1c4660876..fac32a33a4 100644
--- a/public/language/ms/error.json
+++ b/public/language/ms/error.json
@@ -3,6 +3,7 @@
"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": "Anda tidak log masuk.",
"account-locked": "Akaun anda telah dikunci untuk seketika",
"search-requires-login": "Fungsi Carian perlukan akaun - sila log masuk atau daftar.",
@@ -146,6 +147,7 @@
"post-already-restored": "Kiriman ini telah dipulihkan",
"topic-already-deleted": "Topik ini telah dipadam",
"topic-already-restored": "Kiriman ini telah dipulihkan",
+ "topic-already-crossposted": "This topic has already been cross-posted there.",
"cant-purge-main-post": "Anda tidak boleh memadam, kiriman utama, sebaliknya sila pada topik",
"topic-thumbnails-are-disabled": "Topik kecil dilumpuhkan.",
"invalid-file": "Fail tak sah",
@@ -227,6 +229,7 @@
"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",
@@ -236,6 +239,7 @@
"socket-reconnect-failed": "Unable to reach the server at this time. Click here to try again, or try again later",
"invalid-plugin-id": "Invalid plugin ID",
"plugin-not-whitelisted": "Unable to install plugin – only plugins whitelisted by the NodeBB Package Manager can be installed via the ACP",
+ "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",
diff --git a/public/language/ms/global.json b/public/language/ms/global.json
index e0466de405..e40ae347ba 100644
--- a/public/language/ms/global.json
+++ b/public/language/ms/global.json
@@ -68,6 +68,7 @@
"users": "Pengguna",
"topics": "Topik",
"posts": "Kiriman",
+ "crossposts": "Cross-posts",
"x-posts": "%1 posts",
"x-topics": "%1 topics",
"x-reputation": "%1 reputation",
diff --git a/public/language/ms/modules.json b/public/language/ms/modules.json
index a2de6c8f89..d3f710ccaa 100644
--- a/public/language/ms/modules.json
+++ b/public/language/ms/modules.json
@@ -48,6 +48,7 @@
"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",
diff --git a/public/language/ms/social.json b/public/language/ms/social.json
index 2ba690a187..5b8dd99a46 100644
--- a/public/language/ms/social.json
+++ b/public/language/ms/social.json
@@ -8,5 +8,7 @@
"log-in-with-facebook": "Log in with Facebook",
"continue-with-facebook": "Continue with Facebook",
"sign-in-with-linkedin": "Sign in with LinkedIn",
- "sign-up-with-linkedin": "Sign up 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"
}
\ No newline at end of file
diff --git a/public/language/ms/topic.json b/public/language/ms/topic.json
index 0493a3172b..11e3dd2e2a 100644
--- a/public/language/ms/topic.json
+++ b/public/language/ms/topic.json
@@ -103,6 +103,7 @@
"thread-tools.lock": "Kunci topik",
"thread-tools.unlock": "Buka kekunci topik",
"thread-tools.move": "Pindahkan topik",
+ "thread-tools.crosspost": "Crosspost Topic",
"thread-tools.move-posts": "Move Posts",
"thread-tools.move-all": "Pindahkan Semua",
"thread-tools.change-owner": "Change Owner",
@@ -132,6 +133,7 @@
"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": "Memuatkan kategori",
"confirm-move": "Pindahkan",
+ "confirm-crosspost": "Cross-post",
"confirm-fork": "Salin",
"bookmark": "Bookmark",
"bookmarks": "Bookmarks",
@@ -141,6 +143,7 @@
"loading-more-posts": "Memuatkan lagi kiriman",
"move-topic": "Pindahkan topik",
"move-topics": "Pindahkan topik-topik",
+ "crosspost-topic": "Cross-post Topic",
"move-post": "Pindahkan kiriman",
"post-moved": "Kiriman dipindahkan",
"fork-topic": "Salin topik",
@@ -163,6 +166,9 @@
"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": "Masukkan tajuk topik disini",
"composer.handle-placeholder": "Enter your name/handle here",
"composer.hide": "Hide",
diff --git a/public/language/nb/admin/dashboard.json b/public/language/nb/admin/dashboard.json
index 8662f49f25..2a2e0ee67b 100644
--- a/public/language/nb/admin/dashboard.json
+++ b/public/language/nb/admin/dashboard.json
@@ -75,6 +75,7 @@
"graphs.page-views-registered": "Sidevisninger for registrerte",
"graphs.page-views-guest": "Sidevisninger for gjester",
"graphs.page-views-bot": "Sidevisninger for botter",
+ "graphs.page-views-ap": "ActivityPub Page Views",
"graphs.unique-visitors": "Unike besøkende",
"graphs.registered-users": "Registrerte brukere",
"graphs.guest-users": "Gjestebrukere",
diff --git a/public/language/nb/admin/manage/categories.json b/public/language/nb/admin/manage/categories.json
index 472daa0fd0..2031f16e36 100644
--- a/public/language/nb/admin/manage/categories.json
+++ b/public/language/nb/admin/manage/categories.json
@@ -1,18 +1,22 @@
{
"manage-categories": "Administrer kategorier",
"add-category": "Legg til kategori",
+ "add-local-category": "Add Local category",
+ "add-remote-category": "Add Remote category",
+ "remove": "Remove",
+ "rename": "Rename",
"jump-to": "Hopp til...",
"settings": "Kategoriinnstillinger",
"edit-category": "Rediger kategori",
"privileges": "Rettigheter",
"back-to-categories": "Tilbake til kategorier",
+ "id": "Category ID",
"name": "Kategorinavn",
"handle": "Kategoristi",
"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": "Kategoribeskrivelse",
- "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.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "Bakgrunnsfarge",
"text-color": "Tekstfarge",
"bg-image-size": "Størrelse på bakgrunnsbilde",
@@ -103,6 +107,11 @@
"alert.create-success": "Kategori opprettet!",
"alert.none-active": "Du har ingen aktive kategorier.",
"alert.create": "Opprett en kategori",
+ "alert.add": "Add a Category",
+ "alert.add-help": "Remote categories can be added to the categories listing by specifying their handle.
Note — 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": "
Vil du virkelig renske kategorien \"%1\"?
Advarsel! Alle tråder og innlegg i denne kategorien vil bli rensket!
Rensking av en kategori vil fjerne alle tråder og innlegg, og slette kategorien fra databasen. Hvis du vil fjerne en kategori midlertidig, vil du \"deaktivere\" kategorien i stedet.
",
"alert.purge-success": "Kategori renset!",
"alert.copy-success": "Innstillinger kopiert!",
diff --git a/public/language/nb/admin/manage/privileges.json b/public/language/nb/admin/manage/privileges.json
index 28702994b2..2d655c05eb 100644
--- a/public/language/nb/admin/manage/privileges.json
+++ b/public/language/nb/admin/manage/privileges.json
@@ -35,8 +35,8 @@
"view-edit-history": "Vis redigeringshistorikk",
"delete-posts": "Slett innlegg",
"view-deleted": "Vis slettede innlegg",
- "upvote-posts": "Tilrå innlegg",
- "downvote-posts": "Ikke tilrå innlegg",
+ "upvote-posts": "Anbefal innlegg",
+ "downvote-posts": "Ikke anbefal innlegg",
"delete-topics": "Slett emner",
"purge": "Rensk",
"moderate": "Moderere",
diff --git a/public/language/nb/admin/menu.json b/public/language/nb/admin/menu.json
index 6c51ad8ccf..d62ddede52 100644
--- a/public/language/nb/admin/menu.json
+++ b/public/language/nb/admin/menu.json
@@ -25,7 +25,7 @@
"settings/general": "Generelt",
"settings/homepage": "Hjemmeside",
"settings/navigation": "Navigasjon",
- "settings/reputation": "Omdømme og flagg",
+ "settings/reputation": "Omdømme ",
"settings/email": "E-post",
"settings/user": "Brukere",
"settings/group": "Grupper",
@@ -33,7 +33,7 @@
"settings/uploads": "Opplastinger",
"settings/languages": "Språk",
"settings/post": "Innlegg",
- "settings/chat": "Chatter",
+ "settings/chat": "Chat",
"settings/pagination": "Sidetelling",
"settings/tags": "Emneord",
"settings/notifications": "Varsler",
diff --git a/public/language/nb/admin/settings/activitypub.json b/public/language/nb/admin/settings/activitypub.json
index 70161ed834..bab848c368 100644
--- a/public/language/nb/admin/settings/activitypub.json
+++ b/public/language/nb/admin/settings/activitypub.json
@@ -4,7 +4,7 @@
"general": "Generelt",
"pruning": "Content Pruning",
"content-pruning": "Days to keep remote content",
- "content-pruning-help": "Note that remote content that has received engagement (a reply or a upvote/downvote) will be preserved. (0 for disabled)",
+ "content-pruning-help": "Merk at eksternt innhold som har fått respons (et svar eller en anbefaling), vil bli bevart. (0 for å deaktivere)",
"user-pruning": "Days to cache remote user accounts",
"user-pruning-help": "Remote user accounts will only be pruned if they have no posts. Otherwise they will be re-retrieved. (0 for disabled)",
"enabled": "Enable Federation",
@@ -18,6 +18,28 @@
"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.
N.B. 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 # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
+ "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 /actor.",
+ "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": "Filtrering",
"count": "This NodeBB is currently aware of %1 server(s)",
"server.filter-help": "Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively allow federation with specific servers, instead. Both options are supported, although they are mutually exclusive.",
diff --git a/public/language/nb/admin/settings/post.json b/public/language/nb/admin/settings/post.json
index 548446786d..61f21ea532 100644
--- a/public/language/nb/admin/settings/post.json
+++ b/public/language/nb/admin/settings/post.json
@@ -5,8 +5,8 @@
"sorting.oldest-to-newest": "Eldste til nyeste",
"sorting.newest-to-oldest": "Nyeste til eldste",
"sorting.recently-replied": "Sist besvart",
- "sorting.recently-created": "Nylig opprettet",
- "sorting.most-votes": "Flest stemmer",
+ "sorting.recently-created": "Sist opprettet",
+ "sorting.most-votes": "Flest anbefalinger",
"sorting.most-posts": "Flest innlegg",
"sorting.most-views": "Flest visninger",
"sorting.topic-default": "Standard trådsortering",
diff --git a/public/language/nb/admin/settings/reputation.json b/public/language/nb/admin/settings/reputation.json
index 9612efe855..ad1df9d37a 100644
--- a/public/language/nb/admin/settings/reputation.json
+++ b/public/language/nb/admin/settings/reputation.json
@@ -2,18 +2,18 @@
"reputation": "Omdømmeinnstillinger",
"disable": "Deaktiver omdømmesystem",
"disable-down-voting": "Deaktiver nedstemning",
- "upvote-visibility": "Synlighet for oppstemmer",
- "upvote-visibility-all": "Alle kan se oppstemmer",
- "upvote-visibility-loggedin": "Bare innloggede brukere kan se oppstemmer",
- "upvote-visibility-privileged": "Bare privilegerte brukere kan se oppstemmer",
- "downvote-visibility": "Synlighet for nedstemmer",
+ "upvote-visibility": "Synlighet for anbefalinger",
+ "upvote-visibility-all": "Alle kan se anbefalinger",
+ "upvote-visibility-loggedin": "Bare innloggede brukere kan se anbefalinger",
+ "upvote-visibility-privileged": "Bare privilegerte brukere kan se anbefalinger",
+ "downvote-visibility": "Synlighet for anbefalinger",
"downvote-visibility-all": "Alle kan se nedstemmer",
"downvote-visibility-loggedin": "Bare innloggede brukere kan se nedstemmer",
"downvote-visibility-privileged": "Bare privilegerte brukere kan se nedstemmer",
"thresholds": "Aktivitetsterskler",
- "min-rep-upvote": "Minimum omdømme for å stemme opp innlegg",
- "upvotes-per-day": " Tilrådinger per dag (sett til 0 for ubegrensede tilrådinger)",
- "upvotes-per-user-per-day": " Tilrådinger per bruker per dag (sett til 0 for ubegrensede tilrådinger)",
+ "min-rep-upvote": "Minimum omdømme for å anbefale innlegg",
+ "upvotes-per-day": "Anbefalinger per dag (sett til 0 for ubegrensede tilrådinger)",
+ "upvotes-per-user-per-day": "Anbefalinger per bruker per dag (sett til 0 for ubegrensede tilrådinger)",
"min-rep-downvote": "Minimum omdømme for å stemme ned innlegg",
"downvotes-per-day": "Nedstemmer per dag (sett til 0 for ubegrensede nedstemmer)",
"downvotes-per-user-per-day": "Nedstemmer per bruker per dag (sett til 0 for ubegrensede nedstemmer)",
@@ -25,11 +25,11 @@
"min-rep-profile-picture": "Minimum omdømme for å legge til \"Profilbilde\" i brukerprofil",
"min-rep-cover-picture": "Minimum omdømme for å legge til \"Omslagsbilde\" i brukerprofil",
- "flags": "Flagginnstillinger",
- "flags.limit-per-target": "Maksimalt antall ganger noe kan flagges",
+ "flags": "Raporteringsinnstillinger",
+ "flags.limit-per-target": "Maksimalt antall ganger noe kan rapporterest",
"flags.limit-per-target-placeholder": "Standard: 0",
"flags.limit-per-target-help": "Når et innlegg eller en bruker blir flagget flere ganger, regnes hvert ekstra flagg som en \"rapport\" og legges til det opprinnelige flagget. Sett dette alternativet til et tall større enn null for å begrense antall rapporter et element kan motta.",
- "flags.limit-post-flags-per-day": "Maksimalt antall innlegg som kan flagges per dag",
+ "flags.limit-post-flags-per-day": "Maksimalt antall innlegg som kan rapporteres per dag",
"flags.limit-post-flags-per-day-help": "Angi antall innlegg som kan flagges av en bruker innen en dag.",
"flags.limit-user-flags-per-day": "Maksimalt antall brukere som kan flagges per dag",
"flags.limit-user-flags-per-day-help": "Angi antall brukere som kan flagges av en bruker innen en dag.",
diff --git a/public/language/nb/admin/settings/uploads.json b/public/language/nb/admin/settings/uploads.json
index ff5386fedb..8209e108e4 100644
--- a/public/language/nb/admin/settings/uploads.json
+++ b/public/language/nb/admin/settings/uploads.json
@@ -22,6 +22,7 @@
"reject-image-height": "Maksimal bildehøyde (i piksler)",
"reject-image-height-help": "Bilder høyere enn denne verdien vil bli avvist.",
"allow-topic-thumbnails": "Tillat brukere å laste opp emneminiatyrbilder",
+ "show-post-uploads-as-thumbnails": "Show post uploads as thumbnails",
"topic-thumb-size": "Størrelse på emneminiatyrbilder",
"allowed-file-extensions": "Tillatte filtyper",
"allowed-file-extensions-help": "Skriv inn kommaseparerte filtyper her (f.eks. pdf,xls,doc). En tom liste betyr at alle filtyper er tillatt.",
diff --git a/public/language/nb/aria.json b/public/language/nb/aria.json
index bfe7416709..e5700b7667 100644
--- a/public/language/nb/aria.json
+++ b/public/language/nb/aria.json
@@ -5,5 +5,6 @@
"profile-page-for": "Profile page for user %1",
"user-watched-tags": "Emneord fulgt av bruker",
"delete-upload-button": "Slett opplastingsknapp",
- "group-page-link-for": "Gruppesidelink for %1"
+ "group-page-link-for": "Gruppesidelink for %1",
+ "show-crossposts": "Show Cross-posts"
}
\ No newline at end of file
diff --git a/public/language/nb/category.json b/public/language/nb/category.json
index 2f274001a6..3fff71221d 100644
--- a/public/language/nb/category.json
+++ b/public/language/nb/category.json
@@ -1,13 +1,13 @@
{
"category": "Kategori",
"subcategories": "Underkategorier",
- "uncategorized": "Uncategorized",
- "uncategorized.description": "Topics that do not strictly fit in with any existing categories",
+ "uncategorized": "Ukategorisert",
+ "uncategorized.description": "Innlegg som ikke passer inn i noen av de eksisterende kategoriene.",
"handle.description": "This category can be followed from the open social web via the handle %1",
- "new-topic-button": "Nytt emne",
+ "new-topic-button": "Nytt innlegg",
"guest-login-post": "Logg inn for å publisere innlegg",
"no-topics": "Denne kategorien er foreløpig tom. Har du noe å dele? Opprett et innlegg her!",
- "no-followers": "Nobody on this website is tracking or watching this category. Track or watch this category in order to begin receiving updates.",
+ "no-followers": "Ingen følger denne kategorien ennå. Følg den for å få oppdateringer om endringer.",
"browsing": "leser",
"no-replies": "Ingen har svart",
"no-new-posts": "Ingen nye innlegg.",
@@ -17,10 +17,10 @@
"tracking": "Følg",
"not-watching": "Følger ikke",
"ignoring": "Ignorerer",
- "watching.description": "Varsle meg om nye emner. Vis emner i ulest og nylig",
- "tracking.description": "Følg emner i ulest og nylig",
- "not-watching.description": "Ikke vis emner i ulest, vis i nylig",
- "ignoring.description": "Ikke vis emner i ulest & nylig",
+ "watching.description": "Varsle meg om nye innlegg. Vis innlegg i ulest og nylig",
+ "tracking.description": "Viser innlegg i Ulest og Siste",
+ "not-watching.description": "Ikke vis innlegg i Uleste, vis i Siste",
+ "ignoring.description": "Ikke vis innlegg i Uleste eller Siste",
"watching.message": "Du ser nå på oppdateringer fra denne kategorien og alle underkategorier",
"tracking.message": "Du følger nå oppdateringer fra denne kategorien og alle underkategorier",
"notwatching.message": "Du ser ikke på oppdateringer fra denne kategorien og alle underkategorier",
diff --git a/public/language/nb/error.json b/public/language/nb/error.json
index f7e2f4a8f6..c795bb4168 100644
--- a/public/language/nb/error.json
+++ b/public/language/nb/error.json
@@ -3,6 +3,7 @@
"invalid-json": "Ugyldig JSON",
"wrong-parameter-type": "En verdi av typen %3 var forventet for egenskapen `%1`, men %2 ble mottatt i stedet",
"required-parameters-missing": "Nødvendige parametere manglet fra dette API-kallet: %1",
+ "reserved-ip-address": "Nettverksforespørsler til reservert IP-område er ikke tillatt.",
"not-logged-in": "Du ser ikke ut til å være logget inn.",
"account-locked": "Kontoen din har blitt midlertidig låst",
"search-requires-login": "Søking krever en konto - vennligst logg inn eller registrer deg.",
@@ -63,12 +64,12 @@
"no-group": "Gruppe eksisterer ikke",
"no-user": "Bruker eksisterer ikke",
"no-teaser": "Teaseren eksisterer ikke",
- "no-flag": "Flagg eksisterer ikke",
+ "no-flag": "Rapport eksisterer ikke",
"no-chat-room": "Chatten eksisterer ikke",
"no-privileges": "Du har ikke nok rettigheter til å utføre denne handlingen.",
"category-disabled": "Kategori deaktivert",
- "post-deleted": "Post deleted",
- "topic-locked": "Topic locked",
+ "post-deleted": "Innlegget er slettet.",
+ "topic-locked": "Innlegget er låst",
"post-edit-duration-expired": "Du har bare lov til å redigere innlegg i %1 sekund(er) etter at det er sendt",
"post-edit-duration-expired-minutes": "Du har bare lov til å redigere innlegg i %1 sekund(er) etter at det er sendt",
"post-edit-duration-expired-minutes-seconds": "Du har bare lov til å redigere innlegg i %1 minutt(er), %2 sekund(er) etter at det er sendt",
@@ -146,6 +147,7 @@
"post-already-restored": "Dette innlegget har allerede blitt gjenopprettet",
"topic-already-deleted": "Dette emnet har allerede blitt slettet",
"topic-already-restored": "Dette emnet har allerede blitt gjenopprettet",
+ "topic-already-crossposted": "This topic has already been cross-posted there.",
"cant-purge-main-post": "Du kan ikke slette hovedinnlegget. Vennligst slett emnet i stedet.",
"topic-thumbnails-are-disabled": "Emne-minatyrbilder har blitt deaktivert",
"invalid-file": "Ugyldig fil",
@@ -172,11 +174,11 @@
"cant-remove-users-from-chat-room": "Kan ikke fjerne brukere fra chat.",
"chat-room-name-too-long": "Navnet på chat er for langt. Navn kan ikke være lengre enn %1 tegn.",
"remote-chat-received-too-long": "You received a chat message from %1, but it was too long and was rejected.",
- "already-voting-for-this-post": "Du har allerede stemt på dette innlegget",
+ "already-voting-for-this-post": "Du har allerede anbefalt dette innlegget",
"reputation-system-disabled": "Omdømmesystemet er deaktivert.",
"downvoting-disabled": "Nedstemming er deaktivert",
"not-enough-reputation-to-chat": "Du trenger %1 omdømme for å chatte",
- "not-enough-reputation-to-upvote": "Du trenger %1 omdømme for å tilrå.",
+ "not-enough-reputation-to-upvote": "Du trenger %1 omdømme for å anbefale.",
"not-enough-reputation-to-downvote": "Du trenger %1 omdømme for å stemme ned.",
"not-enough-reputation-to-post-links": "Du trenger %1 omdømme for å poste lenker",
"not-enough-reputation-to-flag": "Du trenger %1 omdømme for å flagge dette innlegget.",
@@ -193,17 +195,17 @@
"custom-user-field-invalid-number": "Nummeret for egendefinert felt er ugyldig, %1",
"custom-user-field-invalid-date": "Dato for egendefiner felt er ugyldig, %1",
"invalid-custom-user-field": "Ugyldig egendefinert feltnavn, \"%1\" er allerede i bruk av NodeBB",
- "post-already-flagged": "Du har allerede flagget dette innlegget",
- "user-already-flagged": "Du har allerede flagget denne brukeren",
- "post-flagged-too-many-times": "Dette innlegget har allerede blitt flagget av andre",
- "user-flagged-too-many-times": "Denne brukeren har allerede blitt flagget av andre",
- "too-many-post-flags-per-day": "Du kan bare flagge %1 innlegg per dag",
- "too-many-user-flags-per-day": "Du kan bare flagge %1 brukere per dag",
- "cant-flag-privileged": "Du har ikke lov til å flagge profiler eller innhold fra priveligerte burkere (moderatorer/ globale moderatorer/ administratorer)",
+ "post-already-flagged": "Du har allerede rapportert dette innlegget",
+ "user-already-flagged": "Du har allerede rapportert denne brukeren",
+ "post-flagged-too-many-times": "Dette innlegget har allerede blitt rapportert av andre",
+ "user-flagged-too-many-times": "Denne brukeren har allerede blitt rapportert av andre",
+ "too-many-post-flags-per-day": "Du kan bare rapportere %1 innlegg per dag",
+ "too-many-user-flags-per-day": "Du kan bare rapportere %1 brukere per dag",
+ "cant-flag-privileged": "Du har ikke lov til å rapportere profiler eller innhold fra priveligerte burkere (moderatorer/ globale moderatorer/ administratorer)",
"cant-locate-flag-report": "Kan ikke finne flaggrapporten",
- "self-vote": "Du kan ikke stemme på ditt eget innlegg",
- "too-many-upvotes-today": "Du kan bare gi oppstemme %1 ganger pr. dag",
- "too-many-upvotes-today-user": "Du kan bare gi oppstemme til en bruker %1 ganger pr. dag",
+ "self-vote": "Du kan ikke anbefale ditt eget innlegg",
+ "too-many-upvotes-today": "Du kan bare anbefale %1 ganger pr. dag",
+ "too-many-upvotes-today-user": "Du kan bare anbefale en bruker %1 ganger pr. dag",
"too-many-downvotes-today": "Du kan bare nedstemme %1 gang om dagen",
"too-many-downvotes-today-user": "Du kan bare nedstemme en bruker %1 ganger om dagen",
"reload-failed": "NodeBB støtte på et problem under lasting på nytt: \"%1\". NodeBB vil fortsette å servere eksisterende klientside ressurser, selv om du burde angre endringene du gjorde før du lastet på nytt.",
@@ -227,6 +229,7 @@
"no-topics-selected": "Ingen tråder valgt!",
"cant-move-to-same-topic": "Du kan ikke flytte innlegg til samme tråd!",
"cant-move-topic-to-same-category": "Du kan ikke flytte tråd til samme kategori!",
+ "cant-move-topic-to-from-remote-categories": "You cannot move topics in or out of remote categories; consider cross-posting instead.",
"cannot-block-self": "Du kan ikke blokkere deg selv!",
"cannot-block-privileged": "Du kan ikke blokkere administratorer eller globale moderatorer",
"cannot-block-guest": "Gjester kan ikke blokkere andre brukere",
@@ -236,6 +239,7 @@
"socket-reconnect-failed": "Får ikke tilgang til serveren for øyeblikket. Klikk her for å prøve igjen, eller prøv igjen senere",
"invalid-plugin-id": "Ugyldig innstikk-ID",
"plugin-not-whitelisted": "Ute av stand til å installere tillegget – bare tillegg som er hvitelistet av NodeBB sin pakkebehandler kan bli installert via administratorkontrollpanelet",
+ "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": "Du har ikke tillatelse til å endre plugin-status da de er definert under kjøring (config.json, miljøvariabler eller terminalargumenter)Vennligst endre konfigurasjonen i stedet.",
"theme-not-set-in-configuration": "Når aktive plugins er definert i konfigurasjonen, krever endring av tema at det nye temaet legges til i listen over aktive plugins før det oppdateres i ACP.",
diff --git a/public/language/nb/flags.json b/public/language/nb/flags.json
index 305a699267..d0d971a832 100644
--- a/public/language/nb/flags.json
+++ b/public/language/nb/flags.json
@@ -35,7 +35,7 @@
"fewer-filters": "Færre filtre",
"quick-actions": "Hurtighandlinger",
- "flagged-user": "Flagget bruker",
+ "flagged-user": "Rapportert bruker",
"view-profile": "Vis profil",
"start-new-chat": "Start ny chat",
"go-to-target": "Vis flaggmålet",
@@ -52,8 +52,8 @@
"add-note": "Legg til notat",
"edit-note": "Rediger notat",
"no-notes": "Ingen delte notater",
- "delete-note-confirm": "Er du sikker på at du ønsker å slette dette flaggnotatet?",
- "delete-flag-confirm": "Er du sikker på at du vil slette dette flagget?",
+ "delete-note-confirm": "Er du sikker på at du ønsker å slette denne rapporteringen?",
+ "delete-flag-confirm": "Er du sikker på at du vil slette denne rapporteringen?",
"note-added": "Notat lagt til",
"note-deleted": "Notat slettet",
"flag-deleted": "Flagg slettet",
@@ -75,7 +75,7 @@
"sort-all": "Alle flaggtyper",
"sort-posts-only": "Kun innlegg",
"sort-downvotes": "Flest nedstemminger",
- "sort-upvotes": "Flest tilrådinger",
+ "sort-upvotes": "Flest anbefalinger",
"sort-replies": "Flest kommentarer",
"modal-title": "Rapporter innhold",
diff --git a/public/language/nb/global.json b/public/language/nb/global.json
index edb8c97735..54b9f793ab 100644
--- a/public/language/nb/global.json
+++ b/public/language/nb/global.json
@@ -68,21 +68,22 @@
"users": "Brukere",
"topics": "Emner",
"posts": "Innlegg",
+ "crossposts": "Cross-posts",
"x-posts": "%1 innlegg",
"x-topics": "%1 emner",
"x-reputation": "%1 omdømme",
"best": "Best",
"controversial": "Kontroversiell",
- "votes": "Stemmer",
- "x-votes": "%1 stemmer",
- "voters": "Velgere",
- "upvoters": "Tilrår",
- "upvoted": "Tilrådde",
+ "votes": "Anbefalinger",
+ "x-votes": "%1 anbefalinger",
+ "voters": "Anbefaler",
+ "upvoters": "Anbefaler",
+ "upvoted": "Anbefalt",
"downvoters": "Nedstemmere",
"downvoted": "Nedstemt",
"views": "Visninger",
"posters": "Innlegg",
- "watching": "Watching",
+ "watching": "Følger",
"reputation": "Omdømme",
"lastpost": "Siste innlegg",
"firstpost": "Første innlegg",
@@ -101,8 +102,8 @@
"guest-posted-ago": "Gjest skrev den %1",
"last-edited-by": "Sist endret av %1",
"edited-timestamp": "Endret %1",
- "norecentposts": "Ingen nylige innlegg",
- "norecenttopics": "Ingen nye tråder",
+ "norecentposts": "Ingen nye svar",
+ "norecenttopics": "Ingen nye innlegg",
"recentposts": "Nye innlegg",
"recentips": "Siste innloggede IPer",
"moderator-tools": "Moderatorverktøy",
diff --git a/public/language/nb/modules.json b/public/language/nb/modules.json
index 08e42a051e..99e3edc5d9 100644
--- a/public/language/nb/modules.json
+++ b/public/language/nb/modules.json
@@ -1,15 +1,15 @@
{
"chat.room-id": "Rom %1",
- "chat.chatting-with": "Chat med",
- "chat.placeholder": "Skriv chat-melding her, dra og slipp bilder",
- "chat.placeholder.mobile": "Skriv chat-melding",
+ "chat.chatting-with": "Send melding til",
+ "chat.placeholder": "Skriv melding",
+ "chat.placeholder.mobile": "Skriv melding",
"chat.placeholder.message-room": "Melding #%1",
"chat.scroll-up-alert": "Gå til siste melding",
"chat.usernames-and-x-others": "%1 & %2 andre",
"chat.chat-with-usernames": "Chat med %1",
"chat.chat-with-usernames-and-x-others": "Chat med %1 & %2 andre",
- "chat.send": "Send",
- "chat.no-active": "Du har ingen aktive chatter.",
+ "chat.send": "Publiser",
+ "chat.no-active": "Du har ingen aktive samtaler",
"chat.user-typing-1": "%1 skriver ...",
"chat.user-typing-2": "%1 og %2 skriver ...",
"chat.user-typing-3": "%1, %2 og %3 skriver ...",
@@ -20,11 +20,11 @@
"chat.mark-all-read": "Marker alle som lest",
"chat.no-messages": "Velg en mottaker for å vise meldingshistorikk",
"chat.no-users-in-room": "Ingen brukere i dette rommet",
- "chat.recent-chats": "Nylige chatter",
+ "chat.recent-chats": "Nylige samtaler",
"chat.contacts": "Kontakter",
"chat.message-history": "Meldingshistorikk",
"chat.message-deleted": "Melding slettet",
- "chat.options": "Alternativer for chat",
+ "chat.options": "Alternativer for meldinger",
"chat.pop-out": "Pop-ut chat",
"chat.minimize": "Minimer",
"chat.maximize": "Maksimer",
@@ -40,7 +40,7 @@
"chat.unpin-message": "Fjern festing",
"chat.public-rooms": "Offentlige rom (%1)",
"chat.private-rooms": "Private rom (%1)",
- "chat.create-room": "Opprett chat",
+ "chat.create-room": "Opprett melding",
"chat.private.option": "Privat (Bare synlig for brukere lagt til i rommet)",
"chat.public.option": "Offentlig (Synlig for alle brukere i valgte grupper)",
"chat.public.groups-help": "For å opprette en chat synlig for alle brukere, velg \"registrerte brukere\" fra gruppelisten.",
@@ -48,20 +48,21 @@
"chat.add-user": "Legg til bruker",
"chat.notification-settings": "Varslingsinnstillinger",
"chat.default-notification-setting": "Standard varslingsinnstilling",
+ "chat.join-leave-messages": "Join/Leave Messages",
"chat.notification-setting-room-default": "Romstandard",
"chat.notification-setting-none": "Ingen varsler",
"chat.notification-setting-at-mention-only": "Kun ved @nevning",
"chat.notification-setting-all-messages": "Alle meldinger",
"chat.select-groups": "Velg grupper",
- "chat.add-user-help": "Søk etter brukere her. Når valgt, vil brukeren legges til i chatten. Nye brukere vil ikke se meldinger skrevet før de ble lagt til. Bare romeiere () kan fjerne brukere fra rom.",
- "chat.confirm-chat-with-dnd-user": "Denne brukeren har satt statusen sin til \"Ikke forstyrr\". Vil du fortsatt chatte med dem?",
+ "chat.add-user-help": "Søk etter brukere her. Når valgt, vil brukeren legges til i meldingstråden. Nye brukere vil ikke se meldinger skrevet før de ble lagt til. Bare romeiere () kan fjerne brukere fra rom.",
+ "chat.confirm-chat-with-dnd-user": "Denne brukeren har satt statusen sin til \"Ikke forstyrr\". Vil du fortsatt sende en melding?",
"chat.room-name-optional": "Romnavn (valgfritt)",
"chat.rename-room": "Endre navn på rom",
"chat.rename-placeholder": "Skriv inn romnavnet her",
"chat.rename-help": "Romnavnet vil være synlig for alle deltakere.",
"chat.leave": "Forlat",
"chat.leave-room": "Forlat rom",
- "chat.leave-prompt": "Er du sikker på at du vil forlate dette rommet?",
+ "chat.leave-prompt": "Er du sikker på at du vil forlate denne chatten?",
"chat.leave-help": "Hvis du forlater, fjernes du fra fremtidige samtaler. Ved gjeninntreden vil du ikke se meldingshistorikk fra før du ble lagt til.",
"chat.delete": "Slett",
"chat.delete-room": "Slett rom",
@@ -121,7 +122,7 @@
"bootbox.cancel": "Avbryt",
"bootbox.confirm": "Bekreft",
"bootbox.submit": "Send inn",
- "bootbox.send": "Send",
+ "bootbox.send": "Publiser",
"cover.dragging-title": "Posisjoner bilde",
"cover.dragging-message": "Dra omslagsbildet til ønsket posisjon og klikk \"Lagre\"",
"cover.saved": "Omslagsbilde og posisjon lagret",
diff --git a/public/language/nb/notifications.json b/public/language/nb/notifications.json
index 757e983c88..db81e4b272 100644
--- a/public/language/nb/notifications.json
+++ b/public/language/nb/notifications.json
@@ -11,17 +11,17 @@
"new-notification": "Du har en ny varsling",
"you-have-unread-notifications": "Du har uleste varsler.",
"all": "Alle",
- "topics": "Emner",
+ "topics": "Innlegg",
"tags": "Emneord",
"categories": "Kategorier",
"replies": "Svar",
- "chat": "Chatter",
- "group-chat": "Gruppechat",
+ "chat": "Chat",
+ "group-chat": "Gruppemelding",
"public-chat": "Offentlig chat",
"follows": "Følger",
- "upvote": " Tilrår",
+ "upvote": "Anbefaler",
"awards": "Tildelninger",
- "new-flags": "Nye flagg",
+ "new-flags": "Nye rapporteringer",
"my-flags": "Flagg som er tildelt meg",
"bans": "Forbud",
"new-message-from": "Ny melding fra %1",
@@ -32,10 +32,10 @@
"user-posted-in-public-room-dual": "%1 og %2 skrev i %4",
"user-posted-in-public-room-triple": "%1, %2 og %3 skrev i %5",
"user-posted-in-public-room-multiple": "%1, %2 og %3 andre skrev i %5",
- "upvoted-your-post-in": "%1 har tilrådd innlegget ditt i %2.",
- "upvoted-your-post-in-dual": "%1 og %2 har tilrådd innlegget ditt i %3.",
- "upvoted-your-post-in-triple": "%1, %2 og %3 har tilrådd innlegget ditt i %4.",
- "upvoted-your-post-in-multiple": "%1, %2 og %3 andre har tilrådd innlegget ditt i %4.",
+ "upvoted-your-post-in": "%1 har anbefalt innlegget ditt i %2.",
+ "upvoted-your-post-in-dual": "%1 og %2 har anbefalt innlegget ditt i %3.",
+ "upvoted-your-post-in-triple": "%1, %2 og %3 har anbefalt innlegget ditt i %4.",
+ "upvoted-your-post-in-multiple": "%1, %2 og %3 andre har anbefalt innlegget ditt i %4.",
"moved-your-post": "%1 har flyttet innlegget ditt til %2.",
"moved-your-topic": "%1 har flyttet %2",
"user-flagged-post-in": "%1 har flagget et innlegg i %2",
@@ -50,7 +50,7 @@
"user-posted-to-dual": "%1 og %2 har svart på innlegget ditt i %3",
"user-posted-to-triple": "%1, %2 og %3 har svart til: %4",
"user-posted-to-multiple": "%1, %2 og %3 andre har svart til: %4",
- "user-posted-topic": "%1 har skrevet en ny tråd: %2",
+ "user-posted-topic": "%1 har skrevet et nytt innlegg: %2",
"user-edited-post": "%1 har redigert et innlegg i %2",
"user-posted-topic-with-tag": "%1 har publisert %2 (merket %3)",
"user-posted-topic-with-tag-dual": "%1 har publisert %2 (merket %3 og %4)",
@@ -80,14 +80,14 @@
"notification-only": "Kun varsel",
"email-only": "Kun e-post",
"notification-and-email": "Varsel og e-post",
- "notificationType-upvote": "Når noen tilrår innlegget ditt",
- "notificationType-new-topic": "Når noen du følger legger ut et emne",
- "notificationType-new-topic-with-tag": "Når et emne publiseres med et stikkord du følger",
- "notificationType-new-topic-in-category": "Når et emne er lagt ut i en kategori du ser på",
- "notificationType-new-reply": "Når et nytt svar er lagt ut i et emne du overvåker",
- "notificationType-post-edit": "Når et innlegg er redigert i et emne du overvåker",
+ "notificationType-upvote": "Når noen anbefaler innlegget ditt",
+ "notificationType-new-topic": "Når noen du følger legger ut et innlegg",
+ "notificationType-new-topic-with-tag": "Når et innlegg publiseres med et stikkord du følger",
+ "notificationType-new-topic-in-category": "Når et innlegg er lagt ut i en kategori du følger",
+ "notificationType-new-reply": "Når et nytt svar er lagt ut i innlegg du følger",
+ "notificationType-post-edit": "Når et svar er redigert i et innlegg du følger",
"notificationType-follow": "Når noen starter å følge deg",
- "notificationType-new-chat": "Når du mottar en melding i chat",
+ "notificationType-new-chat": "Når du mottar en melding",
"notificationType-new-group-chat": "Når du mottar en gruppemelding i chat",
"notificationType-new-public-chat": "Når du mottar en melding i en offentlig chat",
"notificationType-group-invite": "Når du får tilsendt en gruppeinvitasjon",
@@ -95,7 +95,7 @@
"notificationType-group-request-membership": "Når noen sender en forespørsel om å bli med i en gruppe du eier",
"notificationType-new-register": "Når noen blir lag til i kø for å registrere",
"notificationType-post-queue": "Når et nytt innlegg er satt i kø",
- "notificationType-new-post-flag": "Når ett innlegg er flagget",
+ "notificationType-new-post-flag": "Når ett innlegg er rapportert",
"notificationType-new-user-flag": "Når en bruker er flagget",
"notificationType-new-reward": "Når du får en ny tildelning",
"activitypub.announce": "%1 delte din post i %2 til sine følgere.",
diff --git a/public/language/nb/pages.json b/public/language/nb/pages.json
index 90436898a9..09c6a6b616 100644
--- a/public/language/nb/pages.json
+++ b/public/language/nb/pages.json
@@ -5,13 +5,13 @@
"popular-week": "Populære emner denne uken",
"popular-month": "Populære emner denne måneden",
"popular-alltime": "Mest populære emner for all tid",
- "recent": "Nylige emner",
- "top-day": "Dagens emne med flest stemmer",
- "top-week": "Emne med flest stemmer denne uken",
- "top-month": "Emne med flest stemmer denne måneden",
- "top-alltime": "Emner med flest stemmer",
+ "recent": "Siste innlegg",
+ "top-day": "Dagens emne med flest anbefalinger",
+ "top-week": "Emne med flest anbefalinger denne uken",
+ "top-month": "Emne med flest anbefalinger denne måneden",
+ "top-alltime": "Emner med flest anbefalinger",
"moderator-tools": "Moderatorverktøy",
- "flagged-content": "Flagget innhold",
+ "flagged-content": "Rapportert innhold",
"ip-blacklist": "IP-svarteliste",
"post-queue": "Innleggskø",
"registration-queue": "Registreringskø",
@@ -34,7 +34,7 @@
"group": "%1 gruppe",
"chats": "Samtaler",
"chat": "Samtale med %1",
- "flags": "Flagg",
+ "flags": "Rapporteringer",
"flag-details": "Flagg %1 detaljer",
"world": "Verden",
"account/edit": "Endrer \"%1\"",
@@ -56,7 +56,7 @@
"account/watched": "Innlegg overvåket av %1",
"account/ignored": "Emner ignorert av %1",
"account/read": "Emner lest av %1",
- "account/upvoted": "Innlegg tilrådd av %1",
+ "account/upvoted": "Innlegg anbefalt av %1",
"account/downvoted": "Innlegg nedstemt av %1",
"account/best": "Beste innlegg skrevet av %1",
"account/controversial": "Kontroversielle innlegg skrevet av %1",
diff --git a/public/language/nb/recent.json b/public/language/nb/recent.json
index e8ec1af77b..0403e627a9 100644
--- a/public/language/nb/recent.json
+++ b/public/language/nb/recent.json
@@ -1,11 +1,11 @@
{
- "title": "Nylige",
+ "title": "Siste",
"day": "Dag",
"week": "Uke",
"month": "Måned",
"year": "År",
"alltime": "All tid",
- "no-recent-topics": "Det er ingen nye emner.",
+ "no-recent-topics": "Det er ingen nye innlegg.",
"no-popular-topics": "Det er ingen populære emner.",
"load-new-posts": "Last inn nye innlegg",
"uncategorized.title": "Alle kjente emner",
diff --git a/public/language/nb/search.json b/public/language/nb/search.json
index e0798274ba..146febd8da 100644
--- a/public/language/nb/search.json
+++ b/public/language/nb/search.json
@@ -38,7 +38,7 @@
"relevance": "Relevanse",
"time": "Tid",
"post-time": "Innleggstid",
- "votes": "Stemmer",
+ "votes": "Anbefalinger",
"newer-than": "Nyere enn",
"older-than": "Eldre enn",
"any-date": "Alle datoer",
@@ -67,7 +67,7 @@
"sort": "Sorter",
"last-reply-time": "Siste svartid",
"topic-title": "Trådtittel",
- "topic-votes": "Stemmer på tråd",
+ "topic-votes": "Anbefalinger av innlegg",
"number-of-replies": "Antall svar",
"number-of-views": "Antall visninger",
"topic-start-date": "Startdato for tråd",
@@ -79,8 +79,8 @@
"sort-by-relevance-asc": "Sorter etter: Relevanse (stigende rekkefølge)",
"sort-by-timestamp-desc": "Sorter etter: Innleggstid (synkende rekkefølge)",
"sort-by-timestamp-asc": "Sorter etter: Innleggstid (stigende rekkefølge)",
- "sort-by-votes-desc": "Sorter etter: Stemmer (synkende rekkefølge)",
- "sort-by-votes-asc": "Sorter etter: Stemmer (stigende rekkefølge)",
+ "sort-by-votes-desc": "Sorter etter: Anbefalinger (synkende rekkefølge)",
+ "sort-by-votes-asc": "Sorter etter: Anbefalinger (stigende rekkefølge)",
"sort-by-topic.lastposttime-desc": "Sorter etter: Siste svartid (synkende rekkefølge)",
"sort-by-topic.lastposttime-asc": "Sorter etter: Siste svartid (stigende rekkefølge)",
"sort-by-topic.title-desc": "Sorter etter: Emnetittel (synkende rekkefølge)",
@@ -89,8 +89,8 @@
"sort-by-topic.postcount-asc": "Sorter etter: Antall svar (stigende rekkefølge)",
"sort-by-topic.viewcount-desc": "Sorter etter: Antall visninger (synkende rekkefølge)",
"sort-by-topic.viewcount-asc": "Sorter etter: Antall visninger (stigende rekkefølge)",
- "sort-by-topic.votes-desc": "Sorter etter: Trådstemmer (synkende rekkefølge)",
- "sort-by-topic.votes-asc": "Sorter etter: Trådstemmer (stigende rekkefølge)",
+ "sort-by-topic.votes-desc": "Sorter etter: Anbefalinger (synkende rekkefølge)",
+ "sort-by-topic.votes-asc": "Sorter etter: Anbefalinger (stigende rekkefølge)",
"sort-by-topic.timestamp-desc": "Sorter etter: Trådstartdato (synkende rekkefølge)",
"sort-by-topic.timestamp-asc": "Sorter etter: Trådstartdato (stigende rekkefølge)",
"sort-by-user.username-desc": "Sorter etter: Brukernavn (synkende rekkefølge)",
diff --git a/public/language/nb/social.json b/public/language/nb/social.json
index c8133e4f11..41fc62d703 100644
--- a/public/language/nb/social.json
+++ b/public/language/nb/social.json
@@ -8,5 +8,7 @@
"log-in-with-facebook": "Logg inn med Facebook",
"continue-with-facebook": "Fortsett med Facebook",
"sign-in-with-linkedin": "Logg inn med LinkedIn",
- "sign-up-with-linkedin": "Registrer deg med LinkedIn"
+ "sign-up-with-linkedin": "Registrer deg med LinkedIn",
+ "sign-in-with-wordpress": "Sign in with WordPress",
+ "sign-up-with-wordpress": "Sign up with WordPress"
}
\ No newline at end of file
diff --git a/public/language/nb/tags.json b/public/language/nb/tags.json
index 300852b7ab..571ec1055c 100644
--- a/public/language/nb/tags.json
+++ b/public/language/nb/tags.json
@@ -10,8 +10,8 @@
"tag-whitelist": "Hviteliste for emneord",
"watching": "Følger",
"not-watching": "Følger ikke",
- "watching.description": "Varsle meg om nye emner.",
- "not-watching.description": "Ikke varsle meg om nye emner.",
+ "watching.description": "Varsle meg om nye innlegg",
+ "not-watching.description": "Ikke varsle meg om nye innlegg.",
"following-tag.message": "Du vil nå motta varsler når noen legger ut et emne med dette emneordet.",
"not-following-tag.message": "Du vil ikke motta varsler når noen legger ut et emne med dette emneordet."
}
\ No newline at end of file
diff --git a/public/language/nb/topic.json b/public/language/nb/topic.json
index 48dc204ac2..8e7ccf54df 100644
--- a/public/language/nb/topic.json
+++ b/public/language/nb/topic.json
@@ -9,7 +9,7 @@
"posted-by": "Opprettet av %1",
"posted-by-guest": "Opprettet av Gjest",
"chat": "Chat",
- "notify-me": "Bli varslet om nye svar i denne tråden",
+ "notify-me": "Varsle meg om nye svar på dette innlegget",
"quote": "Siter",
"reply": "Svar",
"replies-to-this-post": "%1 svar",
@@ -67,8 +67,8 @@
"user-queued-post-on": "%1 i køpost til godkjenning %3",
"user-referenced-topic-ago": "%1 refererte dette emnet %3",
"user-referenced-topic-on": "%1 refererte dette innlegget dette innlegget på %3",
- "user-forked-topic-ago": "%1 gaflet dette emnet %3",
- "user-forked-topic-on": "%1 gaflet dette emnet på %3",
+ "user-forked-topic-ago": "%1 forgrenet dette emnet %3",
+ "user-forked-topic-on": "%1 forgrenet dette emnet på %3",
"bookmark-instructions": "Klikk her for å gå tilbake til det siste svaret i denne tråden.",
"flag-post": "Rapporter denne posten",
"flag-user": "Rapporter denne brukeren",
@@ -76,7 +76,7 @@
"view-flag-report": "Vis rapporteringsoversikt",
"resolve-flag": "Behandle rapport",
"merged-message": "Dette emnet er slått sammen med %2",
- "forked-message": "This topic was forked from %2",
+ "forked-message": "Dette emnet vart forgrenet fra %2",
"deleted-message": "Denne innlegget har blitt slettet. ",
"following-topic.message": "Du vil nå motta varsler når noen svarer på dette innlegget.",
"not-following-topic.message": "Du vil se dette innlegget i oversikten over uleste innlegg, men du vil ikke motta varslinger når noen skriver et svar.",
@@ -87,15 +87,15 @@
"mark-unread.success": "Tråd merket som ulest.",
"watch": "Følg",
"unwatch": "Ikke følg",
- "watch.title": "Bli varslet om nye svar i denne tråden",
+ "watch.title": "Varlse meg om nye svar på dette innlegget",
"unwatch.title": "Slutt å følge denne tråden",
"share-this-post": "Del ditt innlegg",
"watching": "Følger",
"not-watching": "Følger ikke",
"ignoring": "Ignorerer",
"watching.description": "Varlse meg om nye svar. Vis tråd i ulest.",
- "not-watching.description": "Ikke varsle meg om nye svar. Vis tråd i ulest hvis ikke kategori er ignorert.",
- "ignoring.description": "Ikke varsle meg om nye svar. Ikke vis tråd i ulest.",
+ "not-watching.description": "Ikke varsle meg om nye svar. Vis innlegg i ulest hvis ikke kategori er ignorert.",
+ "ignoring.description": "Ikke varsle meg om nye svar. Ikke vis innlegg i ulest.",
"thread-tools.title": "Trådverktøy",
"thread-tools.markAsUnreadForAll": "Merk som ulest for alle",
"thread-tools.pin": "Fest tråd",
@@ -103,6 +103,7 @@
"thread-tools.lock": "Lås tråd",
"thread-tools.unlock": "Lås opp tråd",
"thread-tools.move": "Flytt tråd",
+ "thread-tools.crosspost": "Crosspost Topic",
"thread-tools.move-posts": "Flytt innlegg",
"thread-tools.move-all": "Flytt alle",
"thread-tools.change-owner": "Bytt eier",
@@ -132,6 +133,7 @@
"pin-modal-help": "Du kan eventuelt angi en utløpsdato for de festede emne(ne) her. Alternativt kan du la dette feltet stå tomt for å holde emnet festet til det manuelt løsnes.",
"load-categories": "Laster kategorier",
"confirm-move": "Flytt",
+ "confirm-crosspost": "Cross-post",
"confirm-fork": "Forgren",
"bookmark": "Bokmerke",
"bookmarks": "Bokmerker",
@@ -141,11 +143,12 @@
"loading-more-posts": "Laster flere innlegg",
"move-topic": "Flytt tråd",
"move-topics": "Flytt tråder",
+ "crosspost-topic": "Cross-post Topic",
"move-post": "Flytt innlegg",
"post-moved": "Innlegg flyttet!",
"fork-topic": "Forgren tråd",
- "enter-new-topic-title": "Tast inn tittel på emne",
- "fork-topic-instruction": "Klikk på innleggene du vil dele, skriv inn en tittel for det nye emnet og klikk på emnet",
+ "enter-new-topic-title": "Skriv tittel på innlegg",
+ "fork-topic-instruction": "Velg innleggene du vil flytte til nytt forgrenet emne, skriv tittel for det nye emnet og klikk forgren",
"fork-no-pids": "Ingen innlegg valgt!",
"no-posts-selected": "Ingen innlegg valgt.",
"x-posts-selected": "%1 innlegg valgt",
@@ -157,12 +160,15 @@
"merge-topic-list-title": "Liste over emner som skal slås sammen",
"merge-options": "Slå sammen alternativer",
"merge-select-main-topic": "Velg hovedemne",
- "merge-new-title-for-topic": "Ny tittel for emne",
+ "merge-new-title-for-topic": "Ny tittel for innlegg",
"topic-id": "Emne ID",
"move-posts-instruction": "Klikk på innleggene du vil flytte, og skriv deretter inn en emne-ID, eller gå til målemnet",
"move-topic-instruction": "Velg målkategorien og klikk deretter flytt",
"change-owner-instruction": "Klikk på innleggene du vil tildele til en annen bruker",
"manage-editors-instruction": "Administrer brukere som kan redigere dette innlegget nedenfor.",
+ "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": "Skriv din tråd-tittel her",
"composer.handle-placeholder": "Skriv inn navnet ditt / signatur her",
"composer.hide": "Skjul",
@@ -172,7 +178,7 @@
"composer.post-later": "Publiser senere",
"composer.schedule": "Timeplan",
"composer.replying-to": "Svarer i %1",
- "composer.new-topic": "Ny tråd",
+ "composer.new-topic": "Nytt innleg",
"composer.editing-in": "Redigerer post i %1",
"composer.uploading": "laster opp...",
"composer.thumb-url-label": "Lim inn som tråd-minatyr URL",
@@ -190,12 +196,12 @@
"newest-to-oldest": "Nyeste til eldste",
"recently-replied": "Nye svar",
"recently-created": "Siste innlegg",
- "most-votes": "Flest tilrådinger",
+ "most-votes": "Flest anbefalinger",
"most-posts": "Flest innlegg",
"most-views": "Flest visninger",
- "stale.title": "Lag en ny tråd i stedet?",
- "stale.warning": "Tråden du svarer på er ganske gammel. Vil du heller lage en ny tråd og referere til denne?",
- "stale.create": "Lag en ny tråd",
+ "stale.title": "Opprett nytt innlegg i stedet?",
+ "stale.warning": "Innlegget du svarer på er ganske gammelt. Vil du heller lage et nytt innlegg og referere til dette?",
+ "stale.create": "Lag et nytt innlegg",
"stale.reply-anyway": "Svar på denne tråden likevel",
"link-back": "Sv: [%1](%2)",
"diffs.title": "Redigeringshistorikk for innlegg",
@@ -215,11 +221,11 @@
"go-to-my-next-post": "Gå til mitt neste innlegg",
"no-more-next-post": "Du har ikke flere innlegg i dette emnet",
"open-composer": "Åpne editor",
- "post-quick-reply": "Raskt svar",
+ "post-quick-reply": "Svar",
"navigator.index": "Innlegg %1 av %2",
"navigator.unread": "%1 ulest",
- "upvote-post": "Tilrå innlegg",
- "downvote-post": "Ikke tilrå innlegg",
+ "upvote-post": "Anbefal innlegg",
+ "downvote-post": "Ikke anbefal innlegg",
"post-tools": "Innleggsverktøy",
"unread-posts-link": "Lenke til uleste innlegg",
"thumb-image": "Miniatyrbilde for emne",
diff --git a/public/language/nb/unread.json b/public/language/nb/unread.json
index 9ac5779198..64b5d53d47 100644
--- a/public/language/nb/unread.json
+++ b/public/language/nb/unread.json
@@ -9,7 +9,7 @@
"all-categories": "Alle kategorier",
"topics-marked-as-read.success": "Emner merket som lest!",
"all-topics": "Alle emner",
- "new-topics": "Nye emner",
+ "new-topics": "Nye innlegg",
"watched-topics": "Fulgte emner",
"unreplied-topics": "Emner som ikke er svart på",
"multiple-categories-selected": "Flere valg"
diff --git a/public/language/nb/user.json b/public/language/nb/user.json
index 590afb957a..0f2cc20fa5 100644
--- a/public/language/nb/user.json
+++ b/public/language/nb/user.json
@@ -59,9 +59,9 @@
"chat": "Chat",
"chat-with": "Fortsett å chatte med %1",
"new-chat-with": "Start ny chat med %1",
- "view-remote": "View Original",
+ "view-remote": "Vis opprinnelig versjon",
"flag-profile": "Rapporter profil",
- "profile-flagged": "Allerede flagget",
+ "profile-flagged": "Allerede rapportert",
"follow": "Følg",
"unfollow": "Avfølg",
"cancel-follow": "Avbryt forespørsel om å følge",
@@ -104,13 +104,13 @@
"settings": "Brukerinnstillinger",
"show-email": "Vis min e-post",
"show-fullname": "Vis mitt fulle navn",
- "restrict-chats": "Bare tillat chat-meldinger fra brukere jeg følger",
- "disable-incoming-chats": "Disable incoming chat messages ",
- "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",
+ "restrict-chats": "Bare tillat meldinger fra brukere jeg følger",
+ "disable-incoming-chats": "Slå av meldinger fra chat ",
+ "chat-allow-list": "Bare tillat meldinger fra følgende brukere",
+ "chat-deny-list": "Ikke tillat meldinger fra følgende brukere",
+ "chat-list-add-user": "Legg til bruker",
"digest-label": "Abonner på sammendrag",
- "digest-description": "Abonner på e-post-oppdateringer for dette forumet (nye varsler og emner) i samsvar med valgte tidspunkt",
+ "digest-description": "Abonner på e-post-oppdateringer for dette forumet (nye varsler og innlegg) i samsvar med valgte tidspunkt",
"digest-off": "Av",
"digest-daily": "Daglig",
"digest-weekly": "Ukentlig",
@@ -119,12 +119,12 @@
"has-no-follower": "Denne brukeren har ingen følgere :(",
"follows-no-one": "Denne brukeren følger ingen :(",
"has-no-posts": "Denne brukeren har ikke skrevet noe enda.",
- "has-no-best-posts": "Denne brukeren har ingen tilrådde innlegg ennå.",
+ "has-no-best-posts": "Denne brukeren har ingen anbefalte innlegg ennå.",
"has-no-topics": "Denne brukeren har ikke skrevet noen tråder enda.",
"has-no-watched-topics": "Denne brukeren har ikke fulgt noen tråder enda.",
"has-no-ignored-topics": "Denne brukeren har ikke ignorert noen emner ennå",
"has-no-read-topics": "Denne brukeren har ikke lest noen tråder enda.",
- "has-no-upvoted-posts": "Denne brukeren har ikke tilrådd noen innlegg ennå.",
+ "has-no-upvoted-posts": "Denne brukeren har ikke anbefalt noen innlegg ennå.",
"has-no-downvoted-posts": "Denne brukeren har ikke stemt ned noen innlegg ennå.",
"has-no-controversial-posts": "Denne brukeren har ikke noen nedstemte innlegg ennå.",
"has-no-blocks": "Du har ingen blokkerte brukere.",
@@ -139,10 +139,10 @@
"max-items-per-page": "Maksimum %1",
"acp-language": "Administrer sidespråk",
"notifications": "Varsler",
- "upvote-notif-freq": "Varslingsfrekvens for opp-stemmer",
- "upvote-notif-freq.all": "Alle tilrådinger",
+ "upvote-notif-freq": "Varslingsfrekvens for anbefalinger",
+ "upvote-notif-freq.all": "Alle anbefalinger",
"upvote-notif-freq.first": "Først per innlegg",
- "upvote-notif-freq.everyTen": "Hver tiende tilråding",
+ "upvote-notif-freq.everyTen": "Hver tiende anbefaling",
"upvote-notif-freq.threshold": "På 1, 5, 10, 25, 50, 100, 150, 200 ...",
"upvote-notif-freq.logarithmic": "På 10, 100, 1000 ...",
"upvote-notif-freq.disabled": "Noe er galt med funksjonen",
@@ -175,12 +175,12 @@
"sso.dissociate": "Separer",
"sso.dissociate-confirm-title": "Bekreft seperasjon",
"sso.dissociate-confirm": "Er du sikker på at du vil separere kontoen din fra %1?",
- "info.latest-flags": "Siste flagg",
+ "info.latest-flags": "Siste rapporteringer",
"info.profile": "Profil",
"info.post": "Post",
- "info.view-flag": "Vis flagg",
+ "info.view-flag": "Vis rapportering",
"info.reported-by": "Rapportert av:",
- "info.no-flags": "Ingen flaggede innlegg funnet",
+ "info.no-flags": "Ingen rapporterte innlegg funnet",
"info.ban-history": "Nylig utestengingshistorikk",
"info.no-ban-history": "Denne brukeren har aldri blitt utestengt",
"info.banned-until": "Utestengt til %1",
diff --git a/public/language/nb/users.json b/public/language/nb/users.json
index 7dbae83a4b..94953fb54e 100644
--- a/public/language/nb/users.json
+++ b/public/language/nb/users.json
@@ -4,7 +4,7 @@
"latest-users": "Siste brukere",
"top-posters": "Flest innlegg",
"most-reputation": "Best omdømme",
- "most-flags": "Flest flagg",
+ "most-flags": "Flest rapporteringer",
"search": "Søk",
"enter-username": "Skriv inn et brukernavn for å søke",
"search-user-for-chat": "Søk etter en bruker for å starte chat",
@@ -17,7 +17,7 @@
"groups-to-join": "Grupper som en kan bli med i når invitasjonen godtas:",
"invitation-email-sent": "En invitasjons-e-post ble sendt til %1",
"user-list": "Brukerliste",
- "recent-topics": "Nye tråder",
+ "recent-topics": "Nye innlegg",
"popular-topics": "Populære tråder",
"unread-topics": "Uleste tråder",
"categories": "Kategorier",
diff --git a/public/language/nb/world.json b/public/language/nb/world.json
index d61c766c85..c2d9bb4bc2 100644
--- a/public/language/nb/world.json
+++ b/public/language/nb/world.json
@@ -7,15 +7,15 @@
"help.title": "Hva er denne siden?",
"help.intro": "Welcome to your corner of the fediverse.",
"help.fediverse": "The \"fediverse\" is a network of interconnected applications and websites that all talk to one another and whose users can see each other. This forum is federated, and can interact with that social web (or \"fediverse\"). This page is your corner of the fediverse. It consists solely of topics created by — and shared from — users you follow.",
- "help.build": "There might not be a lot of topics here to start; that's normal. You will start to see more content here over time when you start following other users.",
+ "help.build": "Det kan hende det ikke er så mange innlegg her i starten, det er helt normalt. Du vil begynne å se mer innhold her etter hvert som du begynner å følge andre brukere.",
"help.federating": "Likewise, if users from outside of this forum start following you, then your posts will start appearing on those apps and websites as well.",
- "help.next-generation": "This is the next generation of social media, start contributing today!",
+ "help.next-generation": "Dette er neste generasjon sosiale medier, begynn å bidra i dag!",
"onboard.title": "Ditt vindu til fødiverset...",
- "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!",
+ "onboard.what": "Dette er din personlige kategori, som kun består av innhold funnet utenfor dette forumet. Om noe vises på denne siden, avhenger av om du følger dem, eller om innlegget ble delt av noen du følger.",
+ "onboard.why": "Det skjer mye utenfor dette forumet, og ikke alt er relevant for dine interesser. Derfor er det å følge folk den beste måten å vise at du vil se mer fra noen.",
+ "onboard.how": "I mellomtiden kan du klikke på snarveisknappene øverst for å se hva annet dette forumet inneholder, og begynne å oppdage nytt innhold!",
- "show-categories": "Show categories",
- "hide-categories": "Hide categories"
+ "show-categories": "Vis kategorier",
+ "hide-categories": "Skjul kategorier"
}
\ No newline at end of file
diff --git a/public/language/nl/admin/dashboard.json b/public/language/nl/admin/dashboard.json
index 63bae0694f..d0b9c8db04 100644
--- a/public/language/nl/admin/dashboard.json
+++ b/public/language/nl/admin/dashboard.json
@@ -75,6 +75,7 @@
"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": "Unieke bezoekers",
"graphs.registered-users": "Registered Users",
"graphs.guest-users": "Guest Users",
diff --git a/public/language/nl/admin/manage/categories.json b/public/language/nl/admin/manage/categories.json
index 6988838842..470ed0209d 100644
--- a/public/language/nl/admin/manage/categories.json
+++ b/public/language/nl/admin/manage/categories.json
@@ -1,18 +1,22 @@
{
"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",
- "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.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "Background Colour",
"text-color": "Text Colour",
"bg-image-size": "Background Image Size",
@@ -103,6 +107,11 @@
"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.
Note — 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": "
Do you really want to purge this category \"%1\"?
Warning! All topics and posts in this category will be purged!
Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.
",
"alert.purge-success": "Category purged!",
"alert.copy-success": "Settings Copied!",
diff --git a/public/language/nl/admin/settings/activitypub.json b/public/language/nl/admin/settings/activitypub.json
index 94f9ad7822..5ab4fa43e8 100644
--- a/public/language/nl/admin/settings/activitypub.json
+++ b/public/language/nl/admin/settings/activitypub.json
@@ -18,6 +18,28 @@
"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.
N.B. 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 # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
+ "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 /actor.",
+ "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 %1 server(s)",
"server.filter-help": "Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively allow federation with specific servers, instead. Both options are supported, although they are mutually exclusive.",
diff --git a/public/language/nl/admin/settings/uploads.json b/public/language/nl/admin/settings/uploads.json
index 22046915d9..e91a7bee36 100644
--- a/public/language/nl/admin/settings/uploads.json
+++ b/public/language/nl/admin/settings/uploads.json
@@ -22,6 +22,7 @@
"reject-image-height": "Maximum Image Height (in pixels)",
"reject-image-height-help": "Images taller than this value will be rejected.",
"allow-topic-thumbnails": "Allow users to upload topic thumbnails",
+ "show-post-uploads-as-thumbnails": "Show post uploads as thumbnails",
"topic-thumb-size": "Topic Thumb Size",
"allowed-file-extensions": "Allowed File Extensions",
"allowed-file-extensions-help": "Enter comma-separated list of file extensions here (e.g. pdf,xls,doc). An empty list means all extensions are allowed.",
diff --git a/public/language/nl/aria.json b/public/language/nl/aria.json
index 8e2c565c82..ec7889d2f4 100644
--- a/public/language/nl/aria.json
+++ b/public/language/nl/aria.json
@@ -5,5 +5,6 @@
"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"
+ "group-page-link-for": "Group page link for %1",
+ "show-crossposts": "Show Cross-posts"
}
\ No newline at end of file
diff --git a/public/language/nl/error.json b/public/language/nl/error.json
index 83670b19ba..6436fd1251 100644
--- a/public/language/nl/error.json
+++ b/public/language/nl/error.json
@@ -3,6 +3,7 @@
"invalid-json": "Ongeldige 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": "Het lijkt erop dat je niet ingelogd bent.",
"account-locked": "Je account is tijdelijk vergrendeld",
"search-requires-login": "Zoeken vereist een account - meld je aan of registreer je om te zoeken.",
@@ -146,6 +147,7 @@
"post-already-restored": "Dit bericht is al hersteld",
"topic-already-deleted": "Dit onderwerp is al verwijderd",
"topic-already-restored": "Dit onderwerp is al hersteld",
+ "topic-already-crossposted": "This topic has already been cross-posted there.",
"cant-purge-main-post": "Het is niet mogelijk het eerste bericht te verwijderen. Hiervoor dient het gehele onderwerp verwijderd te worden.",
"topic-thumbnails-are-disabled": "Miniatuurweergaven bij onderwerpen uitgeschakeld.",
"invalid-file": "Ongeldig bestand",
@@ -227,6 +229,7 @@
"no-topics-selected": "Geen onderwerpen geselecteerd!",
"cant-move-to-same-topic": "Een bericht kan niet naar hetzelfde onderwerp worden verplaatst!",
"cant-move-topic-to-same-category": "Kan onderwerp niet verplaatsen naar dezelfde categorie",
+ "cant-move-topic-to-from-remote-categories": "You cannot move topics in or out of remote categories; consider cross-posting instead.",
"cannot-block-self": "Je kan jezelf niet blokkeren!",
"cannot-block-privileged": "Je kan geen administrators of global moderators blokkeren",
"cannot-block-guest": "Gasten kunnen geen andere gebruikers blokkeren",
@@ -236,6 +239,7 @@
"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": "Kan plugin niet installeren – alleen plugins toegestaan door de NodeBB Package Manager kunnen via de ACP geinstalleerd worden",
+ "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",
diff --git a/public/language/nl/global.json b/public/language/nl/global.json
index 0e4fc76a89..7e4e5a0181 100644
--- a/public/language/nl/global.json
+++ b/public/language/nl/global.json
@@ -68,6 +68,7 @@
"users": "Gebruikers",
"topics": "Onderwerpen",
"posts": "Berichten",
+ "crossposts": "Cross-posts",
"x-posts": "%1 posts",
"x-topics": "%1 topics",
"x-reputation": "%1 reputation",
diff --git a/public/language/nl/modules.json b/public/language/nl/modules.json
index cbe6bc5603..1e9e509560 100644
--- a/public/language/nl/modules.json
+++ b/public/language/nl/modules.json
@@ -48,6 +48,7 @@
"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",
diff --git a/public/language/nl/social.json b/public/language/nl/social.json
index 2ba690a187..5b8dd99a46 100644
--- a/public/language/nl/social.json
+++ b/public/language/nl/social.json
@@ -8,5 +8,7 @@
"log-in-with-facebook": "Log in with Facebook",
"continue-with-facebook": "Continue with Facebook",
"sign-in-with-linkedin": "Sign in with LinkedIn",
- "sign-up-with-linkedin": "Sign up 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"
}
\ No newline at end of file
diff --git a/public/language/nl/topic.json b/public/language/nl/topic.json
index ff3e53c91a..a4ead8ccd1 100644
--- a/public/language/nl/topic.json
+++ b/public/language/nl/topic.json
@@ -103,6 +103,7 @@
"thread-tools.lock": "Onderwerp sluiten",
"thread-tools.unlock": "Onderwerp openen",
"thread-tools.move": "Onderwerp verplaatsen",
+ "thread-tools.crosspost": "Crosspost Topic",
"thread-tools.move-posts": "Verplaats berichten",
"thread-tools.move-all": "Verplaats alles",
"thread-tools.change-owner": "Wijzig eigenaar",
@@ -132,6 +133,7 @@
"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": "Categorieën laden",
"confirm-move": "Verplaatsen",
+ "confirm-crosspost": "Cross-post",
"confirm-fork": "Splits",
"bookmark": "Favoriet",
"bookmarks": "Favorieten",
@@ -141,6 +143,7 @@
"loading-more-posts": "Meer berichten laden...",
"move-topic": "Onderwerp verplaatsen",
"move-topics": "Verplaats onderwerpen",
+ "crosspost-topic": "Cross-post Topic",
"move-post": "Bericht verplaatsen",
"post-moved": "Bericht verplaatst!",
"fork-topic": "Afgesplitst onderwerp",
@@ -163,6 +166,9 @@
"move-topic-instruction": "Select the target category and then click move",
"change-owner-instruction": "Klik op de berichten die je wilt toewijzen aan een andere gebruiker",
"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": "Voer hier de titel van het onderwerp in...",
"composer.handle-placeholder": "Voer je naam/pseudoniem hier in",
"composer.hide": "Hide",
diff --git a/public/language/nn-NO/admin/dashboard.json b/public/language/nn-NO/admin/dashboard.json
index c852084c8f..2f31eb632b 100644
--- a/public/language/nn-NO/admin/dashboard.json
+++ b/public/language/nn-NO/admin/dashboard.json
@@ -65,7 +65,7 @@
"on-categories": "I kategoriar",
"reading-posts": "Les innlegg",
"browsing-topics": "Blar gjennom emne",
- "recent": "Nyleg",
+ "recent": "Siste",
"unread": "Uleste",
"high-presence-topics": "Emne med høg aktivitet",
@@ -75,6 +75,7 @@
"graphs.page-views-registered": "Diagram over sidevisningar (registrerte)",
"graphs.page-views-guest": "Diagram over sidevisningar (gjestar)",
"graphs.page-views-bot": "Diagram over sidevisningar (botar)",
+ "graphs.page-views-ap": "ActivityPub Page Views",
"graphs.unique-visitors": "Diagram over unike besøkande",
"graphs.registered-users": "Diagram over registrerte brukarar",
"graphs.guest-users": "Diagram over gjestar",
diff --git a/public/language/nn-NO/admin/manage/categories.json b/public/language/nn-NO/admin/manage/categories.json
index 6d947aacb2..ef3cfa44c2 100644
--- a/public/language/nn-NO/admin/manage/categories.json
+++ b/public/language/nn-NO/admin/manage/categories.json
@@ -1,18 +1,22 @@
{
"manage-categories": "Administrer kategoriar",
"add-category": "Legg til kategori",
+ "add-local-category": "Add Local category",
+ "add-remote-category": "Add Remote category",
+ "remove": "Remove",
+ "rename": "Rename",
"jump-to": "Hopp til",
"settings": "Innstillingar",
"edit-category": "Rediger kategori",
"privileges": "Rettar",
"back-to-categories": "Tilbake til kategoriar",
+ "id": "Category ID",
"name": "Namn",
"handle": "Kategori-sti",
"handle.help": " Kategori-stien din blir brukt som ein representasjon av denne kategorien på andre nettverk, som eit brukarnamn. Ein kategori-sti må ikkje samsvare med eit eksisterande brukarnamn eller ei brukargruppe.",
"description": "Skildring",
- "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.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "Bakgrunnsfarge",
"text-color": "Tekstfarge",
"bg-image-size": "Storleik på bakgrunnsbilete",
@@ -86,23 +90,28 @@
"federation.disabled": "Føderasjon er deaktivert for heile nettstaden, så innstillingar for kategori-føderasjon er for tida ikkje tilgjengelege.",
"federation.disabled-cta": "Føderasjonsinnstillingar →",
"federation.syncing-header": "Synkronisering",
- "federation.syncing-intro": "Ein kategori kan følgje ein “Gruppeaktør” via ActivityPub-protokollen. Dersom innhald blir mottatt frå ein av aktørane som er lista opp nedanfor, vil det automatisk bli lagt til i denne kategorien.",
- "federation.syncing-caveat": " Merk: Å konfigurere synkronisering her opprettar ein einvegs synkronisering. NodeBB prøver å abonnere på/følgje aktøren, men det motsette kan ikkje føresetjast.",
- "federation.syncing-none": "Denne kategorien følgjer for tida ingen.",
+ "federation.syncing-intro": "Ein kategori kan følge ein “Gruppeaktør” via ActivityPub-protokollen. Dersom innhald blir mottatt frå ein av aktørane som er lista opp nedanfor, vil det automatisk bli lagt til i denne kategorien.",
+ "federation.syncing-caveat": " Merk: Å konfigurere synkronisering her opprettar ein einvegs synkronisering. NodeBB prøver å abonnere på/følge aktøren, men det motsette kan ikkje føresetjast.",
+ "federation.syncing-none": "Denne kategorien følger for tida ingen.",
"federation.syncing-add": "Synkronser med...",
"federation.syncing-actorUri": "Aktør",
"federation.syncing-follow": "Følg",
"federation.syncing-unfollow": "Avfølg",
- "federation.followers": "Eksterne brukarar som følgjer denne kategorien",
+ "federation.followers": "Eksterne brukarar som følger denne kategorien",
"federation.followers-handle": "Sti",
"federation.followers-id": "ID",
- "federation.followers-none": "Ingen følgjarar.",
+ "federation.followers-none": "Ingen følgarar.",
"federation.followers-autofill": "Autofill",
"alert.created": "Oppretta",
"alert.create-success": "Kategori oppretta med suksess",
"alert.none-active": "Ingen aktive kategoriar",
"alert.create": "Opprett kategori",
+ "alert.add": "Add a Category",
+ "alert.add-help": "Remote categories can be added to the categories listing by specifying their handle.
Note — 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": "Er du sikker på at du vil rense denne kategorien?",
"alert.purge-success": "Kategorien vart rensa med suksess",
"alert.copy-success": "Innstillingar kopiert med suksess",
diff --git a/public/language/nn-NO/admin/manage/privileges.json b/public/language/nn-NO/admin/manage/privileges.json
index 42dd969247..5c9b423ca1 100644
--- a/public/language/nn-NO/admin/manage/privileges.json
+++ b/public/language/nn-NO/admin/manage/privileges.json
@@ -35,7 +35,7 @@
"view-edit-history": "Vis redigeringshistorikk",
"delete-posts": "Slett innlegg",
"view-deleted": "Vis sletta",
- "upvote-posts": "Tilrå innlegg",
+ "upvote-posts": "Anbefal innlegg",
"downvote-posts": "Stem ned innlegg",
"delete-topics": "Slett emne",
"purge": "Rensk",
diff --git a/public/language/nn-NO/admin/manage/users.json b/public/language/nn-NO/admin/manage/users.json
index 7013a7c0df..67f0f73f9b 100644
--- a/public/language/nn-NO/admin/manage/users.json
+++ b/public/language/nn-NO/admin/manage/users.json
@@ -135,8 +135,8 @@
"export-field-postcount": "Innleggstal",
"export-field-topiccount": "Emnetal",
"export-field-profileviews": "Profilvisningar",
- "export-field-followercount": "Følgjarar",
- "export-field-followingcount": "Følgjer",
+ "export-field-followercount": "Følgarar",
+ "export-field-followingcount": "Følger",
"export-field-fullname": "Fullt namn",
"export-field-website": "Nettstad",
"export-field-location": "Stad",
diff --git a/public/language/nn-NO/admin/settings/activitypub.json b/public/language/nn-NO/admin/settings/activitypub.json
index 96d0526ecc..79f6f05cd6 100644
--- a/public/language/nn-NO/admin/settings/activitypub.json
+++ b/public/language/nn-NO/admin/settings/activitypub.json
@@ -4,7 +4,7 @@
"general": "Generelt",
"pruning": "Innhaldsbeskjæring",
"content-pruning": "Dagar å behalde eksternt innhald",
- "content-pruning-help": " Merk at eksternt innhald som har fått engasjement (eit svar eller ei opp-/nedstemming) vil bli bevart. (0 for deaktivert)",
+ "content-pruning-help": " Merk at eksternt innhald som har fått engasjement (eit svar eller ei anbefaling) vil bli bevart. (0 for deaktivert)",
"user-pruning": "Dagar å mellomlagre eksterne brukarkontoar",
"user-pruning-help": "Eksterne brukarkontoar vil berre bli fjerna dersom dei ikkje har innlegg. Elles vil dei bli henta på nytt. (0 for deaktivert)",
"enabled": "Aktiver føderering",
@@ -18,6 +18,28 @@
"probe-timeout": "Oppslagstimeout (millisekund)",
"probe-timeout-help": "(Standard: 2000) Dersom oppslagsførespurnaden ikkje får eit svar innan den angitte tidsramma, vil brukaren bli sendt direkte til lenkja i staden. Juster dette talet oppover dersom nettsider responderer sakte, og du ønskjer å gi ekstra tid.",
+ "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.
N.B. 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 # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
+ "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 /actor.",
+ "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": "Filtrer etter",
"count": "Denne NodeBB-en er for tida klar over %1 server(ar)",
"server.filter-help": "Spesifiser serverar du ønskjer å hindre frå å føderere med din NodeBB. Alternativt kan du velje å tillate føderasjon berre med spesifikke serverar. Begge alternativ er støtta, men dei er gjensidig utelukkande.",
diff --git a/public/language/nn-NO/admin/settings/post.json b/public/language/nn-NO/admin/settings/post.json
index 10d4b92671..3534e580a9 100644
--- a/public/language/nn-NO/admin/settings/post.json
+++ b/public/language/nn-NO/admin/settings/post.json
@@ -6,7 +6,7 @@
"sorting.newest-to-oldest": "Nyaste til eldste",
"sorting.recently-replied": "Sist svart",
"sorting.recently-created": "Nyleg oppretta",
- "sorting.most-votes": "Fleire stemmer",
+ "sorting.most-votes": "Flest anbefalingar",
"sorting.most-posts": "Fleire innlegg",
"sorting.most-views": "Fleire visningar",
"sorting.topic-default": "Standard sortering for emne",
@@ -39,7 +39,7 @@
"teaser.last-reply": "Siste svar",
"teaser.first": "Fyrste innlegg",
"showPostPreviewsOnHover": "Vis innlegg ved førhandsvising",
- "unread-and-recent": "Uleste og nylege",
+ "unread-and-recent": "Innstillingar for Uleste og Siste",
"unread.cutoff": "Avskjering for uleste",
"unread.min-track-last": "Minste sporingslengd for siste innlegg",
"recent.max-topics": "Maksimum tal emne nyleg",
diff --git a/public/language/nn-NO/admin/settings/reputation.json b/public/language/nn-NO/admin/settings/reputation.json
index bcf7b0cf51..d3ac095bc3 100644
--- a/public/language/nn-NO/admin/settings/reputation.json
+++ b/public/language/nn-NO/admin/settings/reputation.json
@@ -2,18 +2,18 @@
"reputation": "Omdømme",
"disable": "Deaktiver",
"disable-down-voting": "Deaktiver nedstemming",
- "upvote-visibility": "Synlegheit for oppstemmer",
- "upvote-visibility-all": "Alle kan sjå oppstemmer",
- "upvote-visibility-loggedin": "Berre innlogga brukarar kan sjå oppstemmer",
- "upvote-visibility-privileged": "Berre privilegerte brukarar kan sjå oppstemmer",
+ "upvote-visibility": "Synlegheit for anbefalingar",
+ "upvote-visibility-all": "Alle kan sjå anbefalingar",
+ "upvote-visibility-loggedin": "Berre innlogga brukarar kan sjå anbefalingar",
+ "upvote-visibility-privileged": "Berre privilegerte brukarar kan sjå anbefalingar",
"downvote-visibility": "Synlegheit for nedstemmer",
"downvote-visibility-all": "Alle kan sjå nedstemmer",
"downvote-visibility-loggedin": "Berre innlogga brukarar kan sjå nedstemmer",
"downvote-visibility-privileged": "Berre privilegerte brukarar kan sjå nedstemmer",
"thresholds": "Grenseverdiar",
- "min-rep-upvote": "Minimum omdømme for å tilrå",
- "upvotes-per-day": "Tilrådingar per dag",
- "upvotes-per-user-per-day": "Tilrådingar per brukar per dag",
+ "min-rep-upvote": "Minimum omdømme for å anbefale",
+ "upvotes-per-day": "Anbefalingar per dag",
+ "upvotes-per-user-per-day": "Anbefalingar per brukar per dag",
"min-rep-downvote": "Minimum omdømme for å stemme ned",
"downvotes-per-day": "Nedstemmer per dag",
"downvotes-per-user-per-day": "Nedstemmer per brukar per dag",
diff --git a/public/language/nn-NO/admin/settings/sounds.json b/public/language/nn-NO/admin/settings/sounds.json
index f83f14d0f6..71970eccc7 100644
--- a/public/language/nn-NO/admin/settings/sounds.json
+++ b/public/language/nn-NO/admin/settings/sounds.json
@@ -1,6 +1,6 @@
{
"notifications": "Varsel",
- "chat-messages": "Chatmeldingar",
+ "chat-messages": "Meldingar",
"play-sound": "Spel av lyd",
"incoming-message": "Innkommande melding",
"outgoing-message": "Utgåande melding",
diff --git a/public/language/nn-NO/admin/settings/uploads.json b/public/language/nn-NO/admin/settings/uploads.json
index c729541aff..c7730e9264 100644
--- a/public/language/nn-NO/admin/settings/uploads.json
+++ b/public/language/nn-NO/admin/settings/uploads.json
@@ -22,6 +22,7 @@
"reject-image-height": "Avvis bilete høgde",
"reject-image-height-help": "Angi maksimal høgde for bilete som vert avvist ved opplasting.",
"allow-topic-thumbnails": "Tillat emne-miniatyrbilete",
+ "show-post-uploads-as-thumbnails": "Show post uploads as thumbnails",
"topic-thumb-size": "Storleik på emne-miniatyr",
"allowed-file-extensions": "Tillatne filtypar",
"allowed-file-extensions-help": "Angi kva filtypar som er tillatne ved opplasting.",
diff --git a/public/language/nn-NO/admin/settings/user.json b/public/language/nn-NO/admin/settings/user.json
index 5dc36d2d55..77b367a63b 100644
--- a/public/language/nn-NO/admin/settings/user.json
+++ b/public/language/nn-NO/admin/settings/user.json
@@ -63,7 +63,7 @@
"default-user-settings": "Standardinnstillingar for brukar",
"show-email": "Vis e-post",
"show-fullname": "Vis fullt namn",
- "restrict-chat": "Avgrens chat",
+ "restrict-chat": "Tillat berre meldingar frå brukarar eg følger",
"disable-incoming-chats": "Disable incoming chat messages",
"outgoing-new-tab": "Utgåande lenkjer i ny fane",
"topic-search": "Emnesøk",
@@ -81,7 +81,7 @@
"default-notification-settings": "Standard varslingsinnstillingar",
"categoryWatchState": "Kategori-overvåking",
"categoryWatchState.tracking": "Sporing",
- "categoryWatchState.notwatching": "Ikkje overvåking",
+ "categoryWatchState.notwatching": "Følger ikkje",
"categoryWatchState.ignoring": "Ignorerer",
"restrictions-new": "Nye restriksjonar",
"restrictions.rep-threshold": "Omdømmegrense",
diff --git a/public/language/nn-NO/aria.json b/public/language/nn-NO/aria.json
index a89012d5a8..517122ab4c 100644
--- a/public/language/nn-NO/aria.json
+++ b/public/language/nn-NO/aria.json
@@ -5,5 +5,6 @@
"profile-page-for": "Profilside for brukar %1",
"user-watched-tags": "Emneord følgt av brukar",
"delete-upload-button": "Slett opplasting-knapp",
- "group-page-link-for": "Gruppeside-lenkje for, %1"
+ "group-page-link-for": "Gruppeside-lenkje for, %1",
+ "show-crossposts": "Show Cross-posts"
}
\ No newline at end of file
diff --git a/public/language/nn-NO/category.json b/public/language/nn-NO/category.json
index 22f6ffeaa3..6ef0275e7f 100644
--- a/public/language/nn-NO/category.json
+++ b/public/language/nn-NO/category.json
@@ -1,30 +1,30 @@
{
"category": "Kategori",
"subcategories": "Underkategoriar",
- "uncategorized": "Uncategorized",
- "uncategorized.description": "Topics that do not strictly fit in with any existing categories",
+ "uncategorized": "Ukategorisert",
+ "uncategorized.description": "Innlegg som ikkje passar helt inn i nokon av dei eksisterande kategoriane.",
"handle.description": "This category can be followed from the open social web via the handle %1",
- "new-topic-button": "Nytt emne",
+ "new-topic-button": "Nytt innlegg",
"guest-login-post": "Logg inn for å legge inn innlegg",
"no-topics": "Denne kategorien er foreløpig tom. Har du noko å dele? Opprett eit innlegg her!",
- "no-followers": "Nobody on this website is tracking or watching this category. Track or watch this category in order to begin receiving updates.",
+ "no-followers": "Ingen følger denne kategorien enno. Følg den for å få oppdateringer.",
"browsing": "blar gjennom",
"no-replies": "Ingen har svart",
"no-new-posts": "Ingen nye innlegg.",
"watch": "Følg",
"ignore": "Ignorer",
- "watching": "Følgjer",
+ "watching": "Følger",
"tracking": "Følgjer med",
- "not-watching": "Følgjer ikkje",
+ "not-watching": "Følger ikkje",
"ignoring": "Ignorerer",
- "watching.description": "Varsle meg om nye emne. Vis emne i Uleste og nye",
- "tracking.description": "Viser emne som uleste og nye",
- "not-watching.description": "Vis ikkje emne som uleste, vis i nye",
- "ignoring.description": "Vis ikkje emne som uleste og nye",
- "watching.message": "Du følgjer no oppdateringar frå denne kategorien og alle underkategoriar",
+ "watching.description": "Varsle meg om nye innlegg. Vis innlegg i Uleste og Siste",
+ "tracking.description": "Viser innlegg i Uleste og Siste",
+ "not-watching.description": "Ikkje vis innlegg i Uleste, vis i Siste",
+ "ignoring.description": "Ikkje vis innlegg i Uleste eller Siste",
+ "watching.message": "Du følger no oppdateringar frå denne kategorien og alle underkategoriar",
"tracking.message": "Du følgjer no med på oppdateringar frå denne kategorien og alle underkategoriar",
- "notwatching.message": "Du følgjer ikkje oppdateringar frå denne kategorien og alle underkategoriar",
+ "notwatching.message": "Du følger ikkje oppdateringar frå denne kategorien og alle underkategoriar",
"ignoring.message": "Du ignorerer no oppdateringar frå denne kategorien og alle underkategoriar",
- "watched-categories": "Kategoriar du følgjer",
+ "watched-categories": "Kategoriar du følger",
"x-more-categories": "%1 fleire kategoriar"
}
\ No newline at end of file
diff --git a/public/language/nn-NO/email.json b/public/language/nn-NO/email.json
index 78d9456253..f6bcc0b6e4 100644
--- a/public/language/nn-NO/email.json
+++ b/public/language/nn-NO/email.json
@@ -17,7 +17,7 @@
"invitation.text2": "Invitasjonen din vil utløpe om %1 dagar.",
"invitation.cta": "Klikk her for å opprette kontoen din.",
"reset.text1": "Vi har mottatt ein førespurnad om å tilbakestille passordet ditt, moglegvis fordi du har gløymt det. Om dette ikkje er tilfelle, ver venleg å ignorere denne e-posten.",
- "reset.text2": "For å halde fram med tilbakestillinga av passordet, ver venleg å klikk på lenkja nedanfor:",
+ "reset.text2": "For å halde fram med tilbakestillinga av passordet, ver venleg å klikk på lenka nedanfor:",
"reset.cta": "Klikk her for å tilbakestille passordet ditt",
"reset.notify.subject": "Passord endra med suksess",
"reset.notify.text1": "Vi informerer deg om at passordet ditt vart endra med suksess den %1.",
diff --git a/public/language/nn-NO/error.json b/public/language/nn-NO/error.json
index 3325de8889..c9c43c0299 100644
--- a/public/language/nn-NO/error.json
+++ b/public/language/nn-NO/error.json
@@ -3,6 +3,7 @@
"invalid-json": "Ugyldig JSON",
"wrong-parameter-type": "Ein verdi av typen %3 var venta for eigenskapen `%1`, men %2 vart mottatt i staden",
"required-parameters-missing": "Naudsynt parameter mangla i denne API-kallinga: %1",
+ "reserved-ip-address": "Network requests to reserved IP ranges are not allowed.",
"not-logged-in": "Du ser ikkje ut til å vere logga inn.",
"account-locked": "Kontoen din har blitt midlertidig låst",
"search-requires-login": "Søk krev ein konto - ver venleg å logge inn eller registrer deg.",
@@ -36,9 +37,9 @@
"email-nochange": "Den oppgitte e-posten er den same som e-posten som allereie er registrert.",
"email-invited": "E-post vart allereie invitert",
"email-not-confirmed": "Posting i nokre kategoriar eller emne er mogleg når e-posten din er stadfesta, ver venleg å klikke her for å sende ein stadfestings-e-post.",
- "email-not-confirmed-chat": "Du kan ikkje chatte før e-posten din er stadfesta, ver venleg å klikke her for å stadfeste e-posten din.",
- "email-not-confirmed-email-sent": "E-posten din har ikkje blitt stadfesta enno, ver venleg å sjekke innboksen din for stadfestings-e-posten. Du kan kanskje ikkje poste i nokre kategoriar eller chatte før e-posten er stadfesta.",
- "no-email-to-confirm": "Kontoen din har ikkje ein registrert e-post. Ein e-post er naudsynt for kontogjenoppretting, og kan vere naudsynt for å chatte og poste i nokre kategoriar. Ver venleg å klikke her for å registrere ein e-post.",
+ "email-not-confirmed-chat": "Du kan ikkje sende meldingar før e-posten din er stadfesta, ver venleg å klikke her for å stadfeste e-posten din.",
+ "email-not-confirmed-email-sent": "E-posten din har ikkje blitt stadfesta enno, ver venleg å sjekke innboksen din for stadfestings-e-posten. Du kan kanskje ikkje poste i nokre kategoriar eller sende meldingar før e-posten er stadfesta.",
+ "no-email-to-confirm": "Kontoen din har ikkje ein registrert e-post. Ein e-post er naudsynt for kontogjenoppretting, og kan vere naudsynt for å sende meldingar og poste i nokre kategoriar. Ver venleg å klikke her for å registrere ein e-post.",
"user-doesnt-have-email": "Brukaren \"%1\" har ikkje ein registrert e-post.",
"email-confirm-failed": "Vi kunne ikkje stadfeste e-posten din, prøv igjen seinare.",
"confirm-email-already-sent": "Stadfestings-e-post er allereie sendt, ver venleg å vente %1 minutt før du sender ein ny.",
@@ -146,6 +147,7 @@
"post-already-restored": "Dette innlegget har allereie blitt gjenoppretta",
"topic-already-deleted": "Dette emnet har allereie blitt sletta",
"topic-already-restored": "Dette emnet har allereie blitt gjenoppretta",
+ "topic-already-crossposted": "This topic has already been cross-posted there.",
"cant-purge-main-post": "Du kan ikkje rense hovudinnlegget, ver venleg å slette emnet i staden",
"topic-thumbnails-are-disabled": "Miniatyrbilete for emne er deaktivert.",
"invalid-file": "Ugyldig fil",
@@ -153,30 +155,30 @@
"signature-too-long": "Beklager, signaturen din kan ikkje vere lengre enn %1 teikn.",
"about-me-too-long": "Beklager, 'Om meg' kan ikkje vere lengre enn %1 teikn.",
"cant-chat-with-yourself": "Du kan ikkje chatte med deg sjølv!",
- "chat-restricted": "Denne brukaren har avgrensa chatmeldingar. Dei må følgje deg før du kan chatte med dei",
+ "chat-restricted": "Denne brukaren tillèt berre meldingar frå følgarar. Dei må følge før du kan sende melding.",
"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": "Du har blitt blokkert av denne brukaren.",
"chat-disabled": "Chatsystem deaktivert",
"too-many-messages": "Du har sendt for mange meldingar, ver venleg å vente litt.",
- "invalid-chat-message": "Ugyldig chatmelding",
+ "invalid-chat-message": "Ugyldig melding",
"chat-message-too-long": "Chatmeldingar kan ikkje vere lengre enn %1 teikn.",
"cant-edit-chat-message": "Du har ikkje løyve til å redigere denne meldinga",
"cant-delete-chat-message": "Du har ikkje løyve til å slette denne meldinga",
- "chat-edit-duration-expired": "Du kan berre redigere chatmeldingar i %1 sekund etter posting",
- "chat-delete-duration-expired": "Du kan berre slette chatmeldingar i %1 sekund etter posting",
- "chat-deleted-already": "Denne chatmeldinga har allereie blitt sletta.",
- "chat-restored-already": "Denne chatmeldinga har allereie blitt gjenoppretta.",
+ "chat-edit-duration-expired": "Du kan berre redigere meldingar i %1 sekund etter posting",
+ "chat-delete-duration-expired": "Du kan berre slette meldingar i %1 sekund etter posting",
+ "chat-deleted-already": "Denne meldinga har allereie blitt sletta.",
+ "chat-restored-already": "Denne meldinga har allereie blitt gjenoppretta.",
"chat-room-does-not-exist": "Chatten eksisterer ikkje.",
"cant-add-users-to-chat-room": "Kan ikkje legge til brukarar i chat.",
"cant-remove-users-from-chat-room": "Kan ikkje fjerne brukarar frå chat.",
"chat-room-name-too-long": "Chatnamn er for langt. Namnet kan ikkje vere lengre enn %1 teikn.",
"remote-chat-received-too-long": "You received a chat message from %1, but it was too long and was rejected.",
- "already-voting-for-this-post": "Du har allereie stemt på dette innlegget.",
+ "already-voting-for-this-post": "Du har allereie anbefalt dette innlegget.",
"reputation-system-disabled": "Omdømmesystemet er deaktivert.",
"downvoting-disabled": "Nedstemming er deaktivert",
"not-enough-reputation-to-chat": "Du treng %1 omdømme for å chatte",
- "not-enough-reputation-to-upvote": "Du treng %1 omdømme for å tilrå",
+ "not-enough-reputation-to-upvote": "Du treng %1 omdømme for å anbefale",
"not-enough-reputation-to-downvote": "Du treng %1 omdømme for å stemme ned",
"not-enough-reputation-to-post-links": "Du treng %1 omdømme for å poste lenkjer",
"not-enough-reputation-to-flag": "Du treng %1 omdømme for å rapportere dette innlegget",
@@ -201,9 +203,9 @@
"too-many-user-flags-per-day": "Du kan berre rapportere %1 brukar(ar) per dag",
"cant-flag-privileged": "Du har ikkje løyve til å rapportere profilar eller innhald frå privilegerte brukarar (moderatorar/globale moderatorar/administratorar)",
"cant-locate-flag-report": "Kan ikkje finne rapport",
- "self-vote": "Du kan ikkje stemme på ditt eige innlegg",
- "too-many-upvotes-today": "Du kan berre tilrå %1 gong(ar) per dag",
- "too-many-upvotes-today-user": "Du kan berre tilrå ein brukar %1 gong(ar) per dag",
+ "self-vote": "Du kan ikkje anbefale ditt eige innlegg",
+ "too-many-upvotes-today": "Du kan berre anbefale %1 gong(er) per dag",
+ "too-many-upvotes-today-user": "Du kan berre anbefale ein brukar %1 gong(er) per dag",
"too-many-downvotes-today": "Du kan berre stemme ned %1 gong(ar) per dag",
"too-many-downvotes-today-user": "Du kan berre stemme ned ein brukar %1 gong(ar) per dag",
"reload-failed": "NodeBB møtte eit problem ved oppdatering: \"%1\". NodeBB vil fortsette å bruke eksisterande klientressursar, men du bør oppheve det du gjorde før oppdateringa.",
@@ -227,6 +229,7 @@
"no-topics-selected": "Ingen emne valt!",
"cant-move-to-same-topic": "Kan ikkje flytte innlegg til same emne!",
"cant-move-topic-to-same-category": "Kan ikkje flytte emne til same kategori!",
+ "cant-move-topic-to-from-remote-categories": "You cannot move topics in or out of remote categories; consider cross-posting instead.",
"cannot-block-self": "Du kan ikkje blokkere deg sjølv!",
"cannot-block-privileged": "Du kan ikkje blokkere administratorar eller globale moderatorar",
"cannot-block-guest": "Gjestar kan ikkje blokkere andre brukarar",
@@ -236,6 +239,7 @@
"socket-reconnect-failed": "Kan ikkje nå serveren for augneblinken. Klikk her for å prøve igjen, eller prøv seinare",
"invalid-plugin-id": "Ugyldig plugin-ID",
"plugin-not-whitelisted": "Kan ikkje installere plugin – berre pluginar som er kvitelistet av NodeBB Package Manager kan installerast via 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": "Du har ikkje løyve til å endre plugin-status sidan dei er definert ved oppstart (config.json, miljøvariablar eller terminalargument), ver venleg å endre konfigurasjonen i staden.",
"theme-not-set-in-configuration": "Når ein definerer aktive pluginar i konfigurasjonen, krev endring av tema at det nye temaet vert lagt til i lista over aktive pluginar før det oppdaterast i ACP",
diff --git a/public/language/nn-NO/flags.json b/public/language/nn-NO/flags.json
index 0ab74af824..8199619302 100644
--- a/public/language/nn-NO/flags.json
+++ b/public/language/nn-NO/flags.json
@@ -75,7 +75,7 @@
"sort-all": "Sorter alle",
"sort-posts-only": "Berre innlegg",
"sort-downvotes": "Sorter etter nedstemmer",
- "sort-upvotes": "Sorter etter tilrådingar",
+ "sort-upvotes": "Sorter etter anbefalingar",
"sort-replies": "Sorter etter svar",
"modal-title": "Rapporter innlegg",
diff --git a/public/language/nn-NO/global.json b/public/language/nn-NO/global.json
index 4f4ba51768..383dc061ab 100644
--- a/public/language/nn-NO/global.json
+++ b/public/language/nn-NO/global.json
@@ -35,14 +35,14 @@
"header.brand-logo": "Logo",
"header.admin": "Admin",
"header.categories": "Kategoriar",
- "header.recent": "Nyleg",
+ "header.recent": "Siste",
"header.unread": "Uleste",
"header.tags": "Emneord",
"header.popular": "Populære",
"header.top": "Topp",
"header.users": "Brukarar",
"header.groups": "Grupper",
- "header.chats": "Chattar",
+ "header.chats": "Chat",
"header.notifications": "Varsel",
"header.search": "Søk",
"header.profile": "Profil",
@@ -52,7 +52,7 @@
"header.drafts": "Utkast",
"header.world": "Verda",
"notifications.loading": "Laster varsel",
- "chats.loading": "Laster chattar",
+ "chats.loading": "Lastar meldingar",
"drafts.loading": "Laster utkast",
"motd.welcome": "Velkomen til NodeBB, diskusjonsplattformen for framtida.",
"alert.success": "Suksess",
@@ -63,26 +63,27 @@
"alert.banned.message": "Du har blitt utestengd, tilgangen din er no avgrensa.",
"alert.unbanned": "Ikkje lenger utestengd",
"alert.unbanned.message": "Utestenginga di har blitt oppheva.",
- "alert.unfollow": "Du følgjer ikkje lenger %1!",
- "alert.follow": "Du følgjer no %1!",
+ "alert.unfollow": "Du følger ikkje lenger %1!",
+ "alert.follow": "Du følger no %1!",
"users": "Brukarar",
"topics": "Emne",
"posts": "Innlegg",
+ "crossposts": "Cross-posts",
"x-posts": "%1 innlegg",
"x-topics": "%1 emne",
"x-reputation": "%1 omdømme",
"best": "Best",
"controversial": "Kontroversiell",
- "votes": "Stemmer",
- "x-votes": "%1 stemmer",
- "voters": "Veljarar",
- "upvoters": "Tilrår",
- "upvoted": "Tilrådde",
+ "votes": "Anbefalinger",
+ "x-votes": "%1 anbefalinger",
+ "voters": "Anbefaler",
+ "upvoters": "Anbefaler",
+ "upvoted": "Anbefalt",
"downvoters": "Nedstemmarar",
"downvoted": "Stemte ned",
"views": "Visningar",
"posters": "Innleggsskrivarar",
- "watching": "Watching",
+ "watching": "Følger",
"reputation": "Omdømme",
"lastpost": "Siste innlegg",
"firstpost": "Fyrste innlegg",
@@ -101,9 +102,9 @@
"guest-posted-ago": "Gjest posta %1",
"last-edited-by": "sist redigert av %1",
"edited-timestamp": "Redigert %1",
- "norecentposts": "Ingen nylege innlegg",
- "norecenttopics": "Ingen nylege emne",
- "recentposts": "Nylege innlegg",
+ "norecentposts": "Ingen nye svar",
+ "norecenttopics": "Ingen nye innlegg",
+ "recentposts": "Siste innlegg",
"recentips": "Nyleg logga IP-ar",
"moderator-tools": "Moderatorverktøy",
"status": "Status",
diff --git a/public/language/nn-NO/ip-blacklist.json b/public/language/nn-NO/ip-blacklist.json
index 12cfeb8050..8baad9e7bb 100644
--- a/public/language/nn-NO/ip-blacklist.json
+++ b/public/language/nn-NO/ip-blacklist.json
@@ -5,7 +5,7 @@
"validate": "Valider",
"apply": "Bruk",
"hints": "Tips",
- "hint-1": "Definer éi IP-adresse per linje. Du kan leggje til IP-blokker så lenge dei følgjer CIDR-formatet (t.d. 192.168.100.0/22).",
+ "hint-1": "Definer éi IP-adresse per linje. Du kan leggje til IP-blokker så lenge dei følger CIDR-formatet (t.d. 192.168.100.0/22).",
"hint-2": "Pass på å validere reglane før du tek dei i bruk.",
"validate.x-valid": "%1 av %2 reglar er gyldige.",
diff --git a/public/language/nn-NO/modules.json b/public/language/nn-NO/modules.json
index 353020cc78..36314e1771 100644
--- a/public/language/nn-NO/modules.json
+++ b/public/language/nn-NO/modules.json
@@ -1,26 +1,26 @@
{
"chat.room-id": "Rom %1",
- "chat.chatting-with": "Chat med",
- "chat.placeholder": "Skriv chatmelding her, dra og slepp bilete",
- "chat.placeholder.mobile": "Skriv chatmelding",
+ "chat.chatting-with": "Send melding til",
+ "chat.placeholder": "Skriv melding her",
+ "chat.placeholder.mobile": "Skriv melding",
"chat.placeholder.message-room": "Melding #%1",
- "chat.scroll-up-alert": "Gå til nyaste melding",
+ "chat.scroll-up-alert": "Gå til siste innlegg",
"chat.usernames-and-x-others": "%1 og %2 andre",
"chat.chat-with-usernames": "Chat med %1",
"chat.chat-with-usernames-and-x-others": "Chat med %1 og %2 andre",
- "chat.send": "Send",
- "chat.no-active": "Du har ingen aktive chattar",
+ "chat.send": "Publiser",
+ "chat.no-active": "Du har ingen aktive meldingar.",
"chat.user-typing-1": "%1 skriv ...",
"chat.user-typing-2": "%1 og %2 skriv ...",
"chat.user-typing-3": "%1, %2 og %3 skriv ...",
"chat.user-typing-n": "%1, %2 og %3 andre skriv ...",
"chat.user-has-messaged-you": "%1 har sendt deg ei melding.",
"chat.replying-to": "Svarar til %1",
- "chat.see-all": "Alle chattar",
+ "chat.see-all": "Alle meldingar",
"chat.mark-all-read": "Merk alle som lese",
"chat.no-messages": "Vel ein mottakar for å sjå meldingshistorikk",
"chat.no-users-in-room": "Ingen brukarar i dette rommet",
- "chat.recent-chats": "Nylege chattar",
+ "chat.recent-chats": "Siste meldingar",
"chat.contacts": "Kontaktar",
"chat.message-history": "Meldingshistorikk",
"chat.message-deleted": "Melding sletta",
@@ -40,7 +40,7 @@
"chat.unpin-message": "Fjern festing av melding",
"chat.public-rooms": "Offentlege rom (%1)",
"chat.private-rooms": "Private rom (%1)",
- "chat.create-room": "Opprett chat-rom",
+ "chat.create-room": "Opprett melding",
"chat.private.option": "Privat (berre synleg for brukarar lagt til i rommet)",
"chat.public.option": "Offentleg (synleg for alle brukarar i valde grupper)",
"chat.public.groups-help": "For å opprette ein chat synleg for alle brukarar, vel registered-users frå gruppelista.",
@@ -48,20 +48,21 @@
"chat.add-user": "Legg til brukar",
"chat.notification-settings": "Varslingsinnstillingar",
"chat.default-notification-setting": "Standard varslingsinnstillinger",
+ "chat.join-leave-messages": "Join/Leave Messages",
"chat.notification-setting-room-default": "Standard for rommet",
"chat.notification-setting-none": "Ingen varsel",
"chat.notification-setting-at-mention-only": "Berre @nemning",
"chat.notification-setting-all-messages": "Alle meldingar",
"chat.select-groups": "Vel grupper",
"chat.add-user-help": "Søk etter brukarar her. Når vald, vert brukaren lagt til i chatten. Den nye brukaren vil ikkje sjå meldingar skrivne før dei vart lagt til i samtalen. Berre chat-eigar () kan fjerne brukarar frå chat.",
- "chat.confirm-chat-with-dnd-user": "Denne brukaren har sett statusen til Ikkje forstyrr. Ønskjer du framleis å chatte med dei?",
+ "chat.confirm-chat-with-dnd-user": "Denne brukaren har sett statusen til Ikkje forstyrr. Ønskjer du framleis å sende ein melding?",
"chat.room-name-optional": "Romnamn (valfritt)",
"chat.rename-room": "Endre namn på rom",
"chat.rename-placeholder": "Skriv inn romnamnet her",
"chat.rename-help": "Romnamnet du set her vil vere synleg for alle deltakarar i rommet.",
"chat.leave": "Forlat",
"chat.leave-room": "Forlat rom",
- "chat.leave-prompt": "Er du sikker på at du vil forlate denne chatten?",
+ "chat.leave-prompt": "Er du sikker på at du vil forlate denne meldingstråden?",
"chat.leave-help": "Å forlate denne chatten vil fjerne deg frå framtidige samtalar i denne chatten. Om du vert lagt til igjen i framtida, vil du ikkje sjå tidlegare meldingshistorikk.",
"chat.delete": "Slett",
"chat.delete-room": "Slett rom",
@@ -121,7 +122,7 @@
"bootbox.cancel": "Avbryt",
"bootbox.confirm": "Stadfest",
"bootbox.submit": "Send inn",
- "bootbox.send": "Send",
+ "bootbox.send": "Publiser",
"cover.dragging-title": "Posisjonering av omslagsbilete",
"cover.dragging-message": "Dra omslagsbiletet til ønska posisjon og klikk \"Lagre\"",
"cover.saved": "Omslagsbilete og posisjon lagra",
diff --git a/public/language/nn-NO/notifications.json b/public/language/nn-NO/notifications.json
index b08b16179f..85e838c866 100644
--- a/public/language/nn-NO/notifications.json
+++ b/public/language/nn-NO/notifications.json
@@ -11,15 +11,15 @@
"new-notification": "Du har eit nytt varsel",
"you-have-unread-notifications": "Du har uleste varsel.",
"all": "Alle",
- "topics": "Emne",
+ "topics": "Innlegg",
"tags": "Emneord",
"categories": "Kategoriar",
"replies": "Svar",
"chat": "Meldingar",
- "group-chat": "Gruppechat",
+ "group-chat": "Gruppemelding",
"public-chat": "Offentleg chat",
- "follows": "Følgjarar",
- "upvote": "Tilrår",
+ "follows": "Følgarar",
+ "upvote": "Anbefaler",
"awards": "Utmerkingar",
"new-flags": "Nye rapporteringar",
"my-flags": "Rapporteringar tilordna meg",
@@ -32,10 +32,10 @@
"user-posted-in-public-room-dual": "%1 og %2 skreiv i %4",
"user-posted-in-public-room-triple": "%1, %2 og %3 skreiv i %5",
"user-posted-in-public-room-multiple": "%1, %2 og %3 andre skreiv i %5",
- "upvoted-your-post-in": "%1 har tilrådd innlegget ditt i %2.",
- "upvoted-your-post-in-dual": "%1 og %2 har tilrådd innlegget ditt i %3.",
- "upvoted-your-post-in-triple": "%1, %2 og %3 har tilrådd innlegget ditt i %4.",
- "upvoted-your-post-in-multiple": "%1, %2 og %3 andre har tilrådd innlegget ditt i %4.",
+ "upvoted-your-post-in": "%1 har anbefalt innlegget ditt i %2.",
+ "upvoted-your-post-in-dual": "%1 og %2 har anbefalt innlegget ditt i %3.",
+ "upvoted-your-post-in-triple": "%1, %2 og %3 har anbefalt innlegget ditt i %4.",
+ "upvoted-your-post-in-multiple": "%1, %2 og %3 andre har anbefalt innlegget ditt i %4.",
"moved-your-post": "%1 har flytta innlegget ditt til %2",
"moved-your-topic": "%1 har flytta %2",
"user-flagged-post-in": "%1 rapporterte eit innlegg i %2",
@@ -50,17 +50,17 @@
"user-posted-to-dual": "%1 og %2 har posta svar til: %3",
"user-posted-to-triple": "%1, %2 og %3 har posta svar til: %4",
"user-posted-to-multiple": "%1, %2 og %3 andre har posta svar til: %4",
- "user-posted-topic": "%1 har posta eit nytt emne: %2",
+ "user-posted-topic": "%1 har skrive eit nytt innlegg: %2",
"user-edited-post": "%1 har redigert eit innlegg i %2",
"user-posted-topic-with-tag": "%1 har posta %2 (merka %3)",
"user-posted-topic-with-tag-dual": "%1 har posta %2 (merka %3 og %4)",
"user-posted-topic-with-tag-triple": "%1 har posta %2 (merka %3, %4, og %5)",
"user-posted-topic-with-tag-multiple": "%1 har posta %2 (merka %3)",
- "user-posted-topic-in-category": "%1 har posta eit nytt emne i %2",
- "user-started-following-you": "%1 starta å følgje deg.",
- "user-started-following-you-dual": "%1 og %2 starta å følgje deg.",
- "user-started-following-you-triple": "%1, %2 og %3 starta å følgje deg.",
- "user-started-following-you-multiple": "%1, %2 og %3 andre starta å følgje deg.",
+ "user-posted-topic-in-category": "%1 har skrive eit nytt innlegg i %2",
+ "user-started-following-you": "%1 starta å følge deg.",
+ "user-started-following-you-dual": "%1 og %2 starta å følge deg.",
+ "user-started-following-you-triple": "%1, %2 og %3 starta å følge deg.",
+ "user-started-following-you-multiple": "%1, %2 og %3 andre starta å følge deg.",
"new-register": "%1 sende ein registreringsførespurnad.",
"new-register-multiple": "Det er %1 registreringsførespurnadar som ventar på gjennomgang.",
"flag-assigned-to-you": "Rapport %1 er tilordna deg",
@@ -80,16 +80,16 @@
"notification-only": "Berre varsel",
"email-only": "Berre e-post",
"notification-and-email": "Varsel og e-post",
- "notificationType-upvote": "Når nokon tilrår innlegget ditt",
- "notificationType-new-topic": "Når nokon du følgjer opprettar eit emne",
- "notificationType-new-topic-with-tag": "Når eit emne vert oppretta med eit emneord du følgjer",
- "notificationType-new-topic-in-category": "Når eit emne vert oppretta i ein kategori du følgjer",
- "notificationType-new-reply": "Når eit nytt svar vert posta i eit emne du følgjer",
- "notificationType-post-edit": "Når eit innlegg vert redigert i eit emne du følgjer",
- "notificationType-follow": "Når nokon startar å følgje deg",
- "notificationType-new-chat": "Når du mottek ei chatmelding",
- "notificationType-new-group-chat": "Når du mottek ei gruppemelding",
- "notificationType-new-public-chat": "Når du mottek ei offentleg gruppemelding",
+ "notificationType-upvote": "Når nokon anbefaler innlegget ditt",
+ "notificationType-new-topic": "Når nokon du følger opprettar eit innlegg",
+ "notificationType-new-topic-with-tag": "Når eit innlegg blir oppretta med eit emneord du følger",
+ "notificationType-new-topic-in-category": "Når eit innlegg vert oppretta i ein kategori du følger",
+ "notificationType-new-reply": "Når eit nytt svar vert posta i eit innlegg du følger",
+ "notificationType-post-edit": "Når eit svar blir redigert i eit innlegg du følger",
+ "notificationType-follow": "Når nokon startar å følge deg",
+ "notificationType-new-chat": "Når du mottar ei melding",
+ "notificationType-new-group-chat": "Når du mottar ei gruppemelding",
+ "notificationType-new-public-chat": "Når du mottar ei offentleg gruppemelding",
"notificationType-group-invite": "Når du mottek ei gruppeinvitasjon",
"notificationType-group-leave": "Når ein brukar forlèt gruppa di",
"notificationType-group-request-membership": "Når nokon ber om å bli med i ei gruppe du eig",
@@ -98,8 +98,8 @@
"notificationType-new-post-flag": "Når eit innlegg vert rapportert",
"notificationType-new-user-flag": "Når ein brukar vert rapportert",
"notificationType-new-reward": "Når du får ein ny utmerking",
- "activitypub.announce": "%1 delte din post i %2 til sine følgjarar.",
- "activitypub.announce-dual": "%1 og %2 delte din post i %3til sine følgjarar.",
- "activitypub.announce-triple": "%1, %2 og %3 delte din post i %4 til sine følgjarar.",
- "activitypub.announce-multiple": "%1, %2 og %3 andre delte din post i %4 til sine følgjarar."
+ "activitypub.announce": "%1 delte din post i %2 til sine følgarar.",
+ "activitypub.announce-dual": "%1 og %2 delte innlegget ditt i %3til sine følgarar.",
+ "activitypub.announce-triple": "%1, %2 og %3 delte din post i %4 til sine følgarar.",
+ "activitypub.announce-multiple": "%1, %2 og %3 andre delte din post i %4 til sine følgarar."
}
\ No newline at end of file
diff --git a/public/language/nn-NO/pages.json b/public/language/nn-NO/pages.json
index 4d1cdb955d..596398d6cc 100644
--- a/public/language/nn-NO/pages.json
+++ b/public/language/nn-NO/pages.json
@@ -5,11 +5,11 @@
"popular-week": "Populære emne denne veka",
"popular-month": "Populære emne denne månaden",
"popular-alltime": "Mest populære emne gjennom tidene",
- "recent": "Nylege emne",
- "top-day": "Mest stemte emne i dag",
- "top-week": "Mest stemte emne denne veka",
- "top-month": "Mest stemte emne denne månaden",
- "top-alltime": "Mest stemte emne gjennom tidene",
+ "recent": "Siste innlegg",
+ "top-day": "Mest anbefalte innlegg i dag",
+ "top-week": "Mest anbefalte innlegg denne veka",
+ "top-month": "Mest anbefalte innlegg denne månaden",
+ "top-alltime": "Mest anbefalte innlegg",
"moderator-tools": "Moderatorverktøy",
"flagged-content": "Rapportert innhald",
"ip-blacklist": "IP svarteliste",
@@ -32,7 +32,7 @@
"categories": "Kategoriar",
"groups": "Grupper",
"group": "%1 gruppe",
- "chats": "Meldingar",
+ "chats": "Samtalar",
"chat": "Chattar med %1",
"flags": "Rapportar",
"flag-details": "Detaljar for rapport %1",
@@ -42,8 +42,8 @@
"account/edit/username": "Endrar brukarnamn for \"%1\"",
"account/edit/email": "Endrar e-post for \"%1\"",
"account/info": "Kontoinformasjon",
- "account/following": "Personar %1 følgjer",
- "account/followers": "Personar som følgjer %1",
+ "account/following": "Personar %1 følger",
+ "account/followers": "Personar som følger %1",
"account/posts": "Innlegg skrive av %1",
"account/latest-posts": "Siste innlegg skrive av %1",
"account/topics": "Emne oppretta av %1",
@@ -56,7 +56,7 @@
"account/watched": "Emne følgde av %1",
"account/ignored": "Emne ignorert av %1",
"account/read": "Emne lest av %1",
- "account/upvoted": "Innlegg tilrådd av %1",
+ "account/upvoted": "Innlegg anbefalt av %1",
"account/downvoted": "Innlegg stemt ned av %1",
"account/best": "Beste innlegg skrive av %1",
"account/controversial": "Kontroversielle innlegg skrive av %1",
diff --git a/public/language/nn-NO/recent.json b/public/language/nn-NO/recent.json
index ee3a39b778..64478e71f2 100644
--- a/public/language/nn-NO/recent.json
+++ b/public/language/nn-NO/recent.json
@@ -1,11 +1,11 @@
{
- "title": "Nyleg",
+ "title": "Siste",
"day": "Dag",
"week": "Veke",
"month": "Månad",
"year": "År",
"alltime": "Heile tida",
- "no-recent-topics": "Det er ingen nylege emne.",
+ "no-recent-topics": "Ingen nye innlegg.",
"no-popular-topics": "Det er ingen populære emne.",
"load-new-posts": "Last nye innlegg",
"uncategorized.title": "Alle kjente emner",
diff --git a/public/language/nn-NO/search.json b/public/language/nn-NO/search.json
index 8bb15e8cde..fe877e3e63 100644
--- a/public/language/nn-NO/search.json
+++ b/public/language/nn-NO/search.json
@@ -38,7 +38,7 @@
"relevance": "Relevans",
"time": "Tid",
"post-time": "Innleggstid",
- "votes": "Stemmer",
+ "votes": "Anbefalingar",
"newer-than": "Nyare enn",
"older-than": "Eldre enn",
"any-date": "Kva som helst dato",
@@ -67,7 +67,7 @@
"sort": "Sorter",
"last-reply-time": "Tid for siste svar",
"topic-title": "Emnetittel",
- "topic-votes": "Emnestemmer",
+ "topic-votes": "Anbefalingar av innlegg",
"number-of-replies": "Antal svar",
"number-of-views": "Antal visningar",
"topic-start-date": "Startdato for emne",
@@ -79,8 +79,8 @@
"sort-by-relevance-asc": "Sorter etter: Relevans i stigande rekkefølgje",
"sort-by-timestamp-desc": "Sorter etter: Innleggstid i synkande rekkefølgje",
"sort-by-timestamp-asc": "Sorter etter: Innleggstid i stigande rekkefølgje",
- "sort-by-votes-desc": "Sorter etter: Stemmer i synkande rekkefølgje",
- "sort-by-votes-asc": "Sorter etter: Stemmer i stigande rekkefølgje",
+ "sort-by-votes-desc": "Sorter etter: Anbefalingar i synkande rekkefølgje",
+ "sort-by-votes-asc": "Sorter etter: Anbefalingar i stigande rekkefølgje",
"sort-by-topic.lastposttime-desc": "Sorter etter: Tid for siste svar i synkande rekkefølgje",
"sort-by-topic.lastposttime-asc": "Sorter etter: Tid for siste svar i stigande rekkefølgje",
"sort-by-topic.title-desc": "Sorter etter: Emnetittel i synkande rekkefølgje",
@@ -89,8 +89,8 @@
"sort-by-topic.postcount-asc": "Sorter etter: Antal svar i stigande rekkefølgje",
"sort-by-topic.viewcount-desc": "Sorter etter: Antal visningar i synkande rekkefølgje",
"sort-by-topic.viewcount-asc": "Sorter etter: Antal visningar i stigande rekkefølgje",
- "sort-by-topic.votes-desc": "Sorter etter: Emnestemmer i synkande rekkefølgje",
- "sort-by-topic.votes-asc": "Sorter etter: Emnestemmer i stigande rekkefølgje",
+ "sort-by-topic.votes-desc": "Sorter etter: Anbefalingar i synkande rekkefølgje",
+ "sort-by-topic.votes-asc": "Sorter etter: Anbefalingar i stigande rekkefølgje",
"sort-by-topic.timestamp-desc": "Sorter etter: Startdato for emne i synkande rekkefølgje",
"sort-by-topic.timestamp-asc": "Sorter etter: Startdato for emne i stigande rekkefølgje",
"sort-by-user.username-desc": "Sorter etter: Brukarnamn i synkande rekkefølgje",
diff --git a/public/language/nn-NO/social.json b/public/language/nn-NO/social.json
index 9f5af4b954..8afa1b2a1e 100644
--- a/public/language/nn-NO/social.json
+++ b/public/language/nn-NO/social.json
@@ -8,5 +8,7 @@
"log-in-with-facebook": "Logg inn med Facebook",
"continue-with-facebook": "Hald fram med Facebook",
"sign-in-with-linkedin": "Logg inn med LinkedIn",
- "sign-up-with-linkedin": "Registrer deg med LinkedIn"
+ "sign-up-with-linkedin": "Registrer deg med LinkedIn",
+ "sign-in-with-wordpress": "Sign in with WordPress",
+ "sign-up-with-wordpress": "Sign up with WordPress"
}
\ No newline at end of file
diff --git a/public/language/nn-NO/tags.json b/public/language/nn-NO/tags.json
index fd1087d24c..fb28e5bf2d 100644
--- a/public/language/nn-NO/tags.json
+++ b/public/language/nn-NO/tags.json
@@ -8,10 +8,10 @@
"no-tags": "Det er ingen emneord enno.",
"select-tags": "Vel emneord",
"tag-whitelist": "Kviteliste for emneord",
- "watching": "Følgjer",
- "not-watching": "Følgjer ikkje",
- "watching.description": "Varsle meg om nye emne.",
- "not-watching.description": "Ikkje varsle meg om nye emne.",
+ "watching": "Følger",
+ "not-watching": "Følger ikkje",
+ "watching.description": "Varsle meg om nye innlegg",
+ "not-watching.description": "Ikkje varsle meg om nye innlegg",
"following-tag.message": "Du vil no motta varsel når nokon postar eit emne med dette emneordet.",
"not-following-tag.message": "Du vil ikkje motta varsel når nokon postar eit emne med dette emneordet."
}
\ No newline at end of file
diff --git a/public/language/nn-NO/topic.json b/public/language/nn-NO/topic.json
index 48f429a550..1e757aa136 100644
--- a/public/language/nn-NO/topic.json
+++ b/public/language/nn-NO/topic.json
@@ -9,7 +9,7 @@
"posted-by": "Posta av %1",
"posted-by-guest": "Posta av gjest",
"chat": "Chat",
- "notify-me": "Varsle meg om nye svar i dette emnet",
+ "notify-me": "Varsle meg om nye svar på dette innlegget",
"quote": "Sitat",
"reply": "Svar",
"replies-to-this-post": "%1 svar",
@@ -80,22 +80,22 @@
"deleted-message": "Dette emnet er sletta. Berre brukarar med rettar til emneadministrasjon kan sjå det.",
"following-topic.message": "Du vil no motta varsel når nokon legg inn innlegg i dette emnet.",
"not-following-topic.message": "Du vil sjå dette emnet i lista over uleste emne, men du vil ikkje motta varsel når nokon legg inn innlegg.",
- "ignoring-topic.message": "Du vil ikkje lenger sjå dette emnet i lista over uleste emne. Du vil verte varsla når du vert nemnd eller innlegget ditt får oppstemmer.",
+ "ignoring-topic.message": "Du vil ikkje lenger sjå dette emnet i lista over uleste emne. Du vil verte varsla når du vert nemnd eller innlegget ditt blir anbefalt.",
"login-to-subscribe": "Ver venleg å registrer deg eller logg inn for å abonnere på dette emnet.",
"markAsUnreadForAll.success": "Emne merka som ulest for alle.",
"mark-unread": "Merk som ulest",
"mark-unread.success": "Emne merka som ulest.",
"watch": "Følg",
"unwatch": "Ikkje følg",
- "watch.title": "Varsle meg om nye svar i dette emnet",
- "unwatch.title": "Slutt å følgje dette emnet",
+ "watch.title": "Varsle meg om nye svar på dette innlegget",
+ "unwatch.title": "Slutt å følge dette innlegget",
"share-this-post": "Del dette innlegget",
- "watching": "Følgjer",
- "not-watching": "Følgjer ikkje",
+ "watching": "Følger",
+ "not-watching": "Følger ikkje",
"ignoring": "Ignorerer",
- "watching.description": "Varsle meg om nye svar. Vis emne som ulest.",
- "not-watching.description": "Ikkje varsle meg om nye svar. Vis emne som ulest om kategorien ikkje er ignorert.",
- "ignoring.description": "Ikkje varsle meg om nye svar. Vis ikkje emne som ulest.",
+ "watching.description": "Varsle meg om nye svar. Vis innlegg som ulest.",
+ "not-watching.description": "Ikkje varsle meg om nye svar. Vis innlegg i ulest om kategorien ikkje er ignorert.",
+ "ignoring.description": "Ikkje varsle meg om nye svar. Ikkje vis innlegg i ulest.",
"thread-tools.title": "Emneverktøy",
"thread-tools.markAsUnreadForAll": "Merk som ulest for alle",
"thread-tools.pin": "Fest emne",
@@ -103,6 +103,7 @@
"thread-tools.lock": "Lås emne",
"thread-tools.unlock": "Opne emne",
"thread-tools.move": "Flytt emne",
+ "thread-tools.crosspost": "Crosspost Topic",
"thread-tools.move-posts": "Flytt innlegg",
"thread-tools.move-all": "Flytt alle",
"thread-tools.change-owner": "Endre eigar",
@@ -132,6 +133,7 @@
"pin-modal-help": "Du kan eventuelt sette ein utløpsdato for det festa emna her. Alternativt kan du la feltet vere tomt slik at emna held seg festa til det blir manuelt avfesta.",
"load-categories": "Lastar kategoriar",
"confirm-move": "Flytt",
+ "confirm-crosspost": "Cross-post",
"confirm-fork": "Kopier",
"bookmark": "Bokmerke",
"bookmarks": "Bokmerke",
@@ -141,11 +143,12 @@
"loading-more-posts": "Lastar fleire innlegg",
"move-topic": "Flytt emne",
"move-topics": "Flytt emne",
+ "crosspost-topic": "Cross-post Topic",
"move-post": "Flytt innlegg",
"post-moved": "Innlegg flytta!",
"fork-topic": "Kopier emne",
- "enter-new-topic-title": "Skriv inn ny emnetittel",
- "fork-topic-instruction": "Klikk på innlegga du vil kopiere, skriv inn ein tittel for det nye emnet, og klikk på kopier emne",
+ "enter-new-topic-title": "Skriv tittel på innlegg",
+ "fork-topic-instruction": "Klikk på innlegga du vil forgreine, skriv tittel for det nye emnet og velg forgrein emne",
"fork-no-pids": "Ingen innlegg vald!",
"no-posts-selected": "Ingen innlegg vald!",
"x-posts-selected": "%1 innlegg vald",
@@ -157,12 +160,15 @@
"merge-topic-list-title": "Liste over emne som skal slåast saman",
"merge-options": "Samanslåingsalternativ",
"merge-select-main-topic": "Vel hovudemnet",
- "merge-new-title-for-topic": "Ny tittel for emne",
+ "merge-new-title-for-topic": "Ny tittel for innlegg",
"topic-id": "Emne-ID",
"move-posts-instruction": "Klikk på innlegga du vil flytte, og skriv inn ein emne-ID eller gå til målemnet",
"move-topic-instruction": "Vel mål-kategorien, og klikk deretter på flytt",
"change-owner-instruction": "Klikk på innlegga du vil tildele ein annan brukar",
"manage-editors-instruction": "Administrer brukere som kan endre innlegget under",
+ "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": "Skriv emnetittelen her...",
"composer.handle-placeholder": "Skriv namnet/aliaset ditt her",
"composer.hide": "Skjul",
@@ -172,7 +178,7 @@
"composer.post-later": "Post seinare",
"composer.schedule": "Planlegg",
"composer.replying-to": "Svarar til %1",
- "composer.new-topic": "Nytt emne",
+ "composer.new-topic": "Nytt innlegg",
"composer.editing-in": "Redigerer innlegg i %1",
"composer.uploading": "laster opp...",
"composer.thumb-url-label": "Lim inn ein emne-miniatyr-URL",
@@ -190,12 +196,12 @@
"newest-to-oldest": "Nyaste til eldste",
"recently-replied": "Sist svart",
"recently-created": "Nyleg oppretta",
- "most-votes": "Fleire stemmer",
+ "most-votes": "Flest anbefalingar",
"most-posts": "Fleire innlegg",
"most-views": "Fleire visningar",
- "stale.title": "Opprett nytt emne i staden?",
- "stale.warning": "Emnet du svarar på er gammalt. Ønskjer du å opprette eit nytt emne i staden, og referere til dette i svaret ditt?",
- "stale.create": "Opprett nytt emne",
+ "stale.title": "Opprett nytt innlegg i staden?",
+ "stale.warning": "Innlegget du svarer på er gammalt. Ønskjer du å opprette eit nytt innlegg i staden, og referere til dette i svaret ditt?",
+ "stale.create": "Opprett nytt innlegg",
"stale.reply-anyway": "Svar i dette emnet likevel",
"link-back": "Sv: [%1](%2)",
"diffs.title": "Innleggsendringshistorikk",
@@ -215,10 +221,10 @@
"go-to-my-next-post": "Gå til mitt neste innlegg",
"no-more-next-post": "Du har ikkje fleire innlegg i dette emnet",
"open-composer": "Opne editor",
- "post-quick-reply": "Raskt svar",
+ "post-quick-reply": "Svar",
"navigator.index": "Innlegg %1 av %2",
"navigator.unread": "%1 uleste",
- "upvote-post": "Tilrå innlegg",
+ "upvote-post": "Anbefal innlegg",
"downvote-post": "Stem ned innlegg",
"post-tools": "Innleggsverktøy",
"unread-posts-link": "Lenkje til uleste innlegg",
diff --git a/public/language/nn-NO/unread.json b/public/language/nn-NO/unread.json
index 37583696e6..2a90cf157f 100644
--- a/public/language/nn-NO/unread.json
+++ b/public/language/nn-NO/unread.json
@@ -9,8 +9,8 @@
"all-categories": "Alle kategoriar",
"topics-marked-as-read.success": "Emne merka som lest!",
"all-topics": "Alle emne",
- "new-topics": "Nye emne",
- "watched-topics": "Emne du følgjer",
+ "new-topics": "Nye innlegg",
+ "watched-topics": "Emne du følger",
"unreplied-topics": "Emne utan svar",
"multiple-categories-selected": "Fleire vald"
}
\ No newline at end of file
diff --git a/public/language/nn-NO/user.json b/public/language/nn-NO/user.json
index 9f36c196ea..9de1b2b127 100644
--- a/public/language/nn-NO/user.json
+++ b/public/language/nn-NO/user.json
@@ -38,15 +38,15 @@
"profile-views": "Profilvisningar",
"reputation": "Omdømme",
"bookmarks": "Bokmerke",
- "watched-categories": "Kategoriar du følgjer",
- "watched-tags": "Stikkord du følgjer",
+ "watched-categories": "Kategoriar du følger",
+ "watched-tags": "Stikkord du følger",
"change-all": "Endre alt",
"watched": "Følgde",
"ignored": "Ignorerte",
"read": "Lese",
- "default-category-watch-state": "Standard kategori følgjetilstand",
- "followers": "Følgjarar",
- "following": "Følgjer",
+ "default-category-watch-state": "Standard kategori følgetilstand",
+ "followers": "Følgarar",
+ "following": "Følger",
"shares": "Delingar",
"blocks": "Blokker",
"blocked-users": "Blokkerte brukarar",
@@ -59,12 +59,12 @@
"chat": "Chat",
"chat-with": "Fortset chat med %1",
"new-chat-with": "Start ny chat med %1",
- "view-remote": "View Original",
+ "view-remote": "Vis opphavleg versjon",
"flag-profile": "Rapporter profil",
- "profile-flagged": "Allerede flagga",
+ "profile-flagged": "Allerede rapportert",
"follow": "Følg",
- "unfollow": "Slutt å følgje",
- "cancel-follow": " Avbryt førespurnad om å følgje",
+ "unfollow": "Slutt å følge",
+ "cancel-follow": " Avbryt førespurnad om å følge",
"more": "Meir",
"profile-update-success": "Profilen er oppdatert!",
"change-picture": "Endre bilete",
@@ -104,29 +104,29 @@
"settings": "Innstillingar",
"show-email": "Vis e-posten min",
"show-fullname": "Vis fullt namn",
- "restrict-chats": "Tillat berre chatmeldingar frå brukarar eg følgjer",
- "disable-incoming-chats": "Disable incoming chat messages ",
+ "restrict-chats": "Tillat berre chatmeldingar frå brukarar eg følger",
+ "disable-incoming-chats": "Slå av meldingar frå chat ",
"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": "Abonner på oppsummering",
- "digest-description": "Abonner på e-postoppdateringar for dette forumet (nye varsel og emne) etter ei fastsett tidsplan",
+ "digest-description": "Abonner på e-postoppdateringar for dette forumet (nye varsel og innlegg) etter ein fastsett tidsplan",
"digest-off": "Av",
"digest-daily": "Dagleg",
"digest-weekly": "Kvar veke",
"digest-biweekly": "Kvar andre veke",
"digest-monthly": "Månadleg",
- "has-no-follower": "Denne brukaren har ingen følgjarar :(",
- "follows-no-one": "Denne brukaren følgjer ingen :(",
+ "has-no-follower": "Denne brukaren har ingen følgarar",
+ "follows-no-one": "Denne brukaren følger ingen ",
"has-no-posts": "Denne brukaren har ikkje lagt inn noko enno.",
- "has-no-best-posts": "Denne brukaren har ingen innlegg som er tilrådd enno.",
+ "has-no-best-posts": "Denne brukaren har ingen innlegg som er anbefalt enno.",
"has-no-topics": "Denne brukaren har ikkje lagt ut nokre emne enno.",
- "has-no-watched-topics": "Denne brukaren følgjer ingen emne enno.",
+ "has-no-watched-topics": "Denne brukaren følger ingen emne enno.",
"has-no-ignored-topics": "Denne brukaren ignorerer ingen emne enno.",
"has-no-read-topics": "Denne brukaren har ikkje lese nokre emne enno.",
- "has-no-upvoted-posts": "Denne brukaren har ikkje tilrådd nokon innlegg enno.",
+ "has-no-upvoted-posts": "Denne brukaren har ikkje anbefalt nokon innlegg enno.",
"has-no-downvoted-posts": "Denne brukaren har ikkje stemt ned nokre innlegg enno.",
- "has-no-controversial-posts": "Denne brukaren har inga kontroversielle innlegg enno.",
+ "has-no-controversial-posts": "Denne brukaren har ingen nedstemte innlegg.",
"has-no-blocks": "Du har ikkje blokkert nokon brukarar.",
"has-no-shares": "Denne brukaren har ikkje delt nokre emner.",
"email-hidden": "E-post er skjult",
@@ -139,10 +139,10 @@
"max-items-per-page": "Maksimalt %1",
"acp-language": "Språk for admin-side",
"notifications": "Varsel",
- "upvote-notif-freq": "Frekvens for oppstemmingsvarsel",
- "upvote-notif-freq.all": "Alle tilrådingar",
+ "upvote-notif-freq": "Frekvens for anbefalingsvarsel",
+ "upvote-notif-freq.all": "Alle anbefalingar",
"upvote-notif-freq.first": "Fyrste per innlegg",
- "upvote-notif-freq.everyTen": "Kvar tiande tilråding",
+ "upvote-notif-freq.everyTen": "Kvar tiande anbefaling",
"upvote-notif-freq.threshold": "På 1, 5, 10, 25, 50, 100, 150, 200...",
"upvote-notif-freq.logarithmic": "På 10, 100, 1000...",
"upvote-notif-freq.disabled": "Deaktivert",
diff --git a/public/language/nn-NO/users.json b/public/language/nn-NO/users.json
index 6d080dba84..1d2aea1465 100644
--- a/public/language/nn-NO/users.json
+++ b/public/language/nn-NO/users.json
@@ -1,13 +1,13 @@
{
"all-users": "Alle brukarar",
- "followed-users": "Brukarar du følgjer",
+ "followed-users": "Brukarar du følger",
"latest-users": "Siste brukarar",
"top-posters": "Mest aktive",
"most-reputation": "Best omdømme",
"most-flags": "Flest rapporteringar",
"search": "Søk",
"enter-username": "Skriv inn eit brukarnamn for å søke",
- "search-user-for-chat": "Søk etter ein brukar for å starte chat",
+ "search-user-for-chat": "Søk etter ein brukar for å sende melding",
"load-more": "Last meir",
"users-found-search-took": "%1 brukar(ar) funne! Søket tok %2 sekund.",
"filter-by": "Filtrer etter",
@@ -17,7 +17,7 @@
"groups-to-join": "Grupper å bli med i når invitasjonen vert akseptert:",
"invitation-email-sent": "Ein invitasjons-e-post har blitt sendt til %1",
"user-list": "Brukarliste",
- "recent-topics": "Nye emne",
+ "recent-topics": "Siste innlegg",
"popular-topics": "Populære emne",
"unread-topics": "Uleste emne",
"categories": "Kategoriar",
diff --git a/public/language/nn-NO/world.json b/public/language/nn-NO/world.json
index 71be5a0749..16b01238e2 100644
--- a/public/language/nn-NO/world.json
+++ b/public/language/nn-NO/world.json
@@ -6,15 +6,15 @@
"help.title": "Kva er denne sida?",
"help.intro": "Velkommen til ditt hjørne av fødiverset.",
- "help.fediverse": "“Fødiverset” er eit nettverk av samanbundne applikasjonar og nettsider som kommuniserer med kvarandre, og der brukarane kan sjå kvarandre. Dette forumet er føderert og kan samhandle med det sosiale nettet (eller “fødiverset”). Denne sida er ditt hjørne av fødiverset. Ho består utelukkande av emne oppretta av – og delt frå – brukarar du følgjer.",
- "help.build": "Det kan vere at det ikkje er mange emne her til å begynne med; det er heilt normalt. Du vil sjå meir innhald her etter kvart som du begynner å følgje andre brukarar.",
- "help.federating": "På same måte, dersom brukarar frå utsida av dette forumet begynner å følgje deg, vil innlegga dine òg begynne å visast på desse appane og nettsidene.",
+ "help.fediverse": "“Fødiverset” er eit nettverk av samanbundne applikasjonar og nettsider som kommuniserer med kvarandre, og der brukarane kan sjå kvarandre. Dette forumet er føderert og kan samhandle med det sosiale nettet (eller “fødiverset”). Denne sida er ditt hjørne av fødiverset. Ho består utelukkande av emne oppretta av – og delt frå – brukarar du følger.",
+ "help.build": "Det kan vere at det ikkje er mange emne her til å begynne med; det er heilt normalt. Du vil sjå meir innhald her etter kvart som du begynner å følge andre brukarar.",
+ "help.federating": "På same måte, dersom brukarar frå utsida av dette forumet begynner å følge deg, vil innlegga dine òg begynne å visast på desse appane og nettsidene.",
"help.next-generation": "Dette er den neste generasjonen av sosiale medium, begynn å bidra i dag!",
"onboard.title": "Ditt vindauge til fødiverset...",
- "onboard.what": "Dette er din personlege kategori som berre består av innhald funne utanfor dette forumet. Om noko blir vist på denne sida, avheng av om du følgjer dei, eller om innlegget blei delt av nokon du følgjer.",
- "onboard.why": "Det skjer mykje utanfor dette forumet, og ikkje alt er relevant for interessene dine. Difor er det å følgje folk den beste måten å signalisere at du ønskjer å sjå meir frå nokon.",
- "onboard.how": "I mellomtida kan du klikke på snarvegsknappane øvst for å sjå kva anna dette forumet kjenner til, og begynne å oppdage nytt innhald!",
+ "onboard.what": "Dette er din personlege kategori som berre består av innhald funne utanfor dette forumet. Om noko blir vist på denne sida, avheng av om du følger dei, eller om innlegget blei delt av nokon du følger.",
+ "onboard.why": "Det skjer mykje utanfor dette forumet, og ikkje alt er relevant for interessene dine. Difor er det å følge folk den beste måten å signalisere at du ønskjer å sjå meir frå nokon.",
+ "onboard.how": "I mellomtida kan du klikke på snarvegsknappane øvst for å sjå kva anna dette forumet inneheld, og begynne å oppdage nytt innhald!",
"show-categories": "Show categories",
"hide-categories": "Hide categories"
diff --git a/public/language/pl/admin/dashboard.json b/public/language/pl/admin/dashboard.json
index 5e7684f78a..48bc39c7bd 100644
--- a/public/language/pl/admin/dashboard.json
+++ b/public/language/pl/admin/dashboard.json
@@ -75,6 +75,7 @@
"graphs.page-views-registered": "Wyświetlenia użytkowników",
"graphs.page-views-guest": "Wyświetlenia gości",
"graphs.page-views-bot": "Wyświetlenia botów",
+ "graphs.page-views-ap": "Wyświetlenia strony ActivityPub",
"graphs.unique-visitors": "Unikalni użytkownicy",
"graphs.registered-users": "Zarejestrowani użytkownicy",
"graphs.guest-users": "Użytkownicy-goście",
diff --git a/public/language/pl/admin/manage/categories.json b/public/language/pl/admin/manage/categories.json
index e7979f084c..7ff4422d86 100644
--- a/public/language/pl/admin/manage/categories.json
+++ b/public/language/pl/admin/manage/categories.json
@@ -1,18 +1,22 @@
{
"manage-categories": "Zarządzaj kategoriami",
"add-category": "Dodaj kategorię",
+ "add-local-category": "Dodaj lokalną kategorię",
+ "add-remote-category": "Dodaj zdalną kategorię",
+ "remove": "Usuń",
+ "rename": "Przemianuj",
"jump-to": "Skocz do...",
"settings": "Ustawienia kategorii",
"edit-category": "Edytuj kategorię",
"privileges": "Uprawnienia",
"back-to-categories": "Wróć do kategorii",
+ "id": "ID kategorii",
"name": "Nazwa kategorii",
"handle": "Przydział kategorii",
"handle.help": "Obsługa kategorii robi za znak rozpoznawczy w innych sieciach na wzór nazwy użytkownika. Z tej racji jej nazwa nie może się pokrywać z nazwą użytkownika lub grupą użytkowników.",
"description": "Opis kategorii",
- "federatedDescription": "Opis federacji",
- "federatedDescription.help": "Ten tekst zostanie użyty dla opisu sekcji widocznej z poziomu innych stron/aplikacji.",
- "federatedDescription.default": "Ta sekcja forum zawiera dyskusje tematyczne. Możesz rozpocząć nową dyskusję wzmiankując tę kategorię.",
+ "topic-template": "Szablon wątku",
+ "topic-template.help": "Stwórz szablon dla nowych wątków dodawanych w tej kategorii.",
"bg-color": "Kolor tła",
"text-color": "Kolor tekstu",
"bg-image-size": "Wielkość obrazka tła",
@@ -103,6 +107,11 @@
"alert.create-success": "Kategoria pomyślnie dodana!",
"alert.none-active": "Nie masz aktywnych kategorii.",
"alert.create": "Utwórz kategorię",
+ "alert.add": "Dodaj do kategorii",
+ "alert.add-help": "Zdalne kategorie mogą zostać przypisane do kategorii po ich wskazaniu.
Uwaga — Zdalna kategoria może nie być w pełni wypełniona wątkami do czasu gdy jeden z lokalnych użytkowników zacznie ją śledzić/obserwować.",
+ "alert.rename": "Nazwij kategorię zdalną",
+ "alert.rename-help": "Proszę wprowadź nazwę nowej kategorii. Pozostaw puste aby przywrócić pierwotną nazwę.",
+ "alert.confirm-remove": "Czy chcesz usunąć tę kategorię? Możesz dodać ją ponownie w dowolnym czasie.",
"alert.confirm-purge": "
Czy na pewno chcesz wymazać tą kategorię \"%1\"?
Uwaga! Wszystkie tematy oraz posty z tej kategorii zostaną wymazane!
Wymazanie kategorii skasuje wszystkie tematy, posty oraz skasuję kategorię z bazy danych. Jeśli chcesz tymczasowousunąć kategorię, będziesz musiał \"wyłączyć\" kategorię.
",
"alert.purge-success": "Kategoria wymazana!",
"alert.copy-success": "Ustawienie skopiowane!",
diff --git a/public/language/pl/admin/settings/activitypub.json b/public/language/pl/admin/settings/activitypub.json
index 31aa6e7282..3d6712f199 100644
--- a/public/language/pl/admin/settings/activitypub.json
+++ b/public/language/pl/admin/settings/activitypub.json
@@ -18,6 +18,28 @@
"probe-timeout": "Czas oczekiwania (milisekundy)",
"probe-timeout-help": "(Domyślnie: 2000) O ile zapytanie nie doczeka się odpowiedzi w tym czasie to użytkownik otrzyma odnośnik bezpośredni. Możesz wydłużyć czas oczekiwania o ile strony działają wolno a mimo to chcesz dać im szansę.",
+ "rules": "Przyszeregowanie",
+ "rules-intro": "Zawartość odkrywana via ActivePub może być automatycznie przyszeregowana w oparciu m.in o hashtag",
+ "rules.modal.title": "Jak to działa",
+ "rules.modal.instructions": "Wszelka zawartość z zewnątrz jest sprawdzana pod kątem zasad przyszeregowania a zatem z automatu umieszczana we własciwych kategoriach.
N.B. Zawartość już przyszeregowana (np. zdalna kategoria) nie podlega przetworzeniu przez reguły.",
+ "rules.add": "Dodaj nową regułę",
+ "rules.help-hashtag": "Wątki zawierające hashtag gdzie wielkość liter nie ma znaczenia będą dopasowane. Pomiń symbol # przy wprowadzaniu",
+ "rules.help-user": "Wątki utworzone przez wybranego użytkownika będą dopasowane. Wprowadź zawołanie lub pełne ID (np. bob@example.org lub https://example.org/users/bob.",
+ "rules.type": "Typ",
+ "rules.value": "Wartość",
+ "rules.cid": "Kategoria",
+
+ "relays": "Przekaźniki",
+ "relays.intro": "Przekaźnik usprawnia odnajdowanie zawartości do i z Twojego NodeBB. Dodanie przekaźnika oznacza, że odebrana zawartość z jego udziałem jest przekierowywana w to miejsce i analogicznie z tym co ma być widoczne z zewnątrz.",
+ "relays.warning": "Uwaga: przekaźniki mogą tworzyć duży ruch a także zwiększyć wykorzystanie pamięci masowej a co za tym idzie kosztów.",
+ "relays.litepub": "NodeBB nawiązuje do LitePub jeśli idzie o przekaźniki. Wprowadzony URL powinien kończyć się znakiem /.",
+ "relays.add": "Dodaj nowy przekaźnik",
+ "relays.relay": "Przekaźnik",
+ "relays.state": "Stan",
+ "relays.state-0": "Oczekujący",
+ "relays.state-1": "Tylko odbiór",
+ "relays.state-2": "Aktywny",
+
"server-filtering": "Filtrowanie",
"count": "NodeBB obecnie wykrywa 1% serwerów",
"server.filter-help": "Określ serwery, z którymi nie chcesz spinać NodeBB w ramach fediverse. Alternatywnie możesz dobrać dozwolone serwery fediverse. Obie opcje są dostępne ale wybierz jedną z nich.",
diff --git a/public/language/pl/admin/settings/uploads.json b/public/language/pl/admin/settings/uploads.json
index 10d0606239..87d598de8b 100644
--- a/public/language/pl/admin/settings/uploads.json
+++ b/public/language/pl/admin/settings/uploads.json
@@ -22,6 +22,7 @@
"reject-image-height": "Maksymalna wysokość obrazu (w pikselach)",
"reject-image-height-help": "Obrazy o wysokości przekraczającej tę wartość zostaną odrzucone.",
"allow-topic-thumbnails": "Zezwalaj użytkownikom na ustawianie miniaturek tematów",
+ "show-post-uploads-as-thumbnails": "Pokaż załączniki do wpisów w formie miniaturek",
"topic-thumb-size": "Rozmiar miniatury tematu",
"allowed-file-extensions": "Dozwolone typy plików",
"allowed-file-extensions-help": "Wprowadź rozdzielone przecinkami rozszerzenia plików (np. pdf,xls,doc). Pusta lista oznacza, że wszystkie rozszerzenia są dozwolone.",
diff --git a/public/language/pl/aria.json b/public/language/pl/aria.json
index 86ef9eab82..c61d9389e7 100644
--- a/public/language/pl/aria.json
+++ b/public/language/pl/aria.json
@@ -5,5 +5,6 @@
"profile-page-for": "Profil użytkownika %1",
"user-watched-tags": "Tagi obserwowane przez użytkownika",
"delete-upload-button": "Przycisk kasowania załącznika",
- "group-page-link-for": "Odsyłacz dla grupy %1"
+ "group-page-link-for": "Odsyłacz dla grupy %1",
+ "show-crossposts": "Show Cross-posts"
}
\ No newline at end of file
diff --git a/public/language/pl/error.json b/public/language/pl/error.json
index 135608bb95..f42a3cfdbb 100644
--- a/public/language/pl/error.json
+++ b/public/language/pl/error.json
@@ -3,6 +3,7 @@
"invalid-json": "Niewłaściwy JSON",
"wrong-parameter-type": "Wartość typu %3 była oczekiwania dla właściwości `%1`, ale %2 został dostarczony",
"required-parameters-missing": "Brakowało wymaganych parametrów w tym żądaniu API: %1",
+ "reserved-ip-address": "Wywołania sieciowe do zarezerwowanych zakresów IP nie są dozwolone.",
"not-logged-in": "Nie jesteś zalogowany(-a).",
"account-locked": "Twoje konto zostało tymczasowo zablokowane",
"search-requires-login": "Wyszukiwanie wymaga konta - zaloguj się lub zarejestruj.",
@@ -146,6 +147,7 @@
"post-already-restored": "Ten post został już przywrócony",
"topic-already-deleted": "Ten temat został już skasowany",
"topic-already-restored": "Ten temat został już przywrócony",
+ "topic-already-crossposted": "This topic has already been cross-posted there.",
"cant-purge-main-post": "Nie możesz wymazać głównego posta, zamiast tego usuń temat",
"topic-thumbnails-are-disabled": "Miniatury tematów są wyłączone.",
"invalid-file": "Błędny plik",
@@ -227,6 +229,7 @@
"no-topics-selected": "Nie wybrano tematów.",
"cant-move-to-same-topic": "Nie można przenieść wpisu do tego samego tematu!",
"cant-move-topic-to-same-category": "Nie można przenieść tematu do tej samej kategorii!",
+ "cant-move-topic-to-from-remote-categories": "You cannot move topics in or out of remote categories; consider cross-posting instead.",
"cannot-block-self": "Nie możesz zablokować samego siebie!",
"cannot-block-privileged": "Nie możesz blokować administratorów ani globalnych moderatorów",
"cannot-block-guest": "Goście nie mogą blokować innych użytkowników",
@@ -236,6 +239,7 @@
"socket-reconnect-failed": "W tej chwili nie można połączyć się z serwerem. Kliknij tutaj, aby spróbować ponownie, lub spróbuj ponownie później",
"invalid-plugin-id": "Niepoprawny identyfikator wtyczki",
"plugin-not-whitelisted": "Nie da się zainstalować tej wtyczki – tylko wtyczki z białej listy menadżera pakietów NodeBB mogą być instalowane przez ACP",
+ "cannot-toggle-system-plugin": "Nie można zmienić nastawu dla wtyczki systemowej",
"plugin-installation-via-acp-disabled": "Instalacja wtyczek przez ACP jest wyłączona",
"plugins-set-in-configuration": "Nie możesz zmienić stanu wtyczki, bo został on zdefiniowany przy uruchamianiu (config.json, zmienne środowiskowe lub argumenty z terminala). Zamiast tego zmień konfigurację.",
"theme-not-set-in-configuration": "Pamiętaj o zależności między aktywnymi wtyczkami a wystrojem, który ma z nimi współpracować.",
diff --git a/public/language/pl/global.json b/public/language/pl/global.json
index d6b71fd3d3..4d2d69b849 100644
--- a/public/language/pl/global.json
+++ b/public/language/pl/global.json
@@ -68,6 +68,7 @@
"users": "Użytkownicy",
"topics": "Tematy",
"posts": "Posty",
+ "crossposts": "Cross-posts",
"x-posts": "%1 postów",
"x-topics": "%1 tematów",
"x-reputation": "%1 reputacja",
diff --git a/public/language/pl/modules.json b/public/language/pl/modules.json
index 65f5d143de..3e52bcddc8 100644
--- a/public/language/pl/modules.json
+++ b/public/language/pl/modules.json
@@ -48,6 +48,7 @@
"chat.add-user": "Dodaj użytkownika",
"chat.notification-settings": "Ustawienia powiadomień",
"chat.default-notification-setting": "Domyślne ustawienia powiadomień",
+ "chat.join-leave-messages": "Dołącz/Odłącz wiadomości",
"chat.notification-setting-room-default": "Domyślne dla pokoju",
"chat.notification-setting-none": "Brak powiadomień",
"chat.notification-setting-at-mention-only": "Tylko zawołania z użyciem @",
diff --git a/public/language/pl/social.json b/public/language/pl/social.json
index 25d33196d0..07559bcee7 100644
--- a/public/language/pl/social.json
+++ b/public/language/pl/social.json
@@ -8,5 +8,7 @@
"log-in-with-facebook": "Zaloguj się przez Facebook",
"continue-with-facebook": "Kontynuuj z Facebook",
"sign-in-with-linkedin": "Zaloguj się przez LinkedIn",
- "sign-up-with-linkedin": "Zarejestruj się przez LinkedIn"
+ "sign-up-with-linkedin": "Zarejestruj się przez LinkedIn",
+ "sign-in-with-wordpress": "Zaloguj z WordPress",
+ "sign-up-with-wordpress": "Zarejestruj z WordPress"
}
\ No newline at end of file
diff --git a/public/language/pl/topic.json b/public/language/pl/topic.json
index 4311bb4586..7817083a3a 100644
--- a/public/language/pl/topic.json
+++ b/public/language/pl/topic.json
@@ -103,6 +103,7 @@
"thread-tools.lock": "Zablokuj temat",
"thread-tools.unlock": "Odblokuj temat",
"thread-tools.move": "Przenieś temat",
+ "thread-tools.crosspost": "Crosspost Topic",
"thread-tools.move-posts": "Przenieś posty",
"thread-tools.move-all": "Przenieś wszystko",
"thread-tools.change-owner": "Zmień właściciela",
@@ -132,6 +133,7 @@
"pin-modal-help": "Możesz tutaj opcjonalnie ustawić datę wygasania przypiętych tematów. Możesz też zostawić to pole puste, aby temat pozostawał przypięty, aż zostanie ręcznie odpięty.",
"load-categories": "Ładowanie kategorii",
"confirm-move": "Przenieś",
+ "confirm-crosspost": "Cross-post",
"confirm-fork": "Rozdziel",
"bookmark": "Dodaj do zakładek",
"bookmarks": "Zakładki",
@@ -141,6 +143,7 @@
"loading-more-posts": "Załaduj więcej postów",
"move-topic": "Przenieś temat",
"move-topics": "Przenieś tematy",
+ "crosspost-topic": "Cross-post Topic",
"move-post": "Przenieś post",
"post-moved": "Post został przeniesiony!",
"fork-topic": "Rozdziel temat",
@@ -163,6 +166,9 @@
"move-topic-instruction": "Wybierz kategorię docelową i kliknij przenieś",
"change-owner-instruction": "Kliknij w posty, które chcesz przypisać do innego użytkownika",
"manage-editors-instruction": "Zarządzaj użytkownikami, którzy mogą edytować ten post poniżej.",
+ "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": "Tutaj wpisz tytuł tematu...",
"composer.handle-placeholder": "Tutaj wpisz swoje imię/nazwę",
"composer.hide": "Ukryj",
diff --git a/public/language/pt-BR/admin/advanced/database.json b/public/language/pt-BR/admin/advanced/database.json
index 918fb8babd..ebf2a34e13 100644
--- a/public/language/pt-BR/admin/advanced/database.json
+++ b/public/language/pt-BR/admin/advanced/database.json
@@ -17,7 +17,7 @@
"mongo.file-size": "Tamanho do Arquivo",
"mongo.resident-memory": "Resident Memory",
"mongo.virtual-memory": "Memória Virtual",
- "mongo.mapped-memory": "Mapped Memory",
+ "mongo.mapped-memory": "Memória Canalizada",
"mongo.bytes-in": "Bytes recebidos",
"mongo.bytes-out": "Bytes enviados",
"mongo.num-requests": "Quantidade de Requisições",
diff --git a/public/language/pt-BR/admin/dashboard.json b/public/language/pt-BR/admin/dashboard.json
index 49dd02ba69..0e42f09063 100644
--- a/public/language/pt-BR/admin/dashboard.json
+++ b/public/language/pt-BR/admin/dashboard.json
@@ -75,6 +75,7 @@
"graphs.page-views-registered": "Páginas Visualizadas por Registrados",
"graphs.page-views-guest": "Páginas Visualizadas por Visitantes",
"graphs.page-views-bot": "Páginas Visualizadas por Bot",
+ "graphs.page-views-ap": "ActivityPub Page Views",
"graphs.unique-visitors": "Visitantes Únicos",
"graphs.registered-users": "Usuários Registrados",
"graphs.guest-users": "Guest Users",
diff --git a/public/language/pt-BR/admin/manage/categories.json b/public/language/pt-BR/admin/manage/categories.json
index 28318bdae9..808455c32a 100644
--- a/public/language/pt-BR/admin/manage/categories.json
+++ b/public/language/pt-BR/admin/manage/categories.json
@@ -1,18 +1,22 @@
{
"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": "Configurações de Categorias",
"edit-category": "Edit Category",
"privileges": "Privilégios",
"back-to-categories": "Back to categories",
+ "id": "Category ID",
"name": "Nome da Categoria",
"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": "Descrição da Categoria",
- "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.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "Cor de Fundo",
"text-color": "Cor do Texto",
"bg-image-size": "Tamanho da Imagem de Fundo",
@@ -103,6 +107,11 @@
"alert.create-success": "Categoria criada com sucesso!",
"alert.none-active": "Você não possui categorias ativas.",
"alert.create": "Criar uma Categoria",
+ "alert.add": "Add a Category",
+ "alert.add-help": "Remote categories can be added to the categories listing by specifying their handle.
Note — 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": "
Você realmente quer purgar esta categoria \"%1\"?
Aviso! Todos os tópicos e posts desta categoria serão purgados!
Purgar uma categoria removerá todos os tópicos e posts, e deletará a categoria do banco de dados. Se você quiser remover uma categoria temporariamente, ao invés de fazer isso nós recomendados que você \"desabilite\" a categoria.
",
"alert.purge-success": "Categoria purgada!",
"alert.copy-success": "Configurações Copiadas!",
diff --git a/public/language/pt-BR/admin/settings/activitypub.json b/public/language/pt-BR/admin/settings/activitypub.json
index 94f9ad7822..5ab4fa43e8 100644
--- a/public/language/pt-BR/admin/settings/activitypub.json
+++ b/public/language/pt-BR/admin/settings/activitypub.json
@@ -18,6 +18,28 @@
"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.
N.B. 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 # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
+ "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 /actor.",
+ "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 %1 server(s)",
"server.filter-help": "Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively allow federation with specific servers, instead. Both options are supported, although they are mutually exclusive.",
diff --git a/public/language/pt-BR/admin/settings/uploads.json b/public/language/pt-BR/admin/settings/uploads.json
index c203d2cd23..5f0b8362c9 100644
--- a/public/language/pt-BR/admin/settings/uploads.json
+++ b/public/language/pt-BR/admin/settings/uploads.json
@@ -22,6 +22,7 @@
"reject-image-height": "Altura Máxima das Imagens (em pixels)",
"reject-image-height-help": "Imagens com uma altura maior do que este valor serão rejeitadas.",
"allow-topic-thumbnails": "Permitir usuários de enviar miniaturas de tópico",
+ "show-post-uploads-as-thumbnails": "Show post uploads as thumbnails",
"topic-thumb-size": "Tamanho da Miniatura de Tópico",
"allowed-file-extensions": "Extensões de Arquivo Permitidas",
"allowed-file-extensions-help": "Digite uma lista, separada por vírgulas, de extensões de arquivos aqui (por exemplo: pdf,xls,doc). Uma lista vazia significa que todas as extensões são permitidas.",
diff --git a/public/language/pt-BR/aria.json b/public/language/pt-BR/aria.json
index 8e2c565c82..ec7889d2f4 100644
--- a/public/language/pt-BR/aria.json
+++ b/public/language/pt-BR/aria.json
@@ -5,5 +5,6 @@
"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"
+ "group-page-link-for": "Group page link for %1",
+ "show-crossposts": "Show Cross-posts"
}
\ No newline at end of file
diff --git a/public/language/pt-BR/error.json b/public/language/pt-BR/error.json
index 111b323f42..d97687f27f 100644
--- a/public/language/pt-BR/error.json
+++ b/public/language/pt-BR/error.json
@@ -3,6 +3,7 @@
"invalid-json": "JSON Inválido",
"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": "Você não parece estar logado.",
"account-locked": "Sua conta foi temporariamente bloqueada",
"search-requires-login": "É necessário ter uma conta para pesquisar - por favor efetue o login ou cadastre-se.",
@@ -146,6 +147,7 @@
"post-already-restored": "Este post já foi restaurado",
"topic-already-deleted": "Esté tópico já foi deletado",
"topic-already-restored": "Este tópico já foi restaurado",
+ "topic-already-crossposted": "This topic has already been cross-posted there.",
"cant-purge-main-post": "Você não pode remover o post principal, ao invés disso, apague o tópico por favor.",
"topic-thumbnails-are-disabled": "Thumbnails para tópico estão desativados.",
"invalid-file": "Arquivo Inválido",
@@ -227,6 +229,7 @@
"no-topics-selected": "Nenhum tópico selecionado!",
"cant-move-to-same-topic": "Não é possível mover um post para o mesmo tópico!",
"cant-move-topic-to-same-category": "Não é possível mover o tópico para a mesma categoria!",
+ "cant-move-topic-to-from-remote-categories": "You cannot move topics in or out of remote categories; consider cross-posting instead.",
"cannot-block-self": "Você pode bloquear a si mesmo!",
"cannot-block-privileged": "Você não pode bloquear administradores e moderadores globais",
"cannot-block-guest": "Vistantes não podem bloquear outros usuários",
@@ -236,6 +239,7 @@
"socket-reconnect-failed": "Não foi possível acessar o servidor neste momento. Clique aqui para tentar novamente ou tente novamente mais tarde",
"invalid-plugin-id": "Invalid plugin ID",
"plugin-not-whitelisted": "Não foi possível instalar o plugin - apenas os plug-ins permitidos pelo NodeBB Package Manager podem ser instalados através do 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",
diff --git a/public/language/pt-BR/global.json b/public/language/pt-BR/global.json
index 798c4ef50d..e5e72365bf 100644
--- a/public/language/pt-BR/global.json
+++ b/public/language/pt-BR/global.json
@@ -68,6 +68,7 @@
"users": "Usuários",
"topics": "Tópicos",
"posts": "Posts",
+ "crossposts": "Cross-posts",
"x-posts": "%1 posts",
"x-topics": "%1 topics",
"x-reputation": "%1 reputation",
@@ -79,7 +80,7 @@
"upvoters": "Votos positivos",
"upvoted": "Votou positivamente",
"downvoters": "Votos negativos",
- "downvoted": "Votou negativamente",
+ "downvoted": "Rebaixou",
"views": "Visualizações",
"posters": "Posters",
"watching": "Watching",
@@ -136,7 +137,7 @@
"allowed-file-types": "Os tipos de arquivo permitidos são %1",
"unsaved-changes": "Você tem alterações não salvas. Tem certeza de que você deseja sair da página?",
"reconnecting-message": "Parece que a sua conexão com o %1 caiu. Por favor, aguarde enquanto tentamos reconectar.",
- "play": "Executar",
+ "play": "Tocar",
"cookies.message": "Este site usa cookies para garantir que você obtenha a melhor experiência em nosso site.",
"cookies.accept": "Entendi!",
"cookies.learn-more": "Saber Mais",
diff --git a/public/language/pt-BR/modules.json b/public/language/pt-BR/modules.json
index 64a27be0d1..823391370f 100644
--- a/public/language/pt-BR/modules.json
+++ b/public/language/pt-BR/modules.json
@@ -48,6 +48,7 @@
"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",
diff --git a/public/language/pt-BR/notifications.json b/public/language/pt-BR/notifications.json
index 0d94954404..6cc2461f7d 100644
--- a/public/language/pt-BR/notifications.json
+++ b/public/language/pt-BR/notifications.json
@@ -65,7 +65,7 @@
"new-register-multiple": "Há %1 pedidos de registro aguardando revisão.",
"flag-assigned-to-you": "A Sinalização %1 foi atribuída a você",
"post-awaiting-review": "Post aguardando revisão",
- "profile-exported": "%1 perfil exportado, clique para fazer download",
+ "profile-exported": "%1 dados do perfil exportado, clique para fazer download",
"posts-exported": "%1 posts exportados, clique para fazer download",
"uploads-exported": "%1 uploads exportados, clique para fazer download",
"users-csv-exported": "Usuários csv exportados, clique para fazer o download",
diff --git a/public/language/pt-BR/pages.json b/public/language/pt-BR/pages.json
index ed80563df7..098b314683 100644
--- a/public/language/pt-BR/pages.json
+++ b/public/language/pt-BR/pages.json
@@ -56,7 +56,7 @@
"account/watched": "Tópicos assistidos por %1",
"account/ignored": "Tópicos ignorados por %1",
"account/read": "Topics read by %1",
- "account/upvoted": "Posts votados positivamente por %1",
+ "account/upvoted": "Posts alavancados por %1",
"account/downvoted": "Posts votados negativamente por %1",
"account/best": "Melhores posts de %1",
"account/controversial": "Controversial posts made by %1",
diff --git a/public/language/pt-BR/social.json b/public/language/pt-BR/social.json
index 2ba690a187..5b8dd99a46 100644
--- a/public/language/pt-BR/social.json
+++ b/public/language/pt-BR/social.json
@@ -8,5 +8,7 @@
"log-in-with-facebook": "Log in with Facebook",
"continue-with-facebook": "Continue with Facebook",
"sign-in-with-linkedin": "Sign in with LinkedIn",
- "sign-up-with-linkedin": "Sign up 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"
}
\ No newline at end of file
diff --git a/public/language/pt-BR/topic.json b/public/language/pt-BR/topic.json
index 42c79c8bd0..785decb74c 100644
--- a/public/language/pt-BR/topic.json
+++ b/public/language/pt-BR/topic.json
@@ -103,6 +103,7 @@
"thread-tools.lock": "Trancar Tópico",
"thread-tools.unlock": "Destrancar Tópico",
"thread-tools.move": "Mover Tópico",
+ "thread-tools.crosspost": "Crosspost Topic",
"thread-tools.move-posts": "Mover Posts",
"thread-tools.move-all": "Mover Tudo",
"thread-tools.change-owner": "Trocar proprietário",
@@ -132,6 +133,7 @@
"pin-modal-help": "Você pode, opcionalmente, definir uma data de validade para o(s) tópico(s) fixado(s) aqui. Como alternativa, você pode deixar este campo em branco para que o tópico permaneça fixado até que seja liberado manualmente.",
"load-categories": "Carregando Categorias",
"confirm-move": "Mover",
+ "confirm-crosspost": "Cross-post",
"confirm-fork": "Ramificar",
"bookmark": "Favorito",
"bookmarks": "Favoritos",
@@ -141,6 +143,7 @@
"loading-more-posts": "Carregando Mais Posts",
"move-topic": "Mover Tópico",
"move-topics": "Mover Tópicos",
+ "crosspost-topic": "Cross-post Topic",
"move-post": "Mover Post",
"post-moved": "Post movido!",
"fork-topic": "Ramificar Tópico",
@@ -163,6 +166,9 @@
"move-topic-instruction": "Selecione a categoria destino e click em mover",
"change-owner-instruction": "Clique na postagem que você quer associar a outro usuário",
"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": "Digite aqui o título para o seu tópico...",
"composer.handle-placeholder": "Digite seu nome/usuário aqui",
"composer.hide": "Esconder",
diff --git a/public/language/pt-PT/admin/dashboard.json b/public/language/pt-PT/admin/dashboard.json
index 6f82ecb7e2..64fda774f5 100644
--- a/public/language/pt-PT/admin/dashboard.json
+++ b/public/language/pt-PT/admin/dashboard.json
@@ -75,6 +75,7 @@
"graphs.page-views-registered": "Visualizações de páginas por utilizadores registados",
"graphs.page-views-guest": "Visualizações de páginas por convidados",
"graphs.page-views-bot": "Visualizações de páginas por bots",
+ "graphs.page-views-ap": "ActivityPub Page Views",
"graphs.unique-visitors": "Visitantes únicos",
"graphs.registered-users": "Utilizadores Registados",
"graphs.guest-users": "Guest Users",
diff --git a/public/language/pt-PT/admin/manage/categories.json b/public/language/pt-PT/admin/manage/categories.json
index 352db735c2..b309193c8f 100644
--- a/public/language/pt-PT/admin/manage/categories.json
+++ b/public/language/pt-PT/admin/manage/categories.json
@@ -1,18 +1,22 @@
{
"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": "Definições da Categoria",
"edit-category": "Edit Category",
"privileges": "Privilégios",
"back-to-categories": "Back to categories",
+ "id": "Category ID",
"name": "Nome da Categoria",
"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": "Descrição da Categoria",
- "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.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "Cor de Fundo",
"text-color": "Cor do Texto",
"bg-image-size": "Tamanho da Imagem de Fundo",
@@ -103,6 +107,11 @@
"alert.create-success": "Categoria criada com sucesso!",
"alert.none-active": "Não tens categorias ativas.",
"alert.create": "Criar uma Categoria",
+ "alert.add": "Add a Category",
+ "alert.add-help": "Remote categories can be added to the categories listing by specifying their handle.
Note — 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": "
Tens a certeza que pretendes eliminar definitivamente esta categoria \"%1\"?
\n
Atenção! Todos os tópicos e publicações feitas nesta categoria vão ser eliminados também!
Eliminar uma categoria irá remover todos os tópicos e publicações e eliminar a categoria da base de dados. Se pretendes remover temporariamente uma categoria, em vez disso podes apenas \"desativar\" essa categoria.
",
"alert.purge-success": "Categoria eliminada!",
"alert.copy-success": "Definições Copiadas!",
diff --git a/public/language/pt-PT/admin/settings/activitypub.json b/public/language/pt-PT/admin/settings/activitypub.json
index 94f9ad7822..5ab4fa43e8 100644
--- a/public/language/pt-PT/admin/settings/activitypub.json
+++ b/public/language/pt-PT/admin/settings/activitypub.json
@@ -18,6 +18,28 @@
"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.
N.B. 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 # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
+ "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 /actor.",
+ "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 %1 server(s)",
"server.filter-help": "Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively allow federation with specific servers, instead. Both options are supported, although they are mutually exclusive.",
diff --git a/public/language/pt-PT/admin/settings/uploads.json b/public/language/pt-PT/admin/settings/uploads.json
index 91c89d7a46..593df275f8 100644
--- a/public/language/pt-PT/admin/settings/uploads.json
+++ b/public/language/pt-PT/admin/settings/uploads.json
@@ -22,6 +22,7 @@
"reject-image-height": "Altura Máxima da Imagem (em píxeis)",
"reject-image-height-help": "Imagens mais altas que este valor vão ser rejeitadas.",
"allow-topic-thumbnails": "Permitir aos utilizadores enviar miniaturas de tópicos",
+ "show-post-uploads-as-thumbnails": "Show post uploads as thumbnails",
"topic-thumb-size": "Tamanho da Miniatura do Tópico",
"allowed-file-extensions": "Extensões de Ficheiro Permitidas",
"allowed-file-extensions-help": "Enter comma-separated list of file extensions here (e.g. pdf,xls,doc). An empty list means all extensions are allowed.",
diff --git a/public/language/pt-PT/aria.json b/public/language/pt-PT/aria.json
index c10f98dd4f..ef87ccade7 100644
--- a/public/language/pt-PT/aria.json
+++ b/public/language/pt-PT/aria.json
@@ -5,5 +5,6 @@
"profile-page-for": "Profile page for user %1",
"user-watched-tags": "Etiquetas subscritas pelo utilizador",
"delete-upload-button": "Delete upload button",
- "group-page-link-for": "Group page link for %1"
+ "group-page-link-for": "Group page link for %1",
+ "show-crossposts": "Show Cross-posts"
}
\ No newline at end of file
diff --git a/public/language/pt-PT/error.json b/public/language/pt-PT/error.json
index 95fa2edfa4..7efe48d837 100644
--- a/public/language/pt-PT/error.json
+++ b/public/language/pt-PT/error.json
@@ -3,6 +3,7 @@
"invalid-json": "JSON inválido",
"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": "Não tens sessão iniciada.",
"account-locked": "A sua conta foi bloqueada temporariamente",
"search-requires-login": "A pesquisa requer uma conta de utilizador - por favor inicia sessão ou cria uma conta.",
@@ -146,6 +147,7 @@
"post-already-restored": "Esta publicação já foi restaurada",
"topic-already-deleted": "Este tópico já foi eliminado",
"topic-already-restored": "Este tópico já foi restaurado",
+ "topic-already-crossposted": "This topic has already been cross-posted there.",
"cant-purge-main-post": "Não podes eliminar a publicação principal, em vez disso, por favor apaga o tópico",
"topic-thumbnails-are-disabled": "Miniaturas para os tópicos estão desativadas.",
"invalid-file": "Ficheiro inválido",
@@ -227,6 +229,7 @@
"no-topics-selected": "Nenhum tópico selecionado!",
"cant-move-to-same-topic": "Não podes mover publicações para o mesmo tópico!",
"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": "Não podes bloquear-te a ti próprio!",
"cannot-block-privileged": "Não podes bloquear administradores ou moderadores globais",
"cannot-block-guest": "Convidados não podem bloquear outros utilizadores",
@@ -236,6 +239,7 @@
"socket-reconnect-failed": "Unable to reach the server at this time. Click here to try again, or try again later",
"invalid-plugin-id": "Invalid plugin ID",
"plugin-not-whitelisted": "Unable to install plugin – only plugins whitelisted by the NodeBB Package Manager can be installed via the ACP",
+ "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",
diff --git a/public/language/pt-PT/global.json b/public/language/pt-PT/global.json
index 80fd97f2f3..af3059c4b4 100644
--- a/public/language/pt-PT/global.json
+++ b/public/language/pt-PT/global.json
@@ -68,6 +68,7 @@
"users": "Utilizadores",
"topics": "Tópicos",
"posts": "Publicações",
+ "crossposts": "Cross-posts",
"x-posts": "%1 posts",
"x-topics": "%1 topics",
"x-reputation": "%1 reputation",
diff --git a/public/language/pt-PT/modules.json b/public/language/pt-PT/modules.json
index 5b3018d4fa..6e918bcc11 100644
--- a/public/language/pt-PT/modules.json
+++ b/public/language/pt-PT/modules.json
@@ -48,6 +48,7 @@
"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",
diff --git a/public/language/pt-PT/social.json b/public/language/pt-PT/social.json
index 2ba690a187..5b8dd99a46 100644
--- a/public/language/pt-PT/social.json
+++ b/public/language/pt-PT/social.json
@@ -8,5 +8,7 @@
"log-in-with-facebook": "Log in with Facebook",
"continue-with-facebook": "Continue with Facebook",
"sign-in-with-linkedin": "Sign in with LinkedIn",
- "sign-up-with-linkedin": "Sign up 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"
}
\ No newline at end of file
diff --git a/public/language/pt-PT/topic.json b/public/language/pt-PT/topic.json
index 535f260664..b32e1a9889 100644
--- a/public/language/pt-PT/topic.json
+++ b/public/language/pt-PT/topic.json
@@ -103,6 +103,7 @@
"thread-tools.lock": "Bloquear tópico",
"thread-tools.unlock": "Desbloquear tópico",
"thread-tools.move": "Mover tópico",
+ "thread-tools.crosspost": "Crosspost Topic",
"thread-tools.move-posts": "Mover publicações",
"thread-tools.move-all": "Mover todos",
"thread-tools.change-owner": "Alterar Proprietário",
@@ -132,6 +133,7 @@
"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": "Carregando Categorias",
"confirm-move": "Mover",
+ "confirm-crosspost": "Cross-post",
"confirm-fork": "Clonar",
"bookmark": "Marcador",
"bookmarks": "Marcadores",
@@ -141,6 +143,7 @@
"loading-more-posts": "Carregando mais publicações",
"move-topic": "Mover tópico",
"move-topics": "Mover tópicos",
+ "crosspost-topic": "Cross-post Topic",
"move-post": "Mover publicação",
"post-moved": "Publicação movida!",
"fork-topic": "Clonar tópico",
@@ -163,6 +166,9 @@
"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": "Insere aqui o título do tópico...",
"composer.handle-placeholder": "Enter your name/handle here",
"composer.hide": "Hide",
diff --git a/public/language/ro/admin/admin.json b/public/language/ro/admin/admin.json
index 96c58b1733..7be102ffdc 100644
--- a/public/language/ro/admin/admin.json
+++ b/public/language/ro/admin/admin.json
@@ -1,18 +1,18 @@
{
- "alert.confirm-rebuild-and-restart": "Are you sure you wish to rebuild and restart NodeBB?",
- "alert.confirm-restart": "Are you sure you wish to restart NodeBB?",
+ "alert.confirm-rebuild-and-restart": "Sigur dorești să reconstruiești și să repornești NodeBB?",
+ "alert.confirm-restart": "Sigur dorești să repornești NodeBB?",
- "acp-title": "%1 | NodeBB Admin Control Panel",
- "settings-header-contents": "Contents",
- "changes-saved": "Changes Saved",
- "changes-saved-message": "Your changes to the NodeBB configuration have been saved.",
- "changes-not-saved": "Changes Not Saved",
- "changes-not-saved-message": "NodeBB encountered a problem saving your changes. (%1)",
- "save-changes": "Save changes",
+ "acp-title": "%1 | Panou de control NodeBB",
+ "settings-header-contents": "Conținut",
+ "changes-saved": "Modificări Salvate",
+ "changes-saved-message": "Modificările aduse configurației NodeBB au fost salvate.",
+ "changes-not-saved": "Modificări Nesalvate",
+ "changes-not-saved-message": "NodeBB a întâmpinat o problemă la salvarea modificărilor. (%1)",
+ "save-changes": "Salvați modificările",
"min": "Min:",
"max": "Max:",
- "view": "View",
- "edit": "Edit",
- "add": "Add",
- "select-icon": "Select Icon"
+ "view": "Vizualizare",
+ "edit": "Modifică",
+ "add": "Adaugă",
+ "select-icon": "Selectați Icon"
}
\ No newline at end of file
diff --git a/public/language/ro/admin/advanced/database.json b/public/language/ro/admin/advanced/database.json
index 55eea6c023..f67e83859a 100644
--- a/public/language/ro/admin/advanced/database.json
+++ b/public/language/ro/admin/advanced/database.json
@@ -17,7 +17,7 @@
"mongo.file-size": "File Size",
"mongo.resident-memory": "Resident Memory",
"mongo.virtual-memory": "Virtual Memory",
- "mongo.mapped-memory": "Mapped Memory",
+ "mongo.mapped-memory": "Memorie mapată",
"mongo.bytes-in": "Bytes In",
"mongo.bytes-out": "Bytes Out",
"mongo.num-requests": "Number of Requests",
diff --git a/public/language/ro/admin/dashboard.json b/public/language/ro/admin/dashboard.json
index 6ad973f5f3..9e4b880154 100644
--- a/public/language/ro/admin/dashboard.json
+++ b/public/language/ro/admin/dashboard.json
@@ -75,6 +75,7 @@
"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": "Vizualizări Pagină ActivityPub",
"graphs.unique-visitors": "Unique Visitors",
"graphs.registered-users": "Registered Users",
"graphs.guest-users": "Guest Users",
@@ -95,7 +96,7 @@
"expand-analytics": "Expand analytics",
"clear-search-history": "Clear Search History",
"clear-search-history-confirm": "Are you sure you want to clear entire search history?",
- "search-term": "Term",
+ "search-term": "Termen",
"search-count": "Count",
- "view-all": "View all"
+ "view-all": "Arată Tot"
}
diff --git a/public/language/ro/admin/development/info.json b/public/language/ro/admin/development/info.json
index 9834719daf..782b9133e0 100644
--- a/public/language/ro/admin/development/info.json
+++ b/public/language/ro/admin/development/info.json
@@ -3,7 +3,7 @@
"ip": "IP %1",
"nodes-responded": "%1 nodes responded within %2ms!",
"host": "host",
- "primary": "primary / jobs",
+ "primary": "principal / job-uri",
"pid": "pid",
"nodejs": "nodejs",
"online": "online",
@@ -19,7 +19,7 @@
"registered": "Registered",
"sockets": "Sockets",
- "connection-count": "Connection Count",
+ "connection-count": "Număr Conexiuni",
"guests": "Guests",
"info": "Info"
diff --git a/public/language/ro/admin/manage/categories.json b/public/language/ro/admin/manage/categories.json
index f51152f22d..a179d5eb4d 100644
--- a/public/language/ro/admin/manage/categories.json
+++ b/public/language/ro/admin/manage/categories.json
@@ -1,18 +1,22 @@
{
"manage-categories": "Manage Categories",
"add-category": "Add category",
+ "add-local-category": "Adăugați Categorie Locală",
+ "add-remote-category": "Adăugă Categorie de la Distanță",
+ "remove": "Elimină",
+ "rename": "Redenumește",
"jump-to": "Jump to...",
"settings": "Category Settings",
"edit-category": "Edit Category",
"privileges": "Privileges",
"back-to-categories": "Back to categories",
+ "id": "ID Categorie",
"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.",
+ "handle": "Identificator Categorie",
+ "handle.help": "Identificatorul categoriei este folosit ca o reprezentare a acestei categorii în alte rețele, similar unui nume de utilizator. Un identificator de categorie nu trebuie să corespundă unui nume de utilizator sau unui grup de utilizatori existent.",
"description": "Category Description",
- "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.",
+ "topic-template": "Șablon Subiect",
+ "topic-template.help": "Definiți un șablon pentru subiectele noi create în această categorie.",
"bg-color": "Background Colour",
"text-color": "Text Colour",
"bg-image-size": "Background Image Size",
@@ -42,7 +46,7 @@
"disable": "Disable",
"edit": "Edit",
"analytics": "Analytics",
- "federation": "Federation",
+ "federation": "Federație",
"view-category": "View category",
"set-order": "Set order",
@@ -82,27 +86,32 @@
"analytics.topics-daily": "Figure 3 – Daily topics created in this category",
"analytics.posts-daily": "Figure 4 – Daily posts made in this category",
- "federation.title": "Federation settings for \"%1\" category",
- "federation.disabled": "Federation is disabled site-wide, so category federation settings are currently unavailable.",
- "federation.disabled-cta": "Federation Settings →",
- "federation.syncing-header": "Synchronization",
- "federation.syncing-intro": "A category can follow a \"Group Actor\" via the ActivityPub protocol. If content is received from one of the actors listed below, it will be automatically added to this category.",
- "federation.syncing-caveat": "N.B. Setting up syncing here establishes a one-way synchronization. NodeBB attempts to subscribe/follow the actor, but the reverse cannot be assumed.",
- "federation.syncing-none": "This category is not currently following anybody.",
- "federation.syncing-add": "Synchronize with...",
+ "federation.title": "Setări Federație pentru categoria \"%1\"",
+ "federation.disabled": "Federația este dezactivată la nivel de site, așadar setările de federare a categoriilor nu sunt disponibile în prezent.",
+ "federation.disabled-cta": "Setări Federație →",
+ "federation.syncing-header": "Sincronizare",
+ "federation.syncing-intro": "O categorie poate urma un „Actor de grup” prin protocolul ActivityPub. Dacă se primește conținut de la unul dintre actorii enumerați mai jos, acesta va fi adăugat automat în această categorie.",
+ "federation.syncing-caveat": "Notă: Configurarea sincronizării aici stabilește o sincronizare unidirecțională. NodeBB încearcă să se aboneze/să urmărească actorul, dar nu se poate presupune inversul.",
+ "federation.syncing-none": "Această categorie nu urmărește pe nimeni în prezent.",
+ "federation.syncing-add": "Sincronizează cu...",
"federation.syncing-actorUri": "Actor",
- "federation.syncing-follow": "Follow",
- "federation.syncing-unfollow": "Unfollow",
- "federation.followers": "Remote users following this category",
- "federation.followers-handle": "Handle",
+ "federation.syncing-follow": "Urmărește",
+ "federation.syncing-unfollow": "Nu urmări",
+ "federation.followers": "Utilizatori la distanță care urmăresc această categorie",
+ "federation.followers-handle": "Identificator",
"federation.followers-id": "ID",
- "federation.followers-none": "No followers.",
- "federation.followers-autofill": "Autofill",
+ "federation.followers-none": "Niciun urmăritor.",
+ "federation.followers-autofill": "Completare automată",
"alert.created": "Created",
"alert.create-success": "Category successfully created!",
"alert.none-active": "You have no active categories.",
"alert.create": "Create a Category",
+ "alert.add": "Adăugă Categorie",
+ "alert.add-help": "Categoriile la distanță pot fi adăugate la lista de categorii specificând identificatorul/identificatorul acestora.
Notă — Categoria la distanță poate să nu reflecte toate subiectele publicate, cu excepția cazului în care cel puțin un utilizator local o urmărește/o urmărește.",
+ "alert.rename": "Redenumiți o categorie de la distanță",
+ "alert.rename-help": "Vă rugăm să introduceți un nume nou pentru această categorie. Lăsați câmpul necompletat pentru a restaura numele original.",
+ "alert.confirm-remove": "Sigur doriți să eliminați această categorie? O puteți adăuga din nou oricând.",
"alert.confirm-purge": "
Do you really want to purge this category \"%1\"?
Warning! All topics and posts in this category will be purged!
Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.
",
"alert.purge-success": "Category purged!",
"alert.copy-success": "Settings Copied!",
diff --git a/public/language/ro/admin/manage/privileges.json b/public/language/ro/admin/manage/privileges.json
index 240cff6aa5..1b0a547853 100644
--- a/public/language/ro/admin/manage/privileges.json
+++ b/public/language/ro/admin/manage/privileges.json
@@ -8,7 +8,7 @@
"edit-privileges": "Edit Privileges",
"select-clear-all": "Select/Clear All",
"chat": "Chat",
- "chat-with-privileged": "Chat with Privileged",
+ "chat-with-privileged": "Conversează cu cineva cu drepturi",
"upload-images": "Upload Images",
"upload-files": "Upload Files",
"signature": "Signature",
diff --git a/public/language/ro/admin/manage/user-custom-fields.json b/public/language/ro/admin/manage/user-custom-fields.json
index dab10670d2..a2c2da240d 100644
--- a/public/language/ro/admin/manage/user-custom-fields.json
+++ b/public/language/ro/admin/manage/user-custom-fields.json
@@ -1,28 +1,28 @@
{
- "title": "Manage Custom User Fields",
- "create-field": "Create Field",
- "edit-field": "Edit Field",
- "manage-custom-fields": "Manage Custom Fields",
- "type-of-input": "Type of input",
- "key": "Key",
- "name": "Name",
- "icon": "Icon",
- "type": "Type",
- "min-rep": "Minimum Reputation",
- "input-type-text": "Input (Text)",
- "input-type-link": "Input (Link)",
- "input-type-number": "Input (Number)",
- "input-type-date": "Input (Date)",
- "input-type-select": "Select",
- "input-type-select-multi": "Select Multiple",
- "select-options": "Options",
- "select-options-help": "Add one option per line for the select element",
- "minimum-reputation": "Minimum reputation",
- "minimum-reputation-help": "If a user has less than this value they won't be able to use this field",
- "delete-field-confirm-x": "Do you really want to delete custom field \"%1\"?",
- "custom-fields-saved": "Custom fields saved",
- "visibility": "Visibility",
- "visibility-all": "Everyone can see the field",
- "visibility-loggedin": "Only logged in users can see the field",
- "visibility-privileged": "Only privileged users like admins & moderators can see the field"
+ "title": "Gestionarea câmpurilor personalizate ale utilizatorilor",
+ "create-field": "Creare Câmp",
+ "edit-field": "Modificare Câmp",
+ "manage-custom-fields": "Administrare Câmpuri Personalizate",
+ "type-of-input": "Tipul editorului",
+ "key": "Cheie",
+ "name": "Nume",
+ "icon": "Iconîță",
+ "type": "Tip",
+ "min-rep": "Reputație Minimă",
+ "input-type-text": "Editor (Text)",
+ "input-type-link": "Editor (Link)",
+ "input-type-number": "Editor (Număr)",
+ "input-type-date": "Editor (Dată)",
+ "input-type-select": "Selecție",
+ "input-type-select-multi": "Selecție Multiplă",
+ "select-options": "Opțiuni",
+ "select-options-help": "Adăugați pe linie câte o opțiune pentru elementul select",
+ "minimum-reputation": "Reputație Minimă",
+ "minimum-reputation-help": "Dacă un utilizator are o valoare mai mică decât această, nu va putea folosi acest câmp.",
+ "delete-field-confirm-x": "Sigur doriți să ștergeți câmpul personalizat „%1”?",
+ "custom-fields-saved": "Câmpuri personalizate salvate",
+ "visibility": "Vizibilitate",
+ "visibility-all": "Oricine poate vedea câmpul",
+ "visibility-loggedin": "Doar utilizatorii autentificați pot vedea câmpul",
+ "visibility-privileged": "Doar utilizatorii privilegiați ca administratori sau moderatori pot vedea câmpul"
}
\ No newline at end of file
diff --git a/public/language/ro/admin/menu.json b/public/language/ro/admin/menu.json
index 913c74f475..8114756e80 100644
--- a/public/language/ro/admin/menu.json
+++ b/public/language/ro/admin/menu.json
@@ -38,7 +38,7 @@
"settings/tags": "Tags",
"settings/notifications": "Notifications",
"settings/api": "API Access",
- "settings/activitypub": "Federation (ActivityPub)",
+ "settings/activitypub": "Federație (ActivityPub)",
"settings/sounds": "Sounds",
"settings/social": "Social",
"settings/cookies": "Cookies",
diff --git a/public/language/ro/admin/settings/activitypub.json b/public/language/ro/admin/settings/activitypub.json
index 94f9ad7822..e94dfe6b6d 100644
--- a/public/language/ro/admin/settings/activitypub.json
+++ b/public/language/ro/admin/settings/activitypub.json
@@ -1,26 +1,48 @@
{
- "intro-lead": "What is Federation?",
- "intro-body": "NodeBB is able to communicate with other NodeBB instances that support it. This is achieved through a protocol called ActivityPub. If enabled, NodeBB will also be able to communicate with other apps and websites that use ActivityPub (e.g. Mastodon, Peertube, etc.)",
+ "intro-lead": "Ce este Federația?",
+ "intro-body": "NodeBB poate comunica cu alte instanțe NodeBB care îl suportă. Acest lucru se realizează printr-un protocol numit ActivityPub. Dacă este activat, NodeBB va putea comunica și cu alte aplicații și site-uri web care utilizează ActivityPub (de exemplu, Mastodon, Peertube etc.).",
"general": "General",
- "pruning": "Content Pruning",
- "content-pruning": "Days to keep remote content",
- "content-pruning-help": "Note that remote content that has received engagement (a reply or a upvote/downvote) will be preserved. (0 for disabled)",
- "user-pruning": "Days to cache remote user accounts",
- "user-pruning-help": "Remote user accounts will only be pruned if they have no posts. Otherwise they will be re-retrieved. (0 for disabled)",
- "enabled": "Enable Federation",
- "enabled-help": "If enabled, will allow this NodeBB will be able to communicate with all Activitypub-enabled clients on the wider fediverse.",
- "allowLoopback": "Allow loopback processing",
- "allowLoopback-help": "Useful for debugging purposes only. You should probably leave this disabled.",
+ "pruning": "Eliminarea Conținutului",
+ "content-pruning": "Zile pentru păstrarea conținutului de la distanță",
+ "content-pruning-help": "Rețineți că va fi păstrat conținutul de la distanță cu care s-a interacționat (un răspuns sau un vot pozitiv/negativ). (0 pentru dezactivat)",
+ "user-pruning": "Zile pentru a păstra în memoria cache conturile de utilizatori de la distanță",
+ "user-pruning-help": "Conturile de utilizatori de la distanță vor fi eliminate doar dacă nu au postări. În caz contrar, vor fi recuperate. (0 pentru dezactivat)",
+ "enabled": "Activează Federația",
+ "enabled-help": "Dacă este activat, acest lucru va permite ca NodeBB să poată comunica cu toți clienții compatibili cu Activitypub de pe fediverse.",
+ "allowLoopback": "Permite procesarea loopback",
+ "allowLoopback-help": "Util doar pentru depanare. Probabil ar trebui să lași această opțiune dezactivată.",
- "probe": "Open in App",
- "probe-enabled": "Try to open ActivityPub-enabled resources in NodeBB",
- "probe-enabled-help": "If enabled, NodeBB will check every external link for an ActivityPub equivalent, and load it in NodeBB instead.",
- "probe-timeout": "Lookup Timeout (milliseconds)",
- "probe-timeout-help": "(Default: 2000) If the lookup query does not receive a response within the set timeframe, will send the user to the link directly instead. Adjust this number higher if sites are responding slowly and you wish to give extra time.",
+ "probe": "Deschide în Aplicație",
+ "probe-enabled": "Încercă să deschidă resurse compatibile cu ActivityPub în NodeBB",
+ "probe-enabled-help": "Dacă este activat, NodeBB va verifica fiecare link extern pentru un echivalent ActivityPub și îl va încărca în NodeBB.",
+ "probe-timeout": "Timp de așteptare (milisecunde)",
+ "probe-timeout-help": "(Implicit: 2000) Dacă interogarea de căutare nu primește un răspuns în intervalul de timp setat, utilizatorul va fi direcționat direct către link. Ajustați acest număr mai mare dacă site-urile răspund lent și doriți să acordați timp suplimentar.",
- "server-filtering": "Filtering",
- "count": "This NodeBB is currently aware of %1 server(s)",
- "server.filter-help": "Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively allow federation with specific servers, instead. Both options are supported, although they are mutually exclusive.",
- "server.filter-help-hostname": "Enter just the instance hostname below (e.g. example.org), separated by line breaks.",
- "server.filter-allow-list": "Use this as an Allow List instead"
+ "rules": "Clasificare",
+ "rules-intro": "Conținutul descoperit prin ActivityPub poate fi clasificat automat pe baza anumitor reguli (de exemplu, hashtag)",
+ "rules.modal.title": "Cum funcționează",
+ "rules.modal.instructions": "Orice conținut primit este verificat în funcție de aceste reguli de clasificare, iar conținutul corespunzător este mutat automat în categoria aleasă.
N.B. Conținutul care este deja clasificat (adică într-o categorie de la distanță) nu va trece prin aceste reguli.",
+ "rules.add": "Adăugă Regulă Nouă",
+ "rules.help-hashtag": "Subiectele care conțin acest hashtag fără a ține cont de majuscule/minuscule se vor potrivi. Nu introduceți simbolul #",
+ "rules.help-user": "Subiectele create de utilizatorul introdus se vor potrivi. Introduceți un nume de utilizator sau un ID complet (e.g. bob@example.org sau https://example.org/users/bob.",
+ "rules.type": "Tip",
+ "rules.value": "Valoare",
+ "rules.cid": "Categorie",
+
+ "relays": "Retransmițători",
+ "relays.intro": "O funcție de retransmitere îmbunătățește descoperirea conținutului către și de la NodeBB-ul dvs. Abonarea la o funcție de retransmitere înseamnă că respectivul conținut primit de către retransmitere este redirecționat aici, iar conținutul postat aici este sindicalizat către exterior de către retransmitere.",
+ "relays.warning": "Notă: Releele pot trimite volume mari de trafic și pot crește costurile de stocare și procesare.",
+ "relays.litepub": "NodeBB respectă standardul de retransmisie în stil LitePub. URL-ul pe care îl introduceți aici ar trebui să se termine cu /actor.",
+ "relays.add": "Adaugă Retransmițător Nou",
+ "relays.relay": "Retransmițător",
+ "relays.state": "Stare",
+ "relays.state-0": "În Așteptare",
+ "relays.state-1": "Doar Primește",
+ "relays.state-2": "Activ",
+
+ "server-filtering": "Filtrează",
+ "count": "NodeBB cunoaște acum %1 server(e)",
+ "server.filter-help": "Specificați serverele interzise a se conecta cu NodeBB-ul dvs. Alternativ, puteți opta să permiteți selectiv conectarea cu anumite servere. Ambele opțiuni sunt acceptate, deși se exclud reciproc.",
+ "server.filter-help-hostname": "Introduceți mai jos doar numele instanței (de exemplu, example.org), câte unul pe rând.",
+ "server.filter-allow-list": "Folosește ca Poziții Permise"
}
\ No newline at end of file
diff --git a/public/language/ro/admin/settings/chat.json b/public/language/ro/admin/settings/chat.json
index 6d6cad284b..0ffa932af3 100644
--- a/public/language/ro/admin/settings/chat.json
+++ b/public/language/ro/admin/settings/chat.json
@@ -5,8 +5,8 @@
"disable-editing": "Disable chat message editing/deletion",
"disable-editing-help": "Administrators and global moderators are exempt from this restriction",
"max-length": "Maximum length of chat messages",
- "max-length-remote": "Maximum length of remote chat messages",
- "max-length-remote-help": "This value is usually set higher than the chat message maximum for local users as remote messages tend to be longer (with @ mentions, etc.)",
+ "max-length-remote": "Lungimea maximă a mesajelor de chat la distanță",
+ "max-length-remote-help": "Această valoare este de obicei setată la o valoare mai mare decât numărul maxim de mesaje de chat pentru utilizatorii locali, deoarece mesajele la distanță tind să fie mai lungi (cu mențiuni @ etc.).",
"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)",
diff --git a/public/language/ro/admin/settings/email.json b/public/language/ro/admin/settings/email.json
index 0310939cb3..ac3d5eb0f9 100644
--- a/public/language/ro/admin/settings/email.json
+++ b/public/language/ro/admin/settings/email.json
@@ -28,8 +28,8 @@
"smtp-transport.password": "Password",
"smtp-transport.pool": "Enable pooled connections",
"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.allow-self-signed": "Permite certificate self-signed",
+ "smtp-transport.allow-self-signed-help": "Activarea acestei setări vă va permite să utilizați certificate TLS self-signed sau invalide.",
"template": "Edit Email Template",
"template.select": "Select Email Template",
diff --git a/public/language/ro/admin/settings/general.json b/public/language/ro/admin/settings/general.json
index d56c819745..ebebb10fa5 100644
--- a/public/language/ro/admin/settings/general.json
+++ b/public/language/ro/admin/settings/general.json
@@ -15,7 +15,7 @@
"title-layout": "Title Layout",
"title-layout-help": "Define how the browser title will be structured ie. {pageTitle} | {browserTitle}",
"description.placeholder": "A short description about your community",
- "description": "Site Description",
+ "description": "Descrierea site-ului",
"keywords": "Site Keywords",
"keywords-placeholder": "Keywords describing your community, comma-separated",
"logo-and-icons": "Site Logo & Icons",
@@ -51,7 +51,7 @@
"topic-tools": "Topic Tools",
"home-page": "Home Page",
"home-page-route": "Home Page Route",
- "home-page-description": "Choose what page is shown when users navigate to the root URL of your forum.",
+ "home-page-description": "Alegeți ce pagină este afișată când utilizatorii navighează la adresa URL rădăcină a forumului dvs.",
"custom-route": "Custom Route",
"allow-user-home-pages": "Allow User Home Pages",
"home-page-title": "Title of the home page (default \"Home\")",
diff --git a/public/language/ro/admin/settings/navigation.json b/public/language/ro/admin/settings/navigation.json
index 3a71061ecf..130a14c17a 100644
--- a/public/language/ro/admin/settings/navigation.json
+++ b/public/language/ro/admin/settings/navigation.json
@@ -10,7 +10,7 @@
"id": "ID: optional",
"properties": "Properties:",
- "show-to-groups": "Show to Groups:",
+ "show-to-groups": "Afișare în Grupurile:",
"open-new-window": "Open in a new window",
"dropdown": "Dropdown",
"dropdown-placeholder": "Place your dropdown menu items below, ie: <li><a class="dropdown-item" href="https://myforum.com">Link 1</a></li>",
diff --git a/public/language/ro/admin/settings/post.json b/public/language/ro/admin/settings/post.json
index e000f6b10b..5c11545151 100644
--- a/public/language/ro/admin/settings/post.json
+++ b/public/language/ro/admin/settings/post.json
@@ -4,11 +4,11 @@
"sorting.post-default": "Default Post Sorting",
"sorting.oldest-to-newest": "Oldest to Newest",
"sorting.newest-to-oldest": "Newest to Oldest",
- "sorting.recently-replied": "Recently Replied",
- "sorting.recently-created": "Recently Created",
+ "sorting.recently-replied": "Răspunse Recent",
+ "sorting.recently-created": "Create Recent",
"sorting.most-votes": "Most Votes",
"sorting.most-posts": "Most Posts",
- "sorting.most-views": "Most Views",
+ "sorting.most-views": "Cele Mai Văzute",
"sorting.topic-default": "Default Topic Sorting",
"length": "Post Length",
"post-queue": "Post Queue",
diff --git a/public/language/ro/admin/settings/uploads.json b/public/language/ro/admin/settings/uploads.json
index 22046915d9..da12502884 100644
--- a/public/language/ro/admin/settings/uploads.json
+++ b/public/language/ro/admin/settings/uploads.json
@@ -9,10 +9,10 @@
"private-extensions": "File extensions to make private",
"private-uploads-extensions-help": "Enter comma-separated list of file extensions to make private here (e.g. pdf,xls,doc). An empty list means all files are private.",
"resize-image-width-threshold": "Resize images if they are wider than specified width",
- "resize-image-width-threshold-help": "(in pixels, default: 2000 pixels, set to 0 to disable)",
+ "resize-image-width-threshold-help": "(în pixeli, implicit: 2000 pixeli, setați la 0 pentru dezactivare)",
"resize-image-width": "Resize images down to specified width",
"resize-image-width-help": "(in pixels, default: 760 pixels, set to 0 to disable)",
- "resize-image-keep-original": "Keep original image after resize",
+ "resize-image-keep-original": "Păstrează imaginea originală după redimensionare",
"resize-image-quality": "Quality to use when resizing images",
"resize-image-quality-help": "Use a lower quality setting to reduce the file size of resized images.",
"max-file-size": "Maximum File Size (in KiB)",
@@ -22,6 +22,7 @@
"reject-image-height": "Maximum Image Height (in pixels)",
"reject-image-height-help": "Images taller than this value will be rejected.",
"allow-topic-thumbnails": "Allow users to upload topic thumbnails",
+ "show-post-uploads-as-thumbnails": "Afișează încărcările de postări ca miniaturi",
"topic-thumb-size": "Topic Thumb Size",
"allowed-file-extensions": "Allowed File Extensions",
"allowed-file-extensions-help": "Enter comma-separated list of file extensions here (e.g. pdf,xls,doc). An empty list means all extensions are allowed.",
diff --git a/public/language/ro/admin/settings/user.json b/public/language/ro/admin/settings/user.json
index c8cc3c9c34..7f87942d2a 100644
--- a/public/language/ro/admin/settings/user.json
+++ b/public/language/ro/admin/settings/user.json
@@ -64,7 +64,7 @@
"show-email": "Show email",
"show-fullname": "Show fullname",
"restrict-chat": "Only allow chat messages from users I follow",
- "disable-incoming-chats": "Disable incoming chat messages",
+ "disable-incoming-chats": "Dezactivați primirea de mesaje",
"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",
diff --git a/public/language/ro/aria.json b/public/language/ro/aria.json
index 8e2c565c82..ec7889d2f4 100644
--- a/public/language/ro/aria.json
+++ b/public/language/ro/aria.json
@@ -5,5 +5,6 @@
"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"
+ "group-page-link-for": "Group page link for %1",
+ "show-crossposts": "Show Cross-posts"
}
\ No newline at end of file
diff --git a/public/language/ro/error.json b/public/language/ro/error.json
index 472aa0fa53..837bbfc82f 100644
--- a/public/language/ro/error.json
+++ b/public/language/ro/error.json
@@ -3,6 +3,7 @@
"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": "Se pare ca nu ești logat.",
"account-locked": "Contul tău a fost blocat temporar",
"search-requires-login": "Pentru a cauta ai nevoie de un cont. Logheaza-te sau autentifica-te.",
@@ -146,6 +147,7 @@
"post-already-restored": "This post has already been restored",
"topic-already-deleted": "This topic has already been deleted",
"topic-already-restored": "This topic has already been restored",
+ "topic-already-crossposted": "This topic has already been cross-posted there.",
"cant-purge-main-post": "You can't purge the main post, please delete the topic instead",
"topic-thumbnails-are-disabled": "Pictogramele pentru subiect sunt interzise.",
"invalid-file": "Fișier invalid",
@@ -227,6 +229,7 @@
"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",
@@ -236,6 +239,7 @@
"socket-reconnect-failed": "Unable to reach the server at this time. Click here to try again, or try again later",
"invalid-plugin-id": "Invalid plugin ID",
"plugin-not-whitelisted": "Unable to install plugin – only plugins whitelisted by the NodeBB Package Manager can be installed via the ACP",
+ "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",
diff --git a/public/language/ro/global.json b/public/language/ro/global.json
index c446072424..5a305b8ced 100644
--- a/public/language/ro/global.json
+++ b/public/language/ro/global.json
@@ -68,6 +68,7 @@
"users": "Utilizatori",
"topics": "Subiecte",
"posts": "Mesaje",
+ "crossposts": "Cross-posts",
"x-posts": "%1 posts",
"x-topics": "%1 topics",
"x-reputation": "%1 reputation",
diff --git a/public/language/ro/modules.json b/public/language/ro/modules.json
index e45d834abc..980870abbc 100644
--- a/public/language/ro/modules.json
+++ b/public/language/ro/modules.json
@@ -48,6 +48,7 @@
"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",
diff --git a/public/language/ro/pages.json b/public/language/ro/pages.json
index 87ab32ddb6..41f0901058 100644
--- a/public/language/ro/pages.json
+++ b/public/language/ro/pages.json
@@ -36,7 +36,7 @@
"chat": "Chatting with %1",
"flags": "Flags",
"flag-details": "Flag %1 Details",
- "world": "World",
+ "world": "Lumea",
"account/edit": "Editing \"%1\"",
"account/edit/password": "Editing password of \"%1\"",
"account/edit/username": "Editing username of \"%1\"",
@@ -55,7 +55,7 @@
"account/settings-of": "Changing settings of %1",
"account/watched": "Topics watched by %1",
"account/ignored": "Topics ignored by %1",
- "account/read": "Topics read by %1",
+ "account/read": "Subiecte citite de %1",
"account/upvoted": "Posts upvoted by %1",
"account/downvoted": "Posts downvoted by %1",
"account/best": "Best posts made by %1",
@@ -63,7 +63,7 @@
"account/blocks": "Blocked users for %1",
"account/uploads": "Uploads by %1",
"account/sessions": "Login Sessions",
- "account/shares": "Topics shared by %1",
+ "account/shares": "Subiecte partajate de %1",
"confirm": "Email Confirmed",
"maintenance.text": "%1 is currently undergoing maintenance. Please come back another time.",
"maintenance.messageIntro": "Additionally, the administrator has left this message:",
diff --git a/public/language/ro/post-queue.json b/public/language/ro/post-queue.json
index 24b33da2e6..c9d806c61b 100644
--- a/public/language/ro/post-queue.json
+++ b/public/language/ro/post-queue.json
@@ -3,10 +3,10 @@
"post-queue": "Post Queue",
"no-queued-posts": "There are no posts in the post queue.",
"no-single-post": "The topic or post you are looking for is no longer in the queue. It has likely been approved or deleted already.",
- "enabling-help": "The post queue is currently disabled. To enable this feature, go to Settings → Post → Post Queue and enable Post Queue.",
+ "enabling-help": "Coada de publicare este dezactivată . Pentru a o activa, mergeți la Setări → Post → Post Queue și activați Post Queue.",
"back-to-list": "Back to Post Queue",
- "public-intro": "If you have any queued posts, they will be shown here.",
- "public-description": "This forum is configured to automatically queue posts from new accounts, pending moderator approval. If you have queued posts awaiting approval, you will be able to see them here.",
+ "public-intro": "Dacă aveți postări în coadă, acestea vor fi afișate aici.",
+ "public-description": "Acest forum este configurat să adauge automat în coadă postările de la conturile noi, în așteptarea aprobării moderatorului. Dacă aveți postări în coadă care așteaptă aprobarea, le veți putea vedea aici.",
"user": "User",
"when": "When",
"category": "Category",
@@ -39,5 +39,5 @@
"remove-selected-confirm": "Do you want to remove %1 selected posts?",
"bulk-accept-success": "%1 posts accepted",
"bulk-reject-success": "%1 posts rejected",
- "links-in-this-post": "Links in this post"
+ "links-in-this-post": "Linkuri în această postare"
}
\ No newline at end of file
diff --git a/public/language/ro/recent.json b/public/language/ro/recent.json
index 825ef74692..9e878b96c7 100644
--- a/public/language/ro/recent.json
+++ b/public/language/ro/recent.json
@@ -8,6 +8,6 @@
"no-recent-topics": "Nu există subiecte recente.",
"no-popular-topics": "Nu sunt subiecte populare.",
"load-new-posts": "Load new posts",
- "uncategorized.title": "All known topics",
- "uncategorized.intro": "This page shows a chronological listing of every topic that this forum has received. The views and opinions expressed in the topics below are not moderated and may not represent the views and opinions of this website."
+ "uncategorized.title": "Toate subiectele cunoscute",
+ "uncategorized.intro": "Această pagină prezintă o listă cronologică a fiecărui subiect primit de acest forum. Părerile și opiniile exprimate în subiectele de mai jos nu sunt moderate și este posibil să nu reprezinte opiniile și opiniile acestui site web."
}
\ No newline at end of file
diff --git a/public/language/ro/search.json b/public/language/ro/search.json
index f994b924cb..0d544d3545 100644
--- a/public/language/ro/search.json
+++ b/public/language/ro/search.json
@@ -7,7 +7,7 @@
"in-titles": "In titles",
"in-titles-posts": "In titles and posts",
"in-posts": "In posts",
- "in-bookmarks": "In bookmarks",
+ "in-bookmarks": "În marcaje",
"in-categories": "In categories",
"in-users": "In users",
"in-tags": "In tags",
diff --git a/public/language/ro/social.json b/public/language/ro/social.json
index 2ba690a187..40dc8ec5ec 100644
--- a/public/language/ro/social.json
+++ b/public/language/ro/social.json
@@ -7,6 +7,8 @@
"sign-up-with-google": "Sign up with Google",
"log-in-with-facebook": "Log in with Facebook",
"continue-with-facebook": "Continue with Facebook",
- "sign-in-with-linkedin": "Sign in with LinkedIn",
- "sign-up-with-linkedin": "Sign up with LinkedIn"
+ "sign-in-with-linkedin": "Conectează-te cu LinkedIn",
+ "sign-up-with-linkedin": "Înregistrează-te cu LinkedIn",
+ "sign-in-with-wordpress": "Conectează-te cu WordPress",
+ "sign-up-with-wordpress": "Înregistrează-te cu WordPress"
}
\ No newline at end of file
diff --git a/public/language/ro/tags.json b/public/language/ro/tags.json
index b412a8c85d..cdf91bf1e0 100644
--- a/public/language/ro/tags.json
+++ b/public/language/ro/tags.json
@@ -3,7 +3,7 @@
"no-tag-topics": "Nu există nici un subiect cu acest tag.",
"no-tags-found": "No tags found",
"tags": "Taguri",
- "enter-tags-here": "Enter tags, %1 - %2 characters.",
+ "enter-tags-here": "Introduceți etichete, %1 - %2 caractere.",
"enter-tags-here-short": "Introdu taguri...",
"no-tags": "În acest moment nu există nici un tag.",
"select-tags": "Select Tags",
diff --git a/public/language/ro/topic.json b/public/language/ro/topic.json
index 5d44fe17d7..b52960064a 100644
--- a/public/language/ro/topic.json
+++ b/public/language/ro/topic.json
@@ -15,7 +15,7 @@
"replies-to-this-post": "%1 Replies",
"one-reply-to-this-post": "1 Reply",
"last-reply-time": "Last reply",
- "reply-options": "Reply options",
+ "reply-options": "Opțiuni răspuns",
"reply-as-topic": "Răspunde ca subiect",
"guest-login-reply": "Login pentru a răspunde",
"login-to-view": "🔒 Log in to view",
@@ -27,7 +27,7 @@
"restore": "Restaurează",
"move": "Mută",
"change-owner": "Change Owner",
- "manage-editors": "Manage Editors",
+ "manage-editors": "Gestionați Editorii",
"fork": "Bifurcă",
"link": "Link",
"share": "Distribuie",
@@ -36,7 +36,7 @@
"pinned": "Pinned",
"pinned-with-expiry": "Pinned until %1",
"scheduled": "Scheduled",
- "deleted": "Deleted",
+ "deleted": "Șters",
"moved": "Moved",
"moved-from": "Moved from %1",
"copy-code": "Copy Code",
@@ -61,8 +61,8 @@
"user-restored-topic-on": "%1 restored this topic on %2",
"user-moved-topic-from-ago": "%1 moved this topic from %2 %3",
"user-moved-topic-from-on": "%1 moved this topic from %2 on %3",
- "user-shared-topic-ago": "%1 shared this topic %2",
- "user-shared-topic-on": "%1 shared this topic on %2",
+ "user-shared-topic-ago": "%1 a distribuit acest subiect %2",
+ "user-shared-topic-on": "%1 a distribuit acest subiect pe %2",
"user-queued-post-ago": "%1 queued post for approval %3",
"user-queued-post-on": "%1 queued post for approval on %3",
"user-referenced-topic-ago": "%1 referenced this topic %3",
@@ -103,10 +103,11 @@
"thread-tools.lock": "Închide Subiect",
"thread-tools.unlock": "Deschide Subiect",
"thread-tools.move": "Mută Subiect",
+ "thread-tools.crosspost": "Crosspost Topic",
"thread-tools.move-posts": "Move Posts",
"thread-tools.move-all": "Mută-le pe toate",
"thread-tools.change-owner": "Change Owner",
- "thread-tools.manage-editors": "Manage Editors",
+ "thread-tools.manage-editors": "Gestionați Editorii",
"thread-tools.select-category": "Select Category",
"thread-tools.fork": "Bifurcă Subiect",
"thread-tools.tag": "Tag Topic",
@@ -132,15 +133,17 @@
"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": "Se Încarcă Categoriile",
"confirm-move": "Mută",
+ "confirm-crosspost": "Cross-post",
"confirm-fork": "Bifurcă",
"bookmark": "Bookmark",
"bookmarks": "Bookmarks",
"bookmarks.has-no-bookmarks": "You haven't bookmarked any posts yet.",
"copy-permalink": "Copy Permalink",
- "go-to-original": "View Original Post",
+ "go-to-original": "Vizualizați Postarea Originală",
"loading-more-posts": "Se încarcă mai multe mesaje",
"move-topic": "Mută Subiect",
"move-topics": "Mută Subiecte",
+ "crosspost-topic": "Cross-post Topic",
"move-post": "Mută Mesaj",
"post-moved": "Mesaj mutat!",
"fork-topic": "Bifurcă Subiect",
@@ -162,7 +165,10 @@
"move-posts-instruction": "Click the posts you want to move then enter a topic ID or go to the target topic",
"move-topic-instruction": "Select the target category and then click move",
"change-owner-instruction": "Click the posts you want to assign to another user",
- "manage-editors-instruction": "Manage the users who can edit this post below.",
+ "manage-editors-instruction": "Gestionați mai jos utilizatorii care pot edita această postare.",
+ "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": "Introdu numele subiectului aici ...",
"composer.handle-placeholder": "Enter your name/handle here",
"composer.hide": "Hide",
@@ -188,8 +194,8 @@
"sort-by": "Sortează de la",
"oldest-to-newest": "Vechi la Noi",
"newest-to-oldest": "Noi la Vechi",
- "recently-replied": "Recently Replied",
- "recently-created": "Recently Created",
+ "recently-replied": "Răspunse Recent",
+ "recently-created": "Create Recent",
"most-votes": "Most Votes",
"most-posts": "Most Posts",
"most-views": "Most Views",
@@ -214,15 +220,15 @@
"last-post": "Last post",
"go-to-my-next-post": "Go to my next post",
"no-more-next-post": "You don't have more posts in this topic",
- "open-composer": "Open composer",
+ "open-composer": "Deschide composer-ul",
"post-quick-reply": "Quick reply",
"navigator.index": "Post %1 of %2",
"navigator.unread": "%1 unread",
- "upvote-post": "Upvote post",
- "downvote-post": "Downvote post",
- "post-tools": "Post tools",
- "unread-posts-link": "Unread posts link",
- "thumb-image": "Topic thumbnail image",
- "announcers": "Shares",
- "announcers-x": "Shares (%1)"
+ "upvote-post": "Votează pentru postare",
+ "downvote-post": "Votează împotriva postării",
+ "post-tools": "Unelte de postare",
+ "unread-posts-link": "Link pentru postări necitite",
+ "thumb-image": "Imagine miniatură subiect",
+ "announcers": "Partajări",
+ "announcers-x": "Partajări (%1)"
}
\ No newline at end of file
diff --git a/public/language/ro/unread.json b/public/language/ro/unread.json
index bccada87c3..f80d56c432 100644
--- a/public/language/ro/unread.json
+++ b/public/language/ro/unread.json
@@ -3,7 +3,7 @@
"no-unread-topics": "Nu există nici un subiect necitit.",
"load-more": "Încarcă mai multe",
"mark-as-read": "Marchează ca citit",
- "mark-as-unread": "Mark as Unread",
+ "mark-as-unread": "Marchează ca Necitit",
"selected": "Selectate",
"all": "Toate",
"all-categories": "Toate categoriile",
diff --git a/public/language/ro/users.json b/public/language/ro/users.json
index fd6c6a6c58..ba124c9d31 100644
--- a/public/language/ro/users.json
+++ b/public/language/ro/users.json
@@ -1,6 +1,6 @@
{
"all-users": "All Users",
- "followed-users": "Followed Users",
+ "followed-users": "Utilizatori Urmăriți",
"latest-users": "Ultimii Utilizatori",
"top-posters": "Top Utilizatori",
"most-reputation": "Cei mai apreciați utilizatori",
diff --git a/public/language/ro/world.json b/public/language/ro/world.json
index 7fdb1569f2..33a94dd925 100644
--- a/public/language/ro/world.json
+++ b/public/language/ro/world.json
@@ -1,21 +1,21 @@
{
- "name": "World",
- "popular": "Popular topics",
- "recent": "All topics",
- "help": "Help",
+ "name": "Lumea",
+ "popular": "Subiecte Populare",
+ "recent": "Toate subiectele",
+ "help": "Ajutor",
- "help.title": "What is this page?",
- "help.intro": "Welcome to your corner of the fediverse.",
- "help.fediverse": "The \"fediverse\" is a network of interconnected applications and websites that all talk to one another and whose users can see each other. This forum is federated, and can interact with that social web (or \"fediverse\"). This page is your corner of the fediverse. It consists solely of topics created by — and shared from — users you follow.",
- "help.build": "There might not be a lot of topics here to start; that's normal. You will start to see more content here over time when you start following other users.",
- "help.federating": "Likewise, if users from outside of this forum start following you, then your posts will start appearing on those apps and websites as well.",
- "help.next-generation": "This is the next generation of social media, start contributing today!",
+ "help.title": "Ce este în pagina curentă",
+ "help.intro": "Bine ai venit în colțul tău din universul fediverse",
+ "help.fediverse": "„Fediversul” este o rețea de aplicații și site-uri web interconectate care comunică între ele și ai căror utilizatori se pot vedea reciproc. Acest forum este federat și poate interacționa cu acea rețea socială (sau „fediversul”). Această pagină este colțul tău din fedivers. Constă exclusiv din subiecte create de — și partajate de — utilizatori pe care îi urmărești.",
+ "help.build": "S-ar putea să nu fie multe subiecte de început aici; este normal. Vei începe să vezi mai mult conținut aici în timp, când vei începe să urmărești alți utilizatori.",
+ "help.federating": "De asemenea, dacă utilizatori din afara acestui forum încep să te urmărească, atunci postările tale vor începe să apară și pe acele aplicații și site-uri web.",
+ "help.next-generation": "Aceasta este următoarea generație de social media, începe să contribui chiar azi!",
- "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!",
+ "onboard.title": "Fereastra ta către fedivers...",
+ "onboard.what": "Aceasta este categoria ta personalizată, formată doar din conținut găsit în afara acestui forum. Afișarea unui element pe această pagină depinde de dacă îl urmărești sau dacă postarea respectivă a fost distribuită de cineva pe care îl urmărești.",
+ "onboard.why": "Se întâmplă multe lucruri în afara acestui forum și nu toate sunt relevante pentru interesele tale. De aceea, urmărirea oamenilor este cea mai bună modalitate de a semnala că vrei să vezi mai multe de la cineva.",
+ "onboard.how": "Între timp, puteți da clic pe butoanele de comandă rapidă din partea de sus pentru a vedea ce mai știe acest forum și pentru a începe să descoperiți conținut nou!",
- "show-categories": "Show categories",
- "hide-categories": "Hide categories"
+ "show-categories": "Afișează categoriile",
+ "hide-categories": "Ascunde categoriile"
}
\ No newline at end of file
diff --git a/public/language/ru/admin/advanced/events.json b/public/language/ru/admin/advanced/events.json
index f1d1c69dea..9ec80306ff 100644
--- a/public/language/ru/admin/advanced/events.json
+++ b/public/language/ru/admin/advanced/events.json
@@ -9,9 +9,9 @@
"filter-type": "Тип события",
"filter-start": "Дата начала",
"filter-end": "Дата окончания",
- "filter-user": "Filter by User",
- "filter-user.placeholder": "Type user name to filter...",
- "filter-group": "Filter by Group",
- "filter-group.placeholder": "Type group name to filter...",
+ "filter-user": "Фильтровать по пользователю",
+ "filter-user.placeholder": "Введите имя пользователя для фильтрации…",
+ "filter-group": "Фильтровать по группе",
+ "filter-group.placeholder": "Введите название группы для фильтрации…",
"filter-per-page": "Записей на страницу"
}
\ No newline at end of file
diff --git a/public/language/ru/admin/dashboard.json b/public/language/ru/admin/dashboard.json
index 137241c469..846d395675 100644
--- a/public/language/ru/admin/dashboard.json
+++ b/public/language/ru/admin/dashboard.json
@@ -75,6 +75,7 @@
"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": "Неавторизированных посетителей",
diff --git a/public/language/ru/admin/manage/categories.json b/public/language/ru/admin/manage/categories.json
index 456149cc90..9e7839f40b 100644
--- a/public/language/ru/admin/manage/categories.json
+++ b/public/language/ru/admin/manage/categories.json
@@ -1,18 +1,22 @@
{
"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": "Название категории",
"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": "Описание категории",
- "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.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "Цвет фона",
"text-color": "Цвет текста",
"bg-image-size": "Размер фонового изображения",
@@ -103,6 +107,11 @@
"alert.create-success": "Категория успешно создана!",
"alert.none-active": "У вас нет активных категорий.",
"alert.create": "Создать категорию",
+ "alert.add": "Add a Category",
+ "alert.add-help": "Remote categories can be added to the categories listing by specifying their handle.
Note — 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": "
Вы точно хотите очистить категорию «%1»?
Предупреждение! Все темы и сообщения в этой категории будут удалены
Очистка категории удаляет все темы и сообщения, а также саму категорию из базы данных. Если вы хотите удалить категорию временно, вместо очистки вам нужно выбрать \"отключить\" .
",
"alert.purge-success": "Категория очищена!",
"alert.copy-success": "Настройки скопированы!",
diff --git a/public/language/ru/admin/settings/activitypub.json b/public/language/ru/admin/settings/activitypub.json
index 229272d32e..201d4d7a65 100644
--- a/public/language/ru/admin/settings/activitypub.json
+++ b/public/language/ru/admin/settings/activitypub.json
@@ -18,6 +18,28 @@
"probe-timeout": "Время ожидания поиска (миллисекунды)",
"probe-timeout-help": "(По умолчанию: 2000) Если поисковый запрос не получит ответа в установленные сроки, пользователь будет перенаправлен непосредственно по ссылке. Увеличьте это число, если сайты отвечают медленно и вы хотите предоставить дополнительное время.",
+ "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.
N.B. 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 # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
+ "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 /actor.",
+ "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": "Фильтрация",
"count": "В настоящее время NodeBB знает о %1 сервере(ах)",
"server.filter-help": "Укажите серверы, для которых вы хотели бы запретить объединение с вашим NodeBB. В качестве альтернативы вы можете выборочно разрешить объединение с определенными серверами. Поддерживаются оба варианта, хотя они и являются взаимоисключающими.",
diff --git a/public/language/ru/admin/settings/uploads.json b/public/language/ru/admin/settings/uploads.json
index 8725c70db8..c26cbe27da 100644
--- a/public/language/ru/admin/settings/uploads.json
+++ b/public/language/ru/admin/settings/uploads.json
@@ -22,6 +22,7 @@
"reject-image-height": "Макс. высота изображения (в пикселях)",
"reject-image-height-help": "Загрузка изображений выше указанного значения будет отклонена.",
"allow-topic-thumbnails": "Разрешить пользователям загружать миниатюры для тем",
+ "show-post-uploads-as-thumbnails": "Show post uploads as thumbnails",
"topic-thumb-size": "Размер миниатюр",
"allowed-file-extensions": "Допустимые расширения файлов",
"allowed-file-extensions-help": "Укажите через запятую список расширений файлов, например pdf,xls,doc. Оставьте поле пустым, чтобы разрешить любые загрузки.",
diff --git a/public/language/ru/aria.json b/public/language/ru/aria.json
index 8e2c565c82..ec7889d2f4 100644
--- a/public/language/ru/aria.json
+++ b/public/language/ru/aria.json
@@ -5,5 +5,6 @@
"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"
+ "group-page-link-for": "Group page link for %1",
+ "show-crossposts": "Show Cross-posts"
}
\ No newline at end of file
diff --git a/public/language/ru/category.json b/public/language/ru/category.json
index 4739a2510f..79ef86d73a 100644
--- a/public/language/ru/category.json
+++ b/public/language/ru/category.json
@@ -7,7 +7,7 @@
"new-topic-button": "Создать тему",
"guest-login-post": "Авторизуйтесь, чтобы написать сообщение",
"no-topics": "В этой категории еще нет тем. Почему бы вам не создать первую?",
- "no-followers": "Nobody on this website is tracking or watching this category. Track or watch this category in order to begin receiving updates.",
+ "no-followers": "Никто на этом сайте не отслеживает эту категорию. Начните отслеживать или наблюдать за этой категорией, чтобы получать обновления.",
"browsing": "просматривают",
"no-replies": "Нет ответов",
"no-new-posts": "Нет новых сообщений",
diff --git a/public/language/ru/error.json b/public/language/ru/error.json
index c419fcb3c8..23a4344b14 100644
--- a/public/language/ru/error.json
+++ b/public/language/ru/error.json
@@ -3,6 +3,7 @@
"invalid-json": "Некорректный JSON",
"wrong-parameter-type": "A value of type %3 was expected for property `%1`, but %2 was received instead",
"required-parameters-missing": "Обязательные параметры отсутствуют в API запросе: %1",
+ "reserved-ip-address": "Network requests to reserved IP ranges are not allowed.",
"not-logged-in": "Вы не вошли на сайт.",
"account-locked": "Учётная запись временно заблокирована",
"search-requires-login": "Поиск доступен только для зарегистрированных участников. Пожалуйста, войдите или зарегистрируйтесь.",
@@ -38,7 +39,7 @@
"email-not-confirmed": "Вы не сможете отправлять сообщения, пока ваш адрес электронной почты не подтверждён. Пожалуйста, нажмите здесь, чтобы подтвердить его.",
"email-not-confirmed-chat": "Вы не можете оставлять сообщения, пока ваша электронная почта не подтверждена. Отправить письмо с кодом подтверждения повторно.",
"email-not-confirmed-email-sent": "Your email has not been confirmed yet, please check your inbox for the confirmation email. You may not be able to post in some categories or chat until your email is confirmed.",
- "no-email-to-confirm": "Your account does not have an email set. An email is necessary for account recovery, and may be necessary for chatting and posting in some categories. Please click here to enter an email.",
+ "no-email-to-confirm": "В вашей учётной записи не указан адрес электронной почты. Он необходим для восстановления доступа, а также может потребоваться для общения и публикации в некоторых разделах. Пожалуйста, нажмите здесь, чтобы указать адрес электронной почты.",
"user-doesnt-have-email": "У пользователя %1 не задана электронная почта.",
"email-confirm-failed": "По техническим причинам мы не можем подтвердить ваш адрес электронной почты. Приносим вам наши извинения, пожалуйста, попробуйте позже.",
"confirm-email-already-sent": "Сообщение для подтверждения регистрации уже выслано на ваш адрес электронной почты. Повторная отправка возможна через %1 мин.",
@@ -146,6 +147,7 @@
"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": "Некорректный файл",
@@ -227,6 +229,7 @@
"no-topics-selected": "Темы не выбраны!",
"cant-move-to-same-topic": "Невозможно переместить сообщение в эту же тему!",
"cant-move-topic-to-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": "Вы не можете заблокировать себя!",
"cannot-block-privileged": "Вы не можете заблокировать администраторов или глобальных модераторов",
"cannot-block-guest": "Гости не могут блокировать пользователей",
@@ -236,6 +239,7 @@
"socket-reconnect-failed": "В настоящее время невозможно связаться с сервером. Нажмите здесь, чтобы повторить попытку, или сделайте это позднее",
"invalid-plugin-id": "Invalid plugin ID",
"plugin-not-whitelisted": "Не удалось установить плагин – только плагины, внесенные в белый список диспетчером пакетов NodeBB, могут быть установлены через 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",
diff --git a/public/language/ru/global.json b/public/language/ru/global.json
index 01765d3374..da1bcc699c 100644
--- a/public/language/ru/global.json
+++ b/public/language/ru/global.json
@@ -24,14 +24,14 @@
"cancel": "Cancel",
"close": "Закрыть",
"pagination": "Разбивка на страницы",
- "pagination.previouspage": "Previous Page",
- "pagination.nextpage": "Next Page",
- "pagination.firstpage": "First Page",
- "pagination.lastpage": "Last Page",
+ "pagination.previouspage": "Предыдущая страница",
+ "pagination.nextpage": "Следующая страница",
+ "pagination.firstpage": "Первая страница",
+ "pagination.lastpage": "Последняя страница",
"pagination.out-of": "%1 из %2",
"pagination.enter-index": "Go to post index",
"pagination.go-to-page": "Go to page",
- "pagination.page-x": "Page %1",
+ "pagination.page-x": "Страница %1",
"header.brand-logo": "Brand Logo",
"header.admin": "Админка",
"header.categories": "Категории",
@@ -68,6 +68,7 @@
"users": "Пользователи",
"topics": "Темы",
"posts": "Сообщения",
+ "crossposts": "Cross-posts",
"x-posts": "%1 posts",
"x-topics": "%1 topics",
"x-reputation": "%1 reputation",
diff --git a/public/language/ru/modules.json b/public/language/ru/modules.json
index d59776b42d..20e28da7b5 100644
--- a/public/language/ru/modules.json
+++ b/public/language/ru/modules.json
@@ -48,6 +48,7 @@
"chat.add-user": "Добавить пользователя",
"chat.notification-settings": "Настройки уведомлений",
"chat.default-notification-setting": "Настройка уведомлений по умолчанию",
+ "chat.join-leave-messages": "Join/Leave Messages",
"chat.notification-setting-room-default": "Комната по умолчанию",
"chat.notification-setting-none": "Нет уведомлений",
"chat.notification-setting-at-mention-only": "только @упоминание",
diff --git a/public/language/ru/social.json b/public/language/ru/social.json
index 2ba690a187..5b8dd99a46 100644
--- a/public/language/ru/social.json
+++ b/public/language/ru/social.json
@@ -8,5 +8,7 @@
"log-in-with-facebook": "Log in with Facebook",
"continue-with-facebook": "Continue with Facebook",
"sign-in-with-linkedin": "Sign in with LinkedIn",
- "sign-up-with-linkedin": "Sign up 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"
}
\ No newline at end of file
diff --git a/public/language/ru/topic.json b/public/language/ru/topic.json
index 86c8306ecf..40153c951d 100644
--- a/public/language/ru/topic.json
+++ b/public/language/ru/topic.json
@@ -61,8 +61,8 @@
"user-restored-topic-on": "%1 восстановил эту тему в %2",
"user-moved-topic-from-ago": "%1 переместил эту тему из %2 %3",
"user-moved-topic-from-on": "%1 переместил эту тему из %2 в %3",
- "user-shared-topic-ago": "%1 shared this topic %2",
- "user-shared-topic-on": "%1 shared this topic on %2",
+ "user-shared-topic-ago": "%1 поделился этой темой %2",
+ "user-shared-topic-on": "%1 поделился этой темой на %2",
"user-queued-post-ago": "%1 добавил запись для одобрения %3",
"user-queued-post-on": "%1 добавил запись для одобрения в %3",
"user-referenced-topic-ago": "%1 сослался на эту тему %3",
@@ -103,6 +103,7 @@
"thread-tools.lock": "Закрыть тему",
"thread-tools.unlock": "Открыть тему",
"thread-tools.move": "Перенести тему",
+ "thread-tools.crosspost": "Crosspost Topic",
"thread-tools.move-posts": "Перенести сообщения",
"thread-tools.move-all": "Перенести всё",
"thread-tools.change-owner": "Сменить автора",
@@ -132,6 +133,7 @@
"pin-modal-help": "При желании вы можете установить дату истечения срока для закрепленных тем здесь. Кроме того, вы можете оставить это поле пустым, чтобы тема оставалась закрепленной до тех пор, пока она не будет откреплена вручную.",
"load-categories": "Загружаем категории",
"confirm-move": "Перенести",
+ "confirm-crosspost": "Cross-post",
"confirm-fork": "Разделить",
"bookmark": "Добавить в закладки",
"bookmarks": "Закладки",
@@ -141,6 +143,7 @@
"loading-more-posts": "Загружаем больше сообщений",
"move-topic": "Перенести тему",
"move-topics": "Перенести темы",
+ "crosspost-topic": "Cross-post Topic",
"move-post": "Перенести сообщение",
"post-moved": "Сообщение перенесено!",
"fork-topic": "Создать дополнительную ветвь дискуссии",
@@ -163,6 +166,9 @@
"move-topic-instruction": "Select the target category and then click move",
"change-owner-instruction": "Нажмите на сообщения, которые вы хотите присвоить другому пользователю",
"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": "Введите ваше имя здесь",
"composer.hide": "Скрыть",
diff --git a/public/language/ru/user.json b/public/language/ru/user.json
index 60982acf7a..2942cb492a 100644
--- a/public/language/ru/user.json
+++ b/public/language/ru/user.json
@@ -108,7 +108,7 @@
"disable-incoming-chats": "Disable incoming chat messages ",
"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",
+ "chat-list-add-user": "Добавить участника",
"digest-label": "Подписка на дайджест",
"digest-description": "Подписаться на рассылку уведомлений о событиях и новых темах на форуме с указанной периодичностью",
"digest-off": "Отключена",
diff --git a/public/language/rw/admin/dashboard.json b/public/language/rw/admin/dashboard.json
index 6ad973f5f3..0be6d5866c 100644
--- a/public/language/rw/admin/dashboard.json
+++ b/public/language/rw/admin/dashboard.json
@@ -75,6 +75,7 @@
"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",
diff --git a/public/language/rw/admin/manage/categories.json b/public/language/rw/admin/manage/categories.json
index f51152f22d..cdb3e1f356 100644
--- a/public/language/rw/admin/manage/categories.json
+++ b/public/language/rw/admin/manage/categories.json
@@ -1,18 +1,22 @@
{
"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",
- "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.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "Background Colour",
"text-color": "Text Colour",
"bg-image-size": "Background Image Size",
@@ -103,6 +107,11 @@
"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.
Note — 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": "
Do you really want to purge this category \"%1\"?
Warning! All topics and posts in this category will be purged!
Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.
",
"alert.purge-success": "Category purged!",
"alert.copy-success": "Settings Copied!",
diff --git a/public/language/rw/admin/settings/activitypub.json b/public/language/rw/admin/settings/activitypub.json
index 94f9ad7822..5ab4fa43e8 100644
--- a/public/language/rw/admin/settings/activitypub.json
+++ b/public/language/rw/admin/settings/activitypub.json
@@ -18,6 +18,28 @@
"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.
N.B. 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 # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
+ "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 /actor.",
+ "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 %1 server(s)",
"server.filter-help": "Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively allow federation with specific servers, instead. Both options are supported, although they are mutually exclusive.",
diff --git a/public/language/rw/admin/settings/uploads.json b/public/language/rw/admin/settings/uploads.json
index 22046915d9..e91a7bee36 100644
--- a/public/language/rw/admin/settings/uploads.json
+++ b/public/language/rw/admin/settings/uploads.json
@@ -22,6 +22,7 @@
"reject-image-height": "Maximum Image Height (in pixels)",
"reject-image-height-help": "Images taller than this value will be rejected.",
"allow-topic-thumbnails": "Allow users to upload topic thumbnails",
+ "show-post-uploads-as-thumbnails": "Show post uploads as thumbnails",
"topic-thumb-size": "Topic Thumb Size",
"allowed-file-extensions": "Allowed File Extensions",
"allowed-file-extensions-help": "Enter comma-separated list of file extensions here (e.g. pdf,xls,doc). An empty list means all extensions are allowed.",
diff --git a/public/language/rw/aria.json b/public/language/rw/aria.json
index 8e2c565c82..ec7889d2f4 100644
--- a/public/language/rw/aria.json
+++ b/public/language/rw/aria.json
@@ -5,5 +5,6 @@
"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"
+ "group-page-link-for": "Group page link for %1",
+ "show-crossposts": "Show Cross-posts"
}
\ No newline at end of file
diff --git a/public/language/rw/error.json b/public/language/rw/error.json
index 7c0dd10704..4937ae160a 100644
--- a/public/language/rw/error.json
+++ b/public/language/rw/error.json
@@ -3,6 +3,7 @@
"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": "Biragaragara ko utinjiyemo.",
"account-locked": "Konte yawe yabaye ifunze",
"search-requires-login": "Gushaka ikintu bisaba kuba ufite konte - Injiramo cyangwa wiyandike.",
@@ -146,6 +147,7 @@
"post-already-restored": "Ibi byari byaragaruwe",
"topic-already-deleted": "Iki kiganiro cyari cyarakuweho",
"topic-already-restored": "Iki kiganiro cyari cyaragaruwe",
+ "topic-already-crossposted": "This topic has already been cross-posted there.",
"cant-purge-main-post": "Ntabwo ushobora gusibanganya icyashyizweho kandi ibindi bigishamikiyeho. Ahubwo wakuraho ikiganiro cyose",
"topic-thumbnails-are-disabled": "Ishushondanga ntiyemerewe.",
"invalid-file": "Ifayilo Ntiyemewe",
@@ -227,6 +229,7 @@
"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",
@@ -236,6 +239,7 @@
"socket-reconnect-failed": "Unable to reach the server at this time. Click here to try again, or try again later",
"invalid-plugin-id": "Invalid plugin ID",
"plugin-not-whitelisted": "Unable to install plugin – only plugins whitelisted by the NodeBB Package Manager can be installed via the ACP",
+ "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",
diff --git a/public/language/rw/global.json b/public/language/rw/global.json
index c1f710d15a..984a827520 100644
--- a/public/language/rw/global.json
+++ b/public/language/rw/global.json
@@ -68,6 +68,7 @@
"users": "Abantu",
"topics": "Ibiganiro",
"posts": "Ibyashyizweho",
+ "crossposts": "Cross-posts",
"x-posts": "%1 posts",
"x-topics": "%1 topics",
"x-reputation": "%1 reputation",
diff --git a/public/language/rw/modules.json b/public/language/rw/modules.json
index 340d16cac4..8440752ccf 100644
--- a/public/language/rw/modules.json
+++ b/public/language/rw/modules.json
@@ -48,6 +48,7 @@
"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",
diff --git a/public/language/rw/social.json b/public/language/rw/social.json
index 2ba690a187..5b8dd99a46 100644
--- a/public/language/rw/social.json
+++ b/public/language/rw/social.json
@@ -8,5 +8,7 @@
"log-in-with-facebook": "Log in with Facebook",
"continue-with-facebook": "Continue with Facebook",
"sign-in-with-linkedin": "Sign in with LinkedIn",
- "sign-up-with-linkedin": "Sign up 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"
}
\ No newline at end of file
diff --git a/public/language/rw/topic.json b/public/language/rw/topic.json
index ffc4c4084f..cc9f436d2c 100644
--- a/public/language/rw/topic.json
+++ b/public/language/rw/topic.json
@@ -103,6 +103,7 @@
"thread-tools.lock": "Fungirana Ikiganiro",
"thread-tools.unlock": "Fungurira Ikiganiro",
"thread-tools.move": "Imura Ikiganiro",
+ "thread-tools.crosspost": "Crosspost Topic",
"thread-tools.move-posts": "Move Posts",
"thread-tools.move-all": "Byimure Byose",
"thread-tools.change-owner": "Change Owner",
@@ -132,6 +133,7 @@
"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": "Ibyiciro Biraje",
"confirm-move": "Imura",
+ "confirm-crosspost": "Cross-post",
"confirm-fork": "Gabanyaho",
"bookmark": "Bookmark",
"bookmarks": "Bookmarks",
@@ -141,6 +143,7 @@
"loading-more-posts": "Ibindi Biraje",
"move-topic": "Imura Ikiganiro",
"move-topics": "Imura Ibiganiro",
+ "crosspost-topic": "Cross-post Topic",
"move-post": "Imura Icyashyizweho",
"post-moved": "Icyashizweho kirimuwe!",
"fork-topic": "Gabanyaho ku Kiganiro",
@@ -163,6 +166,9 @@
"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": "Shyira umutwe w'ikiganiro cyawe aha...",
"composer.handle-placeholder": "Enter your name/handle here",
"composer.hide": "Hide",
diff --git a/public/language/sc/admin/dashboard.json b/public/language/sc/admin/dashboard.json
index 6ad973f5f3..0be6d5866c 100644
--- a/public/language/sc/admin/dashboard.json
+++ b/public/language/sc/admin/dashboard.json
@@ -75,6 +75,7 @@
"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",
diff --git a/public/language/sc/admin/manage/categories.json b/public/language/sc/admin/manage/categories.json
index f51152f22d..cdb3e1f356 100644
--- a/public/language/sc/admin/manage/categories.json
+++ b/public/language/sc/admin/manage/categories.json
@@ -1,18 +1,22 @@
{
"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",
- "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.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "Background Colour",
"text-color": "Text Colour",
"bg-image-size": "Background Image Size",
@@ -103,6 +107,11 @@
"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.
Note — 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": "
Do you really want to purge this category \"%1\"?
Warning! All topics and posts in this category will be purged!
Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.
",
"alert.purge-success": "Category purged!",
"alert.copy-success": "Settings Copied!",
diff --git a/public/language/sc/admin/settings/activitypub.json b/public/language/sc/admin/settings/activitypub.json
index 94f9ad7822..5ab4fa43e8 100644
--- a/public/language/sc/admin/settings/activitypub.json
+++ b/public/language/sc/admin/settings/activitypub.json
@@ -18,6 +18,28 @@
"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.
N.B. 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 # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
+ "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 /actor.",
+ "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 %1 server(s)",
"server.filter-help": "Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively allow federation with specific servers, instead. Both options are supported, although they are mutually exclusive.",
diff --git a/public/language/sc/admin/settings/uploads.json b/public/language/sc/admin/settings/uploads.json
index 22046915d9..e91a7bee36 100644
--- a/public/language/sc/admin/settings/uploads.json
+++ b/public/language/sc/admin/settings/uploads.json
@@ -22,6 +22,7 @@
"reject-image-height": "Maximum Image Height (in pixels)",
"reject-image-height-help": "Images taller than this value will be rejected.",
"allow-topic-thumbnails": "Allow users to upload topic thumbnails",
+ "show-post-uploads-as-thumbnails": "Show post uploads as thumbnails",
"topic-thumb-size": "Topic Thumb Size",
"allowed-file-extensions": "Allowed File Extensions",
"allowed-file-extensions-help": "Enter comma-separated list of file extensions here (e.g. pdf,xls,doc). An empty list means all extensions are allowed.",
diff --git a/public/language/sc/aria.json b/public/language/sc/aria.json
index 8e2c565c82..ec7889d2f4 100644
--- a/public/language/sc/aria.json
+++ b/public/language/sc/aria.json
@@ -5,5 +5,6 @@
"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"
+ "group-page-link-for": "Group page link for %1",
+ "show-crossposts": "Show Cross-posts"
}
\ No newline at end of file
diff --git a/public/language/sc/error.json b/public/language/sc/error.json
index 535a568d1e..ea28a9a51c 100644
--- a/public/language/sc/error.json
+++ b/public/language/sc/error.json
@@ -3,6 +3,7 @@
"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": "You don't seem to be logged in.",
"account-locked": "Your account has been locked temporarily",
"search-requires-login": "Searching requires an account - please login or register.",
@@ -146,6 +147,7 @@
"post-already-restored": "This post has already been restored",
"topic-already-deleted": "This topic has already been deleted",
"topic-already-restored": "This topic has already been restored",
+ "topic-already-crossposted": "This topic has already been cross-posted there.",
"cant-purge-main-post": "You can't purge the main post, please delete the topic instead",
"topic-thumbnails-are-disabled": "Topic thumbnails are disabled.",
"invalid-file": "Invalid File",
@@ -227,6 +229,7 @@
"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",
@@ -236,6 +239,7 @@
"socket-reconnect-failed": "Unable to reach the server at this time. Click here to try again, or try again later",
"invalid-plugin-id": "Invalid plugin ID",
"plugin-not-whitelisted": "Unable to install plugin – only plugins whitelisted by the NodeBB Package Manager can be installed via the ACP",
+ "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",
diff --git a/public/language/sc/global.json b/public/language/sc/global.json
index 943d34ccbe..3e3b784808 100644
--- a/public/language/sc/global.json
+++ b/public/language/sc/global.json
@@ -68,6 +68,7 @@
"users": "Users",
"topics": "Topics",
"posts": "Arresonos",
+ "crossposts": "Cross-posts",
"x-posts": "%1 posts",
"x-topics": "%1 topics",
"x-reputation": "%1 reputation",
diff --git a/public/language/sc/modules.json b/public/language/sc/modules.json
index 7145e11029..981e4a6bc4 100644
--- a/public/language/sc/modules.json
+++ b/public/language/sc/modules.json
@@ -48,6 +48,7 @@
"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",
diff --git a/public/language/sc/social.json b/public/language/sc/social.json
index 2ba690a187..5b8dd99a46 100644
--- a/public/language/sc/social.json
+++ b/public/language/sc/social.json
@@ -8,5 +8,7 @@
"log-in-with-facebook": "Log in with Facebook",
"continue-with-facebook": "Continue with Facebook",
"sign-in-with-linkedin": "Sign in with LinkedIn",
- "sign-up-with-linkedin": "Sign up 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"
}
\ No newline at end of file
diff --git a/public/language/sc/topic.json b/public/language/sc/topic.json
index 36b50ac704..37cc4037ad 100644
--- a/public/language/sc/topic.json
+++ b/public/language/sc/topic.json
@@ -103,6 +103,7 @@
"thread-tools.lock": "Bloca Arresonada",
"thread-tools.unlock": "Isbloca Arresonada",
"thread-tools.move": "Move Arresonada",
+ "thread-tools.crosspost": "Crosspost Topic",
"thread-tools.move-posts": "Move Posts",
"thread-tools.move-all": "Move All",
"thread-tools.change-owner": "Change Owner",
@@ -132,6 +133,7 @@
"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": "Carrighende Crezes",
"confirm-move": "Move",
+ "confirm-crosspost": "Cross-post",
"confirm-fork": "Partzi",
"bookmark": "Bookmark",
"bookmarks": "Bookmarks",
@@ -141,6 +143,7 @@
"loading-more-posts": "Càrriga Prus Arresonos",
"move-topic": "Move Arresonada",
"move-topics": "Move Topics",
+ "crosspost-topic": "Cross-post Topic",
"move-post": "Move Arresonu",
"post-moved": "Post moved!",
"fork-topic": "Partzi Arresonada",
@@ -163,6 +166,9 @@
"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": "Pone su tìtulu de s'arresonada inoghe...",
"composer.handle-placeholder": "Enter your name/handle here",
"composer.hide": "Hide",
diff --git a/public/language/sk/admin/dashboard.json b/public/language/sk/admin/dashboard.json
index e979c81301..55c1d314cc 100644
--- a/public/language/sk/admin/dashboard.json
+++ b/public/language/sk/admin/dashboard.json
@@ -75,6 +75,7 @@
"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": "Unikátny navštevníci",
"graphs.registered-users": "Zarestrovaný užívatelia",
"graphs.guest-users": "Guest Users",
diff --git a/public/language/sk/admin/manage/categories.json b/public/language/sk/admin/manage/categories.json
index f6768fe299..e3ecddda6c 100644
--- a/public/language/sk/admin/manage/categories.json
+++ b/public/language/sk/admin/manage/categories.json
@@ -1,18 +1,22 @@
{
"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": "Nastavenia kategórie",
"edit-category": "Edit Category",
"privileges": "Oprávnenia",
"back-to-categories": "Back to categories",
+ "id": "Category ID",
"name": "Názov kategórie",
"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": "Popis kategórie",
- "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.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "Farba pozadia",
"text-color": "Farba textu",
"bg-image-size": "Veľkosť obrázku na pozadí",
@@ -103,6 +107,11 @@
"alert.create-success": "Kategória bola úspešne vytvorená.",
"alert.none-active": "Nemáte žiadne aktívne kategórie.",
"alert.create": "Vytvoriť kategóriu",
+ "alert.add": "Add a Category",
+ "alert.add-help": "Remote categories can be added to the categories listing by specifying their handle.
Note — 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": "
Naozaj chcete vyčistiť túto kategóriu „%1“?
Upozornenie! Všetky témy a príspevky v tejto kategórií budu odstránené!
Vyčistenie kategórií odstráni všetky témy a príspevky a odstráni kategórie z databázy. Pokiaľ chcete vyčistiť kategórie dočasne. radšej namiesto toho kategóriu „zakážte“.
",
"alert.purge-success": "Kategória bola vyčistená!",
"alert.copy-success": "Nastavenia boli skopírované!",
diff --git a/public/language/sk/admin/settings/activitypub.json b/public/language/sk/admin/settings/activitypub.json
index 94f9ad7822..5ab4fa43e8 100644
--- a/public/language/sk/admin/settings/activitypub.json
+++ b/public/language/sk/admin/settings/activitypub.json
@@ -18,6 +18,28 @@
"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.
N.B. 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 # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
+ "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 /actor.",
+ "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 %1 server(s)",
"server.filter-help": "Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively allow federation with specific servers, instead. Both options are supported, although they are mutually exclusive.",
diff --git a/public/language/sk/admin/settings/uploads.json b/public/language/sk/admin/settings/uploads.json
index f9a18dcb4c..fdabe75093 100644
--- a/public/language/sk/admin/settings/uploads.json
+++ b/public/language/sk/admin/settings/uploads.json
@@ -22,6 +22,7 @@
"reject-image-height": "Maximum Image Height (in pixels)",
"reject-image-height-help": "Images taller than this value will be rejected.",
"allow-topic-thumbnails": "Povoliť používateľom nahrať miniatúry tém",
+ "show-post-uploads-as-thumbnails": "Show post uploads as thumbnails",
"topic-thumb-size": "Veľkosť miniatúry témy",
"allowed-file-extensions": "Predvolené prípony súborov",
"allowed-file-extensions-help": "Zadajte zoznam prípon súborov oddelených čiarkou (napr.: pdf, xls, doc). Prázdny zoznam znamená, že všetky prípony sú povolené.",
diff --git a/public/language/sk/aria.json b/public/language/sk/aria.json
index 8e2c565c82..ec7889d2f4 100644
--- a/public/language/sk/aria.json
+++ b/public/language/sk/aria.json
@@ -5,5 +5,6 @@
"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"
+ "group-page-link-for": "Group page link for %1",
+ "show-crossposts": "Show Cross-posts"
}
\ No newline at end of file
diff --git a/public/language/sk/error.json b/public/language/sk/error.json
index 8015c6c2b6..1ce1df745b 100644
--- a/public/language/sk/error.json
+++ b/public/language/sk/error.json
@@ -3,6 +3,7 @@
"invalid-json": "Neplatné 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": "Zdá sa že nie ste prihlásený/á.",
"account-locked": "Váš účet bol dočasne uzamknutý",
"search-requires-login": "K vyhľadávaniu je vyžadovaný účet - prosím prihláste sa alebo zaregistrujte.",
@@ -146,6 +147,7 @@
"post-already-restored": "Tento príspevok bol obnovený",
"topic-already-deleted": "Táto téma bola odstránená",
"topic-already-restored": "Táto téma bola obnovená",
+ "topic-already-crossposted": "This topic has already been cross-posted there.",
"cant-purge-main-post": "Nemôžete očistiť hlavný príspevok, namiesto toho prosíme odstráňte tému",
"topic-thumbnails-are-disabled": "Náhľady tém sú zablokované.",
"invalid-file": "Neplatný súbor",
@@ -227,6 +229,7 @@
"no-topics-selected": "Žiadne vybrané témy.",
"cant-move-to-same-topic": "Nie je možné presunúť príspevok do rovnakej témy!",
"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": "Nemôžete zablokovať seba samého!",
"cannot-block-privileged": "Nemôžete zablokovať správcov alebo hlavných moderátorov",
"cannot-block-guest": "Guest are not able to block other users",
@@ -236,6 +239,7 @@
"socket-reconnect-failed": "Unable to reach the server at this time. Click here to try again, or try again later",
"invalid-plugin-id": "Invalid plugin ID",
"plugin-not-whitelisted": "Unable to install plugin – only plugins whitelisted by the NodeBB Package Manager can be installed via the ACP",
+ "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",
diff --git a/public/language/sk/global.json b/public/language/sk/global.json
index f8f1af5516..094838bf0b 100644
--- a/public/language/sk/global.json
+++ b/public/language/sk/global.json
@@ -68,6 +68,7 @@
"users": "Užívatelia",
"topics": "Témy",
"posts": "Príspevky",
+ "crossposts": "Cross-posts",
"x-posts": "%1 posts",
"x-topics": "%1 topics",
"x-reputation": "%1 reputation",
diff --git a/public/language/sk/modules.json b/public/language/sk/modules.json
index 51c3df2339..1335f8c9c5 100644
--- a/public/language/sk/modules.json
+++ b/public/language/sk/modules.json
@@ -48,6 +48,7 @@
"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",
diff --git a/public/language/sk/social.json b/public/language/sk/social.json
index 2ba690a187..5b8dd99a46 100644
--- a/public/language/sk/social.json
+++ b/public/language/sk/social.json
@@ -8,5 +8,7 @@
"log-in-with-facebook": "Log in with Facebook",
"continue-with-facebook": "Continue with Facebook",
"sign-in-with-linkedin": "Sign in with LinkedIn",
- "sign-up-with-linkedin": "Sign up 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"
}
\ No newline at end of file
diff --git a/public/language/sk/topic.json b/public/language/sk/topic.json
index 1f20e2e431..7323338171 100644
--- a/public/language/sk/topic.json
+++ b/public/language/sk/topic.json
@@ -103,6 +103,7 @@
"thread-tools.lock": "Uzamknúť tému",
"thread-tools.unlock": "Odomknúť tému",
"thread-tools.move": "Presunúť tému",
+ "thread-tools.crosspost": "Crosspost Topic",
"thread-tools.move-posts": "Presunúť príspevky",
"thread-tools.move-all": "Presunúť všetko",
"thread-tools.change-owner": "Change Owner",
@@ -132,6 +133,7 @@
"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": "Načítanie kategórií",
"confirm-move": "Presunúť",
+ "confirm-crosspost": "Cross-post",
"confirm-fork": "Rozdeliť",
"bookmark": "Záložka",
"bookmarks": "Záložky",
@@ -141,6 +143,7 @@
"loading-more-posts": "Načítavanie ďalších príspevkov",
"move-topic": "Presunúť tému",
"move-topics": "Presunúť témy",
+ "crosspost-topic": "Cross-post Topic",
"move-post": "Presunúť príspevok",
"post-moved": "Príspevok presunutý!",
"fork-topic": "Rozdeliť príspevok",
@@ -163,6 +166,9 @@
"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": "Sem zadajte názov témy...",
"composer.handle-placeholder": "Enter your name/handle here",
"composer.hide": "Hide",
diff --git a/public/language/sl/admin/dashboard.json b/public/language/sl/admin/dashboard.json
index 7d36506d8f..5504608a86 100644
--- a/public/language/sl/admin/dashboard.json
+++ b/public/language/sl/admin/dashboard.json
@@ -75,6 +75,7 @@
"graphs.page-views-registered": "Ogledov strani-registrirani",
"graphs.page-views-guest": "Ogledov strani-gosti",
"graphs.page-views-bot": "Ogledov strani-robot",
+ "graphs.page-views-ap": "ActivityPub Page Views",
"graphs.unique-visitors": "Edinstveni obiskovalci",
"graphs.registered-users": "Registrirani uporabniki",
"graphs.guest-users": "Gostujoči uporabniki",
diff --git a/public/language/sl/admin/manage/categories.json b/public/language/sl/admin/manage/categories.json
index acd1f9a506..e74837dc71 100644
--- a/public/language/sl/admin/manage/categories.json
+++ b/public/language/sl/admin/manage/categories.json
@@ -1,18 +1,22 @@
{
"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": "Nastavitve kategorije",
"edit-category": "Edit Category",
"privileges": "Privilegiji",
"back-to-categories": "Back to categories",
+ "id": "Category ID",
"name": "Ime kategorije",
"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": "Opis kategorije",
- "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.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "Barva ozadja",
"text-color": "Barva besedila",
"bg-image-size": "Velikost slike ozadja",
@@ -103,6 +107,11 @@
"alert.create-success": "Kategorija je uspešno ustvarjena!",
"alert.none-active": "Nimate aktivnih kategorij.",
"alert.create": "Ustvari kategorijo",
+ "alert.add": "Add a Category",
+ "alert.add-help": "Remote categories can be added to the categories listing by specifying their handle.
Note — 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": "
Do you really want to purge this category \"%1\"?
Warning! All topics and posts in this category will be purged!
Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.
",
"alert.purge-success": "Kategorija je počiščena!",
"alert.copy-success": "Nastavitve so kopirane!",
diff --git a/public/language/sl/admin/settings/activitypub.json b/public/language/sl/admin/settings/activitypub.json
index 94f9ad7822..5ab4fa43e8 100644
--- a/public/language/sl/admin/settings/activitypub.json
+++ b/public/language/sl/admin/settings/activitypub.json
@@ -18,6 +18,28 @@
"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.
N.B. 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 # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
+ "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 /actor.",
+ "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 %1 server(s)",
"server.filter-help": "Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively allow federation with specific servers, instead. Both options are supported, although they are mutually exclusive.",
diff --git a/public/language/sl/admin/settings/uploads.json b/public/language/sl/admin/settings/uploads.json
index fc43ca3793..8d185fe531 100644
--- a/public/language/sl/admin/settings/uploads.json
+++ b/public/language/sl/admin/settings/uploads.json
@@ -22,6 +22,7 @@
"reject-image-height": "Maximum Image Height (in pixels)",
"reject-image-height-help": "Images taller than this value will be rejected.",
"allow-topic-thumbnails": "Allow users to upload topic thumbnails",
+ "show-post-uploads-as-thumbnails": "Show post uploads as thumbnails",
"topic-thumb-size": "Topic Thumb Size",
"allowed-file-extensions": "Dovoljene pripone datoteke",
"allowed-file-extensions-help": "Enter comma-separated list of file extensions here (e.g. pdf,xls,doc). An empty list means all extensions are allowed.",
diff --git a/public/language/sl/aria.json b/public/language/sl/aria.json
index 8e2c565c82..ec7889d2f4 100644
--- a/public/language/sl/aria.json
+++ b/public/language/sl/aria.json
@@ -5,5 +5,6 @@
"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"
+ "group-page-link-for": "Group page link for %1",
+ "show-crossposts": "Show Cross-posts"
}
\ No newline at end of file
diff --git a/public/language/sl/error.json b/public/language/sl/error.json
index d87f7af441..f1ce1ae7ea 100644
--- a/public/language/sl/error.json
+++ b/public/language/sl/error.json
@@ -3,6 +3,7 @@
"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": "Niste prijavljeni.",
"account-locked": "Vaš račun je bil začasno zaklenjen.",
"search-requires-login": "Iskanje zahteva uporabniški račun - prosimo, da se prijavite ali registrirate.",
@@ -146,6 +147,7 @@
"post-already-restored": "Ta objava je že bila obnovljena.",
"topic-already-deleted": "Ta tema je že bila izbrisana.",
"topic-already-restored": "Ta tema je že bila obnovljena.",
+ "topic-already-crossposted": "This topic has already been cross-posted there.",
"cant-purge-main-post": "Ne morete odstraniti prve objave, prosimo, izbrišite temo.",
"topic-thumbnails-are-disabled": "Sličice teme so onemogočene.",
"invalid-file": "Nedovoljena datoteka",
@@ -227,6 +229,7 @@
"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",
@@ -236,6 +239,7 @@
"socket-reconnect-failed": "Unable to reach the server at this time. Click here to try again, or try again later",
"invalid-plugin-id": "Invalid plugin ID",
"plugin-not-whitelisted": "Unable to install plugin – only plugins whitelisted by the NodeBB Package Manager can be installed via the ACP",
+ "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",
diff --git a/public/language/sl/global.json b/public/language/sl/global.json
index c26caab00c..9f826221dc 100644
--- a/public/language/sl/global.json
+++ b/public/language/sl/global.json
@@ -68,6 +68,7 @@
"users": "Uporabniki",
"topics": "Teme",
"posts": "Objave",
+ "crossposts": "Cross-posts",
"x-posts": "%1 posts",
"x-topics": "%1 topics",
"x-reputation": "%1 reputation",
diff --git a/public/language/sl/modules.json b/public/language/sl/modules.json
index 5571ad4c35..9768079262 100644
--- a/public/language/sl/modules.json
+++ b/public/language/sl/modules.json
@@ -48,6 +48,7 @@
"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",
diff --git a/public/language/sl/social.json b/public/language/sl/social.json
index 2ba690a187..5b8dd99a46 100644
--- a/public/language/sl/social.json
+++ b/public/language/sl/social.json
@@ -8,5 +8,7 @@
"log-in-with-facebook": "Log in with Facebook",
"continue-with-facebook": "Continue with Facebook",
"sign-in-with-linkedin": "Sign in with LinkedIn",
- "sign-up-with-linkedin": "Sign up 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"
}
\ No newline at end of file
diff --git a/public/language/sl/topic.json b/public/language/sl/topic.json
index 18861a85ce..02ec954c1d 100644
--- a/public/language/sl/topic.json
+++ b/public/language/sl/topic.json
@@ -103,6 +103,7 @@
"thread-tools.lock": "Zakleni temo",
"thread-tools.unlock": "Odkleni temo",
"thread-tools.move": "Premakni temo",
+ "thread-tools.crosspost": "Crosspost Topic",
"thread-tools.move-posts": "Premakni objave",
"thread-tools.move-all": "Premakni vse",
"thread-tools.change-owner": "Spremeni lastnika",
@@ -132,6 +133,7 @@
"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": "Nalagam kategorije",
"confirm-move": "Premakni",
+ "confirm-crosspost": "Cross-post",
"confirm-fork": "Razcepi",
"bookmark": "Zaznamek",
"bookmarks": "Zaznamki",
@@ -141,6 +143,7 @@
"loading-more-posts": "Nalagam več objav",
"move-topic": "Premakni temo",
"move-topics": "Premakni teme",
+ "crosspost-topic": "Cross-post Topic",
"move-post": "Premakni objavo",
"post-moved": "Objava premaknjena!",
"fork-topic": "Razcepi temo",
@@ -163,6 +166,9 @@
"move-topic-instruction": "Select the target category and then click move",
"change-owner-instruction": "Kliknite objave, ki jih želite dodeliti drugemu uporabniku",
"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": "Vpiši naslov teme...",
"composer.handle-placeholder": "Enter your name/handle here",
"composer.hide": "Hide",
diff --git a/public/language/sq-AL/admin/dashboard.json b/public/language/sq-AL/admin/dashboard.json
index 6ad973f5f3..0be6d5866c 100644
--- a/public/language/sq-AL/admin/dashboard.json
+++ b/public/language/sq-AL/admin/dashboard.json
@@ -75,6 +75,7 @@
"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",
diff --git a/public/language/sq-AL/admin/manage/categories.json b/public/language/sq-AL/admin/manage/categories.json
index f51152f22d..cdb3e1f356 100644
--- a/public/language/sq-AL/admin/manage/categories.json
+++ b/public/language/sq-AL/admin/manage/categories.json
@@ -1,18 +1,22 @@
{
"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",
- "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.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "Background Colour",
"text-color": "Text Colour",
"bg-image-size": "Background Image Size",
@@ -103,6 +107,11 @@
"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.
Note — 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": "
Do you really want to purge this category \"%1\"?
Warning! All topics and posts in this category will be purged!
Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.
",
"alert.purge-success": "Category purged!",
"alert.copy-success": "Settings Copied!",
diff --git a/public/language/sq-AL/admin/settings/activitypub.json b/public/language/sq-AL/admin/settings/activitypub.json
index 94f9ad7822..5ab4fa43e8 100644
--- a/public/language/sq-AL/admin/settings/activitypub.json
+++ b/public/language/sq-AL/admin/settings/activitypub.json
@@ -18,6 +18,28 @@
"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.
N.B. 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 # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
+ "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 /actor.",
+ "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 %1 server(s)",
"server.filter-help": "Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively allow federation with specific servers, instead. Both options are supported, although they are mutually exclusive.",
diff --git a/public/language/sq-AL/admin/settings/uploads.json b/public/language/sq-AL/admin/settings/uploads.json
index 22046915d9..e91a7bee36 100644
--- a/public/language/sq-AL/admin/settings/uploads.json
+++ b/public/language/sq-AL/admin/settings/uploads.json
@@ -22,6 +22,7 @@
"reject-image-height": "Maximum Image Height (in pixels)",
"reject-image-height-help": "Images taller than this value will be rejected.",
"allow-topic-thumbnails": "Allow users to upload topic thumbnails",
+ "show-post-uploads-as-thumbnails": "Show post uploads as thumbnails",
"topic-thumb-size": "Topic Thumb Size",
"allowed-file-extensions": "Allowed File Extensions",
"allowed-file-extensions-help": "Enter comma-separated list of file extensions here (e.g. pdf,xls,doc). An empty list means all extensions are allowed.",
diff --git a/public/language/sq-AL/aria.json b/public/language/sq-AL/aria.json
index 8e2c565c82..ec7889d2f4 100644
--- a/public/language/sq-AL/aria.json
+++ b/public/language/sq-AL/aria.json
@@ -5,5 +5,6 @@
"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"
+ "group-page-link-for": "Group page link for %1",
+ "show-crossposts": "Show Cross-posts"
}
\ No newline at end of file
diff --git a/public/language/sq-AL/error.json b/public/language/sq-AL/error.json
index 28c75032ae..b5e7ead539 100644
--- a/public/language/sq-AL/error.json
+++ b/public/language/sq-AL/error.json
@@ -3,6 +3,7 @@
"invalid-json": "JSON i pavlefshëm",
"wrong-parameter-type": "Pritej një vlerë e tipit %3 për vetinë '%1', por në vend të saj u mor %2",
"required-parameters-missing": "Parametrat e kërkuar mungonin në këtë API: %1",
+ "reserved-ip-address": "Network requests to reserved IP ranges are not allowed.",
"not-logged-in": "Mesa duket nuk jeni identifikuar.",
"account-locked": "Llogaria juaj është bllokuar përkohësisht",
"search-requires-login": "Për të kërkuar ju duhet të keni një llogari - ju lutemi identifikohuni ose regjistrohuni.",
@@ -146,6 +147,7 @@
"post-already-restored": "Ky postim tashmë është rikthyer",
"topic-already-deleted": "Kjo temë tashmë është fshirë",
"topic-already-restored": "Kjo temë tashmë është rikthyer",
+ "topic-already-crossposted": "This topic has already been cross-posted there.",
"cant-purge-main-post": "Ju nuk mund të fshini postimin kryesor, ju lutemi fshini temën në vend të saj",
"topic-thumbnails-are-disabled": "Miniaturat e temës janë çaktivizuar.",
"invalid-file": "Dokument i pavlefshëm",
@@ -227,6 +229,7 @@
"no-topics-selected": "Asnjë temë e zgjedhur!",
"cant-move-to-same-topic": "Postimi nuk mund të zhvendoset në të njëjtën temë!",
"cant-move-topic-to-same-category": "Tema nuk mund të zhvendoset në të njëjtën kategori!",
+ "cant-move-topic-to-from-remote-categories": "You cannot move topics in or out of remote categories; consider cross-posting instead.",
"cannot-block-self": "Ju nuk mund të bllokoni veten!",
"cannot-block-privileged": "Ju nuk mund të bllokoni administratorët ose moderatorët",
"cannot-block-guest": "Vizitorët nuk mund të bllokojnë përdoruesit e tjerë",
@@ -236,6 +239,7 @@
"socket-reconnect-failed": "Nuk mund të arrihet serveri në këtë moment. Kliko këtu për të provuar përsëri, ose provo më vonë",
"invalid-plugin-id": "Invalid plugin ID",
"plugin-not-whitelisted": "Nuk mund të instalohet plugin – vetëm shtojcat e listuara në listën e bardhë nga Menaxheri i Paketave të NodeBB mund të instalohen nëpërmjet 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",
diff --git a/public/language/sq-AL/global.json b/public/language/sq-AL/global.json
index 89ff10d050..1459ec9f23 100644
--- a/public/language/sq-AL/global.json
+++ b/public/language/sq-AL/global.json
@@ -68,6 +68,7 @@
"users": "Përdoruesit",
"topics": "Temat",
"posts": "Postimet",
+ "crossposts": "Cross-posts",
"x-posts": "%1 posts",
"x-topics": "%1 topics",
"x-reputation": "%1 reputation",
diff --git a/public/language/sq-AL/modules.json b/public/language/sq-AL/modules.json
index e715ed133c..dfeb88b7f5 100644
--- a/public/language/sq-AL/modules.json
+++ b/public/language/sq-AL/modules.json
@@ -48,6 +48,7 @@
"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",
diff --git a/public/language/sq-AL/social.json b/public/language/sq-AL/social.json
index 2ba690a187..5b8dd99a46 100644
--- a/public/language/sq-AL/social.json
+++ b/public/language/sq-AL/social.json
@@ -8,5 +8,7 @@
"log-in-with-facebook": "Log in with Facebook",
"continue-with-facebook": "Continue with Facebook",
"sign-in-with-linkedin": "Sign in with LinkedIn",
- "sign-up-with-linkedin": "Sign up 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"
}
\ No newline at end of file
diff --git a/public/language/sq-AL/topic.json b/public/language/sq-AL/topic.json
index d3313d7967..a4aeccae0a 100644
--- a/public/language/sq-AL/topic.json
+++ b/public/language/sq-AL/topic.json
@@ -103,6 +103,7 @@
"thread-tools.lock": "Blloko temën",
"thread-tools.unlock": "Zhblloko temën",
"thread-tools.move": "Zhvendos temën",
+ "thread-tools.crosspost": "Crosspost Topic",
"thread-tools.move-posts": "Zhvendos postimin",
"thread-tools.move-all": "Zhvendos të gjitha",
"thread-tools.change-owner": "Ndrysho pronarin",
@@ -132,6 +133,7 @@
"pin-modal-help": "Mund të caktoni opsionalisht një datë skadimi për temat() e ngjitura këtu. Përndryshe, mund ta lini këtë fushë bosh që tema të qëndrojë e renditur e para derisa të hiqet manualisht.",
"load-categories": "Duke ngarkuar kategoritë",
"confirm-move": "Lëvizni",
+ "confirm-crosspost": "Cross-post",
"confirm-fork": "Ndrysho",
"bookmark": "Ruaj",
"bookmarks": "Të ruajtura",
@@ -141,6 +143,7 @@
"loading-more-posts": "Duke ngarkuar më shumë postime",
"move-topic": "Zhvendos Temën",
"move-topics": "Zhvendos Temat",
+ "crosspost-topic": "Cross-post Topic",
"move-post": "Zhvendos Postimin",
"post-moved": "Postimi u zhvendos!",
"fork-topic": "Ndrysho temën",
@@ -163,6 +166,9 @@
"move-topic-instruction": "Select the target category and then click move",
"change-owner-instruction": "Klikoni postimet që dëshironi t'i caktoni një përdoruesi tjetër",
"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": "Shkruani titullin e temës suaj këtu...",
"composer.handle-placeholder": "Shkruani emrin tuaj këtu",
"composer.hide": "Hide",
diff --git a/public/language/sr/admin/dashboard.json b/public/language/sr/admin/dashboard.json
index 6ad973f5f3..0be6d5866c 100644
--- a/public/language/sr/admin/dashboard.json
+++ b/public/language/sr/admin/dashboard.json
@@ -75,6 +75,7 @@
"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",
diff --git a/public/language/sr/admin/manage/categories.json b/public/language/sr/admin/manage/categories.json
index f51152f22d..cdb3e1f356 100644
--- a/public/language/sr/admin/manage/categories.json
+++ b/public/language/sr/admin/manage/categories.json
@@ -1,18 +1,22 @@
{
"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",
- "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.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "Background Colour",
"text-color": "Text Colour",
"bg-image-size": "Background Image Size",
@@ -103,6 +107,11 @@
"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.
Note — 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": "
Do you really want to purge this category \"%1\"?
Warning! All topics and posts in this category will be purged!
Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.
",
"alert.purge-success": "Category purged!",
"alert.copy-success": "Settings Copied!",
diff --git a/public/language/sr/admin/settings/activitypub.json b/public/language/sr/admin/settings/activitypub.json
index 94f9ad7822..5ab4fa43e8 100644
--- a/public/language/sr/admin/settings/activitypub.json
+++ b/public/language/sr/admin/settings/activitypub.json
@@ -18,6 +18,28 @@
"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.
N.B. 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 # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
+ "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 /actor.",
+ "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 %1 server(s)",
"server.filter-help": "Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively allow federation with specific servers, instead. Both options are supported, although they are mutually exclusive.",
diff --git a/public/language/sr/admin/settings/uploads.json b/public/language/sr/admin/settings/uploads.json
index 22046915d9..e91a7bee36 100644
--- a/public/language/sr/admin/settings/uploads.json
+++ b/public/language/sr/admin/settings/uploads.json
@@ -22,6 +22,7 @@
"reject-image-height": "Maximum Image Height (in pixels)",
"reject-image-height-help": "Images taller than this value will be rejected.",
"allow-topic-thumbnails": "Allow users to upload topic thumbnails",
+ "show-post-uploads-as-thumbnails": "Show post uploads as thumbnails",
"topic-thumb-size": "Topic Thumb Size",
"allowed-file-extensions": "Allowed File Extensions",
"allowed-file-extensions-help": "Enter comma-separated list of file extensions here (e.g. pdf,xls,doc). An empty list means all extensions are allowed.",
diff --git a/public/language/sr/aria.json b/public/language/sr/aria.json
index 8e2c565c82..ec7889d2f4 100644
--- a/public/language/sr/aria.json
+++ b/public/language/sr/aria.json
@@ -5,5 +5,6 @@
"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"
+ "group-page-link-for": "Group page link for %1",
+ "show-crossposts": "Show Cross-posts"
}
\ No newline at end of file
diff --git a/public/language/sr/error.json b/public/language/sr/error.json
index 8200be23b1..28eaae07cc 100644
--- a/public/language/sr/error.json
+++ b/public/language/sr/error.json
@@ -3,6 +3,7 @@
"invalid-json": "Неважећи JSON",
"wrong-parameter-type": "Очекивана је вредност типа %3 за својство %1, али је уместо тога примљен %2",
"required-parameters-missing": "Недостајали су обавезни параметри у овом API позиву: %1",
+ "reserved-ip-address": "Network requests to reserved IP ranges are not allowed.",
"not-logged-in": "Изгледа да нисте пријављени.",
"account-locked": "Ваш налог је привремено закључан",
"search-requires-login": "Претраживање захтева налог — пријавите се или се региструјте.",
@@ -146,6 +147,7 @@
"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": "Неисправна датотека",
@@ -227,6 +229,7 @@
"no-topics-selected": "Нема одабраних тема!",
"cant-move-to-same-topic": "Није могуће преместити поруку у исту тему!",
"cant-move-topic-to-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": "Не можете блокирати себе!",
"cannot-block-privileged": "Не можете блокирати администраторе или глобалне модераторе",
"cannot-block-guest": "Гости нису у могућности да блокирају друге кориснике",
@@ -236,6 +239,7 @@
"socket-reconnect-failed": "Тренутно није могуће приступити серверу. Кликните овде да бисте покушали поново или покушајте поново касније",
"invalid-plugin-id": "Invalid plugin ID",
"plugin-not-whitelisted": "Инсталација додатне компоненте &ndash није могућа; преко ACP-а могу се инсталирати само додатне компоненте које је на белој листи ставио NodeBB Package Manager",
+ "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": "Није вам дозвољено да мењате стање додатне компоненте онако како је дефинисано у време извршавања (config.json, променљиве окружења или аргументи терминала), уместо тога измените конфигурацију.",
"theme-not-set-in-configuration": "Приликом дефинисања активних додатних компоненти у конфигурацији, промена тема захтева додавање нове теме на листу активних додатних компоненти пре ажурирања у ACP",
diff --git a/public/language/sr/global.json b/public/language/sr/global.json
index 7be67acafd..0a66aac2a2 100644
--- a/public/language/sr/global.json
+++ b/public/language/sr/global.json
@@ -68,6 +68,7 @@
"users": "Корисници",
"topics": "Теме",
"posts": "Поруке",
+ "crossposts": "Cross-posts",
"x-posts": "%1 поруке",
"x-topics": "%1 теме",
"x-reputation": "%1 угледа",
diff --git a/public/language/sr/modules.json b/public/language/sr/modules.json
index f10f3e5d83..62ac69ee64 100644
--- a/public/language/sr/modules.json
+++ b/public/language/sr/modules.json
@@ -48,6 +48,7 @@
"chat.add-user": "Додај корисника",
"chat.notification-settings": "Подешавања обавештења",
"chat.default-notification-setting": "Подразумевано подешавање обавештења",
+ "chat.join-leave-messages": "Join/Leave Messages",
"chat.notification-setting-room-default": "Подразумевана соба",
"chat.notification-setting-none": "Без обавештења",
"chat.notification-setting-at-mention-only": "@помињање само",
diff --git a/public/language/sr/social.json b/public/language/sr/social.json
index 5ceb7d44d5..2e6ee44612 100644
--- a/public/language/sr/social.json
+++ b/public/language/sr/social.json
@@ -8,5 +8,7 @@
"log-in-with-facebook": "Пријавите се преко Facebook-а",
"continue-with-facebook": "Наставите се преко Facebook-а",
"sign-in-with-linkedin": "Sign in with LinkedIn",
- "sign-up-with-linkedin": "Sign up 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"
}
\ No newline at end of file
diff --git a/public/language/sr/topic.json b/public/language/sr/topic.json
index 27775992d9..18fd58fd83 100644
--- a/public/language/sr/topic.json
+++ b/public/language/sr/topic.json
@@ -103,6 +103,7 @@
"thread-tools.lock": "Закључај тему",
"thread-tools.unlock": "Откључај тему",
"thread-tools.move": "Премести тему",
+ "thread-tools.crosspost": "Crosspost Topic",
"thread-tools.move-posts": "Премести поруке",
"thread-tools.move-all": "Премести све",
"thread-tools.change-owner": "Промени власника",
@@ -132,6 +133,7 @@
"pin-modal-help": "Овде можете по жељи да одредите датум истека закачених тема. Можете и да ово поље оставите празно да би тема остала закачена док се ручно не откачи.",
"load-categories": "Учитавање категорија",
"confirm-move": "Премести",
+ "confirm-crosspost": "Cross-post",
"confirm-fork": "Раздвоји",
"bookmark": "Обележивач",
"bookmarks": "Обележивачи",
@@ -141,6 +143,7 @@
"loading-more-posts": "Учитавање још порука",
"move-topic": "Премести тему",
"move-topics": "Премести теме",
+ "crosspost-topic": "Cross-post Topic",
"move-post": "Премести поруку",
"post-moved": "Порука је премештена!",
"fork-topic": "Раздвоји тему",
@@ -163,6 +166,9 @@
"move-topic-instruction": "Изаберите циљну категорију, а затим кликните на премести",
"change-owner-instruction": "Кликните на поруке које желите да доделите другом кориснику",
"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": "Унесите ваше име/идентитет овде",
"composer.hide": "Сакриј",
diff --git a/public/language/sv/admin/dashboard.json b/public/language/sv/admin/dashboard.json
index 6ad973f5f3..0be6d5866c 100644
--- a/public/language/sv/admin/dashboard.json
+++ b/public/language/sv/admin/dashboard.json
@@ -75,6 +75,7 @@
"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",
diff --git a/public/language/sv/admin/manage/categories.json b/public/language/sv/admin/manage/categories.json
index 3e10ad60d8..b48ce5b455 100644
--- a/public/language/sv/admin/manage/categories.json
+++ b/public/language/sv/admin/manage/categories.json
@@ -1,18 +1,22 @@
{
"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",
- "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.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "Background Colour",
"text-color": "Text Colour",
"bg-image-size": "Background Image Size",
@@ -103,6 +107,11 @@
"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.
Note — 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": "
Do you really want to purge this category \"%1\"?
Warning! All topics and posts in this category will be purged!
Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.
",
"alert.purge-success": "Category purged!",
"alert.copy-success": "Settings Copied!",
diff --git a/public/language/sv/admin/settings/activitypub.json b/public/language/sv/admin/settings/activitypub.json
index 94f9ad7822..5ab4fa43e8 100644
--- a/public/language/sv/admin/settings/activitypub.json
+++ b/public/language/sv/admin/settings/activitypub.json
@@ -18,6 +18,28 @@
"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.
N.B. 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 # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
+ "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 /actor.",
+ "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 %1 server(s)",
"server.filter-help": "Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively allow federation with specific servers, instead. Both options are supported, although they are mutually exclusive.",
diff --git a/public/language/sv/admin/settings/uploads.json b/public/language/sv/admin/settings/uploads.json
index 22046915d9..e91a7bee36 100644
--- a/public/language/sv/admin/settings/uploads.json
+++ b/public/language/sv/admin/settings/uploads.json
@@ -22,6 +22,7 @@
"reject-image-height": "Maximum Image Height (in pixels)",
"reject-image-height-help": "Images taller than this value will be rejected.",
"allow-topic-thumbnails": "Allow users to upload topic thumbnails",
+ "show-post-uploads-as-thumbnails": "Show post uploads as thumbnails",
"topic-thumb-size": "Topic Thumb Size",
"allowed-file-extensions": "Allowed File Extensions",
"allowed-file-extensions-help": "Enter comma-separated list of file extensions here (e.g. pdf,xls,doc). An empty list means all extensions are allowed.",
diff --git a/public/language/sv/aria.json b/public/language/sv/aria.json
index 8e2c565c82..ec7889d2f4 100644
--- a/public/language/sv/aria.json
+++ b/public/language/sv/aria.json
@@ -5,5 +5,6 @@
"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"
+ "group-page-link-for": "Group page link for %1",
+ "show-crossposts": "Show Cross-posts"
}
\ No newline at end of file
diff --git a/public/language/sv/error.json b/public/language/sv/error.json
index 6aad430f33..ee85209229 100644
--- a/public/language/sv/error.json
+++ b/public/language/sv/error.json
@@ -3,6 +3,7 @@
"invalid-json": "Ogiltig 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": "Du verkar inte vara inloggad.",
"account-locked": "Ditt konto har tillfälligt blivit låst",
"search-requires-login": "Sökning kräver ett konto, var god logga in eller registrera dig.",
@@ -146,6 +147,7 @@
"post-already-restored": "Inlägget är redan återställt",
"topic-already-deleted": "Ämnet är redan raderat",
"topic-already-restored": "Ämnet är redan återställt",
+ "topic-already-crossposted": "This topic has already been cross-posted there.",
"cant-purge-main-post": "Huvudinlägg kan ej rensas bort, ta bort ämnet istället",
"topic-thumbnails-are-disabled": "Miniatyrbilder för ämnen är inaktiverat",
"invalid-file": "Ogiltig fil",
@@ -227,6 +229,7 @@
"no-topics-selected": "Inga ämnen valda!",
"cant-move-to-same-topic": "Kan inte flytta inlägg till samma ämne!",
"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": "Du kan inte blockera dig själv!",
"cannot-block-privileged": "Du kan inte blockera administratörer eller globala moderatorer",
"cannot-block-guest": "Guest are not able to block other users",
@@ -236,6 +239,7 @@
"socket-reconnect-failed": "Unable to reach the server at this time. Click here to try again, or try again later",
"invalid-plugin-id": "Invalid plugin ID",
"plugin-not-whitelisted": "Unable to install plugin – only plugins whitelisted by the NodeBB Package Manager can be installed via the ACP",
+ "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",
diff --git a/public/language/sv/global.json b/public/language/sv/global.json
index 2d89399d59..12034b4e1a 100644
--- a/public/language/sv/global.json
+++ b/public/language/sv/global.json
@@ -68,6 +68,7 @@
"users": "Användare",
"topics": "Ämnen",
"posts": "Inlägg",
+ "crossposts": "Cross-posts",
"x-posts": "%1 inlägg",
"x-topics": "%1 topics",
"x-reputation": "%1 reputation",
diff --git a/public/language/sv/modules.json b/public/language/sv/modules.json
index 14b07ee511..14d3713957 100644
--- a/public/language/sv/modules.json
+++ b/public/language/sv/modules.json
@@ -48,6 +48,7 @@
"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",
diff --git a/public/language/sv/social.json b/public/language/sv/social.json
index 2ba690a187..5b8dd99a46 100644
--- a/public/language/sv/social.json
+++ b/public/language/sv/social.json
@@ -8,5 +8,7 @@
"log-in-with-facebook": "Log in with Facebook",
"continue-with-facebook": "Continue with Facebook",
"sign-in-with-linkedin": "Sign in with LinkedIn",
- "sign-up-with-linkedin": "Sign up 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"
}
\ No newline at end of file
diff --git a/public/language/sv/topic.json b/public/language/sv/topic.json
index 483b26e254..1097c11638 100644
--- a/public/language/sv/topic.json
+++ b/public/language/sv/topic.json
@@ -103,6 +103,7 @@
"thread-tools.lock": "Lås ämne",
"thread-tools.unlock": "Lås upp ämne",
"thread-tools.move": "Flytta ämne",
+ "thread-tools.crosspost": "Crosspost Topic",
"thread-tools.move-posts": "Flytta inlägg",
"thread-tools.move-all": "Flytta alla",
"thread-tools.change-owner": "Ändra ägare",
@@ -132,6 +133,7 @@
"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": "Laddar kategorier",
"confirm-move": "Flytta",
+ "confirm-crosspost": "Cross-post",
"confirm-fork": "Grena",
"bookmark": "Bokmärke",
"bookmarks": "Bokmärken",
@@ -141,6 +143,7 @@
"loading-more-posts": "Laddar fler inlägg",
"move-topic": "Flytta ämne",
"move-topics": "Flytta ämnen",
+ "crosspost-topic": "Cross-post Topic",
"move-post": "Flytta inlägg",
"post-moved": "Inlägget flyttades.",
"fork-topic": "Grena ämne",
@@ -163,6 +166,9 @@
"move-topic-instruction": "Select the target category and then click move",
"change-owner-instruction": "Klicka på de inlägg du vill tilldela en annan användare",
"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": "Skriv in ämnets titel här...",
"composer.handle-placeholder": "Skriv ditt namn/användarnamn här",
"composer.hide": "Dölj",
diff --git a/public/language/th/admin/dashboard.json b/public/language/th/admin/dashboard.json
index 5049bb87e1..fb36057e85 100644
--- a/public/language/th/admin/dashboard.json
+++ b/public/language/th/admin/dashboard.json
@@ -75,6 +75,7 @@
"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": "ผู้ใช้ที่เป็นผู้มาเยือน",
diff --git a/public/language/th/admin/manage/categories.json b/public/language/th/admin/manage/categories.json
index f64e658a6b..45f2da252d 100644
--- a/public/language/th/admin/manage/categories.json
+++ b/public/language/th/admin/manage/categories.json
@@ -1,18 +1,22 @@
{
"manage-categories": "จัดการหมวดหมู่",
"add-category": "เพิ่มหมวดหมู่",
+ "add-local-category": "Add Local category",
+ "add-remote-category": "Add Remote category",
+ "remove": "Remove",
+ "rename": "Rename",
"jump-to": "ไปที่...",
"settings": "การตั้งค่าหมวดหมู่",
"edit-category": "แก้ไขหมวดหมู่",
"privileges": "สิทธิ์",
"back-to-categories": "กลับไปที่หมวดหมู่ทั้งหมด",
+ "id": "Category ID",
"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": "คำอธิบายหมวดหมู่",
- "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.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "สีพื้น",
"text-color": "สีข้อความ",
"bg-image-size": "ขนาดภาพพื้นหลัง",
@@ -103,6 +107,11 @@
"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.
Note — 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": "
Do you really want to purge this category \"%1\"?
Warning! All topics and posts in this category will be purged!
Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.
",
"alert.purge-success": "Category purged!",
"alert.copy-success": "Settings Copied!",
diff --git a/public/language/th/admin/settings/activitypub.json b/public/language/th/admin/settings/activitypub.json
index 94f9ad7822..5ab4fa43e8 100644
--- a/public/language/th/admin/settings/activitypub.json
+++ b/public/language/th/admin/settings/activitypub.json
@@ -18,6 +18,28 @@
"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.
N.B. 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 # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
+ "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 /actor.",
+ "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 %1 server(s)",
"server.filter-help": "Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively allow federation with specific servers, instead. Both options are supported, although they are mutually exclusive.",
diff --git a/public/language/th/admin/settings/uploads.json b/public/language/th/admin/settings/uploads.json
index 22046915d9..e91a7bee36 100644
--- a/public/language/th/admin/settings/uploads.json
+++ b/public/language/th/admin/settings/uploads.json
@@ -22,6 +22,7 @@
"reject-image-height": "Maximum Image Height (in pixels)",
"reject-image-height-help": "Images taller than this value will be rejected.",
"allow-topic-thumbnails": "Allow users to upload topic thumbnails",
+ "show-post-uploads-as-thumbnails": "Show post uploads as thumbnails",
"topic-thumb-size": "Topic Thumb Size",
"allowed-file-extensions": "Allowed File Extensions",
"allowed-file-extensions-help": "Enter comma-separated list of file extensions here (e.g. pdf,xls,doc). An empty list means all extensions are allowed.",
diff --git a/public/language/th/aria.json b/public/language/th/aria.json
index 5e3f21e45b..044cf1fae6 100644
--- a/public/language/th/aria.json
+++ b/public/language/th/aria.json
@@ -5,5 +5,6 @@
"profile-page-for": "Profile page for user %1",
"user-watched-tags": "แท็กที่ผู้ใช้เฝ้าดู",
"delete-upload-button": "ลบปุ่มอัพโหลด",
- "group-page-link-for": "ลิงก์ไปหน้ากลุ่มสำหรับ %1"
+ "group-page-link-for": "ลิงก์ไปหน้ากลุ่มสำหรับ %1",
+ "show-crossposts": "Show Cross-posts"
}
\ No newline at end of file
diff --git a/public/language/th/error.json b/public/language/th/error.json
index 16672afaef..ad793ee21f 100644
--- a/public/language/th/error.json
+++ b/public/language/th/error.json
@@ -3,6 +3,7 @@
"invalid-json": "รูปแบบ JSON ไม่ถูกต้อง",
"wrong-parameter-type": "ต้องการข้อมูลประเภท %3 สำหรับค่า `%1` แต่ได้รับค่า %2 แทน",
"required-parameters-missing": "ขาดพารามิเตอร์ที่จำเป็นต่อการเรียก API นี้: %1",
+ "reserved-ip-address": "Network requests to reserved IP ranges are not allowed.",
"not-logged-in": "คุณยังไม่ได้เข้าสู่ระบบ",
"account-locked": "บัญชีของคุณถูกระงับการใช้งานชั่วคราว",
"search-requires-login": "\"ฟังก์ชั่นการค้นหา\" ต้องการบัญชีผู้ใช้ กรุณาเข้าสู่ระบบหรือสมัครสมาชิก",
@@ -146,6 +147,7 @@
"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": "ไฟล์ไม่ถูกต้อง",
@@ -227,6 +229,7 @@
"no-topics-selected": "ไม่มีกระทู้ที่เลือก!",
"cant-move-to-same-topic": "ไม่สามารถย้ายไปกระทู้เดิม!",
"cant-move-topic-to-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": "คุณไม่สามารถบล็อกตัวเองได้!",
"cannot-block-privileged": "คุณไม่สามารถบล็อกผู้ดูแลระบบหรือ moderator ส่วนกลาง",
"cannot-block-guest": "ผู้มาเยือนไม่สามารถบล็อกผู้ใช้งานอื่น",
@@ -236,6 +239,7 @@
"socket-reconnect-failed": "ไม่สามารถติดต่อกับเซิร์ฟเวอร์ในขณะนี้ คลิกที่นี่เพื่อลองใหม่ หรือลองอีกครั้งภายหลัง",
"invalid-plugin-id": "รหัสปลั๊กอินไม่ถูกต้อง",
"plugin-not-whitelisted": "ไม่สามารถติดตั้งปลั๊กอิน – เฉพาะปลั๊กอินที่ได้รับอนุญาตจาก NodeBB Package Manager ถึงจะติดตั้งผ่านแผงควบคุมผู้ดูแลระบบได้",
+ "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": "คุณไม่สามารถเปลี่ยนสถานะของปลั๊กอินเนื่องจากถูกกำหนดตอนรัน (ไฟล์ config.json, ตัวแปร environmental หรือระบุตอนสั่งในบรรทัดคำสั่ง) โปรดปรับที่การตั้งค่าแทน",
"theme-not-set-in-configuration": "เมื่อกำหนดปลั๊กอันที่กำลังทำงานในส่วนตั้งค่า การเปลี่ยนธีมต้องเพิ่มทีมในรายการปลั๊กอินที่กำลังใช้งานก่อนที่จะเปลี่ยนในแผงควบคุมผู้ดูแล",
diff --git a/public/language/th/global.json b/public/language/th/global.json
index 554d2ad47c..8a52feea35 100644
--- a/public/language/th/global.json
+++ b/public/language/th/global.json
@@ -68,6 +68,7 @@
"users": "ผู้ใช้",
"topics": "กระทู้",
"posts": "โพสต์",
+ "crossposts": "Cross-posts",
"x-posts": "%1 โพสต์",
"x-topics": "%1 กระทู้",
"x-reputation": "ชื่อเสียง %1",
diff --git a/public/language/th/modules.json b/public/language/th/modules.json
index c8198f1d99..f2a1a40e5e 100644
--- a/public/language/th/modules.json
+++ b/public/language/th/modules.json
@@ -48,6 +48,7 @@
"chat.add-user": "เพิ่มผู้ใช้งาน",
"chat.notification-settings": "การตั้งค่าการแจ้งเตือน",
"chat.default-notification-setting": "ค่าเริ่มต้นการแจ้งเตือน",
+ "chat.join-leave-messages": "Join/Leave Messages",
"chat.notification-setting-room-default": "ค่าเริ่มต้นของห้อง",
"chat.notification-setting-none": "ไม่มีการแจ้งเตือน",
"chat.notification-setting-at-mention-only": "เฉพาะเมื่อ @ถูกพูดถึง",
diff --git a/public/language/th/social.json b/public/language/th/social.json
index 7930476093..062af524bc 100644
--- a/public/language/th/social.json
+++ b/public/language/th/social.json
@@ -8,5 +8,7 @@
"log-in-with-facebook": "เข้าสู่ระบบด้วยบัญชี Facebook",
"continue-with-facebook": "ไปต่อโดยใช้บัญชี Facebook",
"sign-in-with-linkedin": "เข้าสู่ระบบด้วยบัญชี LinkedIn",
- "sign-up-with-linkedin": "สร้างบัญชีใหม่ด้วยบัญชี LinkedIn"
+ "sign-up-with-linkedin": "สร้างบัญชีใหม่ด้วยบัญชี LinkedIn",
+ "sign-in-with-wordpress": "Sign in with WordPress",
+ "sign-up-with-wordpress": "Sign up with WordPress"
}
\ No newline at end of file
diff --git a/public/language/th/topic.json b/public/language/th/topic.json
index 6d4e92b082..5562e20295 100644
--- a/public/language/th/topic.json
+++ b/public/language/th/topic.json
@@ -103,6 +103,7 @@
"thread-tools.lock": "ล็อคกระทู้",
"thread-tools.unlock": "ปลดล็อคกระทู้",
"thread-tools.move": "ย้ายกระทู้",
+ "thread-tools.crosspost": "Crosspost Topic",
"thread-tools.move-posts": "ย้ายโพสต์",
"thread-tools.move-all": "ย้ายทั้งหมด",
"thread-tools.change-owner": "เปลี่ยนเจ้าของ",
@@ -132,6 +133,7 @@
"pin-modal-help": "คุณสามารถเลือกจะตั้งค่าวันหมดอายุสำหรับกระทู้ปักหมุดที่นี่ คูณยังสามารถปล่อยให้ฟิลด์นี้ว่างเพื่อให้กระทู้ยังคงถูกปักหมดจนกว่าจะยกเลิกด้วยมือ",
"load-categories": "กำลังโหลดหมวดหมู่",
"confirm-move": "ย้าย",
+ "confirm-crosspost": "Cross-post",
"confirm-fork": "แยก",
"bookmark": "บุ๊กมาร์ก",
"bookmarks": "บุ๊กมาร์ก",
@@ -141,6 +143,7 @@
"loading-more-posts": "โหลดโพสเพิ่มเติม",
"move-topic": "ย้ายกระทู้",
"move-topics": "ย้ายกระทู้",
+ "crosspost-topic": "Cross-post Topic",
"move-post": "ย้ายโพส",
"post-moved": "โพสต์ถูกย้ายแล้ว!",
"fork-topic": "แยกกระทู้",
@@ -163,6 +166,9 @@
"move-topic-instruction": "เลือกหมวดหมู่ปลายทางและคลิกย้าย",
"change-owner-instruction": "คลิกที่โพสต์ที่คุณต้องการมอบหมายให้ผู้ใช้งานอีกคน",
"manage-editors-instruction": "จัดการผู้ใช้ที่สามารถแก้ไขโพสต์นี้ด้านล่าง",
+ "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": "ป้อนชื่อหรือชื่อเล่นของคุณที่นี่",
"composer.hide": "ซ่อน",
diff --git a/public/language/tr/admin/dashboard.json b/public/language/tr/admin/dashboard.json
index a6ef8394c2..1c40d281c9 100644
--- a/public/language/tr/admin/dashboard.json
+++ b/public/language/tr/admin/dashboard.json
@@ -75,6 +75,7 @@
"graphs.page-views-registered": "Kayıtlı Kullanıcıların Sayfa Gösterimi",
"graphs.page-views-guest": "Ziyaretçilerin Sayfa Gösterimi",
"graphs.page-views-bot": "Bot Sayfa Gösterimi",
+ "graphs.page-views-ap": "ActivityPub Page Views",
"graphs.unique-visitors": "Benzersiz Ziyaretçiler",
"graphs.registered-users": "Kayıtlı Kullanıcılar",
"graphs.guest-users": "Misafir Kullanıcılar",
diff --git a/public/language/tr/admin/manage/categories.json b/public/language/tr/admin/manage/categories.json
index 1cad49d52c..9af38c0945 100644
--- a/public/language/tr/admin/manage/categories.json
+++ b/public/language/tr/admin/manage/categories.json
@@ -1,18 +1,22 @@
{
"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": "Kategori Ayarları",
"edit-category": "Edit Category",
"privileges": "İzinler",
"back-to-categories": "Back to categories",
+ "id": "Category ID",
"name": "Kategori Adı",
"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": "Kategori Açıklaması",
- "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.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "Arkaplan Rengi",
"text-color": "Yazı Rengi",
"bg-image-size": "Arkaplan Görseli Boyutu",
@@ -103,6 +107,11 @@
"alert.create-success": "Kategori başarıyla yaratıldı!",
"alert.none-active": "Aktif kategoriniz mevcut değil.",
"alert.create": "Bir Kategori Yarat",
+ "alert.add": "Add a Category",
+ "alert.add-help": "Remote categories can be added to the categories listing by specifying their handle.
Note — 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": "
\"% 1\" kategorisini gerçekten temizlemek istiyor musunuz?
Uyarı! Bu kategorideki tüm başlıklar ve iletiler temizlenir!
Bir kategoriyi temizlemek, tüm başlıkları ve iletileri kaldıracak ve kategoriyi veritabanından silecektir. Bir kategoriyi geçici olarak kaldırmak isterseniz, kategoriyi \"devre dışı\" bırakmanız yeterlidir.
",
"alert.purge-success": "Kategori temizlendi!",
"alert.copy-success": "Ayarlar Kopyalandı!",
diff --git a/public/language/tr/admin/settings/activitypub.json b/public/language/tr/admin/settings/activitypub.json
index 94f9ad7822..5ab4fa43e8 100644
--- a/public/language/tr/admin/settings/activitypub.json
+++ b/public/language/tr/admin/settings/activitypub.json
@@ -18,6 +18,28 @@
"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.
N.B. 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 # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
+ "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 /actor.",
+ "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 %1 server(s)",
"server.filter-help": "Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively allow federation with specific servers, instead. Both options are supported, although they are mutually exclusive.",
diff --git a/public/language/tr/admin/settings/uploads.json b/public/language/tr/admin/settings/uploads.json
index f9b369f66a..b9d2884b62 100644
--- a/public/language/tr/admin/settings/uploads.json
+++ b/public/language/tr/admin/settings/uploads.json
@@ -22,6 +22,7 @@
"reject-image-height": "Maksimum Görsel Yüksekliği (piksel)",
"reject-image-height-help": "Bu değerden daha uzun olan görseller reddedilecektir.",
"allow-topic-thumbnails": "Kullanıcıların konulara küçük resim yüklemesine izin ver",
+ "show-post-uploads-as-thumbnails": "Show post uploads as thumbnails",
"topic-thumb-size": "Konu Küçük Resim Boyutu",
"allowed-file-extensions": "İzin Verilen Dosya Uzantıları",
"allowed-file-extensions-help": "Virgül ile ayrılmış dosya uzantıları listesini buraya girin (ör. pdf, xls, doc). Boş bir liste, tüm uzantılara izin verildiği anlamına gelir.",
diff --git a/public/language/tr/aria.json b/public/language/tr/aria.json
index 7b42ff4210..40aa1891e0 100644
--- a/public/language/tr/aria.json
+++ b/public/language/tr/aria.json
@@ -5,5 +5,6 @@
"profile-page-for": "Profile page for user %1",
"user-watched-tags": "Üyenin takip ettiği etiketler",
"delete-upload-button": "Yükleme butonunu sil",
- "group-page-link-for": "%1 için grup sayfa bağlantısı"
+ "group-page-link-for": "%1 için grup sayfa bağlantısı",
+ "show-crossposts": "Show Cross-posts"
}
\ No newline at end of file
diff --git a/public/language/tr/error.json b/public/language/tr/error.json
index a31b16828a..46464288ad 100644
--- a/public/language/tr/error.json
+++ b/public/language/tr/error.json
@@ -3,6 +3,7 @@
"invalid-json": "Geçersiz JSON",
"wrong-parameter-type": "\"%1\" özelliği için %3 türünde bir değer bekleniyordu, ancak bunun yerine %2 alındı",
"required-parameters-missing": "Bu API çağrısında gerekli parametreler eksikti: %1",
+ "reserved-ip-address": "Network requests to reserved IP ranges are not allowed.",
"not-logged-in": "Giriş yapmamış görünüyorsunuz.",
"account-locked": "Hesabınız geçici olarak kilitlendi",
"search-requires-login": "Arama yapmak için üyelik hesabı gerekiyor. Lütfen giriş yapın ya da kaydolun.",
@@ -146,6 +147,7 @@
"post-already-restored": "İleti zaten geri getirilmiş",
"topic-already-deleted": "Başlık zaten silinmiş",
"topic-already-restored": "Başlık zaten geri getirilmiş",
+ "topic-already-crossposted": "This topic has already been cross-posted there.",
"cant-purge-main-post": "İlk iletiyi silemezsiniz, bunun yerine konuyu silin",
"topic-thumbnails-are-disabled": "Başlık resimleri kapalı.",
"invalid-file": "Geçersiz Dosya",
@@ -227,6 +229,7 @@
"no-topics-selected": "Hiçbir başlık seçilmedi!",
"cant-move-to-same-topic": "İletiyi aynı başlığa taşıyamazsın!",
"cant-move-topic-to-same-category": "Başlığı bulunduğu kategoriye taşıyamazsınız!",
+ "cant-move-topic-to-from-remote-categories": "You cannot move topics in or out of remote categories; consider cross-posting instead.",
"cannot-block-self": "Kendi kendinizi engelleyemezsiniz!",
"cannot-block-privileged": "Yöneticileri veya genel moderatörleri engelleyemezsiniz",
"cannot-block-guest": "Misafir diğer kullanıcıları engelleyemez",
@@ -236,6 +239,7 @@
"socket-reconnect-failed": "Şu anda sunucuya ulaşılamıyor. Tekrar denemek için buraya tıklayın, veya daha sonra tekrar deneyin.",
"invalid-plugin-id": "Geçersiz Eklenti ID",
"plugin-not-whitelisted": "– eklentisi yüklenemedi, sadece NodeBB Paket Yöneticisi tarafından onaylanan eklentiler kontrol panelinden kurulabilir",
+ "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",
diff --git a/public/language/tr/global.json b/public/language/tr/global.json
index 4aa5ebf25d..57e50efe94 100644
--- a/public/language/tr/global.json
+++ b/public/language/tr/global.json
@@ -68,6 +68,7 @@
"users": "Kullanıcı",
"topics": "Konu",
"posts": "İleti",
+ "crossposts": "Cross-posts",
"x-posts": "%1 ileti",
"x-topics": "%1 başlık",
"x-reputation": "%1 saygınlık",
diff --git a/public/language/tr/modules.json b/public/language/tr/modules.json
index d85dbd2821..929c0cf962 100644
--- a/public/language/tr/modules.json
+++ b/public/language/tr/modules.json
@@ -48,6 +48,7 @@
"chat.add-user": "Kullanıcı Ekle",
"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",
diff --git a/public/language/tr/social.json b/public/language/tr/social.json
index 835124b5f5..174f1091ca 100644
--- a/public/language/tr/social.json
+++ b/public/language/tr/social.json
@@ -8,5 +8,7 @@
"log-in-with-facebook": "Facebook ile Giriş Yap",
"continue-with-facebook": "Facebook ile devam et",
"sign-in-with-linkedin": "LinkedIn ile Giriş Yap",
- "sign-up-with-linkedin": "LinkedIn ile Kaydol"
+ "sign-up-with-linkedin": "LinkedIn ile Kaydol",
+ "sign-in-with-wordpress": "Sign in with WordPress",
+ "sign-up-with-wordpress": "Sign up with WordPress"
}
\ No newline at end of file
diff --git a/public/language/tr/topic.json b/public/language/tr/topic.json
index d423571f7e..0bddc42542 100644
--- a/public/language/tr/topic.json
+++ b/public/language/tr/topic.json
@@ -103,6 +103,7 @@
"thread-tools.lock": "Konuyu Kilitle",
"thread-tools.unlock": "Konu Kilidini Kaldır",
"thread-tools.move": "Başlığı Taşı",
+ "thread-tools.crosspost": "Crosspost Topic",
"thread-tools.move-posts": "İletiyi Taşı",
"thread-tools.move-all": "Hepsini Taşı",
"thread-tools.change-owner": "Sahibini Değiştir",
@@ -132,6 +133,7 @@
"pin-modal-help": "Sabitlenen konular için bir bitiş tarihi belirleyebilirsiniz. Eğer bu tarihi boş bırakırsanız, konular siz sabitliğini kaldırana kadar sabitlenmiş olarak kalır.",
"load-categories": "Kategoriler Yükleniyor",
"confirm-move": "Taşı",
+ "confirm-crosspost": "Cross-post",
"confirm-fork": "Ayır",
"bookmark": "Yer imlerine ekle",
"bookmarks": "Yer imleri",
@@ -141,6 +143,7 @@
"loading-more-posts": "Daha fazla ileti",
"move-topic": "Başlığı Taşı",
"move-topics": "Başlıkları Taşı",
+ "crosspost-topic": "Cross-post Topic",
"move-post": "İletiyi Taşı",
"post-moved": "İleti taşındı!",
"fork-topic": "Başlığı Ayır",
@@ -163,6 +166,9 @@
"move-topic-instruction": "Hedef kategoriyi seç ve taşı butonuna tıkla",
"change-owner-instruction": "Başka kullanıcıya aktarmak istediğiniz iletileri seçiniz!",
"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": "Başlık ismini buraya giriniz...",
"composer.handle-placeholder": "Kullanıcı adınızı buraya girin",
"composer.hide": "Gizle",
diff --git a/public/language/uk/admin/dashboard.json b/public/language/uk/admin/dashboard.json
index 6f8ce9fa8a..ab440180bb 100644
--- a/public/language/uk/admin/dashboard.json
+++ b/public/language/uk/admin/dashboard.json
@@ -75,6 +75,7 @@
"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": "Унікальні відвідувачі",
"graphs.registered-users": "Зареєстровані користувачі",
"graphs.guest-users": "Guest Users",
diff --git a/public/language/uk/admin/manage/categories.json b/public/language/uk/admin/manage/categories.json
index dfae6ebe3d..2b713f196a 100644
--- a/public/language/uk/admin/manage/categories.json
+++ b/public/language/uk/admin/manage/categories.json
@@ -1,18 +1,22 @@
{
"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": "Назва категорії",
"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": "Опис категорії",
- "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.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "Колір фону",
"text-color": "Колір тексту",
"bg-image-size": "Розмір фонового зображення",
@@ -103,6 +107,11 @@
"alert.create-success": "Категорія успішно створена!",
"alert.none-active": "У вас немає активних категорій.",
"alert.create": "Створити категорію",
+ "alert.add": "Add a Category",
+ "alert.add-help": "Remote categories can be added to the categories listing by specifying their handle.
Note — 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": "
Ви впевнені, що бажаєте стерти категорію \"%1\"?
Увага! Всі теми та пости в цій категорії буде знищено!
Стирання категорії видалить всі теми та пости і видалить категорію з бази данних. Якщо ви хотіли тимчасово видалити категорію, вам, натомість, варто її просто \"вимкнути\".
",
"alert.purge-success": "Категорію стерто!",
"alert.copy-success": "Налаштування скопійовано!",
diff --git a/public/language/uk/admin/settings/activitypub.json b/public/language/uk/admin/settings/activitypub.json
index 94f9ad7822..5ab4fa43e8 100644
--- a/public/language/uk/admin/settings/activitypub.json
+++ b/public/language/uk/admin/settings/activitypub.json
@@ -18,6 +18,28 @@
"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.
N.B. 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 # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
+ "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 /actor.",
+ "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 %1 server(s)",
"server.filter-help": "Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively allow federation with specific servers, instead. Both options are supported, although they are mutually exclusive.",
diff --git a/public/language/uk/admin/settings/uploads.json b/public/language/uk/admin/settings/uploads.json
index f54640cb29..18dda7a1ca 100644
--- a/public/language/uk/admin/settings/uploads.json
+++ b/public/language/uk/admin/settings/uploads.json
@@ -22,6 +22,7 @@
"reject-image-height": "Maximum Image Height (in pixels)",
"reject-image-height-help": "Images taller than this value will be rejected.",
"allow-topic-thumbnails": "Дозволити користувачам завантажувати мініатюри тем",
+ "show-post-uploads-as-thumbnails": "Show post uploads as thumbnails",
"topic-thumb-size": "Розмір мініатюри теми",
"allowed-file-extensions": "Допустимі розширення файлів",
"allowed-file-extensions-help": "Вкажіть розширеня файлів розділені комою (наприклад, pdf,xls,doc). Пустий список дає дозвіл на будь-які розширення.",
diff --git a/public/language/uk/aria.json b/public/language/uk/aria.json
index 8e2c565c82..ec7889d2f4 100644
--- a/public/language/uk/aria.json
+++ b/public/language/uk/aria.json
@@ -5,5 +5,6 @@
"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"
+ "group-page-link-for": "Group page link for %1",
+ "show-crossposts": "Show Cross-posts"
}
\ No newline at end of file
diff --git a/public/language/uk/error.json b/public/language/uk/error.json
index f5ead51c58..0a9bb8c3f7 100644
--- a/public/language/uk/error.json
+++ b/public/language/uk/error.json
@@ -3,6 +3,7 @@
"invalid-json": "Некоректний формат 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": "Для пошуку потрібен акаунт — будь ласка, увійдіть чи зареєструйтесь.",
@@ -146,6 +147,7 @@
"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": "Невірний файл",
@@ -227,6 +229,7 @@
"no-topics-selected": "Не вибрано жодної теми!",
"cant-move-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": "Ви не можете заблокувати самого себе!",
"cannot-block-privileged": "Ви не можете заблокувати адміністраторів або глобальних модераторів",
"cannot-block-guest": "Гості не можуть блокувати інших користувачів",
@@ -236,6 +239,7 @@
"socket-reconnect-failed": "Unable to reach the server at this time. Click here to try again, or try again later",
"invalid-plugin-id": "Invalid plugin ID",
"plugin-not-whitelisted": "Unable to install plugin – only plugins whitelisted by the NodeBB Package Manager can be installed via the ACP",
+ "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",
diff --git a/public/language/uk/global.json b/public/language/uk/global.json
index d5c11eabe8..079e665255 100644
--- a/public/language/uk/global.json
+++ b/public/language/uk/global.json
@@ -68,6 +68,7 @@
"users": "Користувачі",
"topics": "Теми",
"posts": "Пости",
+ "crossposts": "Cross-posts",
"x-posts": "%1 posts",
"x-topics": "%1 topics",
"x-reputation": "%1 reputation",
diff --git a/public/language/uk/modules.json b/public/language/uk/modules.json
index 476a18f3f0..dd7a740981 100644
--- a/public/language/uk/modules.json
+++ b/public/language/uk/modules.json
@@ -48,6 +48,7 @@
"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",
diff --git a/public/language/uk/social.json b/public/language/uk/social.json
index 2ba690a187..5b8dd99a46 100644
--- a/public/language/uk/social.json
+++ b/public/language/uk/social.json
@@ -8,5 +8,7 @@
"log-in-with-facebook": "Log in with Facebook",
"continue-with-facebook": "Continue with Facebook",
"sign-in-with-linkedin": "Sign in with LinkedIn",
- "sign-up-with-linkedin": "Sign up 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"
}
\ No newline at end of file
diff --git a/public/language/uk/topic.json b/public/language/uk/topic.json
index d7648e7b15..70128938ef 100644
--- a/public/language/uk/topic.json
+++ b/public/language/uk/topic.json
@@ -103,6 +103,7 @@
"thread-tools.lock": "Заблокувати тему",
"thread-tools.unlock": "Розблокувати тему",
"thread-tools.move": "Перемістити тему",
+ "thread-tools.crosspost": "Crosspost Topic",
"thread-tools.move-posts": "Перемістити Пости",
"thread-tools.move-all": "Перемістити всі",
"thread-tools.change-owner": "Змінити Власника",
@@ -132,6 +133,7 @@
"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": "Закладка",
"bookmarks": "Закладки",
@@ -141,6 +143,7 @@
"loading-more-posts": "Завантажуємо більше постів",
"move-topic": "Перемістити тему",
"move-topics": "Перемістити теми",
+ "crosspost-topic": "Cross-post Topic",
"move-post": "Перемістити пост",
"post-moved": "Пост переміщено!",
"fork-topic": "Відгалужити тему",
@@ -163,6 +166,9 @@
"move-topic-instruction": "Select the target category and then click move",
"change-owner-instruction": "Клікніть на дописи які ви хочете призначити іншому користувачу",
"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",
diff --git a/public/language/ur/_DO_NOT_EDIT_FILES_HERE.md b/public/language/ur/_DO_NOT_EDIT_FILES_HERE.md
new file mode 100644
index 0000000000..1faf87ad65
--- /dev/null
+++ b/public/language/ur/_DO_NOT_EDIT_FILES_HERE.md
@@ -0,0 +1,3 @@
+# The files here are not meant to be edited directly
+
+Please see the → [Internalization README](../README.md).
\ No newline at end of file
diff --git a/public/language/ur/admin/admin.json b/public/language/ur/admin/admin.json
new file mode 100644
index 0000000000..09f3b37699
--- /dev/null
+++ b/public/language/ur/admin/admin.json
@@ -0,0 +1,18 @@
+{
+ "alert.confirm-rebuild-and-restart": "کیا آپ واقعی نوڈ بی بی کو دوبارہ بنانا اور ری اسٹارٹ کرنا چاہتے ہیں؟",
+ "alert.confirm-restart": "کیا آپ واقعی نوڈ بی بی کو ری اسٹارٹ کرنا چاہتے ہیں؟",
+
+ "acp-title": "%1 | نوڈ بی بی ایڈمنسٹریٹر کنٹرول پینل",
+ "settings-header-contents": "مواد",
+ "changes-saved": "تبدیلیاں محفوظ ہو گئیں",
+ "changes-saved-message": "آپ کی نوڈ بی بی کی ترتیبات میں تبدیلیاں محفوظ ہو گئیں۔",
+ "changes-not-saved": "تبدیلیاں محفوظ نہیں ہوئیں",
+ "changes-not-saved-message": "نوڈ بی بی میں آپ کی تبدیلیاں محفوظ کرنے میں ایک مسئلہ پیش آیا۔ (%1)",
+ "save-changes": "تبدیلیاں محفوظ کریں",
+ "min": "کم سے کم:",
+ "max": "زیادہ سے زیادہ:",
+ "view": "دیکھیں",
+ "edit": "ترمیم",
+ "add": "شامل کریں",
+ "select-icon": "آئیکن منتخب کریں"
+}
\ No newline at end of file
diff --git a/public/language/ur/admin/advanced/cache.json b/public/language/ur/admin/advanced/cache.json
new file mode 100644
index 0000000000..c8889cc414
--- /dev/null
+++ b/public/language/ur/admin/advanced/cache.json
@@ -0,0 +1,10 @@
+{
+ "cache": "کیش",
+ "post-cache": "پوسٹ کیش",
+ "group-cache": "گروپ کیش",
+ "local-cache": "لوکل کیش",
+ "object-cache": "آبجیکٹ کیش",
+ "percent-full": "بھرائی: %1%",
+ "post-cache-size": "پوسٹ کیش کا سائز",
+ "items-in-cache": "کیش میں موجود آئٹمز"
+}
\ No newline at end of file
diff --git a/public/language/ur/admin/advanced/database.json b/public/language/ur/admin/advanced/database.json
new file mode 100644
index 0000000000..c4bfddd979
--- /dev/null
+++ b/public/language/ur/admin/advanced/database.json
@@ -0,0 +1,52 @@
+{
+ "x-b": "%1 بی",
+ "x-mb": "%1 ایم بی",
+ "x-gb": "%1 جی بی",
+ "uptime-seconds": "فعال وقت سیکنڈز میں",
+ "uptime-days": "فعال وقت دنوں میں",
+
+ "mongo": "مونگو ڈی بی",
+ "mongo.version": "مونگو ڈی بی ورژن",
+ "mongo.storage-engine": "سٹوریج سسٹم",
+ "mongo.collections": "کلیکشنز",
+ "mongo.objects": "آبجیکٹس",
+ "mongo.avg-object-size": "اوسط آبجیکٹ سائز",
+ "mongo.data-size": "ڈیٹا سائز",
+ "mongo.storage-size": "سٹوریج سائز",
+ "mongo.index-size": "انڈیکس سائز",
+ "mongo.file-size": "فائل سائز",
+ "mongo.resident-memory": "موجودہ فعال میموری",
+ "mongo.virtual-memory": "ورچوئل میموری",
+ "mongo.mapped-memory": "معیاری میموری",
+ "mongo.bytes-in": "بائٹس ان",
+ "mongo.bytes-out": "بائٹس آؤٹ",
+ "mongo.num-requests": "درخواستوں کی تعداد",
+ "mongo.raw-info": "مونگو ڈی بی سے خام ڈیٹا",
+ "mongo.unauthorized": "نوڈ بی بی مونگو ڈی بی سے مطلوبہ اعدادوشمار حاصل کرنے میں ناکام رہا۔ براہ کرم یقینی بنائیں کہ نوڈ بی بی کی طرف سے استعمال ہونے والا صارف 'ایڈمن' ڈیٹا بیس کے لیے 'کلسٹر مانیٹر' کردار شامل کرتا ہے۔",
+
+ "redis": "ریڈس",
+ "redis.version": "ریڈس ورژن",
+ "redis.keys": "چابیاں",
+ "redis.expires": "میعاد ختم",
+ "redis.avg-ttl": "اوسط وقت حیات (ٹی ٹی ایل)",
+ "redis.connected-clients": "جڑے ہوئے کلائنٹس",
+ "redis.connected-slaves": "جڑے ہوئے ثانوی سرورز",
+ "redis.blocked-clients": "بلاک شدہ کلائنٹس",
+ "redis.used-memory": "استعمال شدہ میموری",
+ "redis.memory-frag-ratio": "میموری فریگمنٹیشن تناسب",
+ "redis.total-connections-recieved": "کل وصول شدہ کنکشنز",
+ "redis.total-commands-processed": "کل پروسیس شدہ کمانڈز",
+ "redis.iops": "سیکنڈ میں بیک وقت آپریشنز",
+ "redis.iinput": "سیکنڈ میں بیک وقت ان پٹ",
+ "redis.ioutput": "سیکنڈ میں بیک وقت آؤٹ پٹ",
+ "redis.total-input": "کل ان پٹ",
+ "redis.total-output": "کل آؤٹ پٹ",
+
+ "redis.keyspace-hits": "کامیاب چابی تلاشیں",
+ "redis.keyspace-misses": "ناکام چابی تلاشیں",
+ "redis.raw-info": "ریڈس سے خام ڈیٹا",
+
+ "postgres": "پوسٹ گریس",
+ "postgres.version": "پوسٹ گریس کیو ایل ورژن",
+ "postgres.raw-info": "پوسٹ گریس سے خام ڈیٹا"
+}
diff --git a/public/language/ur/admin/advanced/errors.json b/public/language/ur/admin/advanced/errors.json
new file mode 100644
index 0000000000..90576eda48
--- /dev/null
+++ b/public/language/ur/admin/advanced/errors.json
@@ -0,0 +1,15 @@
+{
+ "errors": "غلطیاں",
+ "figure-x": "شکل %1",
+ "error-events-per-day": "%1 واقعات فی دن",
+ "error.404": "صفحہ نہیں ملا (غلطی 404)",
+ "error.503": "سروس دستیاب نہیں (غلطی 503)",
+ "manage-error-log": "غلطیوں کے لاگ کا انتظام",
+ "export-error-log": "غلطیوں کے لاگ کو برآمد کریں (سی ایس وی)",
+ "clear-error-log": "غلطیوں کے لاگ کو صاف کریں",
+ "route": "راستہ",
+ "count": "تعداد",
+ "no-routes-not-found": "ہورے! کوئی 404 غلطیاں نہیں!",
+ "clear404-confirm": "کیا آپ واقعی 404 غلطیوں کے لاگ کو صاف کرنا چاہتے ہیں؟",
+ "clear404-success": "صفحہ نہیں ملا (غلطی 404) کی غلطیاں صاف کر دی گئیں۔"
+}
\ No newline at end of file
diff --git a/public/language/ur/admin/advanced/events.json b/public/language/ur/admin/advanced/events.json
new file mode 100644
index 0000000000..51678462e3
--- /dev/null
+++ b/public/language/ur/admin/advanced/events.json
@@ -0,0 +1,17 @@
+{
+ "events": "واقعات",
+ "no-events": "کوئی واقعات نہیں",
+ "control-panel": "واقعات کا کنٹرول پینل",
+ "delete-events": "واقعات حذف کریں",
+ "confirm-delete-all-events": "کیا آپ واقعی لاگ میں موجود تمام واقعات کو حذف کرنا چاہتے ہیں؟",
+ "filters": "فلٹرز",
+ "filters-apply": "فلٹرز لگائیں",
+ "filter-type": "واقعہ کی قسم",
+ "filter-start": "شروع کی تاریخ",
+ "filter-end": "ختم کی تاریخ",
+ "filter-user": "صارف کے مطابق فلٹر",
+ "filter-user.placeholder": "فلٹر کرنے کے لیے صارف کا نام درج کریں…",
+ "filter-group": "گروپ کے مطابق فلٹر",
+ "filter-group.placeholder": "فلٹر کرنے کے لیے گروپ کا نام درج کریں…",
+ "filter-per-page": "فی صفحہ"
+}
\ No newline at end of file
diff --git a/public/language/ur/admin/advanced/logs.json b/public/language/ur/admin/advanced/logs.json
new file mode 100644
index 0000000000..02dd594828
--- /dev/null
+++ b/public/language/ur/admin/advanced/logs.json
@@ -0,0 +1,7 @@
+{
+ "logs": "لاگز",
+ "control-panel": "لاگز کا کنٹرول پینل",
+ "reload": "لاگز دوبارہ لوڈ کریں",
+ "clear": "لاگز صاف کریں",
+ "clear-success": "لاگز صاف ہو گئے!"
+}
\ No newline at end of file
diff --git a/public/language/ur/admin/appearance/customise.json b/public/language/ur/admin/appearance/customise.json
new file mode 100644
index 0000000000..0e016c3555
--- /dev/null
+++ b/public/language/ur/admin/appearance/customise.json
@@ -0,0 +1,20 @@
+{
+ "customise": "مرضی کے مطابق بنائیں",
+ "custom-css": "مرضی کا سی ایس ایس/ساس",
+ "custom-css.description": "اپنی مرضی کی سی ایس ایس/ساس ڈیکلریشنز یہاں درج کریں۔ یہ تمام دیگر سٹائلز کے بعد لگائی جائیں گی۔",
+ "custom-css.enable": "مرضی کا سی ایس ایس/ساس فعال کریں",
+
+ "custom-js": "مرضی کا جاوا اسکرپٹ کوڈ",
+ "custom-js.description": "اپنا مرضی کا جاوا اسکرپٹ کوڈ یہاں درج کریں۔ یہ صفحہ مکمل لوڈ ہونے کے بعد چلایا جائے گا۔",
+ "custom-js.enable": "مرضی کا جاوا اسکرپٹ کوڈ فعال کریں",
+
+ "custom-header": "مرضی کی ہیڈر",
+ "custom-header.description": "اپنا مرضی کا ایچ ٹی ایم ایل کوڈ یہاں درج کریں (جیسے کہ میٹا ایلیمنٹس وغیرہ)، یہ آپ کے فورم کے کوڈ میں <head> سیکشن میں شامل ہوں گے۔ اسکرپٹ ایلیمنٹس کی اجازت ہے، لیکن یہ غیر مشورہ ہے، کیونکہ اس کے لیے آپ مرضی کا جاوا اسکرپٹ کوڈ سیکشن استعمال کر سکتے ہیں۔",
+ "custom-header.enable": "مرضی کی ہیڈر فعال کریں",
+
+ "custom-css.livereload": "فوری ری لوڈ فعال کریں",
+ "custom-css.livereload.description": "اگر آپ اسے فعال کرتے ہیں، تو آپ کے اکاؤنٹ استعمال کرنے والے ہر ڈیوائس پر تمام سیشنز ری لوڈ ہوں گے جب آپ 'محفوظ کریں' دبائیں گے۔",
+ "bsvariables": "_variables.scss",
+ "bsvariables.description": "یہاں آپ بوٹسٹریپ متغیرات کو تبدیل کر سکتے ہیں۔ آپ bootstrap.build جیسا ٹول بھی استعمال کر سکتے ہیں اور اس کا نتیجہ یہاں کاپی کر سکتے ہیں۔ تبدیلیوں کے لیے دوبارہ بنانے اور ری اسٹارٹ کی ضرورت ہے۔",
+ "bsvariables.enable": "_variables.scss فعال کریں"
+}
\ No newline at end of file
diff --git a/public/language/ur/admin/appearance/skins.json b/public/language/ur/admin/appearance/skins.json
new file mode 100644
index 0000000000..8980e0ba52
--- /dev/null
+++ b/public/language/ur/admin/appearance/skins.json
@@ -0,0 +1,18 @@
+{
+ "skins": "جلدیں",
+ "bootswatch-skins": "بوٹس واچ جلدیں",
+ "custom-skins": "مرضی کی جلدیں",
+ "add-skin": "جلد شامل کریں",
+ "save-custom-skins": "مرضی کی جلدیں محفوظ کریں",
+ "save-custom-skins-success": "مرضی کی جلدیں کامیابی سے محفوظ ہو گئیں",
+ "custom-skin-name": "مرضی کی جلد کا نام",
+ "custom-skin-variables": "مرضی کی جلد کے متغیرات",
+ "loading": "جلدیں لوڈ ہو رہی ہیں…",
+ "homepage": "ہوم پیج",
+ "select-skin": "جلد منتخب کریں",
+ "revert-skin": "جلد واپس کریں",
+ "current-skin": "موجودہ جلد",
+ "skin-updated": "جلد تبدیل ہو گئی",
+ "applied-success": "جلد '%1' کامیابی سے لگائی گئی",
+ "revert-success": "جلد بنیادی رنگوں کی طرف واپس کر دی گئی۔"
+}
\ No newline at end of file
diff --git a/public/language/ur/admin/appearance/themes.json b/public/language/ur/admin/appearance/themes.json
new file mode 100644
index 0000000000..218968383d
--- /dev/null
+++ b/public/language/ur/admin/appearance/themes.json
@@ -0,0 +1,13 @@
+{
+ "themes": "تھیمز",
+ "checking-for-installed": "نصب شدہ تھیمز کی جانچ ہو رہی ہے…",
+ "homepage": "ہوم پیج",
+ "select-theme": "تھیم منتخب کریں",
+ "revert-theme": "تھیم واپس کریں",
+ "current-theme": "موجودہ تھیم",
+ "no-themes": "کوئی نصب شدہ تھیمز نہیں ملے",
+ "revert-confirm": "کیا آپ واقعی نوڈ بی بی کی طے شدہ تھیم کو بحال کرنا چاہتے ہیں؟",
+ "theme-changed": "تھیم تبدیل ہو گئی",
+ "revert-success": "آپ نے نوڈ بی بی کی طے شدہ تھیم کو کامیابی سے بحال کر دیا۔",
+ "restart-to-activate": "براہ کرم نوڈ بی بی کو دوبارہ بنائیں اور ری اسٹارٹ کریں تاکہ یہ تھیم مکمل طور پر اثر انداز ہو سکے۔"
+}
\ No newline at end of file
diff --git a/public/language/ur/admin/dashboard.json b/public/language/ur/admin/dashboard.json
new file mode 100644
index 0000000000..a5de565b6c
--- /dev/null
+++ b/public/language/ur/admin/dashboard.json
@@ -0,0 +1,102 @@
+{
+ "forum-traffic": "فورم ٹریفک",
+ "page-views": "صفحہ مناظر",
+ "unique-visitors": "منفرد زائرین",
+ "logins": "لاگ انز",
+ "new-users": "نئے صارفین",
+ "posts": "پوسٹس",
+ "topics": "موضوعات",
+ "page-views-seven": "آخری 7 دن",
+ "page-views-thirty": "آخری 30 دن",
+ "page-views-last-day": "آخری 24 گھنٹے",
+ "page-views-custom": "مرضی کا وقفہ",
+ "page-views-custom-start": "شروع کی تاریخ",
+ "page-views-custom-end": "ختم کی تاریخ",
+ "page-views-custom-help": "صفحہ مناظر دیکھنے کے لیے تاریخوں کا وقفہ درج کریں۔ اگر کیلنڈر انتخاب کے لیے ظاہر نہ ہو، تو آپ تاریخوں کو فارمیٹ YYYY-MM-DD میں درج کر سکتے ہیں۔",
+ "page-views-custom-error": "براہ کرم درست تاریخوں کا وقفہ فارمیٹ YYYY-MM-DD میں درج کریں۔",
+
+ "stats.yesterday": "کل",
+ "stats.today": "آج",
+ "stats.last-week": "پچھلا ہفتہ",
+ "stats.this-week": "یہ ہفتہ",
+ "stats.last-month": "پچھلا مہینہ",
+ "stats.this-month": "یہ مہینہ",
+ "stats.all": "شروع سے",
+
+ "updates": "اپ ڈیٹس",
+ "running-version": "آپ نوڈ بی بی ورژن %1 استعمال کر رہے ہیں۔",
+ "keep-updated": "ہمیشہ نوڈ بی بی کا تازہ ترین ورژن استعمال کرنے کی کوشش کریں تاکہ تازہ ترین سیکیورٹی بہتری اور مسائل کے حل سے فائدہ اٹھائیں۔",
+ "up-to-date": "آپ تازہ ترین ورژن استعمال کر رہے ہیں ",
+ "upgrade-available": "ایک نیا ورژن (%1) دستیاب ہے۔ اگر ممکن ہو تو، نوڈ بی بی اپ ڈیٹ کریں۔",
+ "prerelease-upgrade-available": "یہ نوڈ بی بی کا ایک پرانا پری ریلیز ورژن ہے۔ ایک نیا ورژن (%1) دستیاب ہے۔ اگر ممکن ہو تو، نوڈ بی بی اپ ڈیٹ کریں۔",
+ "prerelease-warning": "یہ نوڈ بی بی کا پری ریلیز ورژن ہے۔ غیر متوقع خرابیاں ہو سکتی ہیں۔ ",
+ "fallback-emailer-not-found": "بیک اپ ای میلر نہیں ملا",
+ "running-in-development": "فورم ڈیولپمنٹ موڈ میں چل رہا ہے، اس لیے یہ کمزور ہو سکتا ہے۔ براہ کرم اپنے سسٹم ایڈمنسٹریٹر سے رابطہ کریں۔",
+ "latest-lookup-failed": "نوڈ بی بی کے تازہ ترین دستیاب ورژن کی جانچ نہیں کی جا سکی",
+
+ "notices": "نوٹسز",
+ "restart-not-required": "ری اسٹارٹ کی ضرورت نہیں",
+ "restart-required": "ری اسٹارٹ کی ضرورت ہے",
+ "search-plugin-installed": "تلاش پلگ ان نصب ہے",
+ "search-plugin-not-installed": "تلاش پلگ ان نصب نہیں ہے",
+ "search-plugin-tooltip": "تلاش کی فعالیت کو فعال کرنے کے لیے پلگ انز صفحہ سے تلاش پلگ ان نصب کریں",
+
+ "control-panel": "سسٹم کنٹرول",
+ "rebuild-and-restart": "دوبارہ بنائیں اور ری اسٹارٹ کریں",
+ "restart": "ری اسٹارٹ",
+ "restart-warning": "نوڈ بی بی کو دوبارہ بنانے اور ری اسٹارٹ کرنے سے چند سیکنڈ کے لیے تمام کنکشنز منقطع ہو جائیں گے۔",
+ "restart-disabled": "نوڈ بی بی کے دوبارہ بنانے اور ری اسٹارٹ کی سہولیات غیر فعال ہیں، کیونکہ لگتا ہے کہ نوڈ بی بی مناسب ڈیمن کے ذریعے نہیں چل رہا۔",
+ "maintenance-mode": "مینٹیننس موڈ",
+ "maintenance-mode-title": "نوڈ بی بی کو مینٹیننس موڈ سیٹ کرنے کے لیے یہاں کلک کریں",
+ "dark-mode": "ڈارک موڈ",
+ "realtime-chart-updates": "ریئل ٹائم چارٹ اپ ڈیٹس",
+
+ "active-users": "فعال صارفین",
+ "active-users.users": "صارفین",
+ "active-users.guests": "مہمان",
+ "active-users.total": "کل",
+ "active-users.connections": "کنکشنز",
+
+ "guest-registered-users": "مہمان بمقابلہ رجسٹرڈ صارفین",
+ "guest": "مہمان",
+ "registered": "رجسٹرڈ",
+
+ "user-presence": "صارفین کی موجودگی",
+ "on-categories": "زمرہ جات کی فہرست میں",
+ "reading-posts": "پوسٹس پڑھ رہے ہیں",
+ "browsing-topics": "موضوعات براؤز کر رہے ہیں",
+ "recent": "حالیہ",
+ "unread": "غیر پڑھا",
+
+ "high-presence-topics": "زیادہ موجودگی والے موضوعات",
+ "popular-searches": "مقبول تلاشیں",
+
+ "graphs.page-views": "صفحہ مناظر",
+ "graphs.page-views-registered": "رجسٹرڈ صارفین کے صفحہ مناظر",
+ "graphs.page-views-guest": "مہمانوں کے صفحہ مناظر",
+ "graphs.page-views-bot": "بوٹس کے صفحہ مناظر",
+ "graphs.page-views-ap": "ایکٹیویٹی پب سے صفحہ مناظر",
+ "graphs.unique-visitors": "منفرد زائرین",
+ "graphs.registered-users": "رجسٹرڈ صارفین",
+ "graphs.guest-users": "مہمان",
+ "last-restarted-by": "آخری بار ری اسٹارٹ کیا گیا",
+ "no-users-browsing": "کوئی براؤز کرنے والے صارفین نہیں",
+
+ "back-to-dashboard": "ڈیش بورڈ پر واپس",
+ "details.no-users": "منتخب کردہ مدت میں کوئی نئے صارفین رجسٹر نہیں ہوئے",
+ "details.no-topics": "منتخب کردہ مدت میں کوئی نئے موضوعات شائع نہیں ہوئے",
+ "details.no-searches": "منتخب کردہ مدت میں کوئی تلاشیں نہیں کی گئیں",
+ "details.no-logins": "منتخب کردہ مدت میں کوئی لاگ انز رجسٹر نہیں ہوئے",
+ "details.logins-static": "نوڈ بی بی %1 دنوں تک سیشن ڈیٹا محفوظ رکھتا ہے، اس لیے درج ذیل جدول میں صرف آخری فعال سیشنز دیکھے جا سکتے ہیں",
+ "details.logins-login-time": "لاگ ان کا وقت",
+ "start": "شروع",
+ "end": "ختم",
+ "filter": "فلٹر",
+ "view-as-json": "جیسن کے طور پر دیکھیں",
+ "expand-analytics": "تجزیات پھیلائیں",
+ "clear-search-history": "تلاش کی تاریخ صاف کریں",
+ "clear-search-history-confirm": "کیا آپ واقعی تلاش کی تاریخ صاف کرنا چاہتے ہیں؟",
+ "search-term": "تلاش کی اصطلاح",
+ "search-count": "تعداد",
+ "view-all": "سب دیکھیں"
+}
diff --git a/public/language/ur/admin/development/info.json b/public/language/ur/admin/development/info.json
new file mode 100644
index 0000000000..89ece3e795
--- /dev/null
+++ b/public/language/ur/admin/development/info.json
@@ -0,0 +1,26 @@
+{
+ "you-are-on": "آپ %1:%2 پر ہیں",
+ "ip": "آئی پی %1",
+ "nodes-responded": "%1 نوڈز نے %2 ملی سیکنڈز میں جواب دیا!",
+ "host": "سرور",
+ "primary": "بنیادی / ٹاسکس",
+ "pid": "پروسیس آئی ڈی",
+ "nodejs": "نوڈ جے ایس",
+ "online": "آن لائن",
+ "git": "گٹ",
+ "process-memory": "پروسیس میموری",
+ "system-memory": "سسٹم میموری",
+ "used-memory-process": "پروسیس کی استعمال شدہ میموری",
+ "used-memory-os": "سسٹم کی استعمال شدہ میموری",
+ "total-memory-os": "کل سسٹم میموری",
+ "load": "سسٹم کا بوجھ",
+ "cpu-usage": "سی پی یو کا استعمال",
+ "uptime": "فعال وقت",
+
+ "registered": "رجسٹرڈ",
+ "sockets": "ساکٹس",
+ "connection-count": "کنکشنز کی تعداد",
+ "guests": "مہمان",
+
+ "info": "معلومات"
+}
\ No newline at end of file
diff --git a/public/language/ur/admin/development/logger.json b/public/language/ur/admin/development/logger.json
new file mode 100644
index 0000000000..6bc918549d
--- /dev/null
+++ b/public/language/ur/admin/development/logger.json
@@ -0,0 +1,13 @@
+{
+ "logger": "لاگ",
+ "logger-settings": "لاگ کی ترتیبات",
+ "description": "اگر آپ یہاں چیک مارک لگائیں گے، تو آپ اپنے ٹرمنل میں لاگ دیکھیں گے۔ اگر آپ کوئی پاتھ بتائیں گے، تو اس کے بجائے لاگز فائل میں محفوظ ہوں گے۔ ایچ ٹی ٹی پی کے ذریعے لاگنگ آپ کے فورم کو کب، کون، اور کس طرح کے لوگ وزٹ کر رہے ہیں اس کے اعدادوشمار حاصل کرنے کے لیے مفید ہے۔ ایچ ٹی ٹی پی درخواستوں کو ٹریک کرنے کے علاوہ، ہم socket.io کے واقعات کو بھی ٹریک کر سکتے ہیں۔ Socket.io لاگنگ، redis-cli کے ساتھ مل کر، نوڈ بی بی کے کام کرنے کے طریقے کو سمجھنے کے لیے بہت مفید ہو سکتی ہے۔",
+ "explanation": "ریئل ٹائم میں لاگز کو فعال یا غیر فعال کرنے کے لیے، بس لاگ کی ترتیبات میں چیک مارک لگائیں یا ہٹائیں۔ ری اسٹارٹ کی ضرورت نہیں ہے۔",
+ "enable-http": "ایچ ٹی ٹی پی لاگنگ فعال کریں",
+ "enable-socket": "socket.io واقعات کے لاگز فعال کریں",
+ "file-path": "لاگ فائل کا پاتھ",
+ "file-path-placeholder": "/پاتھ/ٹو/لاگ/فائل.log ::: اگر خالی ہو، تو لاگ ٹرمنل میں آؤٹ پٹ ہوگا",
+
+ "control-panel": "لاگ کا کنٹرول پینل",
+ "update-settings": "لاگ کی ترتیبات اپ ڈیٹ کریں"
+}
\ No newline at end of file
diff --git a/public/language/ur/admin/extend/plugins.json b/public/language/ur/admin/extend/plugins.json
new file mode 100644
index 0000000000..9a183c1a80
--- /dev/null
+++ b/public/language/ur/admin/extend/plugins.json
@@ -0,0 +1,58 @@
+{
+ "plugins": "پلگ انز",
+ "trending": "رجحانات",
+ "installed": "نصب شدہ",
+ "active": "فعال",
+ "inactive": "غیر فعال",
+ "out-of-date": "پرانا",
+ "none-found": "کوئی پلگ انز نہیں ملے۔",
+ "none-active": "کوئی فعال پلگ انز نہیں۔",
+ "find-plugins": "پلگ انز تلاش کریں",
+
+ "plugin-search": "پلگ ان تلاش",
+ "plugin-search-placeholder": "پلگ ان تلاش کریں…",
+ "submit-anonymous-usage": "پلگ ان کے استعمال کے گمنام ڈیٹا بھیجیں",
+ "reorder-plugins": "پلگ انز کو دوبارہ ترتیب دیں",
+ "order-active": "فعال پلگ انز کو ترتیب دیں",
+ "dev-interested": "کیا آپ نوڈ بی بی کے لیے پلگ انز لکھنے میں دلچسپی رکھتے ہیں؟",
+ "docs-info": "پلگ ان بنانے کے بارے میں مکمل دستاویزات نوڈ بی بی دستاویزات پورٹل پر مل سکتی ہیں۔",
+
+ "order.description": "کچھ پلگ انز بہترین طریقے سے کام کرتے ہیں اگر انہیں دوسرے پلگ انز سے پہلے یا بعد میں نصب کیا جائے۔",
+ "order.explanation": "پلگ انز اس ترتیب سے لوڈ ہوتے ہیں جو یہاں بتائی گئی ہے، اوپر سے نیچے تک۔",
+
+ "plugin-item.themes": "تھیمز",
+ "plugin-item.deactivate": "غیر فعال کریں",
+ "plugin-item.activate": "فعال کریں",
+ "plugin-item.install": "نصب کریں",
+ "plugin-item.uninstall": "ہٹائیں",
+ "plugin-item.settings": "ترتیبات",
+ "plugin-item.installed": "نصب شدہ",
+ "plugin-item.latest": "تازہ ترین",
+ "plugin-item.upgrade": "اپ گریڈ",
+ "plugin-item.more-info": "مزید معلومات کے لیے",
+ "plugin-item.unknown": "نامعلوم",
+ "plugin-item.unknown-explanation": "اس پلگ ان کی حالت کا تعین نہیں کیا جا سکتا، شاید ترتیب میں خرابی کی وجہ سے۔",
+ "plugin-item.compatible": "یہ پلگ ان نوڈ بی بی %1 کے ساتھ کام کرتا ہے",
+ "plugin-item.not-compatible": "اس پلگ ان کے پاس مطابقت کی معلومات نہیں ہیں۔ براہ کرم یقینی بنائیں کہ یہ آپ کے اصلی سرور پر نصب کرنے سے پہلے کام کرتا ہے۔",
+
+ "alert.enabled": "پلگ ان فعال ہو گیا",
+ "alert.disabled": "پلگ ان غیر فعال ہو گیا",
+ "alert.upgraded": "پلگ ان اپ گریڈ ہو گیا",
+ "alert.installed": "پلگ ان نصب ہو گیا",
+ "alert.uninstalled": "پلگ ان ہٹایا گیا",
+ "alert.activate-success": "براہ کرم نوڈ بی بی کو دوبارہ بنائیں اور ری لوڈ کریں تاکہ یہ پلگ ان مکمل طور پر فعال ہو جائے۔",
+ "alert.deactivate-success": "پلگ ان کامیابی سے غیر فعال ہو گیا۔",
+ "alert.upgrade-success": "براہ کرم نوڈ بی بی کو دوبارہ بنائیں اور ری لوڈ کریں تاکہ یہ پلگ ان مکمل طور پر اپ ڈیٹ ہو جائے۔",
+ "alert.install-success": "پلگ ان کامیابی سے نصب ہو گیا، براہ کرم اسے فعال کریں",
+ "alert.uninstall-success": "پلگ ان کامیابی سے غیر فعال اور ہٹایا گیا۔",
+ "alert.suggest-error": "
نوڈ بی بی پیکیج مینیجر سے رابطہ نہیں کر سکا۔ کیا آپ تازہ ترین ورژن کی تنصیب کے ساتھ جاری رکھنا چاہتے ہیں؟
سرور نے واپس کیا (%1): %2
",
+ "alert.package-manager-unreachable": "
نوڈ بی بی پیکیج مینیجر سے رابطہ نہیں کر سکا۔ فی الحال اپ گریڈ کی سفارش نہیں کی جاتی۔
",
+ "alert.incompatible": "
آپ کا نوڈ بی بی ورژن (ورژن %1) اس پلگ ان کا زیادہ سے زیادہ ورژن %2 استعمال کر سکتا ہے۔ براہ کرم نوڈ بی بی کو اپ ڈیٹ کریں اگر آپ اس پلگ ان کا نیا ورژن نصب کرنا چاہتے ہیں۔
",
+ "alert.possibly-incompatible": "
مطابقت کی معلومات نہیں
اس پلگ ان نے آپ کے نوڈ بی بی ورژن کے ساتھ مطابقت کے لیے کوئی مخصوص ورژن نہیں بتایا۔ ہم مکمل مطابقت کی ضمانت نہیں دے سکتے اور ہو سکتا ہے کہ آپ کا نوڈ بی بی صحیح طریقے سے شروع نہ ہو۔
اگر نوڈ بی بی شروع نہیں ہوتا، تو درج ذیل کمانڈ استعمال کریں:
$ ./nodebb reset plugin=\"%1\"
کیا آپ اس پلگ ان کے تازہ ترین ورژن کی تنصیب کے ساتھ جاری رکھنا چاہتے ہیں؟
",
+ "alert.reorder": "پلگ انز کو دوبارہ ترتیب دیا گیا",
+ "alert.reorder-success": "براہ کرم نوڈ بی بی کو دوبارہ بنائیں اور ری اسٹارٹ کریں تاکہ یہ عمل مکمل ہو جائے۔",
+
+ "license.title": "پلگ ان کی лиценس معلومات",
+ "license.intro": "پلگ ان '%1' '%2' лиценس استعمال کرتا ہے۔ براہ کرم лиценس کے شرائط کو پڑھیں اور یقینی بنائیں کہ آپ انہیں سمجھتے ہیں، اس سے پہلے کہ آپ پلگ ان کو فعال کریں۔",
+ "license.cta": "کیا آپ اس پلگ ان کو فعال کرنے کے ساتھ جاری رکھنا چاہتے ہیں؟"
+}
diff --git a/public/language/ur/admin/extend/rewards.json b/public/language/ur/admin/extend/rewards.json
new file mode 100644
index 0000000000..1346827606
--- /dev/null
+++ b/public/language/ur/admin/extend/rewards.json
@@ -0,0 +1,17 @@
+{
+ "rewards": "انعامات",
+ "add-reward": "انعام شامل کریں",
+ "condition-if-users": "اگر صارف کا",
+ "condition-is": "ہے:",
+ "condition-then": "تو:",
+ "max-claims": "انعام کتنی بار حاصل کیا جا سکتا ہے",
+ "zero-infinite": "0 = لامحدود بار",
+ "select-reward": "انعام منتخب کریں",
+ "delete": "حذف",
+ "enable": "فعال کریں",
+ "disable": "غیر فعال کریں",
+
+ "alert.delete-success": "انعام کامیابی سے حذف ہو گیا",
+ "alert.no-inputs-found": "غلط انعام — کچھ بھی درج نہیں کیا گیا!",
+ "alert.save-success": "انعامات کامیابی سے محفوظ ہو گئے"
+}
\ No newline at end of file
diff --git a/public/language/ur/admin/extend/widgets.json b/public/language/ur/admin/extend/widgets.json
new file mode 100644
index 0000000000..9a7e9ff69d
--- /dev/null
+++ b/public/language/ur/admin/extend/widgets.json
@@ -0,0 +1,37 @@
+{
+ "widgets": "ویجٹس",
+ "available": "دستیاب ویجٹس",
+ "explanation": "ڈراپ ڈاؤن مینو سے ایک ویجٹ منتخب کریں، پھر اسے بائیں جانب موجود ٹیمپلیٹس میں سے کسی ویجٹ ایریا میں گھسیٹ کر چھوڑیں۔",
+ "none-installed": "کوئی ویجٹس نہیں ملے! پلگ انز کنٹرول پینل میں بنیادی ویجٹس پلگ ان کو فعال کریں۔",
+ "clone-from": "ویجٹس کو کلون کریں از",
+ "containers.available": "دستیاب کنٹینرز",
+ "containers.explanation": "کسی ویجٹ پر گھسیٹیں اور چھوڑیں",
+ "containers.none": "کوئی نہیں",
+ "container.well": "ویب",
+ "container.jumbotron": "جمبوٹران",
+ "container.card": "کارڈ",
+ "container.card-header": "کارڈ ہیڈر",
+ "container.card-body": "کارڈ باڈی",
+ "container.title": "عنوان",
+ "container.body": "مواد",
+ "container.alert": "انتباہ",
+
+ "alert.confirm-delete": "کیا آپ واقعی اس ویجٹ کو حذف کرنا چاہتے ہیں؟",
+ "alert.updated": "ویجٹس اپ ڈیٹ ہو گئے",
+ "alert.update-success": "ویجٹس کامیابی سے اپ ڈیٹ ہو گئے",
+ "alert.clone-success": "ویجٹس کامیابی سے کلون ہو گئے",
+
+ "error.select-clone": "کلون کرنے کے لیے ایک صفحہ منتخب کریں",
+
+ "title": "عنوان",
+ "title.placeholder": "عنوان (صرف کچھ کنٹینرز میں دکھایا جاتا ہے)",
+ "container": "کنٹینر",
+ "container.placeholder": "کنٹینر گھسیٹیں اور چھوڑیں یا یہاں ایچ ٹی ایم ایل درج کریں۔",
+ "show-to-groups": "گروپس کو دکھائیں",
+ "hide-from-groups": "گروپس سے چھپائیں",
+ "start-date": "شروع کی تاریخ",
+ "end-date": "ختم کی تاریخ",
+ "hide-on-mobile": "موبائل ڈیوائسز پر چھپائیں",
+ "hide-drafts": "ڈرافٹس چھپائیں",
+ "show-drafts": "ڈرافٹس دکھائیں"
+}
\ No newline at end of file
diff --git a/public/language/ur/admin/manage/admins-mods.json b/public/language/ur/admin/manage/admins-mods.json
new file mode 100644
index 0000000000..3e68321b97
--- /dev/null
+++ b/public/language/ur/admin/manage/admins-mods.json
@@ -0,0 +1,13 @@
+{
+ "manage-admins-and-mods": "ایڈمنسٹریٹرز اور ماڈریٹرز کا انتظام",
+ "administrators": "ایڈمنسٹریٹرز",
+ "global-moderators": "عالمی ماڈریٹرز",
+ "moderators": "ماڈریٹرز",
+ "no-global-moderators": "کوئی عالمی ماڈریٹرز نہیں",
+ "no-sub-categories": "کوئی ذیلی زمرہ جات نہیں",
+ "view-children": "ذیلی زمرہ جات دیکھیں (%1)",
+ "no-moderators": "کوئی ماڈریٹرز نہیں",
+ "add-administrator": "ایڈمنسٹریٹر شامل کریں",
+ "add-global-moderator": "عالمی ماڈریٹر شامل کریں",
+ "add-moderator": "ماڈریٹر شامل کریں"
+}
\ No newline at end of file
diff --git a/public/language/ur/admin/manage/categories.json b/public/language/ur/admin/manage/categories.json
new file mode 100644
index 0000000000..006428fca4
--- /dev/null
+++ b/public/language/ur/admin/manage/categories.json
@@ -0,0 +1,131 @@
+{
+ "manage-categories": "زمرہ جات کا انتظام",
+ "add-category": "زمرہ شامل کریں",
+ "add-local-category": "Add Local category",
+ "add-remote-category": "Add Remote category",
+ "remove": "Remove",
+ "rename": "Rename",
+ "jump-to": "پر جائیں…",
+ "settings": "زمرہ کی ترتیبات",
+ "edit-category": "زمرہ ترمیم کریں",
+ "privileges": "اختیارات",
+ "back-to-categories": "زمرہ جات پر واپس",
+ "id": "Category ID",
+ "name": "زمرہ کا نام",
+ "handle": "زمرہ کا شناخت کنندہ",
+ "handle.help": "زمرہ کا شناخت کنندہ اس زمرہ کو دیگر نیٹ ورکس میں پیش کرنے کے لیے استعمال ہوتا ہے، جیسے کہ صارف نام۔ اس شناخت کنندہ کا موجودہ صارف نام یا صارف گروپ سے مماثل نہیں ہونا چاہیے۔",
+ "description": "زمرہ کی تفصیل",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
+ "bg-color": "پس منظر کا رنگ",
+ "text-color": "متن کا رنگ",
+ "bg-image-size": "پس منظر تصویر کا سائز",
+ "custom-class": "مرضی کی کلاس",
+ "num-recent-replies": "حالیہ جوابات کی تعداد",
+ "ext-link": "خارجی لنک",
+ "subcategories-per-page": "فی صفحہ ذیلی زمرہ جات کی تعداد",
+ "is-section": "اس زمرہ کو سیکشن کے طور پر استعمال کریں",
+ "post-queue": "پوسٹ قطار",
+ "tag-whitelist": "اجازت شدہ ٹیگز کی فہرست",
+ "upload-image": "تصویر اپ لوڈ کریں",
+ "upload": "اپ لوڈ",
+ "delete-image": "حذف",
+ "category-image": "زمرہ کی تصویر",
+ "image-and-icon": "تصویر اور آئیکن",
+ "parent-category": "بنیادی زمرہ",
+ "optional-parent-category": "(اختیاری) بنیادی زمرہ",
+ "top-level": "اعلیٰ سطح",
+ "parent-category-none": "(کوئی نہیں)",
+ "copy-parent": "بنیادی سے نقل کریں",
+ "copy-settings": "سے ترتیبات نقل کریں",
+ "optional-clone-settings": "(اختیاری) زمرہ سے ترتیبات نقل کریں",
+ "clone-children": "ذیلی زمرہ جات اور ترتیبات کلون کریں",
+ "purge": "زمرہ حذف کریں",
+
+ "enable": "فعال کریں",
+ "disable": "غیر فعال کریں",
+ "edit": "ترمیم",
+ "analytics": "تجزیات",
+ "federation": "فیڈریشن",
+
+ "view-category": "زمرہ دیکھیں",
+ "set-order": "ترتیب محفوظ کریں",
+ "set-order-help": "زمرہ کے لیے پوزیشن سیٹ کرنے سے وہ مطلوبہ جگہ پر منتقل ہو جائے گا اور اگر ضروری ہو تو دیگر زمرہ جات کی جگہوں کو تبدیل کر دے گا۔ سب سے چھوٹا ممکنہ نمبر 1 ہے، جو زمرہ کو سب سے اوپر رکھے گا۔",
+
+ "select-category": "زمرہ منتخب کریں",
+ "set-parent-category": "بنیادی زمرہ سیٹ کریں",
+
+ "privileges.description": "اس سیکشن میں آپ ویب سائٹ کے مختلف حصوں تک رسائی کے اختیارات ترتیب دے سکتے ہیں۔ اختیارات انفرادی صارفین یا پوری گروہوں کو دیے جا سکتے ہیں۔ نیچے دیے گئے ڈراپ ڈاؤن مینو سے درخواست کا دائرہ کار منتخب کریں۔",
+ "privileges.category-selector": "کے لیے اختیارات ترتیب دیں",
+ "privileges.warning": "نوٹ: اختیارات کی ترتیبات فوری طور پر اثر انداز ہوتی ہیں۔ ان ترتیبات کو تبدیل کرنے کے بعد زمرہ کو محفوظ کرنے کی ضرورت نہیں ہے۔",
+ "privileges.section-viewing": "دیکھنے کے اختیارات",
+ "privileges.section-posting": "پوسٹنگ کے اختیارات",
+ "privileges.section-moderation": "ماڈریشن کے اختیارات",
+ "privileges.section-other": "دیگر",
+ "privileges.section-user": "صارف",
+ "privileges.search-user": "صارف شامل کریں",
+ "privileges.no-users": "اس زمرہ میں انفرادی صارفین کے لیے کوئی اختیارات نہیں ہیں۔",
+ "privileges.section-group": "گروپ",
+ "privileges.group-private": "یہ گروپ نجی ہے",
+ "privileges.inheritance-exception": "یہ گروپ رجسٹرڈ صارفین کے گروپ سے اختیارات وراثت میں نہیں لیتا",
+ "privileges.banned-user-inheritance": "پابندی شدہ صارفین پابندی شدہ صارفین کے گروپ سے اختیارات وراثت میں لیتے ہیں",
+ "privileges.search-group": "گروپ شامل کریں",
+ "privileges.copy-to-children": "ذیلی زمرہ جات میں نقل کریں",
+ "privileges.copy-from-category": "زمرہ سے نقل کریں",
+ "privileges.copy-privileges-to-all-categories": "تمام زمرہ جات میں نقل کریں",
+ "privileges.copy-group-privileges-to-children": "اس گروپ کے اختیارات اس زمرہ کے ذیلی عناصر میں نقل کریں۔",
+ "privileges.copy-group-privileges-to-all-categories": "اس گروپ کے اختیارات تمام زمرہ جات میں نقل کریں۔",
+ "privileges.copy-group-privileges-from": "اس گروپ کے اختیارات دوسرے زمرہ سے نقل کریں۔",
+ "privileges.inherit": "اگر رجسٹرڈ صارفین گروپ کو کوئی اختیار دیا جاتا ہے، تو باقی تمام گروپس اسے طے شدہ اختیار کے طور پر حاصل کرتے ہیں، چاہے وہ انہیں خاص طور پر نہ دیا گیا ہو۔ آپ یہ طے شدہ اختیار دیکھ رہے ہیں کیونکہ تمام صارفین رجسٹرڈ صارفین گروپ کے رکن ہیں، اس لیے ایک ہی اختیارات کو مزید گروہوں کو دینے کی ضرورت نہیں ہے۔",
+ "privileges.copy-success": "اختیارات نقل ہو گئے!",
+
+ "analytics.back": "زمرہ جات کی فہرست پر واپس",
+ "analytics.title": "زمرہ '%1' کے لیے تجزیاتی ڈیٹا",
+ "analytics.pageviews-hourly": "شکل 1 – اس زمرہ کے لیے گھنٹہ وار صفحہ مناظر",
+ "analytics.pageviews-daily": "شکل 2 – اس زمرہ کے لیے روزانہ صفحہ مناظر",
+ "analytics.topics-daily": "شکل 3 – اس زمرہ میں روزانہ موضوعات کی تعداد",
+ "analytics.posts-daily": "شکل 4 – اس زمرہ میں روزانہ پوسٹس کی تعداد",
+
+ "federation.title": "زمرہ '%1' کے لیے فیڈریشن ترتیبات",
+ "federation.disabled": "ویب سائٹ کے لیے فیڈریشن غیر فعال ہے، اس لیے زمرہ کی فیڈریشن ترتیبات ناقابل رسائی ہیں۔",
+ "federation.disabled-cta": "فیڈریشن ترتیبات →",
+ "federation.syncing-header": "ہم آہنگی",
+ "federation.syncing-intro": "ایک زمرہ ایکٹیویٹی پب پروٹوکول کے ذریعے 'ذرائع کے گروپ' کو فالو کر سکتا ہے۔ اگر نیچے دیے گئے کسی بھی ذریعہ سے مواد موصول ہوتا ہے، تو وہ خود بخود اس زمرہ میں شامل ہو جائے گا۔",
+ "federation.syncing-caveat": "نوٹ: یہاں ہم آہنگی کی ترتیبات یک طرفہ ہم آہنگی قائم کرتی ہیں۔ نوڈ بی بی ذریعہ کو سبسکرائب/فالو کرنے کی کوشش کرے گا، لیکن اس کے برعکس کوئی مفروضہ نہیں ہونا چاہیے۔",
+ "federation.syncing-none": "یہ زمرہ فی الحال کسی کو فالو نہیں کر رہا۔",
+ "federation.syncing-add": "کے ساتھ ہم آہنگی کریں…",
+ "federation.syncing-actorUri": "ذریعہ",
+ "federation.syncing-follow": "فالو کریں",
+ "federation.syncing-unfollow": "فالو بند کریں",
+ "federation.followers": "اس زمرہ کو فالو کرنے والے ریموٹ صارفین",
+ "federation.followers-handle": "شناخت کنندہ",
+ "federation.followers-id": "آئی ڈی",
+ "federation.followers-none": "کوئی فالوورز نہیں۔",
+ "federation.followers-autofill": "خودکار بھریں",
+
+ "alert.created": "بنایا گیا",
+ "alert.create-success": "زمرہ کامیابی سے بنایا گیا!",
+ "alert.none-active": "آپ کے کوئی فعال زمرہ جات نہیں ہیں۔",
+ "alert.create": "زمرہ بنائیں",
+ "alert.add": "Add a Category",
+ "alert.add-help": "Remote categories can be added to the categories listing by specifying their handle.
Note — 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": "
کیا آپ واقعی زمرہ '%1' کو حذف کرنا چاہتے ہیں؟
انتباہ! اس زمرہ کے تمام موضوعات اور پوسٹس حذف ہو جائیں گی!
زمرہ حذف کرنے سے تمام موضوعات اور پوسٹس ہٹ جائیں گی، اور زمرہ ڈیٹا بیس سے حذف ہو جائے گا۔ اگر آپ زمرہ کو عارضی طور پر ہٹانا چاہتے ہیں، تو آپ اسے صرف 'غیر فعال' کر سکتے ہیں۔
",
+ "alert.purge-success": "زمرہ حذف ہو گیا!",
+ "alert.copy-success": "ترتیبات نقل ہو گئیں!",
+ "alert.set-parent-category": "بنیادی زمرہ سیٹ کریں",
+ "alert.updated": "زمرہ جات اپ ڈیٹ ہو گئے",
+ "alert.updated-success": "شناخت کنندہ %1 کے ساتھ زمرہ جات کامیابی سے اپ ڈیٹ ہو گئے۔",
+ "alert.upload-image": "زمرہ کے لیے تصویر اپ لوڈ کریں",
+ "alert.find-user": "صارف تلاش کریں",
+ "alert.user-search": "یہاں صارف تلاش کریں…",
+ "alert.find-group": "گروپ تلاش کریں",
+ "alert.group-search": "یہاں گروپ تلاش کریں…",
+ "alert.not-enough-whitelisted-tags": "اجازت شدہ ٹیگز کم ہیں۔ آپ کو مزید اجازت شدہ ٹیگز بنانے کی ضرورت ہے!",
+ "collapse-all": "سب سمیٹیں",
+ "expand-all": "سب پھیلائیں",
+ "disable-on-create": "بنانے پر غیر فعال کریں",
+ "no-matches": "کوئی مماثلت نہیں"
+}
\ No newline at end of file
diff --git a/public/language/ur/admin/manage/digest.json b/public/language/ur/admin/manage/digest.json
new file mode 100644
index 0000000000..9724bf4451
--- /dev/null
+++ b/public/language/ur/admin/manage/digest.json
@@ -0,0 +1,22 @@
+{
+ "lead": "نیچے ڈائجسٹ بھیجنے کے اعدادوشمار اور اوقات دکھائے گئے ہیں۔",
+ "disclaimer": "براہ کرم نوٹ کریں کہ ای میل کی ترسیل کی کوئی ضمانت نہیں ہے، کیونکہ ای میل ٹیکنالوجی کی نوعیت ایسی ہے۔ بہت سی چیزیں اس بات پر اثر انداز ہوتی ہیں کہ آیا بھیجا گیا ای میل واقعی وصول کنندہ تک پہنچتا ہے، جیسے کہ سرور کی ساکھ، بلاک شدہ آئی پی ایڈریسز، یا DKIM/SPF/DMARC کی ترتیب۔",
+ "disclaimer-continued": "کامیاب ترسیل کا مطلب ہے کہ پیغام نوڈ بی بی سے کامیابی سے بھیجا گیا اور وصول کنندہ کے سرور نے اس کی تصدیق کی۔ اس کا مطلب یہ نہیں کہ ای میل وصول کنندہ کے ان باکس میں پہنچ گیا۔ بہتر نتائج کے لیے، میں ایک خصوصی ای میل بھیجنے کی سروس، جیسے کہ SendGrid، استعمال کرنے کی سفارش کرتا ہوں۔",
+
+ "user": "صارف",
+ "subscription": "سبسکرپشن کی قسم",
+ "last-delivery": "آخری کامیاب ترسیل",
+ "default": "سسٹم کے لیے طے شدہ",
+ "default-help": "سسٹم کے لیے طے شدہ کا مطلب ہے کہ صارف نے ڈائجسٹ کے لیے عالمی فورم کی ترتیب کے طور پر کوئی دوسری ترتیبات دستی طور پر منتخب نہیں کی، جو فی الحال '%1' ہے۔",
+ "resend": "ڈائجسٹ دوبارہ بھیجیں",
+ "resend-all-confirm": "کیا آپ واقعی ڈائجسٹ کو دستی طور پر بھیجنے کا عمل شروع کرنا چاہتے ہیں؟",
+ "resent-single": "ڈائجسٹ کا دستی طور پر دوبارہ بھیجنا مکمل ہو گیا",
+ "resent-day": "روزانہ ڈائجسٹ دوبارہ بھیجا گیا",
+ "resent-week": "ہفتہ وار ڈائجسٹ دوبارہ بھیجا گیا",
+ "resent-biweek": "دو ہفتہ وار ڈائجسٹ دوبارہ بھیجا گیا",
+ "resent-month": "ماہانہ ڈائجسٹ دوبارہ بھیجا گیا",
+ "null": "کبھی نہیں",
+ "manual-run": "ڈائجسٹ کا دستی طور پر بھیجنا:",
+
+ "no-delivery-data": "ترسیل کے کوئی ڈیٹا نہیں"
+}
diff --git a/public/language/ur/admin/manage/groups.json b/public/language/ur/admin/manage/groups.json
new file mode 100644
index 0000000000..d74d14de3a
--- /dev/null
+++ b/public/language/ur/admin/manage/groups.json
@@ -0,0 +1,49 @@
+{
+ "manage-groups": "گروپس کا انتظام",
+ "add-group": "گروپ شامل کریں",
+ "edit-group": "گروپ ترمیم کریں",
+ "back-to-groups": "گروپس پر واپس",
+ "view-group": "گروپ دیکھیں",
+ "icon-and-title": "آئیکن اور عنوان",
+ "name": "گروپ کا نام",
+ "badge": "بیج",
+ "properties": "خصوصیات",
+ "description": "گروپ کی تفصیل",
+ "member-count": "اراکین کی تعداد",
+ "system": "سسٹم",
+ "hidden": "چھپا ہوا",
+ "private": "نجی",
+ "edit": "ترمیم",
+ "delete": "حذف",
+ "privileges": "اختیارات",
+ "members-csv": "اراکین (سی ایس وی)",
+ "search-placeholder": "تلاش",
+ "create": "گروپ بنائیں",
+ "description-placeholder": "گروپ کی مختصر تفصیل",
+ "create-button": "بنائیں",
+
+ "alerts.create-failure": "اوہ!
گروپ بنانے میں ایک مسئلہ پیش آیا۔ براہ کرم بعد میں دوبارہ کوشش کریں!
",
+ "alerts.confirm-delete": "کیا آپ واقعی اس گروپ کو حذف کرنا چاہتے ہیں؟",
+
+ "edit.name": "نام",
+ "edit.description": "تفصیل",
+ "edit.user-title": "اراکین کا عہدہ",
+ "edit.icon": "گروپ کا آئیکن",
+ "edit.label-color": "گروپ لیبل کا رنگ",
+ "edit.text-color": "گروپ ٹیکسٹ کا رنگ",
+ "edit.show-badge": "بیج دکھائیں",
+ "edit.private-details": "اگر فعال ہو، تو گروپ میں شامل ہونے کے لیے گروپ کے مالک کی منظوری درکار ہوگی۔",
+ "edit.private-override": "انتباہ: نجی گروپس سسٹم لیول پر غیر فعال ہیں، یہ ترتیب اسے نظر انداز کرتی ہے۔",
+ "edit.disable-join": "شامل ہونے کی درخواستوں کو غیر فعال کریں",
+ "edit.disable-leave": "صارفین کو گروپ چھوڑنے سے روکیں",
+ "edit.hidden": "چھپا ہوا",
+ "edit.hidden-details": "اگر فعال ہو، تو گروپ گروپس کی فہرست میں نظر نہیں آئے گا اور صارفین کو خصوصی طور پر مدعو کرنا ہوگا۔",
+ "edit.add-user": "گروپ میں صارف شامل کریں",
+ "edit.add-user-search": "صارفین تلاش کریں",
+ "edit.members": "اراکین کی فہرست",
+ "control-panel": "گروپس کا کنٹرول پینل",
+ "revert": "واپس کریں",
+
+ "edit.no-users-found": "کوئی صارفین نہیں ملے",
+ "edit.confirm-remove-user": "کیا آپ واقعی اس صارف کو ہٹانا چاہتے ہیں؟"
+}
\ No newline at end of file
diff --git a/public/language/ur/admin/manage/privileges.json b/public/language/ur/admin/manage/privileges.json
new file mode 100644
index 0000000000..cfd5d95854
--- /dev/null
+++ b/public/language/ur/admin/manage/privileges.json
@@ -0,0 +1,66 @@
+{
+ "manage-privileges": "اختیارات کا انتظام",
+ "discard-changes": "تبدیلیاں مسترد کریں",
+ "global": "عالمی",
+ "admin": "ایڈمن",
+ "group-privileges": "گروپس کے لیے اختیارات",
+ "user-privileges": "صارفین کے لیے اختیارات",
+ "edit-privileges": "اختیارات ترمیم کریں",
+ "select-clear-all": "سب منتخب کریں/سب صاف کریں",
+ "chat": "گفتگو",
+ "chat-with-privileged": "اعلیٰ اختیارات والے سے گفتگو",
+ "upload-images": "تصاویر اپ لوڈ کریں",
+ "upload-files": "فائلیں اپ لوڈ کریں",
+ "signature": "دستخط",
+ "ban": "پابندی",
+ "mute": "خاموش",
+ "invite": "دعوت بھیجیں",
+ "search-content": "مواد تلاش کریں",
+ "search-users": "صارفین تلاش کریں",
+ "search-tags": "ٹیگز تلاش کریں",
+ "view-users": "صارفین دیکھیں",
+ "view-tags": "ٹیگز دیکھیں",
+ "view-groups": "گروپس دیکھیں",
+ "allow-local-login": "مقامی لاگ ان کی اجازت",
+ "allow-group-creation": "گروپ بنانے کی اجازت",
+ "view-users-info": "صارفین کی معلومات دیکھیں",
+ "find-category": "زمرہ تلاش کریں",
+ "access-category": "زمرہ تک رسائی",
+ "access-topics": "موضوعات تک رسائی",
+ "create-topics": "موضوعات بنائیں",
+ "reply-to-topics": "موضوعات میں جواب دیں",
+ "schedule-topics": "موضوعات شیڈول کریں",
+ "tag-topics": "موضوعات پر ٹیگز لگائیں",
+ "edit-posts": "پوسٹس ترمیم کریں",
+ "view-edit-history": "ترمیمی تاریخ دیکھیں",
+ "delete-posts": "پوسٹس حذف کریں",
+ "view-deleted": "حذف شدہ پوسٹس دیکھیں",
+ "upvote-posts": "پوسٹس کے لیے مثبت ووٹ",
+ "downvote-posts": "پوسٹس کے لیے منفی ووٹ",
+ "delete-topics": "موضوعات حذف کریں",
+ "purge": "صاف کریں",
+ "moderate": "ماڈریٹ",
+ "admin-dashboard": "ڈیش بورڈ",
+ "admin-categories": "زمرہ جات",
+ "admin-privileges": "اختیارات",
+ "admin-users": "صارفین",
+ "admin-admins-mods": "ایڈمنسٹریٹرز اور ماڈریٹرز",
+ "admin-groups": "گروپس",
+ "admin-tags": "ٹیگز",
+ "admin-settings": "ترتیبات",
+
+ "alert.confirm-moderate": "کیا آپ واقعی اس صارف گروپ کو ماڈریشن کا اختیار دینا چاہتے ہیں؟ یہ گروپ عوامی ہے اور کوئی بھی اس میں آزادانہ طور پر شامل ہو سکتا ہے۔",
+ "alert.confirm-admins-mods": "کیا آپ واقعی اس صارف/گروپ کو 'ایڈمنسٹریٹرز اور ماڈریٹرز' کا اختیار دینا چاہتے ہیں؟ اس اختیار کے حامل صارفین دوسرے گروپس کے اختیارات تبدیل کر سکتے ہیں، بشمول سپر ایڈمنسٹریٹر کا اختیار دینا۔",
+ "alert.confirm-save": "براہ کرم ان اختیارات کو محفوظ کرنے کی اپنی خواہش کی تصدیق کریں",
+ "alert.confirm-discard": "کیا آپ واقعی اختیارات کی تبدیلیوں کو مسترد کرنا چاہتے ہیں؟",
+ "alert.discarded": "اختیارات کی تبدیلیاں مسترد کر دی گئیں",
+ "alert.confirm-copyToAll": "کیا آپ واقعی اس %1 سیٹ کو تمام زمرہ جات پر لگانا چاہتے ہیں؟",
+ "alert.confirm-copyToAllGroup": "کیا آپ واقعی اس گروپ کے %1 سیٹ کو تمام زمرہ جات پر لگانا چاہتے ہیں؟",
+ "alert.confirm-copyToChildren": "کیا آپ واقعی اس %1 سیٹ کو تمام ذیلی زمرہ جات پر لگانا چاہتے ہیں؟",
+ "alert.confirm-copyToChildrenGroup": "کیا آپ واقعی اس گروپ کے %1 سیٹ کو تمام ذیلی زمرہ جات پر لگانا چاہتے ہیں؟",
+ "alert.no-undo": "یہ عمل ناقابل واپسی ہے۔",
+ "alert.admin-warning": "ایڈمنسٹریٹرز کے پاس طے شدہ طور پر تمام اختیارات ہوتے ہیں",
+ "alert.copyPrivilegesFrom-title": "نقل کرنے کے لیے زمرہ منتخب کریں",
+ "alert.copyPrivilegesFrom-warning": "یہ منتخب کردہ زمرہ سے %1 نقل کرے گا۔",
+ "alert.copyPrivilegesFromGroup-warning": "یہ منتخب کردہ زمرہ سے اس گروپ کے %1 سیٹ کو نقل کرے گا۔"
+}
\ No newline at end of file
diff --git a/public/language/ur/admin/manage/registration.json b/public/language/ur/admin/manage/registration.json
new file mode 100644
index 0000000000..0f98371113
--- /dev/null
+++ b/public/language/ur/admin/manage/registration.json
@@ -0,0 +1,20 @@
+{
+ "queue": "قطار",
+ "description": "رجسٹریشن کی قطار میں کوئی صارفین نہیں ہیں۔ اس فعالیت کو فعال کرنے کے لیے، ترتیبات → صارف → صارفین کی رجسٹریشن پر جائیں اور رجسٹریشن کی قسم کو 'ایڈمنسٹریٹر کی منظوری' پر سیٹ کریں۔",
+
+ "list.name": "نام",
+ "list.email": "ای میل",
+ "list.ip": "آئی پی ایڈریس",
+ "list.time": "وقت",
+ "list.username-spam": "تکرار: %1 ظاہر ہونا: %2 اعتماد: %3",
+ "list.email-spam": "تکرار: %1 ظاہر ہونا: %2",
+ "list.ip-spam": "تکرار: %1 ظاہر ہونا: %2",
+
+ "invitations": "دعوتیں",
+ "invitations.description": "نیچے بھیجی گئی دعوتوں کی مکمل فہرست ملے گی۔ فہرست میں ای میل یا صارف نام تلاش کرنے کے لیے 'Ctrl-F' استعمال کریں۔
صارف نام اس صارف کے ای میل کے دائیں جانب دکھایا جائے گا جنہوں نے اپنی دعوت قبول کی ہو۔",
+ "invitations.inviter-username": "دعوت دینے والے کا صارف نام",
+ "invitations.invitee-email": "مدعو کیے گئے کا ای میل",
+ "invitations.invitee-username": "مدعو کیے گئے کا صارف نام (اگر رجسٹرڈ ہو)",
+
+ "invitations.confirm-delete": "کیا آپ واقعی اس دعوت کو حذف کرنا چاہتے ہیں؟"
+}
\ No newline at end of file
diff --git a/public/language/ur/admin/manage/tags.json b/public/language/ur/admin/manage/tags.json
new file mode 100644
index 0000000000..e3a104f17b
--- /dev/null
+++ b/public/language/ur/admin/manage/tags.json
@@ -0,0 +1,20 @@
+{
+ "manage-tags": "ٹیگز کا انتظام",
+ "none": "فورم میں ابھی تک ٹیگ شدہ موضوعات نہیں ہیں۔",
+ "bg-color": "پس منظر کا رنگ",
+ "text-color": "متن کا رنگ",
+ "description": "کلک یا گھسیٹ کر ٹیگز منتخب کریں۔ ایک سے زیادہ ٹیگز منتخب کرنے کے لیے CTRL استعمال کریں۔",
+ "create": "ٹیگ بنائیں",
+ "add-tag": "ٹیگ شامل کریں",
+ "modify": "ٹیگز ترمیم کریں",
+ "rename": "ٹیگز کا نام تبدیل کریں",
+ "delete": "منتخب ٹیگز حذف کریں",
+ "search": "ٹیگز تلاش کریں…",
+ "settings": "ٹیگز کی ترتیبات",
+ "name": "ٹیگ کا نام",
+
+ "alerts.editing": "ٹیگ(s) ترمیم ہو رہا ہے",
+ "alerts.confirm-delete": "کیا آپ واقعی منتخب ٹیگز کو حذف کرنا چاہتے ہیں؟",
+ "alerts.update-success": "ٹیگ تبدیل ہو گیا!",
+ "reset-colors": "طے شدہ رنگ بحال کریں"
+}
\ No newline at end of file
diff --git a/public/language/ur/admin/manage/uploads.json b/public/language/ur/admin/manage/uploads.json
new file mode 100644
index 0000000000..2e93264f61
--- /dev/null
+++ b/public/language/ur/admin/manage/uploads.json
@@ -0,0 +1,12 @@
+{
+ "manage-uploads": "اپ لوڈز کا انتظام",
+ "upload-file": "فائل اپ لوڈ کریں",
+ "filename": "فائل کا نام",
+ "usage": "پوسٹس میں استعمال",
+ "orphaned": "غیر استعمال شدہ",
+ "size/filecount": "سائز / فائلوں کی تعداد",
+ "confirm-delete": "کیا آپ واقعی اس فائل کو حذف کرنا چاہتے ہیں؟",
+ "filecount": "%1 فائلیں",
+ "new-folder": "نیا فولڈر",
+ "name-new-folder": "نئے فولڈر کا نام درج کریں"
+}
\ No newline at end of file
diff --git a/public/language/ur/admin/manage/user-custom-fields.json b/public/language/ur/admin/manage/user-custom-fields.json
new file mode 100644
index 0000000000..852009baaa
--- /dev/null
+++ b/public/language/ur/admin/manage/user-custom-fields.json
@@ -0,0 +1,28 @@
+{
+ "title": "صارف کے حسب ضرورت فیلڈز کا انتظام",
+ "create-field": "فیلڈ بنائیں",
+ "edit-field": "فیلڈ میں ترمیم کریں",
+ "manage-custom-fields": "حسب ضرورت فیلڈز کا انتظام",
+ "type-of-input": "ان پٹ کی قسم",
+ "key": "کلید",
+ "name": "نام",
+ "icon": "آئیکن",
+ "type": "قسم",
+ "min-rep": "کم از کم ساکھ",
+ "input-type-text": "ان پٹ (متن)",
+ "input-type-link": "ان پٹ (لنک)",
+ "input-type-number": "ان پٹ (نمبر)",
+ "input-type-date": "ان پٹ (تاریخ)",
+ "input-type-select": "انتخاب",
+ "input-type-select-multi": "متعدد انتخاب",
+ "select-options": "اختیارات",
+ "select-options-help": "منتخب عنصر کے لیے ہر سطر پر ایک آپشن شامل کریں",
+ "minimum-reputation": "کم از کم ساکھ",
+ "minimum-reputation-help": "اگر صارف کی ساکھ مقررہ مقدار سے کم ہو تو وہ اس فیلڈ کو استعمال نہیں کر سکے گا",
+ "delete-field-confirm-x": "کیا آپ واقعی حسب ضرورت فیلڈ '%1' کو حذف کرنا چاہتے ہیں؟",
+ "custom-fields-saved": "حسب ضرورت فیلڈز محفوظ کر دیے گئے ہیں",
+ "visibility": "مرئیت",
+ "visibility-all": "ہر کوئی فیلڈ دیکھ سکتا ہے",
+ "visibility-loggedin": "صرف لاگ ان صارفین فیلڈ دیکھ سکتے ہیں",
+ "visibility-privileged": "صرف اعلیٰ اختیارات والے صارفین (جیسے ایڈمنسٹریٹرز اور ماڈریٹرز) فیلڈ دیکھ سکتے ہیں"
+}
\ No newline at end of file
diff --git a/public/language/ur/admin/manage/users.json b/public/language/ur/admin/manage/users.json
new file mode 100644
index 0000000000..ff733a3fc7
--- /dev/null
+++ b/public/language/ur/admin/manage/users.json
@@ -0,0 +1,152 @@
+{
+ "manage-users": "صارفین کا انتظام",
+ "users": "صارفین",
+ "edit": "عمل",
+ "make-admin": "ایڈمنسٹریٹر کے حقوق دینا",
+ "remove-admin": "ایڈمنسٹریٹر کے حقوق ہٹانا",
+ "change-email": "ای میل تبدیل کریں",
+ "new-email": "نیا ای میل",
+ "validate-email": "ای میل کی تصدیق",
+ "send-validation-email": "تصدیقی ای میل بھیجیں",
+ "change-password": "پاس ورڈ تبدیل کریں",
+ "password-reset-email": "پاس ورڈ بحالی کا ای میل بھیجیں",
+ "force-password-reset": "پاس ورڈ کو زبردستی بحال کریں اور صارف کو سائن آؤٹ کریں",
+ "ban": "پابندی",
+ "ban-users": "صارف/صارفین پر پابندی لگائیں",
+ "temp-ban": "صارف/صارفین پر عارضی پابندی لگائیں",
+ "unban": "صارف/صارفین کی پابندی ہٹائیں",
+ "reset-lockout": "لاک آؤٹ ری سیٹ کریں",
+ "reset-flags": "رپورٹس منسوخ کریں",
+ "delete": "حذف",
+ "delete-users": "صارف/صارفین کو حذف کریں",
+ "delete-content": "صارف/صارفین کے مواد کو حذف کریں",
+ "purge": "صارف/صارفین اور مواد کو حذف کریں",
+ "download-csv": "CSV فارمیٹ میں ڈاؤن لوڈ کریں",
+ "custom-user-fields": "مرضی کے صارف فیلڈز",
+ "manage-groups": "گروپس کا انتظام",
+ "set-reputation": "ساکھ سیٹ کریں",
+ "add-group": "گروپ شامل کریں",
+ "create": "صارف بنائیں",
+ "invite": "ای میل کے ذریعے دعوت دیں",
+ "new": "نیا صارف",
+ "filter-by": "فلٹر بمطابق",
+ "pills.unvalidated": "ای میل تصدیق شدہ نہیں",
+ "pills.validated": "تصدیق شدہ",
+ "pills.banned": "پابندی شدہ",
+
+ "50-per-page": "50 فی صفحہ",
+ "100-per-page": "100 فی صفحہ",
+ "250-per-page": "250 فی صفحہ",
+ "500-per-page": "500 فی صفحہ",
+
+ "search.uid": "صارف شناخت کنندہ کے ذریعے",
+ "search.uid-placeholder": "تلاش کرنے کے لیے صارف شناخت کنندہ درج کریں",
+ "search.username": "صارف نام کے ذریعے",
+ "search.username-placeholder": "تلاش کرنے کے لیے صارف نام درج کریں",
+ "search.email": "ای میل کے ذریعے",
+ "search.email-placeholder": "تلاش کرنے کے لیے ای میل درج کریں",
+ "search.ip": "آئی پی ایڈریس کے ذریعے",
+ "search.ip-placeholder": "تلاش کرنے کے لیے آئی پی ایڈریس درج کریں",
+ "search.not-found": "صارف نہیں ملا!",
+
+ "inactive.3-months": "3 ماہ",
+ "inactive.6-months": "6 ماہ",
+ "inactive.12-months": "12 ماہ",
+
+ "users.uid": "صارف آئی ڈی",
+ "users.username": "صارف نام",
+ "users.email": "ای میل",
+ "users.no-email": "(کوئی ای میل نہیں)",
+ "users.validated": "تصدیق شدہ",
+ "users.not-validated": "غیر تصدیق شدہ",
+ "users.validation-pending": "تصدیق زیر التوا",
+ "users.validation-expired": "تصدیق کی میعاد ختم",
+ "users.ip": "آئی پی ایڈریس",
+ "users.postcount": "پوسٹس کی تعداد",
+ "users.reputation": "ساکھ",
+ "users.flags": "رپورٹس",
+ "users.joined": "شامل ہوا",
+ "users.last-online": "آخری بار آن لائن",
+ "users.banned": "پابندی شدہ",
+
+ "create.username": "صارف نام",
+ "create.email": "ای میل",
+ "create.email-placeholder": "اس صارف کا ای میل",
+ "create.password": "پاس ورڈ",
+ "create.password-confirm": "پاس ورڈ کی تصدیق کریں",
+
+ "temp-ban.length": "دورانیہ",
+ "temp-ban.reason": "وجہ (اختیاری)",
+ "temp-ban.hours": "گھنٹے",
+ "temp-ban.days": "دن",
+ "temp-ban.explanation": "پابندی کا دورانیہ درج کریں۔ 0 کی قیمت پابندی کو مستقل بنائے گی۔",
+
+ "alerts.confirm-ban": "کیا آپ واقعی اس صارف پر مستقل پابندی لگانا چاہتے ہیں؟",
+ "alerts.confirm-ban-multi": "کیا آپ واقعی ان صارفین پر مستقل پابندی لگانا چاہتے ہیں؟",
+ "alerts.ban-success": "صارف/صارفین پر پابندی لگائی گئی!",
+ "alerts.button-ban-x": "%1 صارف/صارفین پر پابندی لگائیں",
+ "alerts.unban-success": "صارف/صارفین کی پابندی ہٹائی گئی!",
+ "alerts.lockout-reset-success": "لاک آؤٹ/لاک آؤٹس ری سیٹ ہو گئے!",
+ "alerts.password-change-success": "پاس ورڈ/پاس ورڈز تبدیل ہو گئے!",
+ "alerts.flag-reset-success": "رپورٹ/رپورٹس منسوخ ہو گئیں!",
+ "alerts.no-remove-yourself-admin": "آپ اپنے ایڈمنسٹریٹر کے حقوق نہیں ہٹا سکتے!",
+ "alerts.make-admin-success": "صارف اب ایڈمنسٹریٹر ہوگا۔",
+ "alerts.confirm-remove-admin": "کیا آپ واقعی اس ایڈمنسٹریٹر کو ہٹانا چاہتے ہیں؟",
+ "alerts.remove-admin-success": "صارف اب ایڈمنسٹریٹر نہیں رہے گا۔",
+ "alerts.make-global-mod-success": "صارف اب عالمی ماڈریٹر ہوگا۔",
+ "alerts.confirm-remove-global-mod": "کیا آپ واقعی اس عالمی ماڈریٹر کو ہٹانا چاہتے ہیں؟",
+ "alerts.remove-global-mod-success": "صارف اب عالمی ماڈریٹر نہیں رہے گا۔",
+ "alerts.make-moderator-success": "صارف اب ماڈریٹر ہوگا۔",
+ "alerts.confirm-remove-moderator": "کیا آپ واقعی اس ماڈریٹر کو ہٹانا چاہتے ہیں؟",
+ "alerts.remove-moderator-success": "صارف اب ماڈریٹر نہیں رہے گا۔",
+ "alerts.confirm-validate-email": "کیا آپ اس صارف/صارفین کے ای میل کی تصدیق کرنا چاہتے ہیں؟",
+ "alerts.confirm-force-password-reset": "کیا آپ واقعی صارف یا صارفین کے پاس ورڈ کو زبردستی بحال کرنا اور انہیں سائن آؤٹ کرنا چاہتے ہیں؟",
+ "alerts.validate-email-success": "ای میلز کی تصدیق ہو گئی",
+ "alerts.validate-force-password-reset-success": "صارف (یا صارفین) کا پاس ورڈ بحال ہو گیا اور ان کی سیشن ختم کر دی گئی۔",
+ "alerts.password-reset-confirm": "کیا آپ اس صارف/صارفین کو پاس ورڈ بحالی کا ای میل بھیجنا چاہتے ہیں؟",
+ "alerts.password-reset-email-sent": "پاس ورڈ بحالی کا ای میل بھیج دیا گیا۔",
+ "alerts.confirm-delete": "انتباہ!
کیا آپ واقعی صارف/صارفین کو حذف کرنا چاہتے ہیں؟
یہ عمل ناقابل واپسی ہے! صرف صارف/صارفین کا پروفائل حذف ہوگا، ان کی پوسٹس اور موضوعات باقی رہیں گے۔
",
+ "alerts.delete-success": "صارف/صارفین حذف ہو گئے!",
+ "alerts.confirm-delete-content": "انتباہ!
کیا آپ واقعی اس صارف یا ان صارفین کے مواد کو حذف کرنا چاہتے ہیں؟
یہ عمل ناقابل واپسی ہے! صارفین کے پروفائلز باقی رہیں گے، لیکن ان کی تمام پوسٹس اور موضوعات حذف ہو جائیں گے۔
",
+ "alerts.delete-content-success": "صارف/صارفین کا مواد حذف ہو گیا!",
+ "alerts.confirm-purge": "انتباہ!
کیا آپ واقعی صارف/صارفین اور ان کے مواد کو حذف کرنا چاہتے ہیں؟
یہ عمل ناقابل واپسی ہے! تمام صارفی ڈیٹا اور مواد ختم ہو جائے گا!
",
+ "alerts.create-success": "صارف بنایا گیا!",
+
+ "alerts.prompt-email": "ای میلز: ",
+ "alerts.email-sent-to": "%1 کو تصدیقی ای میل بھیجا گیا",
+ "alerts.x-users-found": "صارفین ملے: %1 (%2 سیکنڈ)",
+ "alerts.select-a-single-user-to-change-email": "ای میل تبدیل کرنے کے لیے ایک صارف منتخب کریں",
+ "export": "برآمد",
+ "export-users-fields-title": "CSV کے لیے فیلڈز منتخب کریں",
+ "export-field-email": "ای میل",
+ "export-field-username": "صارف نام",
+ "export-field-uid": "صارف شناخت کنندہ",
+ "export-field-ip": "آئی پی ایڈریس",
+ "export-field-joindate": "شامل ہونے کی تاریخ",
+ "export-field-lastonline": "آخری بار آن لائن",
+ "export-field-lastposttime": "آخری جواب کا وقت",
+ "export-field-reputation": "ساکھ",
+ "export-field-postcount": "پوسٹس کی تعداد",
+ "export-field-topiccount": "موضوعات کی تعداد",
+ "export-field-profileviews": "پروفائل مناظر",
+ "export-field-followercount": "فالوورز کی تعداد",
+ "export-field-followingcount": "فالو کیے جانے والوں کی تعداد",
+ "export-field-fullname": "مکمل نام",
+ "export-field-website": "ویب سائٹ",
+ "export-field-location": "مقام",
+ "export-field-birthday": "سالگرہ",
+ "export-field-signature": "دستخط",
+ "export-field-aboutme": "صارف کے بارے میں",
+
+ "export-users-started": "صارفین کو CSV فارمیٹ میں برآمد کیا جا رہا ہے… اس میں کچھ وقت لگ سکتا ہے۔ جب یہ مکمل ہو جائے گا تو آپ کو اطلاع دی جائے گی۔",
+ "export-users-completed": "صارفین CSV فارمیٹ میں برآمد ہو گئے، ڈاؤن لوڈ کے لیے کلک کریں۔",
+ "email": "ای میل",
+ "password": "پاس ورڈ",
+ "manage": "انتظام"
+}
\ No newline at end of file
diff --git a/public/language/ur/admin/menu.json b/public/language/ur/admin/menu.json
new file mode 100644
index 0000000000..cd15806540
--- /dev/null
+++ b/public/language/ur/admin/menu.json
@@ -0,0 +1,93 @@
+{
+ "section-dashboard": "ڈیش بورڈ",
+ "dashboard/overview": "جائزہ",
+ "dashboard/logins": "لاگ انز",
+ "dashboard/users": "صارفین",
+ "dashboard/topics": "موضوعات",
+ "dashboard/searches": "تلاشیں",
+ "section-general": "عمومی",
+
+ "section-manage": "انتظام",
+ "manage/categories": "زمرہ جات",
+ "manage/privileges": "اختیارات",
+ "manage/tags": "ٹیگز",
+ "manage/users": "صارفین",
+ "manage/admins-mods": "ایڈمنسٹریٹرز اور ماڈریٹرز",
+ "manage/registration": "رجسٹریشن کی قطار",
+ "manage/flagged-content": "رپورٹ کیا گیا مواد",
+ "manage/post-queue": "پوسٹس کی قطار",
+ "manage/groups": "گروپس",
+ "manage/ip-blacklist": "IP ایڈریسز کا بلیک لسٹ",
+ "manage/uploads": "اپ لوڈز",
+ "manage/digest": "خلاصے",
+
+ "section-settings": "ترتیبات",
+ "settings/general": "عمومی",
+ "settings/homepage": "ہوم پیج",
+ "settings/navigation": "نیویگیشن",
+ "settings/reputation": "ساکھ اور رپورٹس",
+ "settings/email": "ای میل",
+ "settings/user": "صارفین",
+ "settings/group": "گروپس",
+ "settings/guest": "مہمان",
+ "settings/uploads": "اپ لوڈز",
+ "settings/languages": "زبانیں",
+ "settings/post": "پوسٹس",
+ "settings/chat": "چیتس",
+ "settings/pagination": "صفحہ بندی",
+ "settings/tags": "ٹیگز",
+ "settings/notifications": "نوٹیفکیشنز",
+ "settings/api": "API کے ذریعے رسائی",
+ "settings/activitypub": "فیڈریشن (ActivityPub)",
+ "settings/sounds": "آوازیں",
+ "settings/social": "سوشل",
+ "settings/cookies": "کوکیز",
+ "settings/web-crawler": "ویب کرالر",
+ "settings/sockets": "ساکٹس",
+ "settings/advanced": "اعلیٰ",
+
+ "settings.page-title": "%1 کی ترتیبات",
+
+ "section-appearance": "ظاہری شکل",
+ "appearance/themes": "تھیمز",
+ "appearance/skins": "جلدیں",
+ "appearance/customise": "اپنی مرضی کا مواد (HTML/JS/CSS)",
+
+ "section-extend": "توسیع",
+ "extend/plugins": "پلگ انز",
+ "extend/widgets": "ویجٹس",
+ "extend/rewards": "انعامات",
+
+ "section-social-auth": "سوشل تصدیق",
+
+ "section-plugins": "پلگ انز",
+ "extend/plugins.install": "پلگ انز انسٹال کریں",
+
+ "section-advanced": "اعلیٰ",
+ "advanced/database": "ڈیٹا بیس",
+ "advanced/events": "ایونٹس",
+ "advanced/hooks": "ہکس",
+ "advanced/logs": "لاگس",
+ "advanced/errors": "غلطیاں",
+ "advanced/cache": "کیش",
+ "development/logger": "لاگ",
+ "development/info": "معلومات",
+
+ "rebuild-and-restart-forum": "فورم کو دوبارہ بنائیں اور دوبارہ شروع کریں",
+ "rebuild-and-restart": "دوبارہ بنائیں اور دوبارہ شروع کریں",
+ "restart-forum": "فورم دوبارہ شروع کریں",
+ "restart": "دوبارہ شروع کریں",
+ "logout": "لاگ آؤٹ",
+ "view-forum": "فورم دیکھیں",
+
+ "search.placeholder": "ترتیبات تلاش کریں",
+ "search.no-results": "کوئی نتائج نہیں…",
+ "search.search-forum": "فورم میں تلاش کریں ",
+ "search.keep-typing": "مزید نتائج دیکھنے کے لیے لکھتے رہیں…",
+ "search.start-typing": "نتائج حاصل کرنے کے لیے لکھنا شروع کریں…",
+
+ "connection-lost": "%1 سے رابطہ منقطع ہو گیا۔ ہم آپ کو دوبارہ جوڑنے کی کوشش کر رہے ہیں…",
+
+ "alerts.version": "NodeBB ورژن %1 استعمال ہو رہا ہے",
+ "alerts.upgrade": "v%1 پر اپ گریڈ کریں"
+}
\ No newline at end of file
diff --git a/public/language/ur/admin/settings/activitypub.json b/public/language/ur/admin/settings/activitypub.json
new file mode 100644
index 0000000000..9f2b98f72a
--- /dev/null
+++ b/public/language/ur/admin/settings/activitypub.json
@@ -0,0 +1,48 @@
+{
+ "intro-lead": "فیڈریشن کیا ہے؟",
+ "intro-body": "نوڈ بی بی دیگر نوڈ بی بی تنصیبات کے ساتھ رابطہ قائم کر سکتا ہے جو اس کی حمایت کرتی ہیں۔ یہ ایک پروٹوکول کے ذریعے حاصل کیا جاتا ہے جسے ایکٹیویٹی پب کہا جاتا ہے۔ اگر فعال ہو، تو نوڈ بی بی دیگر ایپلی کیشنز اور ویب سائٹس کے ساتھ بھی رابطہ قائم کر سکے گا جو ایکٹیویٹی پب استعمال کرتی ہیں (جیسے کہ ماسٹوڈن، پیئر ٹیوب وغیرہ)۔",
+ "general": "عام",
+ "pruning": "مواد ہٹانا",
+ "content-pruning": "ریموٹ مواد کو محفوظ رکھنے کے دنوں کی تعداد",
+ "content-pruning-help": "نوٹ کریں کہ ریموٹ مواد جو کسی سرگرمی (جوابات یا مثبت/منفی ووٹ) کا حصہ رہا ہو، محفوظ رہے گا۔ (0 = غیر فعال)",
+ "user-pruning": "ریموٹ صارف اکاؤنٹس کو کیش کرنے کے دنوں کی تعداد",
+ "user-pruning-help": "ریموٹ صارف اکاؤنٹس صرف اس صورت میں ہٹائے جائیں گے اگر انہوں نے کچھ پوسٹ نہ کیا ہو۔ بصورت دیگر، وہ دوبارہ حاصل کیے جائیں گے۔ (0 = غیر فعال)",
+ "enabled": "فیڈریشن فعال کریں",
+ "enabled-help": "اگر فعال ہو، تو یہ نوڈ بی بی پوری فیڈیورس میں ایکٹیویٹی پب استعمال کرنے والے تمام کلائنٹس کے ساتھ رابطہ قائم کر سکے گا۔",
+ "allowLoopback": "لوکل لوپ بیک پروسیسنگ کی اجازت دیں",
+ "allowLoopback-help": "صرف ڈیبگنگ کے لیے مفید۔ اسے غیر فعال رکھنا بہتر ہے۔",
+
+ "probe": "ایپلی کیشن میں کھولیں",
+ "probe-enabled": "کیا ایکٹیویٹی پب کی حمایت کرنے والی چیزوں کو نوڈ بی بی میں کھولنے کی کوشش کی جائے",
+ "probe-enabled-help": "اگر فعال ہو، تو نوڈ بی بی ہر خارجی لنک کو چیک کرے گا کہ آیا وہ ایکٹیویٹی پب کی حمایت کرتا ہے اور اگر ہاں، تو اسے براہ راست نوڈ بی بی میں لوڈ کرے گا۔",
+ "probe-timeout": "پروب ٹائم آؤٹ (ملی سیکنڈز)",
+ "probe-timeout-help": "(طے شدہ: 2000) اگر پروب کو مقررہ وقت کے اندر جواب نہ ملے، تو صارف کو براہ راست لنک کے ایڈریس پر بھیجا جائے گا۔ اگر ویب سائٹس سست جواب دیتی ہیں اور آپ انہیں زیادہ وقت دینا چاہتے ہیں تو بڑا نمبر سیٹ کریں۔",
+
+ "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.
N.B. 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 # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
+ "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 /actor.",
+ "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": "فلٹرنگ",
+ "count": "یہ نوڈ بی بی فی الحال %1 سرور(ز) کے بارے میں جانتا ہے",
+ "server.filter-help": "ان سرورز کی نشاندہی کریں جن کے ساتھ آپ نہیں چاہتے کہ آپ کا نوڈ بی بی رابطہ قائم کرے۔ یا آپ اس کے بجائے مخصوص سرورز کی نشاندہی کر سکتے ہیں جن کے ساتھ رابطہ کی اجازت ہے۔ دونوں اختیارات دستیاب ہیں، لیکن آپ صرف ایک کا انتخاب کر سکتے ہیں۔",
+ "server.filter-help-hostname": "نیچے صرف سرورز کے نام درج کریں (جیسے example.org)، ہر سرور ایک الگ لائن پر ہونا چاہیے۔",
+ "server.filter-allow-list": "اسے اجازت یافتہ سرورز کی فہرست کے طور پر استعمال کریں"
+}
\ No newline at end of file
diff --git a/public/language/ur/admin/settings/advanced.json b/public/language/ur/admin/settings/advanced.json
new file mode 100644
index 0000000000..59c3dec7fe
--- /dev/null
+++ b/public/language/ur/admin/settings/advanced.json
@@ -0,0 +1,47 @@
+{
+ "maintenance-mode": "بحالی کا موڈ",
+ "maintenance-mode.help": "جب فورم بحالی کے موڈ میں ہوتا ہے، تو تمام درخواستیں ایک سٹیٹک ویٹنگ پیج پر ری ڈائریکٹ ہو جاتی ہیں، سوائے ایڈمنسٹریٹرز کے، جو ویب سائٹ کو معمول کے مطابق استعمال کر سکتے ہیں۔",
+ "maintenance-mode.status": "بحالی کے موڈ کے لیے سٹیٹس کوڈ",
+ "maintenance-mode.message": "بحالی کا پیغام",
+ "maintenance-mode.groups-exempt-from-maintenance-mode": "بحالی کے موڈ سے مستثنیٰ گروپس منتخب کریں",
+ "headers": "ہیڈرز",
+ "headers.allow-from": "NodeBB کو iFrame میں رکھنے کے لیے 'ALLOW-FROM' سیٹ کریں",
+ "headers.csp-frame-ancestors": "NodeBB کو iFrame میں رکھنے کے لیے 'Content-Security-Policy frame-ancestors' ہیڈر سیٹ کریں",
+ "headers.csp-frame-ancestors-help": "'none' (کچھ نہیں)، 'self' (خود - طے شدہ) یا اجازت شدہ ایڈریسز کی فہرست۔",
+ "headers.powered-by": "NodeBB سے بھیجے جانے والے 'Powered by' ہیڈر کو حسب ضرورت بنائیں",
+ "headers.acao": "Access-Control-Allow-Origin",
+ "headers.acao-regex": "Access-Control-Allow-Origin کے لیے ریگولر ایکسپریشن",
+ "headers.acao-help": "تمام ویب سائٹس تک رسائی منع کرنے کے لیے خالی چھوڑ دیں",
+ "headers.acao-regex-help": "متحرک اصل کے ساتھ مماثلت کے لیے ریگولر ایکسپریشن درج کریں۔ تمام ویب سائٹس تک رسائی منع کرنے کے لیے اسے خالی چھوڑ دیں۔",
+ "headers.acac": "Access-Control-Allow-Credentials",
+ "headers.acam": "Access-Control-Allow-Methods",
+ "headers.acah": "Access-Control-Allow-Headers",
+ "headers.coep": "Cross-Origin-Embedder-Policy",
+ "headers.coep-help": "جب فعال ہو (طے شدہ)، ہیڈر کی قیمت require-corp ہوگی",
+ "headers.coop": "Cross-Origin-Opener-Policy",
+ "headers.corp": "Cross-Origin-Resource-Policy",
+ "headers.permissions-policy": "Permissions-Policy",
+ "headers.permissions-policy-help": "'permissions-policy' ہیڈر میں قیمت سیٹ کرنے کی اجازت دیتا ہے، جیسے کہ 'geolocation=*, camera=()'۔ مزید معلومات کے لیے یہاں دیکھیں۔",
+ "hsts": "سخت ٹرانسپورٹ سیکیورٹی",
+ "hsts.enabled": "HSTS فعال کریں (تجویز کردہ)",
+ "hsts.maxAge": "HSTS کی زیادہ سے زیادہ عمر",
+ "hsts.subdomains": "HSTS ہیڈر میں ذیلی ڈومینز شامل کریں",
+ "hsts.preload": "HSTS ہیڈر کے لیے پری لوڈنگ کی اجازت دیں",
+ "hsts.help": "اگر یہ فعال ہو، تو اس ویب کے لیے HSTS ہیڈر سیٹ کیا جائے گا۔ آپ منتخب کر سکتے ہیں کہ ذیلی ڈومینز شامل کریں یا ہیڈر میں پری لوڈ فلیگز رکھیں۔ اگر آپ کو یقین نہیں کہ کیا کرنا ہے، تو بہتر ہے کہ کچھ نہ منتخب کریں۔ مزید معلومات",
+ "traffic-management": "ٹریفک کا انتظام",
+ "traffic.help": "NodeBB ایک ماڈیول استعمال کرتا ہے جو مصروف اوقات میں درخواستیں خود بخود مسترد کر دیتا ہے۔ آپ یہاں رویہ ترتیب دے سکتے ہیں، حالانکہ طے شدہ قیمتیں ایک اچھا نقطہ آغاز ہیں۔",
+ "traffic.enable": "ٹریفک مینجمنٹ فعال کریں",
+ "traffic.event-lag": "ایونٹ لوپ میں تاخیر کی حد (ملی سیکنڈز میں)",
+ "traffic.event-lag-help": "اس قیمت کو کم کرنے سے صفحات لوڈ ہونے کا انتظار کم ہوگا، لیکن اس سے زیادہ صارفین کو 'زیادہ بوجھ' کا پیغام زیادہ کثرت سے دکھائی دے گا۔ (ری اسٹارٹ درکار ہے۔)",
+ "traffic.lag-check-interval": "چیک انٹرویل (ملی سیکنڈز میں)",
+ "traffic.lag-check-interval-help": "اس قیمت کو کم کرنے سے NodeBB بوجھ کے اضافے کے لیے زیادہ حساس ہوگا، لیکن چیک کو بہت زیادہ حساس بھی بنا سکتا ہے۔ (ری اسٹارٹ درکار ہے۔)",
+
+ "sockets.settings": "ویب ساکٹ کی ترتیبات",
+ "sockets.max-attempts": "دوبارہ رابطہ کرنے کی زیادہ سے زیادہ کوششیں",
+ "sockets.default-placeholder": "طے شدہ: %1",
+ "sockets.delay": "دوبارہ رابطہ کرنے میں تاخیر",
+
+ "compression.settings": "کمپریشن کی ترتیبات",
+ "compression.enable": "کمپریشن فعال کریں",
+ "compression.help": "یہ ترتیب 'gzip' کے ذریعے کمپریشن کو فعال کرتی ہے۔ مصروف ویب سائٹس کے لیے کمپریشن کا بہترین طریقہ ریورس پراکسی لیول پر ہوتا ہے۔ لیکن ٹیسٹنگ کے مقاصد کے لیے، آپ اسے یہاں بھی فعال کر سکتے ہیں۔"
+}
\ No newline at end of file
diff --git a/public/language/ur/admin/settings/api.json b/public/language/ur/admin/settings/api.json
new file mode 100644
index 0000000000..2272599c1c
--- /dev/null
+++ b/public/language/ur/admin/settings/api.json
@@ -0,0 +1,29 @@
+{
+ "tokens": "شناختی نشان",
+ "settings": "ترتیبات",
+ "lead-text": "اس صفحہ پر آپ نوڈ بی بی میں لکھنے کے لیے API تک رسائی کو ترتیب دے سکتے ہیں۔",
+ "intro": "طے شدہ طور پر، لکھنے کا API صارفین کو ان کے سیشن کوکی کے ذریعے تصدیق کرتا ہے، لیکن نوڈ بی بی اس صفحہ کے ٹوکنز کا استعمال کرتے ہوئے 'Bearer' طریقہ سے تصدیق کی بھی حمایت کرتا ہے۔",
+ "warning": "احتیاط کریں – ٹوکنز کو پاس ورڈز کی طرح سمجھیں۔ اگر کوئی ان تک رسائی حاصل کر لیتا ہے، تو وہ آپ کے اکاؤنٹ تک رسائی حاصل کر سکتا ہے۔",
+ "docs": "API کی مکمل دستاویزات تک رسائی کے لیے یہاں کلک کریں",
+
+ "require-https": "API کا استعمال صرف HTTPS کے ذریعے کریں",
+ "require-https-caveat": "نوٹ: کچھ معاملات میں، جب لوڈ بیلنسرز استعمال کیے جاتے ہیں، تو نوڈ بی بی کو درخواستیں HTTP کے ذریعے بھیجی جا سکتی ہیں – اس صورت میں یہ ترتیب غیر فعال رہنی چاہیے۔",
+
+ "uid": "صارف آئی ڈی",
+ "token": "شناختی نشان",
+ "uid-help-text": "اس کوڈ کے ساتھ منسلک کرنے کے لیے صارف آئی ڈی بتائیں۔ اگر آئی ڈی 0 ہو، تو اسے ماسٹر کوڈ سمجھا جائے گا، جو _uid پیرامیٹر کے ذریعے دیگر صارفین کی شناخت اختیار کر سکتا ہے۔",
+ "description": "تفصیل",
+ "last-seen": "آخری بار دیکھا گیا",
+ "created": "بنایا گیا",
+ "create-token": "شناختی نشان بنائیں",
+ "update-token": "شناختی نشان اپ ڈیٹ کریں",
+ "master-token": "ماسٹر شناخت نشان",
+ "last-seen-never": "یہ کلید کبھی استعمال نہیں ہوئی۔",
+ "no-description": "کوئی تفصیل نہیں۔",
+ "actions": "عمل",
+ "edit": "ترمیم",
+ "roll": "دوبارہ بنائیں",
+
+ "delete-confirm": "کیا آپ واقعی اس شناخت نشان کو حذف کرنا چاہتے ہیں؟ اس کے بعد اسے بحال نہیں کیا جا سکے گا۔",
+ "roll-confirm": "کیا آپ واقعی اس شناخت نشان کو دوبارہ بنانا چاہتے ہیں؟ پرانا فوراً ہٹ جائے گا اور اسے بحال نہیں کیا جا سکے گا۔"
+}
\ No newline at end of file
diff --git a/public/language/ur/admin/settings/chat.json b/public/language/ur/admin/settings/chat.json
new file mode 100644
index 0000000000..332beeca5b
--- /dev/null
+++ b/public/language/ur/admin/settings/chat.json
@@ -0,0 +1,17 @@
+{
+ "zero-is-disabled": "اس پابندی کو غیر فعال کرنے کے لیے 0 درج کریں",
+ "chat-settings": "گفتگو کی ترتیبات",
+ "disable": "گفتگو کو غیر فعال کریں",
+ "disable-editing": "گفتگو کے پیغامات کی ترمیم اور حذف کو غیر فعال کریں",
+ "disable-editing-help": "یہ پابندی ایڈمنسٹریٹرز اور عالمی ماڈریٹرز پر اثر نہیں کرتی",
+ "max-length": "گفتگو کے پیغامات کی زیادہ سے زیادہ لمبائی",
+ "max-length-remote": "ریموٹ گفتگو کے پیغامات کی زیادہ سے زیادہ لمبائی",
+ "max-length-remote-help": "یہ قیمت عام طور پر مقامی صارفین کے لیے پابندی سے زیادہ ہونی چاہیے، کیونکہ ریموٹ پیغامات عام طور پر ناگزیر طور پر لمبے ہوتے ہیں (@مینشنز وغیرہ کی وجہ سے)۔",
+ "max-chat-room-name-length": "گفتگو کے کمروں کے ناموں کی زیادہ سے زیادہ لمبائی",
+ "max-room-size": "گفتگو کے کمرے میں صارفین کی زیادہ سے زیادہ تعداد",
+ "delay": "گفتگو کے پیغامات کے درمیان وقت (ملی سیکنڈز)",
+ "notification-delay": "گفتگو کے پیغامات کے لیے اطلاع سے پہلے تاخیر",
+ "notification-delay-help": "اس وقت کے دوران بھیجے گئے اضافی پیغامات کو یکجا کیا جاتا ہے، اور صارف کو ہر تاخیری مدت کے لیے ایک اطلاع ملتی ہے۔ تاخیر کو غیر فعال کرنے کے لیے 0 سیٹ کریں۔",
+ "restrictions.seconds-edit-after": "گفتگو کے پیغامات کے ترمیم کے لیے سیکنڈز کی تعداد",
+ "restrictions.seconds-delete-after": "گفتگو کے پیغامات کے حذف کے لیے سیکنڈز کی تعداد"
+}
\ No newline at end of file
diff --git a/public/language/ur/admin/settings/cookies.json b/public/language/ur/admin/settings/cookies.json
new file mode 100644
index 0000000000..443dbee344
--- /dev/null
+++ b/public/language/ur/admin/settings/cookies.json
@@ -0,0 +1,13 @@
+{
+ "eu-consent": "ای یو رضامندی",
+ "consent.enabled": "فعال",
+ "consent.message": "اطلاعی پیغام",
+ "consent.acceptance": "قبولیت کا پیغام",
+ "consent.link-text": "پالیسی ٹیکسٹ کا لنک",
+ "consent.link-url": "پالیسی ایڈریس کا لنک",
+ "consent.blank-localised-default": "NodeBB کے طے شدہ ترجمہ شدہ ڈیٹا استعمال کرنے کے لیے اسے خالی چھوڑ دیں",
+ "settings": "ترتیبات",
+ "cookie-domain": "سیشن کوکی کا ڈومین",
+ "max-user-sessions": "صارف کے لیے زیادہ سے زیادہ فعال سیشنز",
+ "blank-default": "طے شدہ قیمت استعمال کرنے کے لیے خالی چھوڑ دیں"
+}
\ No newline at end of file
diff --git a/public/language/ur/admin/settings/email.json b/public/language/ur/admin/settings/email.json
new file mode 100644
index 0000000000..9acc6b43e2
--- /dev/null
+++ b/public/language/ur/admin/settings/email.json
@@ -0,0 +1,54 @@
+{
+ "email-settings": "ای میل کی ترتیبات",
+ "address": "ای میل ایڈریس",
+ "address-help": "مندرجہ ذیل ای میل ایڈریس وہی ہے جو وصول کنندہ 'From' اور 'Reply-To' فیلڈز میں دیکھے گا۔",
+ "from": "'From' فیلڈ کے لیے نام",
+ "from-help": "ای میل میں دکھایا جانے والا بھیجنے والے کا نام۔",
+
+ "confirmation-settings": "تصدیق",
+ "confirmation.expiry": "تصدیقی لنک کی میعاد، گھنٹوں میں",
+
+ "smtp-transport": "SMTP ٹرانسپورٹ",
+ "smtp-transport.enabled": "SMTP ٹرانسپورٹ فعال کریں",
+ "smtp-transport-help": "آپ معروف خدمات کی فہرست سے انتخاب کر سکتے ہیں، یا دستی طور پر ایک درج کر سکتے ہیں۔",
+ "smtp-transport.service": "سروس منتخب کریں",
+ "smtp-transport.service-custom": "مرضی کی سروس",
+ "smtp-transport.service-help": "اوپر دیے گئے سروس کے نام کو منتخب کریں تاکہ اس کے معروف ڈیٹا کو استعمال کیا جا سکے۔ یا 'مرضی کی سروس' منتخب کریں اور نیچے اس کے تفصیلات درج کریں۔",
+ "smtp-transport.gmail-warning1": "اگر آپ Gmail استعمال کر رہے ہیں، تو آپ کو NodeBB کے تصدیقی ڈیٹا استعمال کرنے کے لیے 'ایپلیکیشن پاس ورڈ' بنانا ہوگا۔ آپ اسے ایپلیکیشن پاس ورڈز صفحہ پر بنا سکتے ہیں۔",
+ "smtp-transport.gmail-warning2": "اس حل کے بارے میں مزید معلومات کے لیے، براہ کرم NodeMailer کے اس مسئلے کے بارے میں یہ مضمون دیکھیں۔ ایک اور حل یہ ہوگا کہ تیسری پارٹی کی ای میل پلگ ان استعمال کی جائے، جیسے کہ 'SendGrid'، 'Mailgun' وغیرہ۔ یہاں دستیاب پلگ انز دیکھیں۔",
+ "smtp-transport.auto-enable-toast": "ایسا لگتا ہے کہ آپ ایسی فعالیت ترتیب دے رہے ہیں جس کے لیے SMTP ٹرانسپورٹ کی ضرورت ہے۔ ہم نے آپ کے لیے 'SMTP ٹرانسپورٹ' ترتیب کو فعال کر دیا ہے۔",
+ "smtp-transport.host": "SMTP سرور",
+ "smtp-transport.port": "SMTP پورٹ",
+ "smtp-transport.security": "رابطے کی سیکیورٹی",
+ "smtp-transport.security-encrypted": "خفیہ کردہ",
+ "smtp-transport.security-starttls": "StartTLS",
+ "smtp-transport.security-none": "کوئی نہیں",
+ "smtp-transport.username": "صارف نام",
+ "smtp-transport.username-help": "Gmail سروس کے لیے، یہاں مکمل ای میل ایڈریس درج کریں، خاص طور پر اگر آپ Google Apps کے زیر انتظام ڈومین استعمال کر رہے ہیں۔",
+ "smtp-transport.password": "پاس ورڈ",
+ "smtp-transport.pool": "پولڈ کنکشنز فعال کریں",
+ "smtp-transport.pool-help": "پولڈ کنکشنز ہر ای میل کے لیے نیا کنکشن بنانے سے روکتے ہیں۔ یہ ترتیب صرف اس وقت اثر کرتی ہے جب 'SMTP ٹرانسپورٹ' فعال ہو۔",
+ "smtp-transport.allow-self-signed": "خود دستخط شدہ سرٹیفکیٹس کی اجازت دیں",
+ "smtp-transport.allow-self-signed-help": "اس ترتیب کو فعال کرنے سے خود دستخط شدہ اور غیر درست TLS سرٹیفکیٹس استعمال کرنے کی اجازت ملے گی۔",
+
+ "template": "ای میل ٹیمپلیٹ میں ترمیم کریں",
+ "template.select": "ای میل ٹیمپلیٹ منتخب کریں",
+ "template.revert": "اصل پر واپس جائیں",
+ "testing": "ای میل ٹیسٹنگ",
+ "testing.select": "ای میل ٹیمپلیٹ منتخب کریں",
+ "testing.send": "ٹیسٹ ای میل بھیجیں",
+ "testing.send-help": "ٹیسٹ ای میل موجودہ لاگ ان صارف کے ای میل پر بھیجا جائے گا۔",
+ "subscriptions": "ای میل ڈائجسٹ",
+ "subscriptions.disable": "ای میل ڈائجسٹ غیر فعال کریں",
+ "subscriptions.hour": "بھیجنے کا وقت",
+ "subscriptions.hour-help": "براہ کرم ایک عدد درج کریں جو ڈائجسٹ ای میلز بھیجنے کے وقت کو ظاہر کرے (مثال کے طور پر 0 آدھی رات کے لیے، 17 شام 5 بجے کے لیے)۔ نوٹ کریں کہ یہ وقت سرور کے ٹائم زون کے مطابق ہے اور ہو سکتا ہے کہ آپ کے سسٹم کے کلاک سے مطابقت نہ رکھتا ہو۔ سرور کا تخمینی وقت ہے: اگلا روزانہ ڈائجسٹ بھیجنے کا شیڈول ہے: ",
+ "notifications.remove-images": "ای میل اطلاعات سے تصاویر ہٹائیں",
+ "require-email-address": "نئے صارفین کے لیے ای میل ایڈریس لازمی ہے",
+ "require-email-address-warning": "طے شدہ طور پر، صارفین ای میل ایڈریس فیلڈ کو خالی چھوڑ کر ای میل ایڈریس داخل نہ کرنے کا انتخاب کر سکتے ہیں۔ اگر آپ اسے فعال کرتے ہیں، تو نئے صارفین کو رجسٹریشن مکمل کرنے اور فورم تک رسائی کے لیے ای میل فراہم کرنا اور تصدیق کرنا لازمی ہوگا۔ اس کا مطلب یہ نہیں کہ صارف درست ای میل ایڈریس درج کرے گا یا یہ کہ وہ ان کا ہوگا۔",
+ "send-validation-email": "ای میل شامل یا تبدیل ہونے پر تصدیقی ای میلز بھیجیں",
+ "include-unverified-emails": "ایسے وصول کنندگان کو ای میلز بھیجیں جنہوں نے اپنے ای میل کی واضح طور پر تصدیق نہیں کی",
+ "include-unverified-warning": "جن صارفین کے رجسٹریشن کے ساتھ ای میل منسلک ہے، اسے تصدیق شدہ سمجھا جاتا ہے۔ لیکن کچھ حالات میں ایسا نہیں ہوتا (مثال کے طور پر جب دوسرے سسٹم سے رجسٹریشن استعمال کی جاتی ہے، لیکن دیگر صورتوں میں بھی)، اس ترتیب کو اپنے خطرے پر فعال کریں – غیر تصدیق شدہ ایڈریسز پر ای میلز بھیجنا بعض مقامی اینٹی اسپام قوانین کی خلاف ورزی کر سکتا ہے۔",
+ "prompt": "صارفین کو اپنا ای میل درج کرنے یا تصدیق کرنے کی یاد دہانی کریں",
+ "prompt-help": "اگر صارف کا ای میل سیٹ نہیں ہے، یا اگر اس کی تصدیق نہیں ہوئی، تو اس کی سکرین پر ایک تنبیہی پیغام دکھایا جائے گا۔",
+ "sendEmailToBanned": "پابندی شدہ صارفین کو بھی ای میلز بھیجیں"
+}
diff --git a/public/language/ur/admin/settings/general.json b/public/language/ur/admin/settings/general.json
new file mode 100644
index 0000000000..51e14ab67f
--- /dev/null
+++ b/public/language/ur/admin/settings/general.json
@@ -0,0 +1,63 @@
+{
+ "general-settings": "عام ترتیبات",
+ "on-this-page": "اس صفحہ پر:",
+ "site-settings": "ویب سائٹ کی ترتیبات",
+ "title": "ویب سائٹ کا عنوان",
+ "title.short": "مختصر عنوان",
+ "title.short-placeholder": "اگر مختصر عنوان بیان نہیں کیا گیا تو ویب سائٹ کا عنوان استعمال کیا جائے گا",
+ "title.url": "عنوان کا ایڈریس",
+ "title.url-placeholder": "ویب سائٹ کے عنوان کا ایڈریس",
+ "title.url-help": "جب صارف عنوان پر کلک کرتا ہے، تو وہ اس ایڈریس پر منتقل ہو جائے گا۔ اگر خالی ہو، تو صارف فورم کے ہوم پیج پر بھیجا جائے گا۔ نوٹ: یہ وہ بیرونی ایڈریس نہیں جو ای میلز میں استعمال ہوتا ہے۔ وہ config.json فائل میں url پراپرٹی سے سیٹ کیا جاتا ہے۔",
+ "title.name": "آپ کی کمیونٹی کا نام",
+ "title.show-in-header": "ویب سائٹ کا عنوان ہیڈر میں دکھائیں",
+ "browser-title": "براؤزر کا عنوان",
+ "browser-title-help": "اگر براؤزر کا عنوان بیان نہیں کیا گیا تو ویب سائٹ کا عنوان استعمال کیا جائے گا",
+ "title-layout": "عنوان کا ترتیب",
+ "title-layout-help": "براؤزر کے عنوان کی ساخت کیسے ہوگی، جیسے کہ: {pageTitle} | {browserTitle}",
+ "description.placeholder": "آپ کی کمیونٹی کا مختصر تفصیل",
+ "description": "ویب سائٹ کی تفصیل",
+ "keywords": "ویب سائٹ کے کلیدی الفاظ",
+ "keywords-placeholder": "آپ کی کمیونٹی کی وضاحت کرنے والے کلیدی الفاظ، کوموں سے الگ کیے گئے۔",
+ "logo-and-icons": "ویب سائٹ کا لوگو اور آئیکنز",
+ "logo.image": "تصویر",
+ "logo.image-placeholder": "فورم کے ہیڈر میں دکھائے جانے والے لوگو کا پاتھ",
+ "logo.upload": "اپ لوڈ",
+ "logo.url": "لوگو کا ایڈریس",
+ "logo.url-placeholder": "ویب سائٹ کے لوگو کا ایڈریس",
+ "logo.url-help": "جب صارف لوگو پر کلک کرتا ہے، تو وہ اس ایڈریس پر منتقل ہو جائے گا۔ اگر خالی ہو، تو صارف فورم کے ہوم پیج پر بھیجا جائے گا۔ نوٹ: یہ وہ بیرونی ایڈریس نہیں جو ای میلز میں استعمال ہوتا ہے۔ وہ config.json فائل میں url پراپرٹی سے سیٹ کیا جاتا ہے۔",
+ "logo.alt-text": "متبادل متن",
+ "log.alt-text-placeholder": "رسائی کے لیے متبادل متن",
+ "favicon": "ویب سائٹ کا فیویکن",
+ "favicon.upload": "اپ لوڈ",
+ "pwa": "پروگریسو ویب ایپلیکیشن",
+ "touch-icon": "ٹچ آئیکن",
+ "touch-icon.upload": "اپ لوڈ",
+ "touch-icon.help": "تجویز کردہ سائز اور فارمیٹ: 512x512، صرف PNG فارمیٹ میں۔ اگر ٹچ آئیکن بیان نہیں کیا گیا تو NodeBB ویب سائٹ کے فیویکن کا استعمال کرے گا۔",
+ "maskable-icon": "ماسک ایبل آئیکن (ہوم اسکرین کے لیے)",
+ "maskable-icon.help": "تجویز کردہ سائز اور فارمیٹ: 512x512، صرف PNG فارمیٹ میں۔ اگر ماسک ایبل آئیکن بیان نہیں کیا گیا تو NodeBB ٹچ آئیکن کا استعمال کرے گا۔",
+ "outgoing-links": "باہر جانے والے لنکس",
+ "outgoing-links.warning-page": "باہری لنکس پر کلک کرنے پر تنبیہی صفحہ دکھائیں",
+ "search": "تلاش",
+ "search-default-in": "میں تلاش کریں",
+ "search-default-in-quick": "فوری تلاش میں",
+ "search-default-sort-by": "ترتیب دیں بمطابق",
+ "outgoing-links.whitelist": "وہ ڈومینز جن کے لیے تنبیہی صفحہ نہ دکھایا جائے",
+ "site-colors": "ویب سائٹ کے رنگوں کے میٹا ڈیٹا",
+ "theme-color": "تھیم کا رنگ",
+ "background-color": "پس منظر کا رنگ",
+ "background-color-help": "وہ رنگ جو ہوم اسکرین کے پس منظر کے طور پر استعمال کیا جائے گا جب ویب سائٹ ایپلیکیشن کے طور پر انسٹال کی جاتی ہے",
+ "undo-timeout": "واپسی کا وقت",
+ "undo-timeout-help": "کچھ عمل، جیسے کہ موضوعات منتقل کرنا، ماڈریٹر اس مخصوص وقت کے اندر واپس کر سکتے ہیں۔ واپسی کو مکمل طور پر غیر فعال کرنے کے لیے 0 سیٹ کریں۔",
+ "topic-tools": "موضوعات کے اوزار",
+ "home-page": "ہوم پیج",
+ "home-page-route": "ہوم پیج کا راستہ",
+ "home-page-description": "منتخب کریں کہ جب صارفین فورم کے مرکزی ایڈریس پر جائیں تو کون سا صفحہ دکھایا جائے۔",
+ "custom-route": "مرضی کا راستہ",
+ "allow-user-home-pages": "صارفین کے ہوم پیجز کی اجازت دیں",
+ "home-page-title": "ہوم پیج کا عنوان (طے شدہ: 'ہوم')",
+ "default-language": "طے شدہ زبان",
+ "auto-detect": "مہمانوں کے لیے زبان کا خودکار پتہ لگانا",
+ "default-language-help": "طے شدہ زبان آپ کے فورم کو دیکھنے والے تمام صارفین کے لیے زبان کی ترتیبات کا تعین کرتی ہے۔ انفرادی صارفین اپنے پروفائل کی ترتیبات کے صفحہ سے اپنی زبان تبدیل کر سکتے ہیں۔",
+ "post-sharing": "پوسٹس کا اشتراک",
+ "info-plugins-additional": "پلگ انز پوسٹس کے اشتراک کے لیے اضافی نیٹ ورکس شامل کر سکتے ہیں۔"
+}
\ No newline at end of file
diff --git a/public/language/ur/admin/settings/group.json b/public/language/ur/admin/settings/group.json
new file mode 100644
index 0000000000..c22d1ae59f
--- /dev/null
+++ b/public/language/ur/admin/settings/group.json
@@ -0,0 +1,13 @@
+{
+ "general": "عام",
+ "private-groups": "نجی گروپس",
+ "private-groups.help": "اگر فعال ہو، تو گروپس میں شامل ہونے کے لیے گروپ کے مالک کی منظوری درکار ہوگی۔ (طے شدہ: فعال)",
+ "private-groups.warning": "انتباہ! اگر یہ غیر فعال ہو اور آپ کے پاس نجی گروپس ہیں، تو وہ خود بخود عوامی ہو جائیں گے۔",
+ "allow-multiple-badges": "متعدد بیجز کی اجازت دیں",
+ "allow-multiple-badges-help": "اسے استعمال کیا جا سکتا ہے تاکہ صارفین متعدد گروپ بیجز منتخب کر سکیں۔ اس کے لیے تھیم سپورٹ درکار ہے۔",
+ "max-name-length": "گروپ کے نام کی کم سے کم لمبائی",
+ "max-title-length": "گروپ کے عنوان کی زیادہ سے زیادہ لمبائی",
+ "cover-image": "گروپ کے لیے کور امیج",
+ "default-cover": "طے شدہ کور امیجز",
+ "default-cover-help": "ان گروپس کے لیے طے شدہ کور امیجز (کوموں سے الگ کیے گئے) شامل کریں جنہوں نے کوئی کور امیج اپ لوڈ نہیں کیا۔"
+}
\ No newline at end of file
diff --git a/public/language/ur/admin/settings/navigation.json b/public/language/ur/admin/settings/navigation.json
new file mode 100644
index 0000000000..74e8178c8d
--- /dev/null
+++ b/public/language/ur/admin/settings/navigation.json
@@ -0,0 +1,26 @@
+{
+ "navigation": "نیویگیشن",
+ "icon": "آئیکن:",
+ "change-icon": "تبدیل کریں",
+ "route": "راستہ:",
+ "tooltip": "ٹول ٹپ:",
+ "text": "متن:",
+ "text-class": "متن کلاس: اختیاری",
+ "class": "کلاس: اختیاری",
+ "id": "شناختی: اختیاری",
+
+ "properties": "خصوصیات:",
+ "show-to-groups": "گروپس کو دکھائیں:",
+ "open-new-window": "نئی ونڈو میں کھولیں",
+ "dropdown": "ڈراپ ڈاؤن مینو",
+ "dropdown-placeholder": "نیچے ڈراپ ڈاؤن مینو کے عناصر درج کریں۔ مثال: <li><a class="dropdown-item" href="https://myforum.com">لنک 1</a></li>",
+
+ "btn.delete": "حذف",
+ "btn.disable": "غیر فعال کریں",
+ "btn.enable": "فعال کریں",
+
+ "available-menu-items": "دستیاب مینو آئٹمز",
+ "custom-route": "مرضی کا راستہ",
+ "core": "بنیادی",
+ "plugin": "پلگ ان"
+}
diff --git a/public/language/ur/admin/settings/notifications.json b/public/language/ur/admin/settings/notifications.json
new file mode 100644
index 0000000000..948e0c4993
--- /dev/null
+++ b/public/language/ur/admin/settings/notifications.json
@@ -0,0 +1,7 @@
+{
+ "notifications": "اطلاعات",
+ "welcome-notification": "خوش آمدید اطلاع",
+ "welcome-notification-link": "خوش آمدید اطلاع کے لیے لنک",
+ "welcome-notification-uid": "خوش آمدید اطلاع کے لیے صارف آئی ڈی",
+ "post-queue-notification-uid": "پوسٹ کیو کے لیے صارف آئی ڈی"
+}
\ No newline at end of file
diff --git a/public/language/ur/admin/settings/pagination.json b/public/language/ur/admin/settings/pagination.json
new file mode 100644
index 0000000000..2a192b6542
--- /dev/null
+++ b/public/language/ur/admin/settings/pagination.json
@@ -0,0 +1,12 @@
+{
+ "pagination": "صفحہ بندی کی ترتیبات",
+ "enable": "موضوعات اور پوسٹس کو لامحدود سکرولنگ کے بجائے صفحات میں تقسیم کریں۔",
+ "posts": "پوسٹس میں صفحہ بندی",
+ "topics": "موضوعات میں صفحہ بندی",
+ "posts-per-page": "فی صفحہ پوسٹس",
+ "max-posts-per-page": "فی صفحہ زیادہ سے زیادہ پوسٹس",
+ "categories": "زمرہ جات کی صفحہ بندی",
+ "topics-per-page": "فی صفحہ موضوعات",
+ "max-topics-per-page": "فی صفحہ زیادہ سے زیادہ موضوعات",
+ "categories-per-page": "فی صفحہ زمرہ جات کی تعداد"
+}
\ No newline at end of file
diff --git a/public/language/ur/admin/settings/post.json b/public/language/ur/admin/settings/post.json
new file mode 100644
index 0000000000..8b83a6bdce
--- /dev/null
+++ b/public/language/ur/admin/settings/post.json
@@ -0,0 +1,64 @@
+{
+ "general": "عام",
+ "sorting": "پوسٹس کی ترتیب",
+ "sorting.post-default": "پوسٹس کی طے شدہ ترتیب",
+ "sorting.oldest-to-newest": "سب سے پرانے پہلے",
+ "sorting.newest-to-oldest": "سب سے نئے پہلے",
+ "sorting.recently-replied": "حال ہی میں جواب دیے گئے پہلے",
+ "sorting.recently-created": "حال ہی میں بنائے گئے پہلے",
+ "sorting.most-votes": "سب سے زیادہ ووٹس والے پہلے",
+ "sorting.most-posts": "سب سے زیادہ پوسٹس والے پہلے",
+ "sorting.most-views": "سب سے زیادہ مناظر والے پہلے",
+ "sorting.topic-default": "موضوعات کی طے شدہ ترتیب",
+ "length": "پوسٹس کی لمبائی",
+ "post-queue": "پوسٹ کیو",
+ "restrictions": "پوسٹنگ کے پابندی",
+ "restrictions.post-queue": "پوسٹ کیو فعال کریں",
+ "restrictions.post-queue-rep-threshold": "پوسٹ کیو کو چھوڑنے کے لیے درکار ساکھ",
+ "restrictions.groups-exempt-from-post-queue": "پوسٹ کیو کو چھوڑنے والے گروپس منتخب کریں",
+ "restrictions-new.post-queue": "نئے صارفین کے لیے پابندی فعال کریں",
+ "restrictions.post-queue-help": "اگر پوسٹ کیو فعال ہو، تو نئے صارفین کی پوسٹس منظوری کے لیے کیو میں شامل کی جائیں گی",
+ "restrictions-new.post-queue-help": "اگر نئے صارفین کے لیے پابندی فعال ہو، تو یہ نئے صارفین کی بنائی گئی پوسٹس کے لیے کچھ پابندیاں عائد کرے گا",
+ "restrictions.seconds-between": "پوسٹس کے درمیان سیکنڈز کی تعداد",
+ "restrictions.seconds-edit-after": "سیکنڈز کی تعداد جن کے دوران پوسٹس ترمیم کی جا سکتی ہیں (0 = غیر فعال)",
+ "restrictions.seconds-delete-after": "سیکنڈز کی تعداد جن کے دوران پوسٹس حذف کی جا سکتی ہیں (0 = غیر فعال)",
+ "restrictions.replies-no-delete": "جوابات کی تعداد جس کے بعد صارفین اپنے موضوعات حذف نہیں کر سکتے (0 = غیر فعال)",
+ "restrictions.title-length": "عنوان کی لمبائی",
+ "restrictions.post-length": "پوسٹس کی لمبائی",
+ "restrictions.days-until-stale": "وہ دنوں کی تعداد جس کے بعد موضوع پرانا سمجھا جاتا ہے",
+ "restrictions.stale-help": "اگر کوئی موضوع 'پرانا' قرار دیا گیا ہو، تو اس میں لکھنے کی کوشش کرنے والے صارفین کو تنبیہی پیغام ملے گا (0 = غیر فعال)",
+ "timestamp": "وقت",
+ "timestamp.cut-off": "تاریخ کے بعد استعمال کریں (دنوں میں)",
+ "timestamp.cut-off-help": "تاریخیں اور اوقات نسبتاً دکھائے جائیں گے (مثال کے طور پر '3 گھنٹے پہلے' یا '5 دن پہلے')، اور متعدد زبانوں میں ترجمہ کیے جائیں گے۔ ایک خاص وقت کے بعد، یہ متن صارف کی زبان کے مطابق تاریخ اور وقت دکھانا شروع کر دے گا (مثال کے طور پر '5 نومبر 2016 15:30')۔ (طے شدہ: 30، یعنی ایک ماہ)۔ اگر 0 سیٹ کیا گیا تو ہمیشہ تاریخیں دکھائی جائیں گی، اور اگر فیلڈ خالی چھوڑا گیا تو وقت ہمیشہ نسبتاً ہوگا۔",
+ "timestamp.necro-threshold": "مردہ حد (دنوں میں)",
+ "timestamp.necro-threshold-help": "اگر پوسٹس کے درمیان وقت مردہ حد سے زیادہ ہو تو پوسٹس کے درمیان ایک پیغام دکھایا جائے گا۔ (طے شدہ: 7، یعنی ایک ہفتہ)۔ غیر فعال کرنے کے لیے 0 سیٹ کریں۔",
+ "timestamp.topic-views-interval": "موضوعات کے مناظر کی تعداد بڑھانے کا وقفہ (منٹوں میں)",
+ "timestamp.topic-views-interval-help": "موضوعات کے مناظر کی تعداد اس ترتیب کے مطابق ہر X منٹ میں ایک بار بڑھے گی۔",
+ "teaser": "نمائشی پوسٹ",
+ "teaser.last-post": "آخری – آخری پوسٹ دکھائیں، یا اگر کوئی جوابات نہ ہوں تو ابتدائی پوسٹ۔",
+ "teaser.last-reply": "آخری – آخری جواب دکھائیں، یا اگر کوئی جوابات نہ ہوں تو 'کوئی جوابات نہیں'۔",
+ "teaser.first": "پہلی",
+ "showPostPreviewsOnHover": "ماؤس ہاور کرنے پر پوسٹس کا مختصر پیش نظارہ دکھائیں",
+ "unread-and-recent": "حال ہی کے اور غیر پڑھے ہوئے کے لیے ترتیبات",
+ "unread.cutoff": "پوسٹس کی عمر جس کے بعد وہ غیر پڑھے ہوئے میں نہیں دکھائی جاتیں (دنوں میں)",
+ "unread.min-track-last": "موضوع میں پوسٹس کی کم سے کم تعداد جس کے بعد آخری پڑھی ہوئی کو ٹریک کرنا شروع کیا جائے",
+ "recent.max-topics": "حال ہی کے موضوعات کی زیادہ سے زیادہ تعداد",
+ "recent.categoryFilter.disable": "/recent صفحہ پر نظرانداز کیے گئے زمرہ جات کی موضوعات کی فلٹرنگ غیر فعال کریں",
+ "signature": "دستخطوں کی ترتیبات",
+ "signature.disable": "دستخط غیر فعال کریں",
+ "signature.no-links": "دستخطوں میں لنکس کی اجازت نہ دیں",
+ "signature.no-images": "دستخطوں میں تصاویر کی اجازت نہ دیں",
+ "signature.hide-duplicates": "موضوعات میں دہرائے گئے دستخط چھپائیں",
+ "signature.max-length": "دستخطوں کی زیادہ سے زیادہ لمبائی",
+ "composer": "کمپوزر کی ترتیبات",
+ "composer-help": "مندرجہ ذیل ترتیبات نئی موضوعات بنانے یا موجودہ موضوعات میں جواب دینے کے لیے صارفین کے ذریعے استعمال ہونے والے پوسٹ کمپوزر کے عنصر کی فعالیت اور/یا ظاہری شکل کا تعین کرتی ہیں۔",
+ "composer.show-help": "مدد کا ٹیب دکھائیں",
+ "composer.enable-plugin-help": "پلگ انز کو مدد کے ٹیب میں مواد شامل کرنے کی اجازت دیں",
+ "composer.custom-help": "مرضی کا مدد کا متن",
+ "backlinks": "بیک لنکس",
+ "backlinks.enabled": "موضوعات میں بیک لنکس فعال کریں",
+ "backlinks.help": "اگر پوسٹ میں کسی دوسرے موضوع کی طرف حوالہ ہو تو اس پوسٹ کی طرف ایک لنک اس مخصوص وقت کے ساتھ رکھا جائے گا۔",
+ "ip-tracking": "آئی پی ایڈریس ریکارڈنگ",
+ "ip-tracking.each-post": "ہر پوسٹ کے لیے آئی پی ایڈریس ریکارڈ کریں",
+ "enable-post-history": "پوسٹس کی تاریخ فعال کریں"
+}
\ No newline at end of file
diff --git a/public/language/ur/admin/settings/reputation.json b/public/language/ur/admin/settings/reputation.json
new file mode 100644
index 0000000000..ad7cd77e43
--- /dev/null
+++ b/public/language/ur/admin/settings/reputation.json
@@ -0,0 +1,43 @@
+{
+ "reputation": "ساکھ کی ترتیبات",
+ "disable": "ساکھ کا نظام غیر فعال کریں",
+ "disable-down-voting": "منفی ووٹنگ کی ممانعت",
+ "upvote-visibility": "مثبت ووٹس کی نمائش",
+ "upvote-visibility-all": "ہر کوئی مثبت ووٹس دیکھ سکتا ہے",
+ "upvote-visibility-loggedin": "صرف لاگ ان صارفین مثبت ووٹس دیکھ سکتے ہیں",
+ "upvote-visibility-privileged": "صرف اعلیٰ اختیارات والے صارفین (جیسے ایڈمنسٹریٹرز اور ماڈریٹرز) مثبت ووٹس دیکھ سکتے ہیں",
+ "downvote-visibility": "منفی ووٹس کی نمائش",
+ "downvote-visibility-all": "ہر کوئی منفی ووٹس دیکھ سکتا ہے",
+ "downvote-visibility-loggedin": "صرف لاگ ان صارفین منفی ووٹس دیکھ سکتے ہیں",
+ "downvote-visibility-privileged": "صرف اعلیٰ اختیارات والے صارفین (جیسے ایڈمنسٹریٹرز اور ماڈریٹرز) منفی ووٹس دیکھ سکتے ہیں",
+ "thresholds": "سرگرمی کی حدیں",
+ "min-rep-upvote": "پوسٹس کے لیے مثبت ووٹنگ کے لیے کم سے کم ساکھ درکار",
+ "upvotes-per-day": "ایک دن میں مثبت ووٹس (لامحدود کے لیے 0 سیٹ کریں)",
+ "upvotes-per-user-per-day": "ایک صارف کے لیے ایک دن میں مثبت ووٹس (لامحدود کے لیے 0 سیٹ کریں)",
+ "min-rep-downvote": "پوسٹس کے لیے منفی ووٹنگ کے لیے کم سے کم ساکھ درکار",
+ "downvotes-per-day": "ایک دن میں منفی ووٹس (لامحدود کے لیے 0 سیٹ کریں)",
+ "downvotes-per-user-per-day": "ایک صارف کے لیے ایک دن میں منفی ووٹس (لامحدود کے لیے 0 سیٹ کریں)",
+ "min-rep-chat": "گفتگو میں پیغامات بھیجنے کے لیے کم سے کم ساکھ درکار",
+ "min-rep-post-links": "لنکس پوسٹ کرنے کے لیے کم سے کم ساکھ درکار",
+ "min-rep-flag": "پوسٹس کی رپورٹنگ کے لیے کم سے کم ساکھ درکار",
+ "min-rep-aboutme": "صارف کے پروفائل میں 'میرے بارے میں' فیلڈ شامل کرنے کے لیے کم سے کم ساکھ درکار",
+ "min-rep-signature": "صارف کے پروفائل میں 'دستخط' فیلڈ شامل کرنے کے لیے کم سے کم ساکھ درکار",
+ "min-rep-profile-picture": "صارف کے پروفائل میں پروفائل تصویر شامل کرنے کے لیے کم سے کم ساکھ درکار",
+ "min-rep-cover-picture": "صارف کے پروفائل میں کور تصویر شامل کرنے کے لیے کم سے کم ساکھ درکار",
+
+ "flags": "رپورٹس کی ترتیبات",
+ "flags.limit-per-target": "ایک ہی چیز کی رپورٹنگ کی زیادہ سے زیادہ تعداد",
+ "flags.limit-per-target-placeholder": "طے شدہ: 0",
+ "flags.limit-per-target-help": "جب کوئی پوسٹ یا صارف کئی بار رپورٹ کیا جاتا ہے، تو یہ ایک مشترکہ رپورٹ میں شامل ہو جاتا ہے۔ اس ترتیب کو صفر سے زیادہ قیمت پر سیٹ کریں تاکہ ایک پوسٹ یا صارف کے لیے جمع ہونے والی رپورٹس کی تعداد کو محدود کیا جا سکے۔",
+ "flags.limit-post-flags-per-day": "ایک دن میں صارف کے ذریعے رپورٹ کی جا سکنے والی پوسٹس کی زیادہ سے زیادہ تعداد",
+ "flags.limit-post-flags-per-day-help": "غیر فعال کرنے کے لیے 0 سیٹ کریں (طے شدہ: 10)",
+ "flags.limit-user-flags-per-day": "ایک دن میں صارف کے ذریعے رپورٹ کیے جا سکنے والے صارفین کی زیادہ سے زیادہ تعداد",
+ "flags.limit-user-flags-per-day-help": "غیر فعال کرنے کے لیے 0 سیٹ کریں (طے شدہ: 10)",
+ "flags.auto-flag-on-downvote-threshold": "پوسٹس کی خودکار رپورٹنگ کے لیے منفی ووٹس کی تعداد",
+ "flags.auto-flag-on-downvote-threshold-help": "غیر فعال کرنے کے لیے 0 سیٹ کریں (طے شدہ: 0)",
+ "flags.auto-resolve-on-ban": "جب صارف پر پابندی لگائی جاتی ہے تو اس کی تمام رپورٹس خودکار طور پر ہٹائیں",
+ "flags.action-on-resolve": "جب رپورٹنگ حل کی جاتی ہے تو درج ذیل کریں",
+ "flags.action-on-reject": "جب رپورٹنگ مسترد کی جاتی ہے تو درج ذیل کریں",
+ "flags.action.nothing": "کچھ نہ کریں",
+ "flags.action.rescind": "ماڈریٹرز/ایڈمنسٹریٹرز کو بھیجی گئی اطلاع منسوخ کریں"
+}
\ No newline at end of file
diff --git a/public/language/ur/admin/settings/sockets.json b/public/language/ur/admin/settings/sockets.json
new file mode 100644
index 0000000000..a8bfe7c497
--- /dev/null
+++ b/public/language/ur/admin/settings/sockets.json
@@ -0,0 +1,6 @@
+{
+ "reconnection": "دوبارہ رابطہ کی ترتیبات",
+ "max-attempts": "دوبارہ رابطہ کرنے کی زیادہ سے زیادہ کوششیں",
+ "default-placeholder": "طے شدہ: %1",
+ "delay": "دوبارہ رابطہ کرنے میں تاخیر"
+}
\ No newline at end of file
diff --git a/public/language/ur/admin/settings/sounds.json b/public/language/ur/admin/settings/sounds.json
new file mode 100644
index 0000000000..2de9782640
--- /dev/null
+++ b/public/language/ur/admin/settings/sounds.json
@@ -0,0 +1,9 @@
+{
+ "notifications": "اطلاعات",
+ "chat-messages": "گفتگو کے پیغامات",
+ "play-sound": "چلائیں",
+ "incoming-message": "آنے والا پیغام",
+ "outgoing-message": "جانے والا پیغام",
+ "upload-new-sound": "نئی آواز اپ لوڈ کریں",
+ "saved": "ترتیبات محفوظ ہو گئیں"
+}
\ No newline at end of file
diff --git a/public/language/ur/admin/settings/tags.json b/public/language/ur/admin/settings/tags.json
new file mode 100644
index 0000000000..e7c2af1694
--- /dev/null
+++ b/public/language/ur/admin/settings/tags.json
@@ -0,0 +1,13 @@
+{
+ "tag": "ٹیگز کی ترتیبات",
+ "link-to-manage": "ٹیگز کا انتظام",
+ "system-tags": "سسٹم ٹیگز",
+ "system-tags-help": "صرف اعلیٰ اختیارات والے صارفین ہی ان ٹیگز کو استعمال کر سکیں گے۔",
+ "tags-per-topic": "موضوع کے لیے ٹیگز کی تعداد",
+ "min-per-topic": "موضوع کے لیے کم سے کم ٹیگز",
+ "max-per-topic": "موضوع کے لیے زیادہ سے زیادہ ٹیگز",
+ "min-length": "ٹیگز کی کم سے کم لمبائی",
+ "max-length": "ٹیگز کی زیادہ سے زیادہ لمبائی",
+ "related-topics": "متعلقہ موضوعات",
+ "max-related-topics": "زیادہ سے زیادہ متعلقہ موضوعات جو دکھائے جائیں (اگر تھیم اس کی حمایت کرتی ہو)"
+}
\ No newline at end of file
diff --git a/public/language/ur/admin/settings/uploads.json b/public/language/ur/admin/settings/uploads.json
new file mode 100644
index 0000000000..289d295862
--- /dev/null
+++ b/public/language/ur/admin/settings/uploads.json
@@ -0,0 +1,47 @@
+{
+ "posts": "پوسٹس",
+ "orphans": "غیر استعمال شدہ فائلیں",
+ "private": "اپ لوڈ کی گئی فائلیں نجی ہوں",
+ "strip-exif-data": "EXIF ڈیٹا ہٹائیں",
+ "preserve-orphaned-uploads": "پوسٹ حذف ہونے کے بعد بھی اپ لوڈ کی گئی فائلوں کو ڈسک پر رکھیں",
+ "orphanExpiryDays": "غیر استعمال شدہ فائلوں کو رکھنے کے دنوں کی تعداد",
+ "orphanExpiryDays-help": "اس تعداد کے دنوں کے بعد غیر استعمال شدہ اپ لوڈ کی گئی فائلیں حذف کر دی جائیں گی۔ اس فعالیت کو غیر فعال کرنے کے لیے 0 سیٹ کریں یا خالی چھوڑ دیں۔",
+ "private-extensions": "نجی ہونے والی فائل ایکسٹینشنز",
+ "private-uploads-extensions-help": "نجی ہونے والی فائل ایکسٹینشنز کی فہرست کوموں سے الگ کرکے درج کریں (مثال کے طور پر pdf,xls,doc)۔ اگر یہ فیلڈ خالی چھوڑا جائے تو تمام فائلیں نجی ہوں گی۔",
+ "resize-image-width-threshold": "تصاویر کو اگر وہ مخصوص چوڑائی سے زیادہ ہوں تو ری سائز کریں",
+ "resize-image-width-threshold-help": "(پکسلز میں؛ طے شدہ: 2000 پکسلز۔ 0 = غیر فعال)",
+ "resize-image-width": "تصاویر کا سائز مخصوص چوڑائی تک کم کریں",
+ "resize-image-width-help": "(پکسلز میں؛ طے شدہ: 760 پکسلز۔ 0 = غیر فعال)",
+ "resize-image-keep-original": "ری سائزنگ کے بعد اصل تصویر رکھیں",
+ "resize-image-quality": "تصاویر کی ری سائزنگ کا معیار",
+ "resize-image-quality-help": "ری سائز کی گئی تصاویر کے فائل سائز کو کم کرنے کے لیے کم معیار استعمال کریں۔",
+ "max-file-size": "فائلوں کا زیادہ سے زیادہ سائز (KiB میں)",
+ "max-file-size-help": "(کیبی بائٹس میں؛ طے شدہ: 2048 KiB)",
+ "reject-image-width": "تصاویر کی زیادہ سے زیادہ چوڑائی (پکسلز میں)",
+ "reject-image-width-help": "جن تصاویر کی چوڑائی اس قیمت سے زیادہ ہوگی وہ مسترد کر دی جائیں گی۔",
+ "reject-image-height": "تصاویر کی زیادہ سے زیادہ اونچائی (پکسلز میں)",
+ "reject-image-height-help": "جن تصاویر کی اونچائی اس قیمت سے زیادہ ہوگی وہ مسترد کر دی جائیں گی۔",
+ "allow-topic-thumbnails": "صارفین کو موضوعات کے لیے تھمب نیلز اپ لوڈ کرنے کی اجازت دیں",
+ "show-post-uploads-as-thumbnails": "Show post uploads as thumbnails",
+ "topic-thumb-size": "موضوعات کے تھمب نیلز کا سائز",
+ "allowed-file-extensions": "اجازت شدہ فائل ایکسٹینشنز",
+ "allowed-file-extensions-help": "فائل ایکسٹینشنز کوموں سے الگ کرکے درج کریں (مثال: pdf,xls,doc)۔ اگر فہرست خالی ہو تو تمام فائل ایکسٹینشنز کی اجازت ہوگی۔",
+ "upload-limit-threshold": "صارفین کے اپ لوڈز کو محدود کریں:",
+ "upload-limit-threshold-per-minute": "%1 منٹ کے لیے",
+ "upload-limit-threshold-per-minutes": "%1 منٹوں کے لیے",
+ "profile-avatars": "پروفائل تصاویر",
+ "allow-profile-image-uploads": "صارفین کو پروفائل تصاویر اپ لوڈ کرنے کی اجازت دیں",
+ "convert-profile-image-png": "اپ لوڈ کی گئی پروفائل تصاویر کو PNG فارمیٹ میں تبدیل کریں",
+ "default-avatar": "طے شدہ حسب ضرورت تصویر",
+ "upload": "اپ لوڈ",
+ "profile-image-dimension": "پروفائل تصویر کا سائز",
+ "profile-image-dimension-help": "(پکسلز میں؛ طے شدہ: 128 پکسلز)",
+ "max-profile-image-size": "پروفائل تصویر کا زیادہ سے زیادہ فائل سائز",
+ "max-profile-image-size-help": "(کیبی بائٹس میں؛ طے شدہ: 256 KiB)",
+ "max-cover-image-size": "کور تصویر کا زیادہ سے زیادہ فائل سائز",
+ "max-cover-image-size-help": "(کیبی بائٹس میں؛ طے شدہ: 2048 KiB)",
+ "keep-all-user-images": "پروفائل تصاویر اور کور تصاویر کے پرانے ورژن سرور پر رکھیں",
+ "profile-covers": "پروفائل کورز",
+ "default-covers": "طے شدہ کور تصاویر",
+ "default-covers-help": "ان اکاؤنٹس کے لیے طے شدہ کور تصاویر (کوموں سے الگ کیے گئے) شامل کریں جنہوں نے کوئی کور تصویر اپ لوڈ نہیں کی۔"
+}
diff --git a/public/language/ur/admin/settings/user.json b/public/language/ur/admin/settings/user.json
new file mode 100644
index 0000000000..a33c3201f3
--- /dev/null
+++ b/public/language/ur/admin/settings/user.json
@@ -0,0 +1,98 @@
+{
+ "authentication": "تصدیق",
+ "email-confirm-interval": "صارف دوبارہ تصدیقی ای میل نہیں بھیج سکتا جب تک کہ",
+ "email-confirm-interval2": "منٹ گزر نہ جائیں",
+ "allow-login-with": "لاگ ان کی اجازت دیں بذریعہ",
+ "allow-login-with.username-email": "صارف نام یا ای میل",
+ "allow-login-with.username": "صرف صارف نام",
+ "account-settings": "اکاؤنٹ کی ترتیبات",
+ "gdpr-enabled": "GDPR رضامندی کی درخواست کو فعال کریں",
+ "gdpr-enabled-help": "اگر یہ فعال ہو، تو تمام نئے رجسٹرڈ صارفین کو جنرل ڈیٹا پروٹیکشن ریگولیشن (GDPR) کے مطابق ڈیٹا جمع کرنے اور استعمال کے اعدادوشمار کے لیے اپنی رضامندی واضح طور پر دینی ہوگی۔ نوٹ: GDPR کو فعال کرنے سے موجودہ صارفین کو رضامندی دینے کی ضرورت نہیں ہوتی۔ اگر آپ یہ چاہتے ہیں، تو آپ کو GDPR پلگ ان انسٹال کرنا ہوگا۔",
+ "disable-username-changes": "صارف نام کی تبدیلی کو غیر فعال کریں",
+ "disable-email-changes": "ای میل کی تبدیلی کو غیر فعال کریں",
+ "disable-password-changes": "پاس ورڈ کی تبدیلی کو غیر فعال کریں",
+ "allow-account-deletion": "اکاؤنٹ حذف کرنے کی اجازت دیں",
+ "hide-fullname": "صارفین سے مکمل نام چھپائیں",
+ "hide-email": "صارفین سے ای میل چھپائیں",
+ "show-fullname-as-displayname": "اگر موجود ہو تو صارف کا مکمل نام دکھائیں",
+ "themes": "تھیمز",
+ "disable-user-skins": "صارفین کو اپنی سکنز منتخب کرنے سے روکیں",
+ "account-protection": "اکاؤنٹ کی حفاظت",
+ "admin-relogin-duration": "ایڈمنسٹریٹر کا دوبارہ لاگ ان (منٹوں میں)",
+ "admin-relogin-duration-help": "ایک مخصوص وقت کے بعد ایڈمنسٹریٹو سیکشن تک رسائی کے لیے دوبارہ لاگ ان کی ضرورت ہوگی۔ اسے غیر فعال کرنے کے لیے 0 سیٹ کریں۔",
+ "login-attempts": "ایک گھنٹے میں لاگ ان کی کوششوں کی تعداد",
+ "login-attempts-help": "اگر صارف کی لاگ ان کوششیں اس حد سے تجاوز کر جاتی ہیں، تو اکاؤنٹ ایک مخصوص وقت کے لیے مقفل ہو جائے گا۔",
+ "lockout-duration": "اکاؤنٹ کے مقفل ہونے کی مدت (منٹوں میں)",
+ "login-days": "صارف کے لاگ ان سیشن کو یاد رکھنے کے دنوں کی تعداد",
+ "password-expiry-days": "ایک مخصوص مدت کے دنوں میں پاس ورڈ کی تبدیلی کی ضرورت",
+ "session-time": "سیشن کی مدت",
+ "session-time-days": "دن",
+ "session-time-seconds": "سیکنڈز",
+ "session-time-help": "یہ قیمتیں صارفین کے لاگ ان رہنے کی مدت کا تعین کرنے کے لیے استعمال ہوتی ہیں اگر وہ لاگ ان کے وقت 'مجھے یاد رکھیں' پر نشان لگاتے ہیں۔ نوٹ کریں کہ ان میں سے صرف ایک قیمت استعمال ہوگی۔ اگر سیکنڈز کی کوئی قیمت نہیں ہے، تو دنوں کی قیمت استعمال ہوگی۔ اگر دنوں کی بھی کوئی قیمت نہیں ہے، تو طے شدہ قیمت 14 دن استعمال ہوگی۔",
+ "session-duration": "سیشن کی مدت اگر 'مجھے یاد رکھیں' پر نشان نہ لگایا گیا ہو (سیکنڈز میں)",
+ "session-duration-help": "طے شدہ طور پر (یا اگر قیمت 0 ہو) صارف اس وقت تک لاگ ان رہے گا جب تک کہ اس کا سیشن ختم نہ ہو جائے (عام طور پر جب براؤزر یا ٹیب بند ہو جائے)۔ اگر آپ بالکل درست وقت (سیکنڈز میں) متعین کرنا چاہتے ہیں جس کے بعد صارف کا سیشن ختم ہو جائے تو اس ترتیب کا استعمال کریں۔",
+ "online-cutoff": "منٹوں کی تعداد جس کے بعد صارف غیر فعال سمجھا جائے گا",
+ "online-cutoff-help": "اگر صارف اس مدت میں کوئی سرگرمی نہیں کرتا، تو اسے غیر فعال سمجھا جائے گا اور اسے ریئل ٹائم اطلاعات نہیں ملیں گی۔",
+ "registration": "صارفین کی رجسٹریشن",
+ "registration-type": "رجسٹریشن کی قسم",
+ "registration-approval-type": "رجسٹریشن کی منظوری کی قسم",
+ "registration-type.normal": "عام",
+ "registration-type.admin-approval": "ایڈمنسٹریٹر کی منظوری",
+ "registration-type.admin-approval-ip": "IP ایڈریس کے لحاظ سے ایڈمنسٹریٹر کی منظوری",
+ "registration-type.invite-only": "صرف دعوت نامہ",
+ "registration-type.admin-invite-only": "صرف ایڈمنسٹریٹر کی دعوت",
+ "registration-type.disabled": "کوئی رجسٹریشن نہیں",
+ "registration-type.help": "عام — صارفین /register صفحہ سے رجسٹر کر سکتے ہیں۔ \nصرف دعوت نامہ — صارفین صارفین صفحہ سے دوسروں کو دعوت دے سکتے ہیں۔ \nصرف ایڈمنسٹریٹر کی دعوت — صرف ایڈمنسٹریٹرز صارفین اور صارفین کے انتظام صفحات سے دوسروں کو دعوت دے سکتے ہیں۔ \nکوئی رجسٹریشن نہیں — صارفین رجسٹر نہیں کر سکتے۔ ",
+ "registration-approval-type.help": "عام — صارفین فوری طور پر رجسٹر ہو جاتے ہیں۔ \nایڈمنسٹریٹر کی منظوری — صارفین کی رجسٹریشنز منظوری کی قطار میں رکھی جاتی ہیں، جن کا ایڈمنسٹریٹرز جائزہ لیتے ہیں۔ \nIP ایڈریس کے لحاظ سے ایڈمنسٹریٹر کی منظوری — نئے صارفین عام طریقے سے رجسٹر ہوتے ہیں، لیکن جن کے IP ایڈریس سے پہلے ہی دوسرے اکاؤنٹس رجسٹر ہو چکے ہیں انہیں ایڈمنسٹریٹر کی منظوری کی ضرورت ہوتی ہے۔ ",
+ "registration-queue-auto-approve-time": "خودکار منظوری کا وقت",
+ "registration-queue-auto-approve-time-help": "صارف کے خودکار طور پر منظور ہونے سے پہلے گھنٹوں کی تعداد۔ 0 = غیر فعال۔",
+ "registration-queue-show-average-time": "نئے صارف کی منظوری کا اوسط وقت صارفین کو دکھائیں",
+ "registration.max-invites": "صارف کے لیے زیادہ سے زیادہ دعوتوں کی تعداد",
+ "max-invites": "صارف کے لیے زیادہ سے زیادہ دعوتوں کی تعداد",
+ "max-invites-help": "0 = کوئی پابندی نہیں۔ ایڈمنسٹریٹرز لامحدود دعوتیں بھیج سکتے ہیں۔ یہ قیمت صرف اس وقت استعمال ہوتی ہے جب 'صرف دعوت نامہ' موڈ منتخب کیا گیا ہو۔",
+ "invite-expiration": "دعوتوں کی میعاد",
+ "invite-expiration-help": "وہ دنوں کی تعداد جس کے بعد دعوتیں ناکارہ ہو جاتی ہیں۔",
+ "min-username-length": "صارف نام کی کم سے کم لمبائی",
+ "max-username-length": "صارف نام کی زیادہ سے زیادہ لمبائی",
+ "min-password-length": "پاس ورڈ کی کم سے کم لمبائی",
+ "min-password-strength": "پاس ورڈ کی کم سے کم پیچیدگی",
+ "max-about-me-length": "صارفین کے اپنے بارے میں معلومات کی زیادہ سے زیادہ لمبائی",
+ "terms-of-use": "فورم کے استعمال کے شرائط (خالی چھوڑیں تو کوئی نہیں ہوں گی)",
+ "user-search": "صارف کی تلاش",
+ "user-search-results-per-page": "تلاش کے نتائج میں دکھائے جانے والے صارفین کی تعداد",
+ "default-user-settings": "صارفین کی طے شدہ ترتیبات",
+ "show-email": "ای میل دکھائیں",
+ "show-fullname": "مکمل نام دکھائیں",
+ "restrict-chat": "صرف ان صارفین سے پیغامات کی اجازت دیں جنہیں میں فالو کرتا ہوں",
+ "disable-incoming-chats": "آنے والے پیغامات غیر فعال کریں",
+ "outgoing-new-tab": "باہری لنکس کو نئے ٹیب میں کھولیں",
+ "topic-search": "موضوعات میں تلاش کو فعال کریں",
+ "update-url-with-post-index": "موضوعات دیکھتے وقت ایڈریس بار کو پوسٹ نمبر کے ساتھ اپ ڈیٹ کریں",
+ "digest-freq": "ڈائجسٹ کے لیے سبسکرائب کریں",
+ "digest-freq.off": "غیر فعال",
+ "digest-freq.daily": "روزانہ",
+ "digest-freq.weekly": "ہفتہ وار",
+ "digest-freq.biweekly": "ہر دو ہفتوں بعد",
+ "digest-freq.monthly": "ماہانہ",
+ "email-chat-notifs": "اگر میں آن لائن نہ ہوں تو نئے گفتگو کے پیغام کی صورت میں ای میل بھیجیں",
+ "email-post-notif": "جن موضوعات کے لیے میں سبسکرائب ہوں ان میں جواب آنے پر ای میل بھیجیں",
+ "follow-created-topics": "آپ کے بنائے ہوئے موضوعات کو فالو کریں",
+ "follow-replied-topics": "جن موضوعات میں آپ جواب دیتے ہیں ان کو فالو کریں",
+ "default-notification-settings": "اطلاعات کی طے شدہ ترتیبات",
+ "categoryWatchState": "زمرہ جات کی نگرانی کے لیے طے شدہ حالت",
+ "categoryWatchState.tracking": "فالو کریں",
+ "categoryWatchState.notwatching": "نگرانی نہ کریں",
+ "categoryWatchState.ignoring": "نظرانداز کریں",
+ "restrictions-new": "نئے صارفین کے لیے پابندیاں",
+ "restrictions.rep-threshold": "اس پابندی کو ہٹانے کے لیے درکار ساکھ",
+ "restrictions.seconds-between-new": "نئے صارفین کے لیے پوسٹس کے درمیان سیکنڈز کی تعداد",
+ "restrictions.seconds-before-new": "نئے صارفین کے پہلی بار پوسٹ کرنے سے پہلے سیکنڈز کی تعداد",
+ "restrictions.seconds-edit-after-new": "نئے صارفین کے ذریعے پوسٹس کی ترمیم کے لیے سیکنڈز کی تعداد (0 = غیر فعال)",
+ "restrictions.milliseconds-between-messages": "نئے صارفین کے لیے گفتگو کے پیغامات کے درمیان وقت (ملی سیکنڈز)",
+ "restrictions.groups-exempt-from-new-user-restrictions": "نئے صارفین کی پابندیوں سے مستثنیٰ گروپس منتخب کریں",
+ "guest-settings": "مہمانوں کی ترتیبات",
+ "handles.enabled": "مہمانوں کے لیے ناموں کی اجازت دیں",
+ "handles.enabled-help": "یہ خصوصیت ایک نیا فیلڈ فراہم کرتی ہے جو مہمانوں کو ہر پوسٹ کے لیے ایک نام منتخب کرنے کی اجازت دیتی ہے۔ اگر غیر فعال ہو، تو سب کا نام صرف 'مہمان' ہوگا۔",
+ "topic-views.enabled": "مہمان موضوعات کے مناظر کی تعداد میں حصہ ڈالیں",
+ "reply-notifications.enabled": "مہمان اپنے جوابات کے لیے اطلاعات بھیجنے کا سبب بن سکیں"
+}
\ No newline at end of file
diff --git a/public/language/ur/admin/settings/web-crawler.json b/public/language/ur/admin/settings/web-crawler.json
new file mode 100644
index 0000000000..24fe7ddd89
--- /dev/null
+++ b/public/language/ur/admin/settings/web-crawler.json
@@ -0,0 +1,10 @@
+{
+ "crawlability-settings": "کرال ایبلٹی کی ترتیبات",
+ "robots-txt": "حسب ضرورت 'Robots.txt' فائل طے شدہ فائل استعمال کرنے کے لیے خالی چھوڑ دیں",
+ "sitemap-feed-settings": "ویب سائٹ کے نقشے اور فیڈز کی ترتیبات",
+ "disable-rss-feeds": "RSS فیڈز کو غیر فعال کریں",
+ "disable-sitemap-xml": "ویب سائٹ کا نقشہ ('Sitemap.xml') غیر فعال کریں",
+ "sitemap-topics": "ویب سائٹ کے نقشے میں دکھائے جانے والے موضوعات کی تعداد",
+ "clear-sitemap-cache": "ویب سائٹ کے نقشے کا کیش صاف کریں",
+ "view-sitemap": "ویب سائٹ کا نقشہ دیکھیں"
+}
\ No newline at end of file
diff --git a/public/language/ur/aria.json b/public/language/ur/aria.json
new file mode 100644
index 0000000000..93035daebb
--- /dev/null
+++ b/public/language/ur/aria.json
@@ -0,0 +1,10 @@
+{
+ "post-sort-option": "پوسٹس کی ترتیب کے لیے ترتیبات، %1",
+ "topic-sort-option": "موضوعات کی ترتیب کے لیے ترتیبات، %1",
+ "user-avatar-for": "%1 کے لیے صارف کا اوتار",
+ "profile-page-for": "%1 کے لیے پروفائل صفحہ",
+ "user-watched-tags": "صارف کی طرف سے دیکھے گئے ٹیگز",
+ "delete-upload-button": "اپ لوڈ کو حذف کرنے کا بٹن",
+ "group-page-link-for": "%1 کے لیے گروپ صفحہ کا لنک",
+ "show-crossposts": "Show Cross-posts"
+}
\ No newline at end of file
diff --git a/public/language/ur/category.json b/public/language/ur/category.json
new file mode 100644
index 0000000000..3c60ef0b98
--- /dev/null
+++ b/public/language/ur/category.json
@@ -0,0 +1,30 @@
+{
+ "category": "زمرہ",
+ "subcategories": "ذیلی زمرہ جات",
+ "uncategorized": "بغیر زمرہ",
+ "uncategorized.description": "وہ موضوعات جو کسی مخصوص زمرے میں فٹ نہیں ہوتے",
+ "handle.description": "اس زمرے کو کھلی سوشل نیٹ ورک سے %1 شناخت کنندہ کے ذریعے فالو کیا جا سکتا ہے",
+ "new-topic-button": "نیا موضوع",
+ "guest-login-post": "پوسٹ کرنے کے لیے لاگ ان کریں",
+ "no-topics": "اس زمرے میں ابھی تک کوئی موضوعات نہیں ہیں۔ کیوں نہ آپ ایک بنائیں؟",
+ "no-followers": "اس ویب سائٹ پر کوئی بھی اس زمرے کو فالو یا نگرانی نہیں کر رہا۔ اس زمرے کو فالو یا نگرانی شروع کریں تاکہ اس کے بارے میں اطلاعات موصول ہوں۔",
+ "browsing": "براؤزنگ",
+ "no-replies": "کوئی جوابات نہیں",
+ "no-new-posts": "کوئی نئی پوسٹس نہیں۔",
+ "watch": "نگرانی",
+ "ignore": "نظرانداز",
+ "watching": "آپ نگرانی کر رہے ہیں",
+ "tracking": "آپ فالو کر رہے ہیں",
+ "not-watching": "آپ نگرانی نہیں کر رہے",
+ "ignoring": "آپ نظرانداز کر رہے ہیں",
+ "watching.description": "میں نئے موضوعات کے لیے اطلاعات موصول کرنا چاہتا ہوں۔ میں چاہتا ہوں کہ موضوعات غیر پڑھے ہوئے اور حالیہ فہرستوں میں دکھائی دیں۔",
+ "tracking.description": "موضوعات غیر پڑھے ہوئے اور حالیہ فہرستوں میں دکھائی دیں",
+ "not-watching.description": "موضوعات غیر پڑھے ہوئے فہرست میں نہ دکھائی دیں، صرف حالیہ فہرست میں",
+ "ignoring.description": "موضوعات نہ تو غیر پڑھے ہوئے میں دکھائی دیں اور نہ ہی حالیہ فہرست میں",
+ "watching.message": "آپ اب اس زمرے اور اس کے ذیلی زمرہ جات میں نئی چیزوں کی نگرانی کر رہے ہیں",
+ "tracking.message": "آپ اب اس زمرے اور اس کے ذیلی زمرہ جات میں نئی چیزوں کو فالو کر رہے ہیں",
+ "notwatching.message": "آپ اب اس زمرے اور اس کے ذیلی زمرہ جات میں نئی چیزوں کی نگرانی نہیں کر رہے",
+ "ignoring.message": "آپ اب اس زمرے اور اس کے تمام ذیلی زمرہ جات میں نئی چیزوں کو نظرانداز کر رہے ہیں",
+ "watched-categories": "نگرانی شدہ زمرہ جات",
+ "x-more-categories": "مزید %1 زمرہ جات"
+}
\ No newline at end of file
diff --git a/public/language/ur/email.json b/public/language/ur/email.json
new file mode 100644
index 0000000000..4edf2583df
--- /dev/null
+++ b/public/language/ur/email.json
@@ -0,0 +1,61 @@
+{
+ "test-email.subject": "ٹیسٹ ای میل",
+ "password-reset-requested": "پاس ورڈ ری سیٹ کی درخواست موصول ہوئی!",
+ "welcome-to": "%1 میں خوش آمدید",
+ "invite": "%1 سے دعوت",
+ "greeting-no-name": "ہیلو",
+ "greeting-with-name": "ہیلو، %1",
+ "email.verify-your-email.subject": "براہ کرم اپنے ای میل کی تصدیق کریں",
+ "email.verify.text1": "آپ نے اپنے ای میل ایڈریس کو تبدیل کرنے یا تصدیق کرنے کی درخواست کی ہے",
+ "email.verify.text2": "سیکیورٹی وجوہات کی بنا پر، ہم آپ کے ای میل ایڈریس کو صرف اس وقت تبدیل یا تصدیق کر سکتے ہیں جب اس کی ملکیت ای میل کے ذریعے پہلے سے ثابت ہو چکی ہو۔ اگر آپ نے یہ درخواست نہیں کی، تو آپ کو کچھ کرنے کی ضرورت نہیں ہے۔",
+ "email.verify.text3": "اس ای میل ایڈریس کی تصدیق کے بعد، ہم آپ کے موجودہ ایڈریس کو اس (%1) سے تبدیل کر دیں گے۔",
+ "welcome.text1": "%1 میں رجسٹر ہونے کے لیے شکریہ",
+ "welcome.text2": "اپنے اکاؤنٹ کو مکمل طور پر فعال کرنے کے لیے، آپ کو اس ای میل کی تصدیق کرنی ہوگی جس کے ساتھ آپ نے رجسٹریشن کی تھی۔",
+ "welcome.text3": "آپ کی رجسٹریشن کی درخواست ایڈمنسٹریٹر نے قبول کر لی ہے۔ اب آپ اپنے صارف نام اور پاس ورڈ کے ساتھ لاگ ان کر سکتے ہیں۔",
+ "welcome.cta": "اپنے ای میل کی تصدیق کے لیے یہاں کلک کریں۔",
+ "invitation.text1": "%1 نے آپ کو %2 میں شامل ہونے کی دعوت دی ہے",
+ "invitation.text2": "آپ کی دعوت %1 دنوں کے بعد ختم ہو جائے گی۔",
+ "invitation.cta": "اپنا اکاؤنٹ بنانے کے لیے یہاں کلک کریں۔",
+ "reset.text1": "ہمیں آپ کے پاس ورڈ کو ری سیٹ کرنے کی درخواست موصول ہوئی ہے، غالباً کیونکہ آپ اسے بھول گئے ہیں۔ اگر یہ درست نہیں ہے، تو براہ کرم اس ای میل کو نظر انداز کریں۔",
+ "reset.text2": "پاس ورڈ ری سیٹ کے عمل کو جاری رکھنے کے لیے، براہ کرم درج ذیل لنک پر عمل کریں:",
+ "reset.cta": "اپنا پاس ورڈ ری سیٹ کرنے کے لیے یہاں کلک کریں",
+ "reset.notify.subject": "پاس ورڈ کامیابی سے تبدیل کر دیا گیا",
+ "reset.notify.text1": "ہم آپ کو مطلع کر رہے ہیں کہ %1 پر، آپ کا پاس ورڈ کامیابی سے تبدیل کر دیا گیا ہے۔",
+ "reset.notify.text2": "اگر آپ نے یہ درخواست نہیں کی، تو براہ کرم فوراً ایڈمنسٹریٹر سے رابطہ کریں۔",
+ "digest.unread-rooms": "غیر پڑھے ہوئے کمرے",
+ "digest.room-name-unreadcount": "%1 (%2 غیر پڑھے ہوئے)",
+ "digest.latest-topics": "%1 سے تازہ ترین موضوعات",
+ "digest.top-topics": "%1 سے سب سے دلچسپ موضوعات",
+ "digest.popular-topics": "%1 سے مقبول موضوعات",
+ "digest.cta": "%1 دیکھنے کے لیے یہاں کلک کریں",
+ "digest.unsub.info": "یہ ڈائجسٹ آپ کو آپ کی سبسکرپشن کی ترتیبات کی وجہ سے بھیجا گیا ہے۔",
+ "digest.day": "دن",
+ "digest.week": "ہفتہ",
+ "digest.month": "ماہ",
+ "digest.subject": "%1 کے لیے ڈائجسٹ",
+ "digest.title.day": "آپ کا روزانہ ڈائجسٹ",
+ "digest.title.week": "آپ کا ہفتہ وار ڈائجسٹ",
+ "digest.title.month": "آپ کا ماہانہ ڈائجسٹ",
+ "notif.chat.new-message-from-user": "صارف '%1' سے نیا پیغام",
+ "notif.chat.new-message-from-user-in-room": "%1 سے کمرے %2 میں نیا پیغام",
+ "notif.chat.cta": "بحث جاری رکھنے کے لیے یہاں کلک کریں",
+ "notif.chat.unsub.info": "یہ گفتگو کا اطلاع آپ کو آپ کی سبسکرپشن کی ترتیبات کی وجہ سے بھیجا گیا ہے۔",
+ "notif.post.unsub.info": "یہ پوسٹ کا اطلاع آپ کو آپ کی سبسکرپشن کی ترتیبات کی وجہ سے بھیجا گیا ہے۔",
+ "notif.post.unsub.one-click": "یا آپ اس طرح کے مستقبل کے پیغامات سے سبسکرپشن ختم کر سکتے ہیں، یہاں کلک کرکے",
+ "notif.cta": "فورم کی طرف",
+ "notif.cta-new-reply": "پوسٹ دیکھیں",
+ "notif.cta-new-chat": "گفتگو دیکھیں",
+ "notif.test.short": "اطلاعات کی جانچ",
+ "notif.test.long": "یہ ایک ٹیسٹ ای میل ہے تاکہ یہ تصدیق کی جا سکے کہ آپ کے NodeBB کے لیے ای میل بھیجنے والا صحیح طریقے سے ترتیب دیا گیا ہے۔",
+ "test.text1": "یہ ایک ٹیسٹ ای میل ہے تاکہ یہ تصدیق کی جا سکے کہ آپ کے NodeBB کے لیے ای میل بھیجنے والا صحیح طریقے سے ترتیب دیا گیا ہے۔",
+ "unsub.cta": "ان ترتیبات کو تبدیل کرنے کے لیے یہاں کلک کریں",
+ "unsubscribe": "سبسکرپشن ختم کریں",
+ "unsub.success": "آپ کو اب %1 کے میلنگ لسٹ سے ای میلز موصول نہیں ہوں گے",
+ "unsub.failure.title": "سبسکرپشن ختم نہیں کیا جا سکا",
+ "unsub.failure.message": "بدقسمتی سے، ہم آپ کو میلنگ لسٹ سے سبسکرپشن ختم نہیں کر سکے، کیونکہ لنک میں کوئی مسئلہ تھا۔ تاہم، آپ اپنی ای میل ترجیحات کو صارف کی ترتیبات میں تبدیل کر سکتے ہیں۔
(غلطی: %1)",
+ "banned.subject": "آپ کو %1 سے بلاک کر دیا گیا ہے",
+ "banned.text1": "صارف %1 کو %2 سے بلاک کر دیا گیا ہے۔",
+ "banned.text2": "یہ پابندی %1 تک نافذ رہے گی۔",
+ "banned.text3": "آپ پر پابندی لگنے کی وجہ یہ ہے:",
+ "closing": "شکریہ!"
+}
\ No newline at end of file
diff --git a/public/language/ur/error.json b/public/language/ur/error.json
new file mode 100644
index 0000000000..29de1b061f
--- /dev/null
+++ b/public/language/ur/error.json
@@ -0,0 +1,268 @@
+{
+ "invalid-data": "غلط ڈیٹا",
+ "invalid-json": "غلط JSON",
+ "wrong-parameter-type": "پراپرٹی '%1' کے لیے %3 قسم کی قدر متوقع تھی، لیکن اس کے بجائے %2 موصول ہوا",
+ "required-parameters-missing": "اس API کال سے ضروری پیرامیٹرز غائب ہیں: %1",
+ "reserved-ip-address": "محفوظ شدہ رینجز سے IP ایڈریسز پر نیٹ ورک کی درخواستوں کی اجازت نہیں ہے۔",
+ "not-logged-in": "ایسا لگتا ہے کہ آپ نے لاگ ان نہیں کیا۔",
+ "account-locked": "آپ کا اکاؤنٹ عارضی طور پر مقفل کر دیا گیا ہے",
+ "search-requires-login": "تلاش کے لیے رجسٹرڈ اکاؤنٹ درکار ہے! براہ کرم لاگ ان کریں یا رجسٹر کریں!",
+ "goback": "پچھلے صفحے پر واپس جانے کے لیے 'بیک' دبائیں",
+ "invalid-cid": "غلط زمرہ شناخت کنندہ",
+ "invalid-tid": "غلط موضوع شناخت کنندہ",
+ "invalid-pid": "غلط پوسٹ شناخت کنندہ",
+ "invalid-uid": "غلط صارف شناخت کنندہ",
+ "invalid-mid": "غلط گفتگو پیغام شناخت کنندہ",
+ "invalid-date": "ایک درست تاریخ متعین کی جانی چاہیے",
+ "invalid-username": "غلط صارف نام",
+ "invalid-email": "غلط ای میل",
+ "invalid-fullname": "غلط مکمل نام",
+ "invalid-location": "غلط مقام",
+ "invalid-birthday": "غلط تاریخ پیدائش",
+ "invalid-title": "غلط عنوان",
+ "invalid-user-data": "غلط صارف ڈیٹا",
+ "invalid-password": "غلط پاس ورڈ",
+ "invalid-login-credentials": "غلط تصدیقی معلومات",
+ "invalid-username-or-password": "براہ کرم صارف نام اور پاس ورڈ درج کریں",
+ "invalid-search-term": "غلط تلاش کا جملہ",
+ "invalid-url": "غلط ایڈریس",
+ "invalid-event": "غلط ایونٹ: %1",
+ "local-login-disabled": "مقامی لاگ ان سسٹم غیر مراعات یافتہ اکاؤنٹس کے لیے غیر فعال ہے۔",
+ "csrf-invalid": "ہم آپ کو لاگ ان نہیں کر سکے، غالباً کیونکہ آپ کا سیشن ختم ہو چکا ہے۔ براہ کرم دوبارہ کوشش کریں",
+ "invalid-path": "غلط راستہ",
+ "folder-exists": "اس نام کا فولڈر پہلے سے موجود ہے",
+ "invalid-pagination-value": "غلط صفحہ بندی کی قدر، یہ %1 اور %2 کے درمیان ہونی چاہیے",
+ "username-taken": "صارف نام پہلے سے لیا جا چکا ہے",
+ "email-taken": "ای میل ایڈریس پہلے سے لیا جا چکا ہے۔",
+ "email-nochange": "درج کردہ ای میل موجودہ ای میل جیسا ہی ہے۔",
+ "email-invited": "اس ای میل پر پہلے سے دعوت بھیجی جا چکی ہے",
+ "email-not-confirmed": "کچھ زمرہ جات اور موضوعات میں پوسٹنگ اس وقت تک ممکن نہیں ہوگی جب تک آپ کا ای میل تصدیق نہ ہو جائے۔ تصدیقی ای میل بھیجنے کے لیے یہاں کلک کریں۔",
+ "email-not-confirmed-chat": "جب تک آپ کا ای میل تصدیق نہ ہو جائے، آپ گفتگو میں لکھ نہیں سکیں گے۔ براہ کرم اپنے ای میل کی تصدیق کے لیے یہاں کلک کریں۔",
+ "email-not-confirmed-email-sent": "آپ کا ای میل ابھی تک تصدیق شدہ نہیں ہے۔ براہ کرم اپنے ان باکس میں تصدیقی ای میل چیک کریں۔ جب تک آپ کا ای میل تصدیق نہ ہو جائے، آپ پیغامات پوسٹ یا گفتگو میں لکھ نہیں سکیں گے۔",
+ "no-email-to-confirm": "آپ نے کوئی ای میل متعین نہیں کیا۔ اکاؤنٹ کی بحالی کے لیے ای میل ضروری ہے، اور کچھ زمرہ جات میں لکھنے کے لیے بھی اس کی ضرورت ہو سکتی ہے۔ ای میل درج کرنے کے لیے یہاں کلک کریں۔",
+ "user-doesnt-have-email": "صارف '%1' نے کوئی ای میل متعین نہیں کیا۔",
+ "email-confirm-failed": "ہم آپ کے ای میل کی تصدیق نہیں کر سکے۔ براہ کرم بعد میں دوبارہ کوشش کریں۔",
+ "confirm-email-already-sent": "تصدیقی ای میل پہلے سے بھیج دیا گیا ہے۔ براہ کرم نئی ای میل بھیجنے سے پہلے %1 منٹ انتظار کریں۔",
+ "confirm-email-expired": "تصدیقی ای میل کی میعاد ختم ہو چکی ہے",
+ "sendmail-not-found": "’sendmail‘ کا قابل عمل فائل نہیں مل سکا۔ براہ کرم یقینی بنائیں کہ یہ انسٹال ہے اور NodeBB کو چلانے والے صارف کے لیے قابل عمل ہے۔",
+ "digest-not-enabled": "اس صارف کے لیے ڈائجسٹ فعال نہیں ہیں، یا سسٹم کی طے شدہ ترتیب یہ ہے کہ ڈائجسٹ نہ بھیجیں",
+ "username-too-short": "صارف نام بہت چھوٹا ہے",
+ "username-too-long": "صارف نام بہت لمبا ہے",
+ "password-too-long": "پاس ورڈ بہت لمبا ہے",
+ "reset-rate-limited": "پاس ورڈ ری سیٹ کی بہت زیادہ درخواستیں (ریٹ کی حد ہے)",
+ "reset-same-password": "براہ کرم موجودہ پاس ورڈ سے مختلف پاس ورڈ استعمال کریں",
+ "user-banned": "صارف پر پابندی لگائی گئی ہے",
+ "user-banned-reason": "معذرت، اس اکاؤنٹ پر پابندی لگائی گئی ہے (وجہ: %1)",
+ "user-banned-reason-until": "معذرت، اس اکاؤنٹ پر %1 تک پابندی لگائی گئی ہے (وجہ: %2)",
+ "user-too-new": "معذرت، لیکن آپ کو اپنی پہلی پوسٹ کرنے سے پہلے کم از کم %1 سیکنڈ انتظار کرنا ہوگا",
+ "blacklisted-ip": "معذرت، لیکن آپ کا IP ایڈریس اس کمیونٹی میں استعمال کے لیے ممنوع ہے۔ اگر آپ کو لگتا ہے کہ یہ غلطی ہے، تو براہ کرم ایڈمنسٹریٹر سے رابطہ کریں۔",
+ "cant-blacklist-self-ip": "آپ اپنا IP ایڈریس بلیک لسٹ میں شامل نہیں کر سکتے",
+ "ban-expiry-missing": "براہ کرم اس پابندی کے لیے اختتامی تاریخ متعین کریں",
+ "no-category": "زمرہ موجود نہیں ہے",
+ "no-topic": "موضوع موجود نہیں ہے",
+ "no-post": "پوسٹ موجود نہیں ہے",
+ "no-group": "گروپ موجود نہیں ہے",
+ "no-user": "صارف موجود نہیں ہے",
+ "no-teaser": "ٹیزر موجود نہیں ہے",
+ "no-flag": "رپورٹ موجود نہیں ہے",
+ "no-chat-room": "گفتگو کا کمرہ موجود نہیں ہے",
+ "no-privileges": "آپ کے پاس اس عمل کے لیے کافی اختیارات نہیں ہیں۔",
+ "category-disabled": "زمرہ غیر فعال ہے",
+ "post-deleted": "پوسٹ حذف کر دی گئی ہے",
+ "topic-locked": "موضوع مقفل ہے",
+ "post-edit-duration-expired": "آپ اپنی پوسٹس کو پوسٹ کرنے کے %1 سیکنڈ تک ترمیم کر سکتے ہیں",
+ "post-edit-duration-expired-minutes": "آپ اپنی پوسٹس کو پوسٹ کرنے کے %1 منٹ تک ترمیم کر سکتے ہیں",
+ "post-edit-duration-expired-minutes-seconds": "آپ اپنی پوسٹس کو پوسٹ کرنے کے %1 منٹ اور %2 سیکنڈ تک ترمیم کر سکتے ہیں",
+ "post-edit-duration-expired-hours": "آپ اپنی پوسٹس کو پوسٹ کرنے کے %1 گھنٹوں تک ترمیم کر سکتے ہیں",
+ "post-edit-duration-expired-hours-minutes": "آپ اپنی پوسٹس کو پوسٹ کرنے کے %1 گھنٹوں اور %2 منٹ تک ترمیم کر سکتے ہیں",
+ "post-edit-duration-expired-days": "آپ اپنی پوسٹس کو پوسٹ کرنے کے %1 دنوں تک ترمیم کر سکتے ہیں",
+ "post-edit-duration-expired-days-hours": "آپ اپنی پوسٹس کو پوسٹ کرنے کے %1 دنوں اور %2 گھنٹوں تک ترمیم کر سکتے ہیں",
+ "post-delete-duration-expired": "آپ اپنی پوسٹس کو پوسٹ کرنے کے %1 سیکنڈ تک حذف کر سکتے ہیں",
+ "post-delete-duration-expired-minutes": "آپ اپنی پوسٹس کو پوسٹ کرنے کے %1 منٹ تک حذف کر سکتے ہیں",
+ "post-delete-duration-expired-minutes-seconds": "آپ اپنی پوسٹس کو پوسٹ کرنے کے %1 منٹ اور %2 سیکنڈ تک حذف کر سکتے ہیں",
+ "post-delete-duration-expired-hours": "آپ اپنی پوسٹس کو پوسٹ کرنے کے %1 گھنٹوں تک حذف کر سکتے ہیں",
+ "post-delete-duration-expired-hours-minutes": "آپ اپنی پوسٹس کو پوسٹ کرنے کے %1 گھنٹوں اور %2 منٹ تک حذف کر سکتے ہیں",
+ "post-delete-duration-expired-days": "آپ اپنی پوسٹس کو پوسٹ کرنے کے %1 دنوں تک حذف کر سکتے ہیں",
+ "post-delete-duration-expired-days-hours": "آپ اپنی پوسٹس کو پوسٹ کرنے کے %1 دنوں اور %2 گھنٹوں تک حذف کر سکتے ہیں",
+ "cant-delete-topic-has-reply": "آپ اپنا موضوع حذف نہیں کر سکتے کیونکہ اس میں پہلے سے ایک جواب موجود ہے",
+ "cant-delete-topic-has-replies": "آپ اپنا موضوع حذف نہیں کر سکتے کیونکہ اس میں پہلے سے %1 جوابات موجود ہیں",
+ "content-too-short": "براہ کرم پوسٹ کا متن لمبا درج کریں۔ پوسٹس میں کم از کم %1 حروف ہونے چاہئیں۔",
+ "content-too-long": "براہ کرم پوسٹ کا متن مختصر درج کریں۔ پوسٹس میں %1 حروف سے زیادہ نہیں ہونے چاہئیں۔",
+ "title-too-short": "براہ کرم عنوان لمبا درج کریں۔ عنوانات میں کم از کم %1 حروف ہونے چاہئیں۔",
+ "title-too-long": "براہ کرم عنوان مختصر درج کریں۔ عنوانات میں %1 حروف سے زیادہ نہیں ہونے چاہئیں۔",
+ "category-not-selected": "کوئی زمرہ منتخب نہیں کیا گیا۔",
+ "too-many-posts": "آپ ہر %1 سیکنڈ میں ایک بار پوسٹ کر سکتے ہیں – براہ کرم دوبارہ پوسٹ کرنے سے پہلے کچھ دیر انتظار کریں",
+ "too-many-posts-newbie": "ایک نئے صارف کے طور پر، آپ ہر %1 سیکنڈ میں ایک بار پوسٹ کر سکتے ہیں جب تک کہ آپ %2 ساکھ حاصل نہ کر لیں – براہ کرم دوبارہ پوسٹ کرنے سے پہلے کچھ دیر انتظار کریں",
+ "too-many-posts-newbie-minutes": "ایک نئے صارف کے طور پر، آپ ہر %1 منٹ میں ایک بار پوسٹ کر سکتے ہیں جب تک کہ آپ %2 ساکھ حاصل نہ کر لیں – براہ کرم دوبارہ پوسٹ کرنے سے پہلے کچھ دیر انتظار کریں",
+ "already-posting": "آپ اس وقت پوسٹ کر رہے ہیں",
+ "tag-too-short": "براہ کرم لمبا ٹیگ درج کریں۔ ٹیگز میں کم از کم %1 حروف ہونے چاہئیں",
+ "tag-too-long": "براہ کرم مختصر ٹیگ درج کریں۔ ٹیگز میں %1 حروف سے زیادہ نہیں ہونے چاہئیں",
+ "tag-not-allowed": "ٹیگ کی اجازت نہیں ہے",
+ "not-enough-tags": "ناکافی ٹیگز۔ موضوعات میں کم از کم %1 ٹیگ ہونا چاہیے",
+ "too-many-tags": "بہت زیادہ ٹیگز۔ موضوعات میں %1 ٹیگز سے زیادہ نہیں ہو سکتے",
+ "cant-use-system-tag": "آپ اس سسٹم ٹیگ کو استعمال نہیں کر سکتے۔",
+ "cant-remove-system-tag": "آپ اس سسٹم ٹیگ کو ہٹا نہیں سکتے۔",
+ "still-uploading": "براہ کرم اپ لوڈ مکمل ہونے کا انتظار کریں۔",
+ "file-too-big": "فائل کا زیادہ سے زیادہ اجازت شدہ سائز %1 KB ہے – براہ کرم چھوٹی فائل اپ لوڈ کریں",
+ "guest-upload-disabled": "مہمانوں کے لیے اپ لوڈ کی اجازت نہیں ہے",
+ "cors-error": "CORS کی غلط ترتیبات کی وجہ سے تصویر اپ لوڈ نہیں کی جا سکی",
+ "upload-ratelimit-reached": "آپ نے ایک ساتھ بہت زیادہ فائلیں اپ لوڈ کی ہیں۔ براہ کرم بعد میں دوبارہ کوشش کریں۔",
+ "upload-error-fallback": "تصویر اپ لوڈ نہیں کی جا سکی – %1",
+ "scheduling-to-past": "مستقبل کی تاریخ منتخب کریں۔",
+ "invalid-schedule-date": "درست تاریخ اور وقت درج کریں۔",
+ "cant-pin-scheduled": "طے شدہ موضوعات کو پن یا ان پن نہیں کیا جا سکتا۔",
+ "cant-merge-scheduled": "طے شدہ موضوعات کو ضم نہیں کیا جا سکتا۔",
+ "cant-move-posts-to-scheduled": "پوسٹس کو طے شدہ موضوع میں منتقل نہیں کیا جا سکتا۔",
+ "cant-move-from-scheduled-to-existing": "طے شدہ موضوع سے پوسٹس کو موجودہ موضوع میں منتقل نہیں کیا جا سکتا۔",
+ "already-bookmarked": "آپ نے اس پوسٹ کو پہلے سے بک مارک کیا ہوا ہے",
+ "already-unbookmarked": "آپ نے اس پوسٹ سے بک مارک پہلے سے ہٹا دیا ہے",
+ "cant-ban-other-admins": "آپ دوسرے ایڈمنسٹریٹرز پر پابندی نہیں لگا سکتے!",
+ "cant-mute-other-admins": "آپ دوسرے ایڈمنسٹریٹرز کو خاموش نہیں کر سکتے!",
+ "user-muted-for-hours": "آپ کو خاموش کر دیا گیا ہے۔ آپ %1 گھنٹوں کے بعد دوبارہ پوسٹ کر سکیں گے",
+ "user-muted-for-minutes": "آپ کو خاموش کر دیا گیا ہے۔ آپ %1 منٹوں کے بعد دوبارہ پوسٹ کر سکیں گے",
+ "cant-make-banned-users-admin": "آپ پابندی والے صارفین کو ایڈمنسٹریٹر کے حقوق نہیں دے سکتے۔",
+ "cant-remove-last-admin": "آپ واحد ایڈمنسٹریٹر ہیں۔ اپنے آپ کو ایڈمنسٹریٹر سے ہٹانے سے پہلے دوسرے صارف کو ایڈمنسٹریٹر بنائیں",
+ "account-deletion-disabled": "اکاؤنٹ حذف کرنا ممنوع ہے",
+ "cant-delete-admin": "اس اکاؤنٹ سے ایڈمنسٹریٹر کے حقوق ہٹائیں اسے حذف کرنے سے پہلے۔",
+ "already-deleting": "پہلے سے حذف ہو رہا ہے",
+ "invalid-image": "غلط تصویر",
+ "invalid-image-type": "غلط تصویر کی قسم۔ اجازت شدہ اقسام ہیں: %1",
+ "invalid-image-extension": "غلط تصویر ایکسٹینشن",
+ "invalid-file-type": "غلط فائل کی قسم۔ اجازت شدہ اقسام ہیں: %1",
+ "invalid-image-dimensions": "تصویر کے طول و عرض بہت بڑے ہیں",
+ "group-name-too-short": "گروپ کا نام بہت چھوٹا ہے",
+ "group-name-too-long": "گروپ کا نام بہت لمبا ہے",
+ "group-already-exists": "اس نام کا گروپ پہلے سے موجود ہے",
+ "group-name-change-not-allowed": "گروپ کے نام کی تبدیلی کی اجازت نہیں ہے",
+ "group-already-member": "صارف پہلے سے اس گروپ کا رکن ہے",
+ "group-not-member": "صارف اس گروپ کا رکن نہیں ہے",
+ "group-needs-owner": "اس گروپ کو کم از کم ایک مالک کی ضرورت ہے",
+ "group-already-invited": "اس صارف کو پہلے سے دعوت دی جا چکی ہے",
+ "group-already-requested": "آپ کی رکنیت کی درخواست پہلے سے بھیجی جا چکی ہے",
+ "group-join-disabled": "آپ اس وقت اس گروپ میں شامل نہیں ہو سکتے",
+ "group-leave-disabled": "آپ اس وقت اس گروپ کو نہیں چھوڑ سکتے",
+ "group-user-not-pending": "صارف کی اس گروپ میں شامل ہونے کی کوئی زیر التواء درخواست نہیں ہے۔",
+ "gorup-user-not-invited": "صارف کو اس گروپ میں شامل ہونے کی دعوت نہیں دی گئی۔",
+ "post-already-deleted": "یہ پوسٹ پہلے سے حذف ہو چکی ہے",
+ "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": "غلط فائل",
+ "uploads-are-disabled": "اپ لوڈ کی اجازت نہیں ہے",
+ "signature-too-long": "معذرت، لیکن آپ کے دستخط میں %1 حروف سے زیادہ نہیں ہونے چاہئیں۔",
+ "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": "آپ نے بہت زیادہ پیغامات بھیج دیے ہیں۔ براہ کرم کچھ دیر انتظار کریں۔",
+ "invalid-chat-message": "غلط پیغام",
+ "chat-message-too-long": "گفتگو کے پیغامات %1 حروف سے زیادہ لمبے نہیں ہو سکتے۔",
+ "cant-edit-chat-message": "آپ کو اس پیغام کو ترمیم کرنے کا اختیار نہیں ہے",
+ "cant-delete-chat-message": "آپ کو اس پیغام کو حذف کرنے کا اختیار نہیں ہے",
+ "chat-edit-duration-expired": "آپ اپنے گفتگو کے پیغامات کو پوسٹ کرنے کے %1 سیکنڈ تک ترمیم کر سکتے ہیں",
+ "chat-delete-duration-expired": "آپ اپنے گفتگو کے پیغامات کو پوسٹ کرنے کے %1 سیکنڈ تک حذف کر سکتے ہیں",
+ "chat-deleted-already": "یہ پیغام پہلے سے حذف ہو چکا ہے۔",
+ "chat-restored-already": "یہ پیغام پہلے سے بحال ہو چکا ہے۔",
+ "chat-room-does-not-exist": "گفتگو کا کمرہ موجود نہیں ہے۔",
+ "cant-add-users-to-chat-room": "گفتگو کے کمرے میں صارفین شامل نہیں کیے جا سکتے۔",
+ "cant-remove-users-from-chat-room": "گفتگو کے کمرے سے صارفین ہٹائے نہیں جا سکتے۔",
+ "chat-room-name-too-long": "کمرا کا نام بہت لمبا ہے۔ نام %1 حروف سے زیادہ لمبے نہیں ہو سکتے۔",
+ "remote-chat-received-too-long": "آپ کو %1 سے ایک پیغام موصول ہوا، لیکن یہ بہت لمبا تھا اور اسے مسترد کر دیا گیا۔",
+ "already-voting-for-this-post": "آپ نے اس پوسٹ کے لیے پہلے سے ووٹ دیا ہے۔",
+ "reputation-system-disabled": "ساکھ کا نظام غیر فعال ہے۔",
+ "downvoting-disabled": "منفی ووٹنگ غیر فعال ہے",
+ "not-enough-reputation-to-chat": "گفتگو میں حصہ لینے کے لیے آپ کی ساکھ کم از کم %1 ہونی چاہیے",
+ "not-enough-reputation-to-upvote": "مثبت ووٹ دینے کے لیے آپ کی ساکھ کم از کم %1 ہونی چاہیے",
+ "not-enough-reputation-to-downvote": "منفی ووٹ دینے کے لیے آپ کی ساکھ کم از کم %1 ہونی چاہیے",
+ "not-enough-reputation-to-post-links": "لنکس پوسٹ کرنے کے لیے آپ کی ساکھ کم از کم %1 ہونی چاہیے",
+ "not-enough-reputation-to-flag": "اس پوسٹ کی رپورٹ کرنے کے لیے آپ کی ساکھ کم از کم %1 ہونی چاہیے",
+ "not-enough-reputation-min-rep-website": "ویب سائٹ شامل کرنے کے لیے آپ کی ساکھ کم از کم %1 ہونی چاہیے",
+ "not-enough-reputation-min-rep-aboutme": "اپنے بارے میں معلومات شامل کرنے کے لیے آپ کی ساکھ کم از کم %1 ہونی چاہیے",
+ "not-enough-reputation-min-rep-signature": "دستخط شامل کرنے کے لیے آپ کی ساکھ کم از کم %1 ہونی چاہیے",
+ "not-enough-reputation-min-rep-profile-picture": "پروفائل تصویر شامل کرنے کے لیے آپ کی ساکھ کم از کم %1 ہونی چاہیے",
+ "not-enough-reputation-min-rep-cover-picture": "کور تصویر شامل کرنے کے لیے آپ کی ساکھ کم از کم %1 ہونی چاہیے",
+ "not-enough-reputation-custom-field": "%2 کے لیے آپ کی ساکھ کم از کم %1 ہونی چاہیے",
+ "custom-user-field-value-too-long": "حسب ضرورت فیلڈ کی قدر بہت لمبی ہے، %1",
+ "custom-user-field-select-value-invalid": "حسب ضرورت فیلڈ میں منتخب کردہ آپشن غلط ہے، %1",
+ "custom-user-field-invalid-text": "حسب ضرورت فیلڈ میں متن غلط ہے، %1",
+ "custom-user-field-invalid-link": "حسب ضرورت فیلڈ میں لنک غلط ہے، %1",
+ "custom-user-field-invalid-number": "حسب ضرورت فیلڈ میں نمبر غلط ہے، %1",
+ "custom-user-field-invalid-date": "حسب ضرورت فیلڈ میں تاریخ غلط ہے، %1",
+ "invalid-custom-user-field": "غلط حسب ضرورت فیلڈ۔ '%1' پہلے سے NodeBB کے ذریعے استعمال ہو رہا ہے",
+ "post-already-flagged": "آپ نے اس پوسٹ کی پہلے سے رپورٹ کی ہوئی ہے",
+ "user-already-flagged": "آپ نے اس صارف کی پہلے سے رپورٹ کی ہوئی ہے",
+ "post-flagged-too-many-times": "اس پوسٹ کو پہلے سے دوسرے لوگوں نے رپورٹ کیا ہے",
+ "user-flagged-too-many-times": "اس صارف کو پہلے سے دوسرے لوگوں نے رپورٹ کیا ہے",
+ "too-many-post-flags-per-day": "آپ ایک دن میں زیادہ سے زیادہ %1 پوسٹس رپورٹ کر سکتے ہیں",
+ "too-many-user-flags-per-day": "آپ ایک دن میں زیادہ سے زیادہ %1 صارفین رپورٹ کر سکتے ہیں",
+ "cant-flag-privileged": "آپ اعلیٰ اختیارات والے صارفین (ماڈریٹرز، گلوبل ماڈریٹرز، ایڈمنسٹریٹرز) کے پروفائلز یا مواد کی رپورٹ نہیں کر سکتے",
+ "cant-locate-flag-report": "رپورٹ نہیں مل سکی",
+ "self-vote": "آپ اپنی پوسٹ کے لیے ووٹ نہیں دے سکتے",
+ "too-many-upvotes-today": "آپ ایک دن میں زیادہ سے زیادہ %1 بار مثبت ووٹ دے سکتے ہیں",
+ "too-many-upvotes-today-user": "آپ ایک صارف کے لیے ایک دن میں زیادہ سے زیادہ %1 بار مثبت ووٹ دے سکتے ہیں",
+ "too-many-downvotes-today": "آپ ایک دن میں زیادہ سے زیادہ %1 بار منفی ووٹ دے سکتے ہیں",
+ "too-many-downvotes-today-user": "آپ ایک صارف کے لیے ایک دن میں زیادہ سے زیادہ %1 بار منفی ووٹ دے سکتے ہیں",
+ "reload-failed": "NodeBB کو دوبارہ لوڈ کرتے وقت ایک مسئلہ پیش آیا: '%1'۔ NodeBB موجودہ کلائنٹ وسائل کو برقرار رکھے گا، لیکن آپ کو دوبارہ لوڈ کرنے سے پہلے اپنے آخری اقدامات منسوخ کرنا ہوں گے۔",
+ "registration-error": "رجسٹریشن میں خرابی",
+ "parse-error": "سرور کے جواب کو پارس کرتے وقت کچھ غلط ہو گیا",
+ "wrong-login-type-email": "براہ کرم لاگ ان کے لیے اپنا ای میل استعمال کریں",
+ "wrong-login-type-username": "براہ کرم لاگ ان کے لیے اپنا صارف نام استعمال کریں",
+ "sso-registration-disabled": "%1 سے اکاؤنٹس کی رجسٹریشن ممنوع کر دی گئی ہے، براہ کرم پہلے ای میل کے ساتھ رجسٹر کریں",
+ "sso-multiple-association": "آپ اپنے NodeBB اکاؤنٹ کے ساتھ اس سروس سے ایک سے زیادہ اکاؤنٹس کو جوڑ نہیں سکتے۔ براہ کرم موجودہ اکاؤنٹ سے ربط ہٹائیں اور دوبارہ کوشش کریں۔",
+ "invite-maximum-met": "آپ نے زیادہ سے زیادہ اجازت شدہ افراد کو دعوت دی ہے (%1 میں سے %2)۔",
+ "no-session-found": "کوئی لاگ ان سیشن نہیں ملا!",
+ "not-in-room": "صارف کمرے میں نہیں ہے",
+ "cant-kick-self": "آپ خود کو گروپ سے باہر نہیں نکال سکتے",
+ "no-users-selected": "کوئی صارف منتخب نہیں کیا گیا",
+ "no-groups-selected": "کوئی گروپ منتخب نہیں کیا گیا",
+ "invalid-home-page-route": "غلط ہوم پیج کا راستہ",
+ "invalid-session": "سیشن ختم ہو چکا ہے",
+ "invalid-session-text": "ایسا لگتا ہے کہ آپ کا لاگ ان سیشن ختم ہو چکا ہے۔ براہ کرم صفحہ ریفریش کریں۔",
+ "session-mismatch": "سیشن کا عدم مطابقت",
+ "session-mismatch-text": "ایسا لگتا ہے کہ آپ کا لاگ ان سیشن اب سرور سے مطابقت نہیں رکھتا۔ براہ کرم صفحہ ریفریش کریں۔",
+ "no-topics-selected": "کوئی موضوعات منتخب نہیں کیے گئے!",
+ "cant-move-to-same-topic": "پوسٹ کو اسی موضوع میں منتقل نہیں کیا جا سکتا!",
+ "cant-move-topic-to-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": "آپ خود کو بلاک نہیں کر سکتے!",
+ "cannot-block-privileged": "آپ ایڈمنسٹریٹرز اور گلوبل ماڈریٹرز کو بلاک نہیں کر سکتے",
+ "cannot-block-guest": "مہمان دوسرے صارفین کو بلاک نہیں کر سکتے",
+ "already-blocked": "یہ صارف پہلے سے بلاک ہے",
+ "already-unblocked": "یہ صارف پہلے سے ان بلاک ہے",
+ "no-connection": "ایسا لگتا ہے کہ آپ کے انٹرنیٹ کنکشن میں کوئی مسئلہ ہے",
+ "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 میں اپ ڈیٹ کیا جائے",
+ "topic-event-unrecognized": "موضوع کا ایونٹ '%1' نامعلوم ہے",
+ "category.handle-taken": "زمرہ کی شناخت پہلے سے لی جا چکی ہے۔ براہ کرم کوئی اور شناخت کنندہ منتخب کریں۔",
+ "cant-set-child-as-parent": "ذیلی زمرہ کو بنیادی زمرہ کے طور پر متعین نہیں کیا جا سکتا",
+ "cant-set-self-as-parent": "زمرہ کو خود کا بنیادی زمرہ نہیں بنایا جا سکتا",
+ "api.master-token-no-uid": "ایک ماسٹر شناخت کنندہ موصول ہوا بغیر درخواست کے جسم میں متعلقہ '_uid' فیلڈ کے",
+ "api.400": "آپ نے جمع کرائے گئے درخواست کے ڈیٹا میں کچھ غلط تھا۔",
+ "api.401": "کوئی سیشن نہیں ملا۔ براہ کرم لاگ ان کریں اور دوبارہ کوشش کریں۔",
+ "api.403": "آپ کو اس کمانڈ کو انجام دینے کی اجازت نہیں ہے",
+ "api.404": "غلط API کمانڈ",
+ "api.426": "لکھنے کی API درخواستوں کے لیے HTTPS درکار ہے۔ براہ کرم اپنی درخواست HTTPS کے ذریعے دوبارہ بھیجیں",
+ "api.429": "آپ نے بہت زیادہ درخواستیں کی ہیں۔ براہ کرم بعد میں دوبارہ کوشش کریں۔",
+ "api.500": "آپ کی درخواست پر عملدرآمد کے دوران ایک غیر متوقع خرابی پیش آئی۔",
+ "api.501": "جس راستے کو آپ کال کرنے کی کوشش کر رہے ہیں وہ ابھی تک موجود نہیں ہے۔ براہ کرم کل دوبارہ کوشش کریں۔",
+ "api.503": "جس راستے کو آپ کال کرنے کی کوشش کر رہے ہیں وہ فی الحال سرور کی ترتیبات کی وجہ سے دستیاب نہیں ہے۔",
+ "api.reauth-required": "جس وسائل تک آپ رسائی حاصل کرنے کی کوشش کر رہے ہیں اس کے لیے (دوبارہ) تصدیق درکار ہے۔",
+ "activitypub.not-enabled": "اس سرور پر فیڈریشن فعال نہیں ہے",
+ "activitypub.invalid-id": "داخل کردہ شناخت کنندہ کو تسلیم نہیں کیا جا سکتا – یہ غلط ہو سکتا ہے۔",
+ "activitypub.get-failed": "مخصوص مواد حاصل نہیں کیا جا سکا۔",
+ "activitypub.pubKey-not-found": "عوامی کلید کو تسلیم نہیں کیا جا سکا، اس لیے ڈیٹا کی تصدیق نہیں کی جا سکی۔",
+ "activitypub.origin-mismatch": "موصول شدہ آبجیکٹ کا اصل بھیجنے والے کے اصل سے مطابقت نہیں رکھتا",
+ "activitypub.actor-mismatch": "موصول شدہ عمل کو متوقع سے مختلف ذریعہ سے انجام دیا جا رہا ہے۔",
+ "activitypub.not-implemented": "درخواست کو مسترد کر دیا گیا کیونکہ اس کا یا اس کے کسی حصے کو اس سرور کے ذریعے سپورٹ نہیں کیا جاتا جس کی طرف یہ ہدایت کی گئی ہے"
+}
\ No newline at end of file
diff --git a/public/language/ur/flags.json b/public/language/ur/flags.json
new file mode 100644
index 0000000000..62a6fb2641
--- /dev/null
+++ b/public/language/ur/flags.json
@@ -0,0 +1,101 @@
+{
+ "state": "حالت",
+ "report": "رپورٹ",
+ "reports": "رپورٹس",
+ "first-reported": "پہلی رپورٹ",
+ "no-flags": "ہورے! کوئی رپورٹس نہیں ملیں۔",
+ "x-flags-found": "رپورٹس ملیں: %1۔",
+ "assignee": "تفویض کردہ",
+ "update": "اپ ڈیٹ",
+ "updated": "اپ ڈیٹ ہوا",
+ "resolved": "حل شدہ",
+ "report-added": "شامل کیا گیا",
+ "report-rescinded": "منسوخ",
+ "target-purged": "اس رپورٹ سے متعلق مواد حذف کر دیا گیا ہے اور اب دستیاب نہیں ہے۔",
+ "target-aboutme-empty": "اس صارف نے اپنے بارے میں سیکشن میں کچھ نہیں بھرا۔",
+
+ "graph-label": "روزانہ ٹیگز",
+ "quick-filters": "فوری فلٹرز",
+ "filter-active": "اس رپورٹس کی فہرست میں ایک یا زیادہ فلٹرز موجود ہیں",
+ "filter-reset": "فلٹرز ہٹائیں",
+ "filters": "فلٹرز کی ترتیبات",
+ "filter-reporterId": "رپورٹ کرنے والا",
+ "filter-targetUid": "رپورٹ کیا گیا",
+ "filter-type": "رپورٹ کی قسم",
+ "filter-type-all": "سب کچھ",
+ "filter-type-post": "پوسٹ",
+ "filter-type-user": "صارف",
+ "filter-state": "حالت",
+ "filter-assignee": "تفویض کردہ",
+ "filter-cid": "زمرہ",
+ "filter-quick-mine": "مجھے تفویض کردہ",
+ "filter-cid-all": "تمام زمرہ جات",
+ "apply-filters": "فلٹرز کا اطلاق کریں",
+ "more-filters": "مزید فلٹرز",
+ "fewer-filters": "کم فلٹرز",
+
+ "quick-actions": "فوری اقدامات",
+ "flagged-user": "رپورٹ کیا گیا صارف",
+ "view-profile": "پروفائل دیکھیں",
+ "start-new-chat": "نئی گفتگو شروع کریں",
+ "go-to-target": "رپورٹ کا ہدف دیکھیں",
+ "assign-to-me": "مجھے تفویض کریں",
+ "delete-post": "پوسٹ حذف کریں",
+ "purge-post": "پوسٹ صاف کریں",
+ "restore-post": "پوسٹ بحال کریں",
+ "delete": "رپورٹ حذف کریں",
+
+ "user-view": "پروفائل دیکھیں",
+ "user-edit": "پروفائل ترمیم کریں",
+
+ "notes": "رپورٹ کے نوٹس",
+ "add-note": "نوٹ شامل کریں",
+ "edit-note": "نوٹ ترمیم کریں",
+ "no-notes": "کوئی اشتراک شدہ نوٹس نہیں ہیں۔",
+ "delete-note-confirm": "کیا آپ واقعی اس رپورٹ کے نوٹ کو حذف کرنا چاہتے ہیں؟",
+ "delete-flag-confirm": "کیا آپ واقعی اس رپورٹ کو حذف کرنا چاہتے ہیں؟",
+ "note-added": "نوٹ شامل کر دیا گیا",
+ "note-deleted": "نوٹ حذف کر دیا گیا",
+ "flag-deleted": "رپورٹ حذف کر دی گئی",
+
+ "history": "اکاؤنٹ اور رپورٹس کی تاریخ",
+ "no-history": "رپورٹ کی کوئی تاریخ نہیں ہے۔",
+
+ "state-all": "تمام حالتیں",
+ "state-open": "نیا/کھلا",
+ "state-wip": "کام جاری ہے",
+ "state-resolved": "حل شدہ",
+ "state-rejected": "مسترد",
+ "no-assignee": "کوئی تفویض نہیں",
+
+ "sort": "ترتیب دیں بذریعہ",
+ "sort-newest": "پہلے نئے",
+ "sort-oldest": "پہلے پرانے",
+ "sort-reports": "پہلے سب سے زیادہ رپورٹس والے",
+ "sort-all": "تمام اقسام کی رپورٹس…",
+ "sort-posts-only": "صرف پوسٹس…",
+ "sort-downvotes": "سب سے زیادہ منفی ووٹس",
+ "sort-upvotes": "سب سے زیادہ مثبت ووٹس",
+ "sort-replies": "سب سے زیادہ جوابات",
+
+ "modal-title": "مواد کی رپورٹنگ",
+ "modal-body": "براہ کرم %1 %2 کی رپورٹنگ کی وجہ بتائیں جائزے کے لیے۔ یا اگر قابل اطلاق ہو تو فوری رپورٹنگ بٹنوں میں سے کوئی استعمال کریں۔",
+ "modal-reason-spam": "سپام",
+ "modal-reason-offensive": "ناگوار",
+ "modal-reason-other": "دیگر (نیچے بیان کریں)",
+ "modal-reason-custom": "اس مواد کی رپورٹنگ کی وجہ…",
+ "modal-notify-remote": "اس رپورٹ کو %1 پر بھیجنا",
+ "modal-submit": "رپورٹ جمع کرائیں",
+ "modal-submit-success": "مواد کو ماڈریٹرز کو رپورٹ کر دیا گیا ہے۔",
+
+ "modal-confirm-rescind": "رپورٹ منسوخ کریں؟",
+
+ "bulk-actions": "اجتماعی اقدامات",
+ "bulk-resolve": "رپورٹ(س) حل کریں",
+ "confirm-purge": "کیا آپ واقعی ان رپورٹس کو مستقل طور پر حذف کرنا چاہتے ہیں؟",
+ "purge-cancelled": "رپورٹ کا حذف منسوخ کر دیا گیا",
+ "bulk-purge": "رپورٹ(س) حذف کریں",
+ "bulk-success": "%1 رپورٹس اپ ڈیٹ ہو گئی ہیں",
+ "flagged-timeago": "رپورٹ کیا گیا ",
+ "auto-flagged": "[خودکار رپورٹ] %1 منفی ووٹس موصول ہوئے۔"
+}
\ No newline at end of file
diff --git a/public/language/ur/global.json b/public/language/ur/global.json
new file mode 100644
index 0000000000..e7932799d2
--- /dev/null
+++ b/public/language/ur/global.json
@@ -0,0 +1,155 @@
+{
+ "home": "ہوم",
+ "search": "تلاش",
+ "buttons.close": "بند کریں",
+ "403.title": "رسائی مسترد",
+ "403.message": "ایسا لگتا ہے کہ آپ نے ایک ایسے صفحے پر جانے کی کوشش کی ہے جس تک آپ کی رسائی نہیں ہے۔",
+ "403.login": "شاید آپ کو لاگ ان کرنے کی کوشش کرنی چاہیے؟",
+ "404.title": "نہیں ملا",
+ "404.message": "ایسا لگتا ہے کہ آپ نے ایک ایسے صفحے پر جانے کی کوشش کی ہے جو موجود نہیں ہے۔
",
+ "500.title": "اندرونی خرابی۔",
+ "500.message": "اوہ! ایسا لگتا ہے کہ کچھ غلط ہو گیا!",
+ "400.title": "غلط درخواست۔",
+ "400.message": "یہ لنک خراب لگتا ہے۔ براہ کرم اسے چیک کریں اور دوبارہ کوشش کریں۔
",
+ "register": "رجسٹریشن",
+ "login": "لاگ ان",
+ "please-log-in": "براہ کرم لاگ ان کریں",
+ "logout": "لاگ آؤٹ",
+ "posting-restriction-info": "اس وقت پوسٹنگ صرف رجسٹرڈ صارفین کے لیے اجازت ہے۔ لاگ ان کرنے کے لیے یہاں کلک کریں۔",
+ "welcome-back": "واپس خوش آمدید",
+ "you-have-successfully-logged-in": "آپ نے کامیابی سے لاگ ان کیا ہے",
+ "save-changes": "تبدیلیاں محفوظ کریں",
+ "save": "محفوظ کریں",
+ "create": "بنائیں",
+ "cancel": "منسوخ",
+ "close": "بند کریں",
+ "pagination": "صفحہ بندی",
+ "pagination.previouspage": "پچھلا صفحہ",
+ "pagination.nextpage": "اگلا صفحہ",
+ "pagination.firstpage": "پہلا صفحہ",
+ "pagination.lastpage": "آخری صفحہ",
+ "pagination.out-of": "%1 از %2",
+ "pagination.enter-index": "پوسٹ نمبر پر جائیں",
+ "pagination.go-to-page": "صفحہ پر جائیں",
+ "pagination.page-x": "صفحہ %1",
+ "header.brand-logo": "برانڈ لوگو",
+ "header.admin": "ایڈمن",
+ "header.categories": "زمرہ جات",
+ "header.recent": "حالیہ",
+ "header.unread": "غیر پڑھے ہوئے",
+ "header.tags": "ٹیگز",
+ "header.popular": "مقبول",
+ "header.top": "سب سے زیادہ پسند کیے گئے",
+ "header.users": "صارفین",
+ "header.groups": "گروپس",
+ "header.chats": "گفتگو",
+ "header.notifications": "اطلاعات",
+ "header.search": "تلاش",
+ "header.profile": "پروفائل",
+ "header.account": "اکاؤنٹ",
+ "header.navigation": "نیویگیشن",
+ "header.manage": "انتظام",
+ "header.drafts": "مسودات",
+ "header.world": "جهان",
+ "notifications.loading": "اطلاعات لوڈ ہو رہی ہیں",
+ "chats.loading": "گفتگو لوڈ ہو رہی ہے",
+ "drafts.loading": "مسودات لوڈ ہو رہے ہیں",
+ "motd.welcome": "NodeBB میں خوش آمدید، مستقبل کے ڈسکشن سسٹم۔",
+ "alert.success": "ہو گیا",
+ "alert.error": "خرابی",
+ "alert.warning": "انتباہ",
+ "alert.info": "معلومات",
+ "alert.banned": "پابندی",
+ "alert.banned.message": "آپ پر ابھی پابندی لگائی گئی ہے۔ سسٹم تک آپ کی رسائی محدود کر دی گئی ہے۔",
+ "alert.unbanned": "پابندی ہٹائی گئی",
+ "alert.unbanned.message": "آپ کی پابندی ہٹا دی گئی ہے",
+ "alert.unfollow": "آپ اب %1 کو فالو نہیں کر رہے!",
+ "alert.follow": "آپ %1 کو فالو کر رہے ہیں!",
+ "users": "صارفین",
+ "topics": "موضوعات",
+ "posts": "پوسٹس",
+ "crossposts": "Cross-posts",
+ "x-posts": "%1 پوسٹس",
+ "x-topics": "%1 موضوعات",
+ "x-reputation": "%1 ساکھ",
+ "best": "بہترین",
+ "controversial": "متنازعہ",
+ "votes": "ووٹس",
+ "x-votes": "%1 ووٹس",
+ "voters": "ووٹرز",
+ "upvoters": "مثبت ووٹ دینے والے",
+ "upvoted": "مثبت ووٹس کے ساتھ",
+ "downvoters": "منفی ووٹ دینے والے",
+ "downvoted": "منفی ووٹس کے ساتھ",
+ "views": "مشاہدات",
+ "posters": "پوسٹرز",
+ "watching": "نگرانی کرنے والے",
+ "reputation": "ساکھ",
+ "lastpost": "آخری پوسٹ",
+ "firstpost": "پہلی پوسٹ",
+ "about": "کے بارے میں",
+ "read-more": "مزید",
+ "more": "مزید",
+ "none": "کوئی نہیں",
+ "posted-ago-by-guest": "%1 پہلے مہمان نے پوسٹ کیا",
+ "posted-ago-by": "%1 پہلے %2 نے پوسٹ کیا",
+ "posted-ago": "%1 پہلے پوسٹ کیا گیا",
+ "posted-in": "%1 میں پوسٹ کیا گیا",
+ "posted-in-by": "%1 میں %2 نے پوسٹ کیا",
+ "posted-in-ago": "%1 میں %2 پہلے پوسٹ کیا گیا",
+ "posted-in-ago-by": "%1 میں %2 پہلے %3 نے پوسٹ کیا",
+ "user-posted-ago": "%1 نے %2 پہلے پوسٹ کیا",
+ "guest-posted-ago": "مہمان نے %1 پہلے پوسٹ کیا",
+ "last-edited-by": "%1 نے آخری بار ترمیم کیا",
+ "edited-timestamp": "%1 ترمیم کیا گیا",
+ "norecentposts": "کوئی حالیہ پوسٹس نہیں",
+ "norecenttopics": "کوئی حالیہ موضوعات نہیں",
+ "recentposts": "حالیہ پوسٹس",
+ "recentips": "حالیہ استعمال شدہ IP ایڈریسز",
+ "moderator-tools": "ماڈریٹر ٹولز",
+ "status": "حالت",
+ "online": "آن لائن",
+ "away": "دور",
+ "dnd": "تنگ نہ کریں",
+ "invisible": "غیر مرئی",
+ "offline": "آف لائن",
+ "remote-user": "یہ صارف اس فورم سے باہر ہے",
+ "email": "ای میل",
+ "language": "زبان",
+ "guest": "مہمان",
+ "guests": "مہمانوں",
+ "former-user": "سابق صارف",
+ "system-user": "سسٹم",
+ "unknown-user": "نامعلوم صارف",
+ "updated.title": "فورم اپ ڈیٹ ہو گیا",
+ "updated.message": "یہ فورم ابھی تازہ ترین ورژن میں اپ ڈیٹ ہوا ہے۔ صفحہ ریفریش کرنے کے لیے یہاں کلک کریں۔",
+ "privacy": "رازداری",
+ "follow": "فالو",
+ "unfollow": "فالو ختم کریں",
+ "delete-all": "سب کچھ حذف کریں",
+ "map": "نقشہ",
+ "sessions": "لاگ ان سیشنز",
+ "ip-address": "IP ایڈریس",
+ "enter-page-number": "صفحہ نمبر درج کریں",
+ "upload-file": "فائل اپ لوڈ کریں",
+ "upload": "اپ لوڈ",
+ "uploads": "اپ لوڈز",
+ "allowed-file-types": "اجازت شدہ فائل کی اقسام ہیں: %1",
+ "unsaved-changes": "آپ کے پاس غیر محفوظ تبدیلیاں ہیں۔ کیا آپ واقعی یہ صفحہ چھوڑنا چاہتے ہیں؟",
+ "reconnecting-message": "ایسا لگتا ہے کہ %1 سے آپ کا کنکشن منقطع ہو گیا ہے۔ براہ کرم انتظار کریں جب تک ہم آپ کو دوبارہ جوڑنے کی کوشش کرتے ہیں۔",
+ "play": "چلائیں",
+ "cookies.message": "یہ ویب سائٹ اپنی خدمات بہترین طریقے سے فراہم کرنے کے لیے کوکیز استعمال کرتی ہے۔",
+ "cookies.accept": "سمجھ گیا!",
+ "cookies.learn-more": "مزید جانیں",
+ "edited": "ترمیم شدہ",
+ "disabled": "غیر فعال",
+ "select": "منتخب کریں",
+ "selected": "منتخب شدہ",
+ "copied": "کاپی کیا گیا",
+ "user-search-prompt": "صارف کو تلاش کرنے کے لیے ٹائپ کرنا شروع کریں…",
+ "hidden": "چھپا ہوا",
+ "sort": "ترتیب",
+ "actions": "عمل",
+ "rss-feed": "RSS فیڈ",
+ "skip-to-content": "مواد پر جائیں"
+}
\ No newline at end of file
diff --git a/public/language/ur/groups.json b/public/language/ur/groups.json
new file mode 100644
index 0000000000..2b05f7e9d5
--- /dev/null
+++ b/public/language/ur/groups.json
@@ -0,0 +1,66 @@
+{
+ "all-groups": "تمام گروپس",
+ "groups": "گروپس",
+ "members": "اراکین",
+ "view-group": "گروپ دیکھیں",
+ "owner": "گروپ کا مالک",
+ "new-group": "نیا گروپ بنائیں",
+ "no-groups-found": "کوئی گروپس نہیں ملے",
+ "pending.accept": "قبول کریں",
+ "pending.reject": "مسترد کریں",
+ "pending.accept-all": "سب کو قبول کریں",
+ "pending.reject-all": "سب کو مسترد کریں",
+ "pending.none": "اس وقت کوئی زیر التواء اراکین نہیں ہیں",
+ "invited.none": "اس وقت کوئی مدعو اراکین نہیں ہیں",
+ "invited.uninvite": "دعوت منسوخ کریں",
+ "invited.search": "اس گروپ میں مدعو کرنے کے لیے صارف کو تلاش کریں",
+ "invited.notification-title": "آپ کو %1 میں شامل ہونے کی دعوت دی گئی ہے",
+ "request.notification-title": "%1 سے گروپ کی رکنیت کی درخواست",
+ "request.notification-text": "%1 نے %2 کا رکن بننے کی درخواست کی ہے",
+ "cover-save": "محفوظ کریں",
+ "cover-saving": "محفوظ ہو رہا ہے",
+ "details.title": "گروپ کی تفصیلات",
+ "details.members": "اراکین کی فہرست",
+ "details.pending": "زیر التواء اراکین",
+ "details.invited": "مدعو اراکین",
+ "details.has-no-posts": "اس گروپ کے اراکین نے کچھ بھی پوسٹ نہیں کیا۔",
+ "details.latest-posts": "حالیہ پوسٹس",
+ "details.private": "نجی",
+ "details.disableJoinRequests": "شامل ہونے کی درخواستوں کو غیر فعال کریں",
+ "details.disableLeave": "صارفین کو گروپ چھوڑنے سے روکیں",
+ "details.grant": "مالکانہ حقوق دینا/واپس لینا",
+ "details.kick": "نکالیں",
+ "details.kick-confirm": "کیا آپ واقعی اس گروپ کے رکن کو ہٹانا چاہتے ہیں؟",
+ "details.add-member": "رکن شامل کریں",
+ "details.owner-options": "گروپ ایڈمنسٹریشن",
+ "details.group-name": "گروپ کا نام",
+ "details.member-count": "اراکین کی تعداد",
+ "details.creation-date": "تخلیق کی تاریخ",
+ "details.description": "تفصیل",
+ "details.member-post-cids": "زمرہ جات کے شناخت کنندہ جن سے پوسٹس دکھائی جائیں",
+ "details.badge-preview": "بیج کا پیش نظارہ",
+ "details.change-icon": "آئیکن تبدیل کریں",
+ "details.change-label-colour": "لیبل کا رنگ تبدیل کریں",
+ "details.change-text-colour": "متن کا رنگ تبدیل کریں",
+ "details.badge-text": "بیج کا متن",
+ "details.userTitleEnabled": "بیج دکھائیں",
+ "details.private-help": "اگر فعال ہو تو گروپ میں شامل ہونے کے لیے گروپ کے مالک کی منظوری درکار ہوگی۔",
+ "details.hidden": "چھپا ہوا",
+ "details.hidden-help": "اگر فعال ہو تو گروپ گروپس کی فہرست میں نظر نہیں آئے گا اور صارفین کو خاص طور پر مدعو کرنا ہوگا۔",
+ "details.delete-group": "گروپ حذف کریں",
+ "details.private-system-help": "نجی گروپس سسٹم لیول پر ممنوع ہیں؛ یہ آپشن کچھ نہیں کرتا",
+ "event.updated": "گروپ کی تفصیلات اپ ڈیٹ کر دی گئی ہیں",
+ "event.deleted": "گروپ '%1' حذف کر دیا گیا ہے",
+ "membership.accept-invitation": "دعوت قبول کریں",
+ "membership.accept.notification-title": "آپ اب %1 کے رکن ہیں",
+ "membership.invitation-pending": "زیر التواء دعوت",
+ "membership.join-group": "گروپ میں شامل ہوں",
+ "membership.leave-group": "گروپ چھوڑیں",
+ "membership.leave.notification-title": "%1 نے گروپ %2 چھوڑ دیا",
+ "membership.reject": "مسترد کریں",
+ "new-group.group-name": "گروپ کا نام:",
+ "upload-group-cover": "گروپ کی ڈسپلے تصویر اپ لوڈ کریں",
+ "bulk-invite-instructions": "کوموں سے الگ کردہ صارف ناموں کی فہرست درج کریں",
+ "bulk-invite": "اجتماعی دعوت",
+ "remove-group-cover-confirm": "کیا آپ واقعی کور تصویر ہٹانا چاہتے ہیں؟"
+}
\ No newline at end of file
diff --git a/public/language/ur/ip-blacklist.json b/public/language/ur/ip-blacklist.json
new file mode 100644
index 0000000000..b4f2fe2828
--- /dev/null
+++ b/public/language/ur/ip-blacklist.json
@@ -0,0 +1,19 @@
+{
+ "lead": "یہاں آپ اپنی IP ایڈریس بلیک لسٹ ترتیب دے سکتے ہیں۔",
+ "description": "کبھی کبھار کسی صارف کے پروفائل پر پابندی لگانا کافی نہیں ہوتا۔ ایسی صورتوں میں، فورم کی حفاظت کا بہترین طریقہ مخصوص IP ایڈریس یا ایڈریسز کے گروپ کے لیے فورم تک رسائی کو محدود کرنا ہے۔ اس بلیک لسٹ میں آپ پریشانی والے IP ایڈریسز یا پورے CIDR بلاک کو شامل کر سکتے ہیں، اور یہ ایڈریسز سسٹم میں لاگ ان یا نئے پروفائلز رجسٹر نہیں کر سکیں گے۔",
+ "active-rules": "فعال قواعد",
+ "validate": "بلیک لسٹ کی تصدیق کریں",
+ "apply": "بلیک لسٹ کا اطلاق کریں",
+ "hints": "سینٹیکٹک ہینٹس",
+ "hint-1": "ہر لائن پر ایک IP ایڈریس درج کریں۔ آپ IP ایڈریسز کے گروپس کو شامل کر سکتے ہیں اگر وہ CIDR فارمیٹ پر عمل کریں (مثلاً 192.168.100.0/22)۔",
+ "hint-2": "آپ لائن کے شروع میں # علامت لگا کر تبصرے شامل کر سکتے ہیں۔",
+
+ "validate.x-valid": "درست قواعد: %1 از %2۔",
+ "validate.x-invalid": "درج ذیل %1 قواعد غلط ہیں:",
+
+ "alerts.applied-success": "بلیک لسٹ کا اطلاق ہو گیا",
+
+ "analytics.blacklist-hourly": "شکل 1 – فی گھنٹہ بلیک لسٹ ہٹس",
+ "analytics.blacklist-daily": "شکل 2 – فی دن بلیک لسٹ ہٹس",
+ "ip-banned": "IP ایڈریس پر پابندی"
+}
\ No newline at end of file
diff --git a/public/language/ur/language.json b/public/language/ur/language.json
new file mode 100644
index 0000000000..4693356e14
--- /dev/null
+++ b/public/language/ur/language.json
@@ -0,0 +1,5 @@
+{
+ "name": "اردو",
+ "code": "ur",
+ "dir": "rtl"
+}
\ No newline at end of file
diff --git a/public/language/ur/login.json b/public/language/ur/login.json
new file mode 100644
index 0000000000..7f2a7d901f
--- /dev/null
+++ b/public/language/ur/login.json
@@ -0,0 +1,12 @@
+{
+ "username-email": "صارف نام / ای میل",
+ "username": "صارف نام",
+ "remember-me": "مجھے یاد رکھیں؟",
+ "forgot-password": "پاس ورڈ بھول گئے؟",
+ "alternative-logins": "دوسرے لاگ ان کے طریقے",
+ "failed-login-attempt": "ناکام لاگ ان کی کوشش",
+ "login-successful": "آپ نے کامیابی سے لاگ ان کیا!",
+ "dont-have-account": "کیا آپ کا اکاؤنٹ نہیں ہے؟",
+ "logged-out-due-to-inactivity": "آپ غیر فعالیت کی وجہ سے ایڈمنسٹریٹو کنٹرول پینل سے خودکار طور پر لاگ آؤٹ ہو گئے ہیں۔",
+ "caps-lock-enabled": "کیپٹل لاک فعال ہے"
+}
\ No newline at end of file
diff --git a/public/language/ur/modules.json b/public/language/ur/modules.json
new file mode 100644
index 0000000000..c3a7a21c7c
--- /dev/null
+++ b/public/language/ur/modules.json
@@ -0,0 +1,135 @@
+{
+ "chat.room-id": "کمرہ %1",
+ "chat.chatting-with": "کے ساتھ گفتگو",
+ "chat.placeholder": "یہاں پیغام درج کریں یا تصاویر ڈریگ اینڈ ڈراپ کریں",
+ "chat.placeholder.mobile": "پیغام درج کریں",
+ "chat.placeholder.message-room": "پیغام #%1",
+ "chat.scroll-up-alert": "تازہ ترین پیغامات کی طرف",
+ "chat.usernames-and-x-others": "%1 اور %2 دیگر",
+ "chat.chat-with-usernames": "%1 کے ساتھ گفتگو",
+ "chat.chat-with-usernames-and-x-others": "%1 اور %2 دیگر کے ساتھ گفتگو",
+ "chat.send": "بھیجیں",
+ "chat.no-active": "آپ کے کوئی جاری گفتگو نہیں ہیں۔",
+ "chat.user-typing-1": "%1 لکھ رہا ہے…",
+ "chat.user-typing-2": "%1 اور %2 لکھ رہے ہیں…",
+ "chat.user-typing-3": "%1، %2 اور %3 لکھ رہے ہیں…",
+ "chat.user-typing-n": "%1، %2 اور %3 دیگر لکھ رہے ہیں…",
+ "chat.user-has-messaged-you": "%1 نے آپ کو پیغام بھیجا۔",
+ "chat.replying-to": "%1 کو جواب",
+ "chat.see-all": "تمام گفتگو",
+ "chat.mark-all-read": "سب کو پڑھا ہوا نشان زد کریں",
+ "chat.no-messages": "براہ کرم پیغامات کی تاریخ دیکھنے کے لیے وصول کنندہ منتخب کریں",
+ "chat.no-users-in-room": "اس کمرے میں کوئی صارفین نہیں ہیں",
+ "chat.recent-chats": "حالیہ گفتگو",
+ "chat.contacts": "رابطے",
+ "chat.message-history": "پیغامات کی تاریخ",
+ "chat.message-deleted": "پیغام حذف کر دیا گیا",
+ "chat.options": "گفتگو کی ترتیبات",
+ "chat.pop-out": "گفتگو کو ونڈو میں کھولیں",
+ "chat.minimize": "چھوٹا کریں",
+ "chat.maximize": "بڑا کریں",
+ "chat.seven-days": "7 دن",
+ "chat.thirty-days": "30 دن",
+ "chat.three-months": "3 ماہ",
+ "chat.delete-message-confirm": "کیا آپ واقعی اس پیغام کو حذف کرنا چاہتے ہیں؟",
+ "chat.retrieving-users": "صارفین حاصل کیے جا رہے ہیں…",
+ "chat.view-users-list": "صارفین کی فہرست دیکھیں",
+ "chat.pinned-messages": "پن کیے گئے پیغامات",
+ "chat.no-pinned-messages": "کوئی پن کیے گئے پیغامات نہیں",
+ "chat.pin-message": "پیغام پن کریں",
+ "chat.unpin-message": "پیغام ان پن کریں",
+ "chat.public-rooms": "عوامی کمرے (%1)",
+ "chat.private-rooms": "نجی کمرے (%1)",
+ "chat.create-room": "گفتگو کا کمرہ بنائیں",
+ "chat.private.option": "نجی (صرف کمرے میں شامل کیے گئے صارفین کے لیے نظر آتا ہے)",
+ "chat.public.option": "عوامی (منتخب گروپس کے تمام صارفین کے لیے نظر آتا ہے)",
+ "chat.public.groups-help": "تمام صارفین کے لیے نظر آنے والا گفتگو کا کمرہ بنانے کے لیے فہرست سے رجسٹرڈ صارفین کا گروپ منتخب کریں۔",
+ "chat.manage-room": "گفتگو کے کمرے کا انتظام",
+ "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": "صرف @مینشنز",
+ "chat.notification-setting-all-messages": "تمام پیغامات",
+ "chat.select-groups": "گروپس منتخب کریں",
+ "chat.add-user-help": "یہاں آپ صارفین کو تلاش کر سکتے ہیں۔ جب کوئی صارف منتخب کیا جاتا ہے، اسے گفتگو میں شامل کیا جائے گا۔ نیا صارف اس سے پہلے کے پیغامات نہیں دیکھ سکے گا جو اس کے شامل ہونے سے پہلے لکھے گئے تھے۔ صرف کمرے کے مالکان () صارفین کو کمرے سے ہٹا سکتے ہیں۔",
+ "chat.confirm-chat-with-dnd-user": "یہ صارف 'تنگ نہ کریں' حالت میں ہے۔ کیا آپ واقعی اس سے گفتگو کرنا چاہتے ہیں؟",
+ "chat.room-name-optional": "کمرے کا نام (اختیاری)",
+ "chat.rename-room": "کمرہ دوبارہ نام دیں",
+ "chat.rename-placeholder": "اپنے کمرے کا نام یہاں درج کریں",
+ "chat.rename-help": "یہاں متعین کیا گیا کمرے کا نام اس کے تمام شرکاء کو نظر آئے گا۔",
+ "chat.leave": "چھوڑیں",
+ "chat.leave-room": "کمرہ چھوڑیں",
+ "chat.leave-prompt": "کیا آپ واقعی اس گفتگو کو چھوڑنا چاہتے ہیں؟",
+ "chat.leave-help": "اگر آپ اس گفتگو کو چھوڑتے ہیں تو آپ اس کے بعد کے پیغامات نہیں دیکھ سکیں گے۔ اگر آپ کو دوبارہ شامل کیا جاتا ہے تو آپ اس سے پہلے کی گفتگو کی تاریخ نہیں دیکھ سکیں گے۔",
+ "chat.delete": "حذف کریں",
+ "chat.delete-room": "گفتگو کا کمرہ حذف کریں",
+ "chat.delete-prompt": "کیا آپ واقعی اس گفتگو کے کمرے کو حذف کرنا چاہتے ہیں؟",
+ "chat.in-room": "اس کمرے میں",
+ "chat.kick": "نکالیں",
+ "chat.show-ip": "IP ایڈریس دکھائیں",
+ "chat.copy-text": "متن کاپی کریں",
+ "chat.copy-link": "لنک کاپی کریں",
+ "chat.owner": "کمرے کا مالک",
+ "chat.grant-rescind-ownership": "مالکانہ حقوق دینا/واپس لینا",
+ "chat.system.user-join": "%1 کمرے میں شامل ہوا ",
+ "chat.system.user-leave": "%1 نے کمرہ چھوڑ دیا ",
+ "chat.system.room-rename": "%2 نے اس کمرے کا نام تبدیل کر کے '%1' کر دیا ",
+ "composer.compose": "تحریر کریں",
+ "composer.show-preview": "پیش نظارہ دکھائیں",
+ "composer.hide-preview": "پیش نظارہ چھپائیں",
+ "composer.help": "مدد",
+ "composer.user-said-in": "%1 نے %2 میں کہا:",
+ "composer.user-said": "%1 نے کہا:",
+ "composer.discard": "کیا آپ واقعی اس پوسٹ کو مسترد کرنا چاہتے ہیں؟",
+ "composer.submit-and-lock": "پوسٹ کریں اور لاک کریں",
+ "composer.toggle-dropdown": "ڈراپ ڈاؤن ٹوگل کریں",
+ "composer.uploading": "%1 اپ لوڈ ہو رہا ہے",
+ "composer.formatting.bold": "بولڈ",
+ "composer.formatting.italic": "ایتھیلک",
+ "composer.formatting.heading": "ہیڈنگ",
+ "composer.formatting.heading1": "ہیڈنگ 1",
+ "composer.formatting.heading2": "ہیڈنگ 2",
+ "composer.formatting.heading3": "ہیڈنگ 3",
+ "composer.formatting.heading4": "ہیڈنگ 4",
+ "composer.formatting.heading5": "ہیڈنگ 5",
+ "composer.formatting.heading6": "ہیڈنگ 6",
+ "composer.formatting.list": "فہرست",
+ "composer.formatting.strikethrough": "سٹرائیک تھرو",
+ "composer.formatting.code": "کوڈ",
+ "composer.formatting.link": "لنک",
+ "composer.formatting.picture": "تصویر کا لنک",
+ "composer.upload-picture": "تصویر اپ لوڈ کریں",
+ "composer.upload-file": "فائل اپ لوڈ کریں",
+ "composer.zen-mode": "زین موڈ",
+ "composer.select-category": "زمرہ منتخب کریں",
+ "composer.textarea.placeholder": "اپنی پوسٹ کا مواد یہاں درج کریں۔ آپ تصاویر کو بھی ڈریگ اینڈ ڈراپ کر سکتے ہیں۔",
+ "composer.post-queue-alert": "ہیلو👋! یہ فورم ایک ایسی سسٹم استعمال کرتا ہے جس میں پوسٹس کو قطار میں شامل کیا جاتا ہے۔ چونکہ آپ ایک نئے صارف ہیں، آپ کی پوسٹ اس وقت تک چھپی رہے گی جب تک کہ اسے ماڈریٹر کی طرف سے منظور نہ کر لیا جائے۔",
+ "composer.schedule-for": "موضوع کے لیے شیڈول کریں",
+ "composer.schedule-date": "تاریخ",
+ "composer.schedule-time": "وقت",
+ "composer.cancel-scheduling": "شیڈولنگ منسوخ کریں",
+ "composer.change-schedule-date": "تاریخ تبدیل کریں",
+ "composer.set-schedule-date": "تاریخ متعین کریں",
+ "composer.discard-all-drafts": "تمام مسودات حذف کریں",
+ "composer.no-drafts": "آپ کے پاس کوئی مسودات نہیں ہیں",
+ "composer.discard-draft-confirm": "کیا آپ اس مسودے کو حذف کرنا چاہتے ہیں؟",
+ "composer.remote-pid-editing": "دور دراز پوسٹ کی ترمیم",
+ "composer.remote-pid-content-immutable": "دور دراز پوسٹس کا مواد ترمیم نہیں کیا جا سکتا۔ آپ صرف موضوع کا عنوان اور ٹیگز تبدیل کر سکتے ہیں۔",
+ "bootbox.ok": "ٹھیک ہے",
+ "bootbox.cancel": "منسوخ",
+ "bootbox.confirm": "تصدیق",
+ "bootbox.submit": "جمع کرائیں",
+ "bootbox.send": "بھیجیں",
+ "cover.dragging-title": "تصویر کی ترتیب",
+ "cover.dragging-message": "تصویر کو مطلوبہ پوزیشن پر منتقل کریں اور 'محفوظ کریں' دبائیں",
+ "cover.saved": "تصویر اور اس کی پوزیشن محفوظ کر دی گئی",
+ "thumbs.modal.title": "موضوعات کی آئیکنز کا انتظام",
+ "thumbs.modal.no-thumbs": "کوئی آئیکنز نہیں ملیں۔",
+ "thumbs.modal.resize-note": "نوٹ: یہ فورم موضوعات کی آئیکنز کو زیادہ سے زیادہ %1px چوڑائی تک ری سائز کرنے کے لیے ترتیب دیا گیا ہے",
+ "thumbs.modal.add": "آئیکن شامل کریں",
+ "thumbs.modal.remove": "آئیکن ہٹائیں",
+ "thumbs.modal.confirm-remove": "کیا آپ واقعی اس آئیکن کو ہٹانا چاہتے ہیں؟"
+}
\ No newline at end of file
diff --git a/public/language/ur/notifications.json b/public/language/ur/notifications.json
new file mode 100644
index 0000000000..b7ccdf3753
--- /dev/null
+++ b/public/language/ur/notifications.json
@@ -0,0 +1,105 @@
+{
+ "title": "اطلاعات",
+ "no-notifs": "آپ کے پاس کوئی نئی اطلاعات نہیں ہیں",
+ "see-all": "تمام اطلاعات دیکھیں",
+ "mark-all-read": "سب کو پڑھا ہوا نشان زد کریں",
+ "back-to-home": "%1 پر واپس",
+ "outgoing-link": "خارجی لنک",
+ "outgoing-link-message": "آپ %1 چھوڑ رہے ہیں",
+ "continue-to": "%1 پر جاری رکھیں",
+ "return-to": "%1 پر واپس جائیں",
+ "new-notification": "آپ کے پاس ایک نئی اطلاع ہے",
+ "you-have-unread-notifications": "آپ کے پاس غیر پڑھی ہوئی اطلاعات ہیں",
+ "all": "تمام",
+ "topics": "موضوعات",
+ "tags": "ٹیگز",
+ "categories": "زمرہ جات",
+ "replies": "جوابات",
+ "chat": "گفتگو",
+ "group-chat": "گروپ گفتگو",
+ "public-chat": "عوامی گفتگو",
+ "follows": "فالوز",
+ "upvote": "مثبت ووٹس",
+ "awards": "ایوارڈز",
+ "new-flags": "نئی رپورٹس",
+ "my-flags": "مجھے تفویض کردہ رپورٹس",
+ "bans": "پابندیاں",
+ "new-message-from": "%1 سے نیا پیغام",
+ "new-messages-from": "%2 سے %1 نئے پیغامات",
+ "new-message-in": "%1 میں نیا پیغام",
+ "new-messages-in": "%2 میں %1 نئے پیغامات",
+ "user-posted-in-public-room": "%1 نے %3 میں لکھا",
+ "user-posted-in-public-room-dual": "%1 اور %2 نے %4 میں لکھا",
+ "user-posted-in-public-room-triple": "%1، %2 اور %3 نے %5 میں لکھا",
+ "user-posted-in-public-room-multiple": "%1، %2 اور %3 دیگر نے %5 میں لکھا",
+ "upvoted-your-post-in": "%1 نے آپ کی پوسٹ پر %2 میں مثبت ووٹ دیا۔",
+ "upvoted-your-post-in-dual": "%1 اور %2 نے آپ کی پوسٹ پر %3 میں مثبت ووٹ دیا۔",
+ "upvoted-your-post-in-triple": "%1، %2 اور %3 نے آپ کی پوسٹ پر %4 میں مثبت ووٹ دیا۔",
+ "upvoted-your-post-in-multiple": "%1، %2 اور %3 دیگر نے آپ کی پوسٹ پر %4 میں مثبت ووٹ دیا۔",
+ "moved-your-post": "%1 نے آپ کی پوسٹ کو %2 میں منتقل کیا",
+ "moved-your-topic": "%1 نے %2 منتقل کیا",
+ "user-flagged-post-in": "%1 نے %2 میں پوسٹ رپورٹ کی",
+ "user-flagged-post-in-dual": "%1 اور %2 نے %3 میں پوسٹ رپورٹ کی",
+ "user-flagged-post-in-triple": "%1، %2 اور %3 نے %4 میں پوسٹ رپورٹ کی",
+ "user-flagged-post-in-multiple": "%1، %2 اور %3 دیگر نے %4 میں پوسٹ رپورٹ کی",
+ "user-flagged-user": "%1 نے صارف پروفائل (%2) رپورٹ کیا",
+ "user-flagged-user-dual": "%1 اور %2 نے صارف پروفائل (%3) رپورٹ کیا",
+ "user-flagged-user-triple": "%1، %2 اور %3 نے صارف پروفائل (%4) رپورٹ کیا",
+ "user-flagged-user-multiple": "%1، %2 اور %3 دیگر نے صارف پروفائل (%4) رپورٹ کیا",
+ "user-posted-to": "%1 نے جواب دیا: %2",
+ "user-posted-to-dual": "%1 اور %2 نے جواب دیا: %3",
+ "user-posted-to-triple": "%1، %2 اور %3 نے جواب دیا: %4",
+ "user-posted-to-multiple": "%1، %2 اور %3 دیگر نے جواب دیا: %4",
+ "user-posted-topic": "%1 نے ایک نیا موضوع پوسٹ کیا: %2",
+ "user-edited-post": "%1 نے %2 میں پوسٹ ترمیم کی",
+ "user-posted-topic-with-tag": "%1 نے %2 پوسٹ کیا (ٹیگ %3 کے ساتھ)",
+ "user-posted-topic-with-tag-dual": "%1 نے %2 پوسٹ کیا (ٹیگز %3 اور %4 کے ساتھ)",
+ "user-posted-topic-with-tag-triple": "%1 نے %2 پوسٹ کیا (ٹیگز %3، %4 اور %5 کے ساتھ)",
+ "user-posted-topic-with-tag-multiple": "%1 نے %2 پوسٹ کیا (ٹیگ %3 کے ساتھ)",
+ "user-posted-topic-in-category": "%1 نے %2 میں ایک نیا موضوع پوسٹ کیا",
+ "user-started-following-you": "%1 نے آپ کو فالو کرنا شروع کیا۔",
+ "user-started-following-you-dual": "%1 اور %2 نے آپ کو فالو کرنا شروع کیا۔",
+ "user-started-following-you-triple": "%1، %2 اور %3 نے آپ کو فالو کرنا شروع کیا۔",
+ "user-started-following-you-multiple": "%1، %2 اور %3 دیگر نے آپ کو فالو کرنا شروع کیا۔",
+ "new-register": "%1 نے رجسٹریشن کی درخواست بھیجی۔",
+ "new-register-multiple": "%1 رجسٹریشن کی درخواستیں جائزے کے منتظر ہیں۔",
+ "flag-assigned-to-you": "رپورٹ %1 آپ کو تفویض کی گئی ہے",
+ "post-awaiting-review": "پوسٹ جائزے کے منتظر ہے",
+ "profile-exported": "%1 کا پروفائل ایکسپورٹ کر دیا گیا ہے، ڈاؤن لوڈ کے لیے کلک کریں",
+ "posts-exported": "%1 کی پوسٹس ایکسپورٹ کر دی گئی ہیں، ڈاؤن لوڈ کے لیے کلک کریں",
+ "uploads-exported": "%1 کے اپ لوڈز ایکسپورٹ کر دیے گئے ہیں، ڈاؤن لوڈ کے لیے کلک کریں",
+ "users-csv-exported": "صارفین کو CSV فارمیٹ میں ایکسپورٹ کیا گیا ہے، ڈاؤن لوڈ کے لیے کلک کریں",
+ "post-queue-accepted": "آپ کی قطار میں موجود پوسٹ قبول کر لی گئی ہے۔ اسے دیکھنے کے لیے یہاں کلک کریں۔",
+ "post-queue-rejected": "آپ کی قطار میں موجود پوسٹ مسترد کر دی گئی ہے۔",
+ "post-queue-notify": "قطار میں موجود پوسٹ کو ایک اطلاع موصول ہوئی ہے: '%1'",
+ "email-confirmed": "ای میل کی تصدیق ہو گئی",
+ "email-confirmed-message": "آپ کے ای میل کی تصدیق کے لیے شکریہ۔ آپ کا اکاؤنٹ اب مکمل طور پر فعال ہے۔",
+ "email-confirm-error-message": "آپ کے ای میل کی تصدیق میں ایک مسئلہ پیش آیا۔ شاید کوڈ غلط ہے یا اس کی میعاد ختم ہو گئی ہے۔",
+ "email-confirm-sent": "تصدیقی ای میل بھیج دیا گیا ہے۔",
+ "none": "کوئی نہیں",
+ "notification-only": "صرف اطلاع",
+ "email-only": "صرف ای میل",
+ "notification-and-email": "اطلاع اور ای میل",
+ "notificationType-upvote": "جب کوئی آپ کی پوسٹ پر مثبت ووٹ دیتا ہے",
+ "notificationType-new-topic": "جب کوئی جسے آپ فالو کرتے ہیں، ایک موضوع پوسٹ کرتا ہے",
+ "notificationType-new-topic-with-tag": "جب ایک نیا موضوع اس ٹیگ کے ساتھ پوسٹ کیا جاتا ہے جسے آپ فالو کرتے ہیں",
+ "notificationType-new-topic-in-category": "جب ایک نیا موضوع اس زمرے میں پوسٹ کیا جاتا ہے جسے آپ دیکھتے ہیں",
+ "notificationType-new-reply": "جب کسی موضوع میں نیا جواب پوسٹ کیا جاتا ہے جسے آپ دیکھتے ہیں",
+ "notificationType-post-edit": "جب کسی موضوع میں پوسٹ ترمیم کی جاتی ہے جسے آپ دیکھتے ہیں",
+ "notificationType-follow": "جب کوئی آپ کو فالو کرنا شروع کرتا ہے",
+ "notificationType-new-chat": "جب آپ کو گفتگو میں پیغام موصول ہوتا ہے",
+ "notificationType-new-group-chat": "جب آپ کو گروپ گفتگو میں پیغام موصول ہوتا ہے",
+ "notificationType-new-public-chat": "جب آپ کو عوامی گروپ گفتگو میں پیغام موصول ہوتا ہے",
+ "notificationType-group-invite": "جب آپ کو گروپ کی دعوت موصول ہوتی ہے",
+ "notificationType-group-leave": "جب کوئی صارف آپ کے گروپ کو چھوڑتا ہے",
+ "notificationType-group-request-membership": "جب کوئی آپ کے گروپ میں شامل ہونے کی درخواست کرتا ہے جس کے آپ مالک ہیں",
+ "notificationType-new-register": "جب کوئی رجسٹریشن کی قطار میں شامل ہوتا ہے",
+ "notificationType-post-queue": "جب ایک نئی پوسٹ قطار میں شامل کی جاتی ہے",
+ "notificationType-new-post-flag": "جب ایک پوسٹ رپورٹ کی جاتی ہے",
+ "notificationType-new-user-flag": "جب ایک صارف رپورٹ کیا جاتا ہے",
+ "notificationType-new-reward": "جب آپ کو ایک نیا ایوارڈ ملتا ہے",
+ "activitypub.announce": "%1 نے آپ کی پوسٹ کو %2 میں اپنے فالوورز کے ساتھ شیئر کیا۔",
+ "activitypub.announce-dual": "%1 اور %2 نے آپ کی پوسٹ کو %3 میں اپنے فالوورز کے ساتھ شیئر کیا۔",
+ "activitypub.announce-triple": "%1، %2 اور %3 نے آپ کی پوسٹ کو %4 میں اپنے فالوورز کے ساتھ شیئر کیا۔",
+ "activitypub.announce-multiple": "%1، %2 اور %3 دیگر نے آپ کی پوسٹ کو %4 میں اپنے فالوورز کے ساتھ شیئر کیا۔"
+}
\ No newline at end of file
diff --git a/public/language/ur/pages.json b/public/language/ur/pages.json
new file mode 100644
index 0000000000..8f2bc4f24f
--- /dev/null
+++ b/public/language/ur/pages.json
@@ -0,0 +1,71 @@
+{
+ "home": "ہوم",
+ "unread": "غیر پڑھے ہوئے موضوعات",
+ "popular-day": "آج کے مقبول موضوعات",
+ "popular-week": "اس ہفتے کے مقبول موضوعات",
+ "popular-month": "اس مہینے کے مقبول موضوعات",
+ "popular-alltime": "ہر وقت کے مقبول موضوعات",
+ "recent": "حالیہ موضوعات",
+ "top-day": "آج کے سب سے زیادہ ووٹ والے موضوعات",
+ "top-week": "اس ہفتے کے سب سے زیادہ ووٹ والے موضوعات",
+ "top-month": "اس مہینے کے سب سے زیادہ ووٹ والے موضوعات",
+ "top-alltime": "سب سے زیادہ ووٹ والے موضوعات",
+ "moderator-tools": "ماڈریٹر ٹولز",
+ "flagged-content": "رپورٹ کیا گیا مواد",
+ "ip-blacklist": "IP ایڈریسز کی بلیک لسٹ",
+ "post-queue": "پوسٹس کی قطار",
+ "registration-queue": "رجسٹریشن کی قطار",
+ "users/online": "آن لائن صارفین",
+ "users/latest": "تازہ ترین صارفین",
+ "users/sort-posts": "سب سے زیادہ پوسٹس والے صارفین",
+ "users/sort-reputation": "سب سے زیادہ ساکھ والے صارفین",
+ "users/banned": "پابندی شدہ صارفین",
+ "users/most-flags": "سب سے زیادہ رپورٹ شدہ صارفین",
+ "users/search": "صارفین کی تلاش",
+ "notifications": "اطلاعات",
+ "tags": "ٹیگز",
+ "tag": "موضوعات جن پر '%1' کا ٹیگ لگا ہوا ہے",
+ "register": "اکاؤنٹ رجسٹر کریں",
+ "registration-complete": "رجسٹریشن مکمل ہو گئی",
+ "login": "اپنے اکاؤنٹ میں لاگ ان کریں",
+ "reset": "اپنے اکاؤنٹ کا پاس ورڈ ری سیٹ کریں",
+ "categories": "زمرہ جات",
+ "groups": "گروپس",
+ "group": "گروپ %1",
+ "chats": "گفتگو",
+ "chat": "%1 کے ساتھ گفتگو",
+ "flags": "رپورٹس",
+ "flag-details": "رپورٹ %1 کی تفصیلات",
+ "world": "جهان",
+ "account/edit": "'%1' کی ترمیم",
+ "account/edit/password": "'%1' کا پاس ورڈ ترمیم کریں",
+ "account/edit/username": "'%1' کا صارف نام ترمیم کریں",
+ "account/edit/email": "'%1' کا ای میل ترمیم کریں",
+ "account/info": "اکاؤنٹ کی معلومات",
+ "account/following": "وہ لوگ جنہیں %1 فالو کرتا ہے",
+ "account/followers": "وہ لوگ جو %1 کو فالو کرتے ہیں",
+ "account/posts": "%1 کی پوسٹس",
+ "account/latest-posts": "%1 کی تازہ ترین پوسٹس",
+ "account/topics": "%1 کے بنائے ہوئے موضوعات",
+ "account/groups": "%1 کے گروپس",
+ "account/watched-categories": "%1 کے دیکھے ہوئے زمرہ جات",
+ "account/watched-tags": "%1 کے دیکھے ہوئے ٹیگز",
+ "account/bookmarks": "%1 کی بک مارک کردہ پوسٹس",
+ "account/settings": "صارف کی ترتیبات",
+ "account/settings-of": "%1 کی ترتیبات تبدیل کی جا رہی ہیں",
+ "account/watched": "%1 کے دیکھے ہوئے موضوعات",
+ "account/ignored": "%1 کے نظر انداز کردہ موضوعات",
+ "account/read": "%1 کے پڑھے ہوئے موضوعات",
+ "account/upvoted": "%1 کی طرف سے مثبت ووٹ دی گئی پوسٹس",
+ "account/downvoted": "%1 کی طرف سے منفی ووٹ دی گئی پوسٹس",
+ "account/best": "%1 کی بہترین پوسٹس",
+ "account/controversial": "%1 کی متنازعہ پوسٹس",
+ "account/blocks": "%1 کے لیے بلاک شدہ صارفین",
+ "account/uploads": "%1 کے اپ لوڈز",
+ "account/sessions": "لاگ ان سیشنز",
+ "account/shares": "%1 کی شیئر کردہ موضوعات",
+ "confirm": "ای میل کی تصدیق ہو گئی",
+ "maintenance.text": "%1 فی الحال دیکھ بھال کے تحت ہے۔ براہ کرم بعد میں واپس آئیں۔",
+ "maintenance.messageIntro": "مزید برآں، ایڈمنسٹریٹر نے یہ پیغام چھوڑا ہے:",
+ "throttled.text": "%1 فی الحال ضرورت سے زیادہ بوجھ کی وجہ سے ناقابل رسائی ہے۔ براہ کرم بعد میں دوبارہ آئیں۔"
+}
\ No newline at end of file
diff --git a/public/language/ur/post-queue.json b/public/language/ur/post-queue.json
new file mode 100644
index 0000000000..fac19e77f3
--- /dev/null
+++ b/public/language/ur/post-queue.json
@@ -0,0 +1,43 @@
+
+{
+ "post-queue": "پوسٹس کی قطار",
+ "no-queued-posts": "پوسٹس کی قطار میں کچھ بھی نہیں ہے۔",
+ "no-single-post": "آپ جس موضوع یا پوسٹ کی تلاش کر رہے ہیں وہ اب قطار میں نہیں ہے۔ ممکنہ طور پر اسے یا تو منظور کر لیا گیا ہے یا حذف کر دیا گیا ہے۔",
+ "enabling-help": "اس وقت پوسٹس کی قطار غیر فعال ہے۔ اس فعالیت کو فعال کرنے کے لیے، ترتیبات → پوسٹس → پوسٹس کی قطار پر جائیں اور پوسٹس کی قطار کو فعال کریں۔",
+ "back-to-list": "پوسٹس کی قطار پر واپس",
+ "public-intro": "اگر آپ کے پاس قطار میں انتظار کرنے والی پوسٹس ہیں، وہ یہاں دکھائی جائیں گی۔",
+ "public-description": "یہ فورم اس طرح ترتیب دیا گیا ہے کہ نئے صارفین کی پوسٹس خودکار طور پر قطار میں شامل ہو جاتی ہیں تاکہ ماڈریٹر کی منظوری کا انتظار کیا جائے۔ اگر آپ کے پاس منظوری کے لیے قطار میں انتظار کرنے والی پوسٹس ہیں، آپ انہیں یہاں دیکھ سکیں گے۔",
+ "user": "صارف",
+ "when": "کب",
+ "category": "زمرہ",
+ "title": "عنوان",
+ "content": "مواد",
+ "posted": "پوسٹ کیا گیا",
+ "reply-to": "«%1» کا جواب",
+ "content-editable": "مواد کو ترمیم کرنے کے لیے اس پر کلک کریں",
+ "category-editable": "زمرہ کو ترمیم کرنے کے لیے اس پر کلک کریں",
+ "title-editable": "عنوان کو ترمیم کرنے کے لیے اس پر کلک کریں",
+ "reply": "جواب",
+ "topic": "موضوع",
+ "accept": "قبول کریں",
+ "reject": "مسترد کریں",
+ "remove": "ہٹائیں",
+ "notify": "اطلاع دیں",
+ "notify-user": "صارف کو اطلاع دیں",
+ "confirm-reject": "کیا آپ اس پوسٹ کو مسترد کرنا چاہتے ہیں؟",
+ "confirm-remove": "کیا آپ اس پوسٹ کو ہٹانا چاہتے ہیں؟",
+ "bulk-actions": "اجتماعی اقدامات",
+ "accept-all": "سب کو قبول کریں",
+ "accept-selected": "منتخب کردہ کو قبول کریں",
+ "reject-all": "سب کو مسترد کریں",
+ "reject-all-confirm": "کیا آپ واقعی تمام پوسٹس کو مسترد کرنا چاہتے ہیں؟",
+ "reject-selected": "منتخب کردہ کو مسترد کریں",
+ "reject-selected-confirm": "کیا آپ واقعی %1 منتخب کردہ پوسٹس کو مسترد کرنا چاہتے ہیں؟",
+ "remove-all": "سب کو ہٹائیں",
+ "remove-all-confirm": "کیا آپ واقعی تمام پوسٹس کو ہٹانا چاہتے ہیں؟",
+ "remove-selected": "منتخب کردہ کو ہٹائیں",
+ "remove-selected-confirm": "کیا آپ واقعی %1 منتخب کردہ پوسٹس کو ہٹانا چاہتے ہیں؟",
+ "bulk-accept-success": "منظور شدہ پوسٹس: %1",
+ "bulk-reject-success": "مسترد شدہ پوسٹس: %1",
+ "links-in-this-post": "اس پوسٹ میں لنکس"
+}
\ No newline at end of file
diff --git a/public/language/ur/recent.json b/public/language/ur/recent.json
new file mode 100644
index 0000000000..d66c5488b1
--- /dev/null
+++ b/public/language/ur/recent.json
@@ -0,0 +1,13 @@
+{
+ "title": "حالیہ",
+ "day": "دن",
+ "week": "ہفتہ",
+ "month": "مہینہ",
+ "year": "سال",
+ "alltime": "ہر وقت",
+ "no-recent-topics": "کوئی حالیہ موضوعات نہیں ہیں۔",
+ "no-popular-topics": "کوئی مقبول موضوعات نہیں ہیں۔",
+ "load-new-posts": "نئی پوسٹس لوڈ کریں",
+ "uncategorized.title": "تمام معلوم موضوعات",
+ "uncategorized.intro": "یہ صفحہ اس فورم کے موصول ہونے والے تمام موضوعات کی ایک تاریخی فہرست دکھاتا ہے۔ نیچے دیے گئے موضوعات میں خیالات اور رائے کو کسی بھی طرح سے فلٹر نہیں کیا گیا اور یہ اس ویب سائٹ کے خیالات اور رائے سے مطابقت نہیں رکھتے ہو سکتے ہیں۔"
+}
\ No newline at end of file
diff --git a/public/language/ur/register.json b/public/language/ur/register.json
new file mode 100644
index 0000000000..8800aa75b4
--- /dev/null
+++ b/public/language/ur/register.json
@@ -0,0 +1,33 @@
+{
+ "register": "رجسٹریشن",
+ "already-have-account": "کیا آپ کا پہلے سے اکاؤنٹ ہے؟",
+ "cancel-registration": "رجسٹریشن منسوخ کریں",
+ "help.email": "طے شدہ طور پر، آپ کا ای میل دوسروں سے چھپا رہے گا۔",
+ "help.username-restrictions": "%1 سے %2 حروف کے درمیان ایک منفرد صارف نام۔ دوسرے آپ کو @صارف کے ذریعے مینشن کر سکیں گے۔",
+ "help.minimum-password-length": "آپ کے پاس ورڈ کی لمبائی کم از کم %1 حروف ہونی چاہیے۔",
+ "email-address": "ای میل ایڈریس",
+ "email-address-placeholder": "ای میل ایڈریس درج کریں",
+ "username": "صارف نام",
+ "username-placeholder": "صارف نام درج کریں",
+ "password": "پاس ورڈ",
+ "password-placeholder": "پاس ورڈ درج کریں",
+ "confirm-password": "پاس ورڈ کی تصدیق کریں",
+ "confirm-password-placeholder": "پاس ورڈ کی تصدیق کریں",
+ "register-now-button": "اب رجسٹر کریں",
+ "alternative-registration": "رجسٹریشن کا دوسرا طریقہ",
+ "terms-of-use": "استعمال کے شرائط",
+ "agree-to-terms-of-use": "میں استعمال کے شرائط سے اتفاق کرتا ہوں",
+ "terms-of-use-error": "آپ کو استعمال کے شرائط سے اتفاق کرنا ہوگا",
+ "registration-added-to-queue": "آپ کی رجسٹریشن منظوری کے لیے قطار میں شامل کر دی گئی ہے۔ جب ایڈمنسٹریٹر اسے منظور کرے گا تو آپ کو ایک ای میل موصول ہوگا۔",
+ "registration-queue-average-time": "نئے اراکین کی منظوری کے لیے اوسط وقت %1 گھنٹے اور %2 منٹ ہے۔",
+ "registration-queue-auto-approve-time": "اس فورم میں آپ کی رکنیت تقریباً %1 گھنٹوں میں مکمل طور پر فعال ہو جائے گی۔",
+ "interstitial.intro": "ہمیں آپ کے اکاؤنٹ کو اپ ڈیٹ کرنے سے پہلے کچھ اضافی معلومات کی ضرورت ہے…",
+ "interstitial.intro-new": "ہمیں آپ کا اکاؤنٹ بنانے سے پہلے کچھ اضافی معلومات کی ضرورت ہے…",
+ "interstitial.errors-found": "براہ کرم درج کردہ معلومات کا جائزہ لیں:",
+ "gdpr-agree-data": "میں اس بات سے اتفاق کرتا ہوں کہ اس ویب سائٹ پر میری ذاتی معلومات کو جمع اور پروسیس کیا جائے۔",
+ "gdpr-agree-email": "میں اس ویب سائٹ سے ڈائجسٹ اور اطلاعات کے ای میلز وصول کرنے سے اتفاق کرتا ہوں۔",
+ "gdpr-consent-denied": "آپ کو اس ویب سائٹ کو اپنی معلومات جمع/پروسیس کرنے اور آپ کو ای میلز بھیجنے کی اجازت دینی ہوگی۔",
+ "invite.error-admin-only": "براہ راست رجسٹریشن غیر فعال ہے۔ مزید تفصیلات کے لیے براہ کرم ایڈمنسٹریٹر سے رابطہ کریں۔",
+ "invite.error-invite-only": "براہ راست رجسٹریشن غیر فعال ہے۔ اس فورم تک رسائی کے لیے آپ کو پہلے سے رجسٹرڈ صارف سے دعوت حاصل کرنی ہوگی۔",
+ "invite.error-invalid-data": "رجسٹریشن کے لیے موصول ہونے والا ڈیٹا ہمارے ریکارڈز سے مطابقت نہیں رکھتا۔ براہ کرم مزید تفصیلات کے لیے ایڈمنسٹریٹر سے رابطہ کریں۔"
+}
\ No newline at end of file
diff --git a/public/language/ur/reset_password.json b/public/language/ur/reset_password.json
new file mode 100644
index 0000000000..6346614abe
--- /dev/null
+++ b/public/language/ur/reset_password.json
@@ -0,0 +1,18 @@
+{
+ "reset-password": "پاس ورڈ کی تجدید",
+ "update-password": "پاس ورڈ تبدیل کریں",
+ "password-changed.title": "پاس ورڈ تبدیل کر دیا گیا",
+ "password-changed.message": "
پاس ورڈ کامیابی سے ری سیٹ ہو گیا ہے۔ براہ کرم دوبارہ لاگ ان کریں۔",
+ "wrong-reset-code.title": "غلط ری سیٹ کوڈ",
+ "wrong-reset-code.message": "موصول ہونے والا ری سیٹ کوڈ غلط تھا۔ براہ کرم دوبارہ کوشش کریں یا نیا ری سیٹ کوڈ کی درخواست کریں۔",
+ "new-password": "نیا پاس ورڈ",
+ "repeat-password": "پاس ورڈ کی تصدیق کریں",
+ "changing-password": "پاس ورڈ تبدیل ہو رہا ہے…",
+ "enter-email": "براہ کرم اپنا ای میل ایڈریس درج کریں اور ہم آپ کو آپ کے اکاؤنٹ تک رسائی کے طریقہ کار کے ساتھ ایک ای میل بھیجیں گے۔",
+ "enter-email-address": "ای میل ایڈریس درج کریں",
+ "password-reset-sent": "اگر دیا گیا ایڈریس کسی موجودہ صارف اکاؤنٹ سے مطابقت رکھتا ہے تو پاس ورڈ ری سیٹ کرنے کے لیے ایک ای میل بھیج دیا گیا ہے۔ نوٹ کریں کہ فی منٹ صرف ایک ای میل بھیجا جا سکتا ہے۔",
+ "invalid-email": "غلط ای میل / ای میل موجود نہیں ہے!",
+ "password-too-short": "پاس ورڈ بہت مختصر ہے۔ براہ کرم ایک مختلف پاس ورڈ منتخب کریں۔",
+ "passwords-do-not-match": "آپ کے درج کردہ دونوں پاس ورڈز مختلف ہیں۔",
+ "password-expired": "آپ کا پاس ورڈ ختم ہو گیا ہے۔ براہ کرم ایک نیا پاس ورڈ منتخب کریں۔"
+}
\ No newline at end of file
diff --git a/public/language/ur/rewards.json b/public/language/ur/rewards.json
new file mode 100644
index 0000000000..aed43ef915
--- /dev/null
+++ b/public/language/ur/rewards.json
@@ -0,0 +1,10 @@
+{
+ "awarded-x-reputation": "آپ نے %1 ساکھ کے پوائنٹس حاصل کیے",
+ "awarded-group-membership": "آپ کو گروپ %1 میں شامل کیا گیا ہے",
+
+ "essentials/user.reputation-conditional-value": "(ساکھ %1 %2)",
+ "essentials/user.postcount-conditional-value": "(پوسٹس کی تعداد %1 %2)",
+ "essentials/user.lastonline-conditional-value": "(آخری بار آن لائن %1 %2)",
+ "essentials/user.joindate-conditional-value": "(شامل ہونے کی تاریخ %1 %2)",
+ "essentials/user.daysregistered-conditional-value": "(رجسٹریشن کے دنوں کی تعداد %1 %2)"
+}
\ No newline at end of file
diff --git a/public/language/ur/search.json b/public/language/ur/search.json
new file mode 100644
index 0000000000..85f3afc883
--- /dev/null
+++ b/public/language/ur/search.json
@@ -0,0 +1,110 @@
+{
+ "type-to-search": "یہاں تلاش کے لئے لکھیں",
+ "results-matching": "%1 نتیجہ (نتائج)، „%2“ سے مماثل، (%3 سیکنڈ)",
+ "no-matches": "کوئی مماثلت نہیں",
+ "advanced-search": "اعلیٰ تلاش",
+ "in": "میں",
+ "in-titles": "عنوانات میں",
+ "in-titles-posts": "عنوانات اور پوسٹس میں",
+ "in-posts": "پوسٹس میں",
+ "in-bookmarks": "بک مارکس میں",
+ "in-categories": "زمرہ جات میں",
+ "in-users": "صارفین میں",
+ "in-tags": "ٹیگز میں",
+ "categories": "زمرہ جات",
+ "all-categories": "تمام زمرہ جات",
+ "categories-x": "زمرہ جات: %1",
+ "categories-watched-categories": "زمرہ جات: دیکھے گئے زمرہ جات",
+ "type-a-category": "زمرہ درج کریں",
+ "tags": "ٹیگز",
+ "tags-x": "ٹیگز: %1",
+ "type-a-tag": "ٹیگ درج کریں",
+ "match-words": "الفاظ کی مماثلت",
+ "match-all-words": "تمام الفاظ کی مماثلت",
+ "match-any-word": "کسی ایک لفظ کی مماثلت",
+ "all": "تمام",
+ "any": "کوئی بھی",
+ "posted-by": "کی طرف سے پوسٹ کیا گیا",
+ "posted-by-usernames": "کی طرف سے پوسٹ کیا گیا: %1",
+ "type-a-username": "صارف کا نام درج کریں",
+ "search-child-categories": "ذیلی زمرہ جات کی تلاش",
+ "has-tags": "ٹیگز ہیں",
+ "reply-count": "جوابات کی تعداد",
+ "replies": "جوابات",
+ "replies-atleast-count": "جوابات: کم از کم %1",
+ "replies-atmost-count": "جوابات: زیادہ سے زیادہ %1",
+ "at-least": "کم از کم",
+ "at-most": "زیادہ سے زیادہ",
+ "relevance": "مطابقت",
+ "time": "وقت",
+ "post-time": "پوسٹ کا وقت",
+ "votes": "ووٹ",
+ "newer-than": "اس سے نئے",
+ "older-than": "اس سے پرانے",
+ "any-date": "کوئی بھی تاریخ",
+ "yesterday": "کل",
+ "one-week": "ایک ہفتہ",
+ "two-weeks": "دو ہفتے",
+ "one-month": "ایک ماہ",
+ "three-months": "تین ماہ",
+ "six-months": "چھ ماہ",
+ "one-year": "ایک سال",
+ "time-newer-than-86400": "وقت: کل سے اب تک",
+ "time-older-than-86400": "وقت: کل سے پہلے",
+ "time-newer-than-604800": "وقت: ایک ہفتے سے نئے",
+ "time-older-than-604800": "وقت: ایک ہفتے سے پرانے",
+ "time-newer-than-1209600": "وقت: دو ہفتوں سے نئے",
+ "time-older-than-1209600": "وقت: دو ہفتوں سے پرانے",
+ "time-newer-than-2592000": "وقت: ایک ماہ سے نئے",
+ "time-older-than-2592000": "وقت: ایک ماہ سے پرانے",
+ "time-newer-than-7776000": "وقت: تین ماہ سے نئے",
+ "time-older-than-7776000": "وقت: تین ماہ سے پرانے",
+ "time-newer-than-15552000": "وقت: چھ ماہ سے نئے",
+ "time-older-than-15552000": "وقت: چھ ماہ سے پرانے",
+ "time-newer-than-31104000": "وقت: ایک سال سے نئے",
+ "time-older-than-31104000": "وقت: ایک سال سے پرانے",
+ "sort-by": "ترتیب دیں بمطابق",
+ "sort": "ترتیب",
+ "last-reply-time": "آخری جواب کا وقت",
+ "topic-title": "موضوع کا عنوان",
+ "topic-votes": "موضوع کے لئے ووٹ",
+ "number-of-replies": "جوابات کی تعداد",
+ "number-of-views": "دیکھنے کی تعداد",
+ "topic-start-date": "موضوع کی شروعاتی تاریخ",
+ "username": "صارف کا نام",
+ "category": "زمرہ",
+ "descending": "نازل ترتیب میں",
+ "ascending": "صعودی ترتیب میں",
+ "sort-by-relevance-desc": "ترتیب دیں بمطابق: مطابقت، نازل ترتیب میں",
+ "sort-by-relevance-asc": "ترتیب دیں بمطابق: مطابقت، صعودی ترتیب میں",
+ "sort-by-timestamp-desc": "ترتیب دیں بمطابق: پوسٹ کا وقت، نازل ترتیب میں",
+ "sort-by-timestamp-asc": "ترتیب دیں بمطابق: پوسٹ کا وقت، صعودی ترتیب میں",
+ "sort-by-votes-desc": "ترتیب دیں بمطابق: ووٹوں کی تعداد، نازل ترتیب میں",
+ "sort-by-votes-asc": "ترتیب دیں بمطابق: ووٹوں کی تعداد، صعودی ترتیب میں",
+ "sort-by-topic.lastposttime-desc": "ترتیب دیں بمطابق: آخری جواب کا وقت، نازل ترتیب میں",
+ "sort-by-topic.lastposttime-asc": "ترتیب دیں بمطابق: آخری جواب کا وقت، صعودی ترتیب میں",
+ "sort-by-topic.title-desc": "ترتیب دیں بمطابق: موضوع کا عنوان، نازل ترتیب میں",
+ "sort-by-topic.title-asc": "ترتیب دیں بمطابق: موضوع کا عنوان، صعودی ترتیب میں",
+ "sort-by-topic.postcount-desc": "ترتیب دیں بمطابق: جوابات کی تعداد، نازل ترتیب میں",
+ "sort-by-topic.postcount-asc": "ترتیب دیں بمطابق: جوابات کی تعداد، صعودی ترتیب میں",
+ "sort-by-topic.viewcount-desc": "ترتیب دیں بمطابق: دیکھنے کی تعداد، نازل ترتیب میں",
+ "sort-by-topic.viewcount-asc": "ترتیب دیں بمطابق: دیکھنے کی تعداد، صعودی ترتیب میں",
+ "sort-by-topic.votes-desc": "ترتیب دیں بمطابق: موضوع کے ووٹوں کی تعداد، نازل ترتیب میں",
+ "sort-by-topic.votes-asc": "ترتیب دیں بمطابق: موضوع کے ووٹوں کی تعداد، صعودی ترتیب میں",
+ "sort-by-topic.timestamp-desc": "ترتیب دیں بمطابق: موضوع کی شروعاتی تاریخ، نازل ترتیب میں",
+ "sort-by-topic.timestamp-asc": "ترتیب دیں بمطابق: موضوع کی شروعاتی تاریخ، صعودی ترتیب میں",
+ "sort-by-user.username-desc": "ترتیب دیں بمطابق: صارف کا نام، نازل ترتیب میں",
+ "sort-by-user.username-asc": "ترتیب دیں بمطابق: صارف کا نام، صعودی ترتیب میں",
+ "sort-by-category.name-desc": "ترتیب دیں بمطابق: زمرہ، نازل ترتیب میں",
+ "sort-by-category.name-asc": "ترتیب دیں بمطابق: زمرہ، صعودی ترتیب میں",
+ "save": "محفوظ کریں",
+ "save-preferences": "ترجیحات محفوظ کریں",
+ "clear-preferences": "ترجیحات صاف کریں",
+ "search-preferences-saved": "تلاش کی ترجیحات محفوظ ہو گئیں",
+ "search-preferences-cleared": "تلاش کی ترجیحات صاف ہو گئیں",
+ "show-results-as": "نتائج کو اس طرح دکھائیں",
+ "show-results-as-topics": "نتائج کو موضوعات کے طور پر دکھائیں",
+ "show-results-as-posts": "نتائج کو پوسٹس کے طور پر دکھائیں",
+ "see-more-results": "مزید نتائج دکھائیں (%1)",
+ "search-in-category": "„%1“ میں تلاش کریں"
+}
\ No newline at end of file
diff --git a/public/language/ur/social.json b/public/language/ur/social.json
new file mode 100644
index 0000000000..e457268ea3
--- /dev/null
+++ b/public/language/ur/social.json
@@ -0,0 +1,14 @@
+{
+ "sign-in-with-twitter": "ٹوئٹر کے ساتھ لاگ ان کریں",
+ "sign-up-with-twitter": "ٹوئٹر کے ساتھ رجسٹر کریں",
+ "sign-in-with-github": "گٹ ہب کے ساتھ لاگ ان کریں",
+ "sign-up-with-github": "گٹ ہب کے ساتھ رجسٹر کریں",
+ "sign-in-with-google": "گوگل کے ساتھ لاگ ان کریں",
+ "sign-up-with-google": "گوگل کے ساتھ رجسٹر کریں",
+ "log-in-with-facebook": "فیس بک کے ساتھ لاگ ان کریں",
+ "continue-with-facebook": "فیس بک کے ساتھ جاری رکھیں",
+ "sign-in-with-linkedin": "لنکڈ ان کے ساتھ لاگ ان کریں",
+ "sign-up-with-linkedin": "لنکڈ ان کے ساتھ رجسٹر کریں",
+ "sign-in-with-wordpress": "Sign in with WordPress",
+ "sign-up-with-wordpress": "Sign up with WordPress"
+}
\ No newline at end of file
diff --git a/public/language/ur/success.json b/public/language/ur/success.json
new file mode 100644
index 0000000000..4c6e1a13ac
--- /dev/null
+++ b/public/language/ur/success.json
@@ -0,0 +1,7 @@
+{
+ "success": "ہو گیا",
+ "topic-post": "آپ نے کامیابی سے پوسٹ کیا۔",
+ "post-queued": "آپ کی پوسٹ منظوری کے لیے قطار میں رکھی گئی ہے۔ جب اسے منظور یا مسترد کیا جائے گا تو آپ کو اطلاع موصول ہوگی۔",
+ "authentication-successful": "کامیاب تصدیق",
+ "settings-saved": "ترتیبات محفوظ کر دی گئیں!"
+}
\ No newline at end of file
diff --git a/public/language/ur/tags.json b/public/language/ur/tags.json
new file mode 100644
index 0000000000..e0b0e3ffe7
--- /dev/null
+++ b/public/language/ur/tags.json
@@ -0,0 +1,17 @@
+{
+ "all-tags": "تمام ٹیگز",
+ "no-tag-topics": "اس ٹیگ کے ساتھ کوئی موضوعات نہیں ہیں۔",
+ "no-tags-found": "کوئی ٹیگز نہیں ملے",
+ "tags": "ٹیگز",
+ "enter-tags-here": "%1 – %2 حروف کے ساتھ ٹیگز درج کریں۔",
+ "enter-tags-here-short": "ٹیگز درج کریں...",
+ "no-tags": "ابھی تک کوئی ٹیگز نہیں ہیں۔",
+ "select-tags": "ٹیگز منتخب کریں",
+ "tag-whitelist": "اجازت شدہ ٹیگز کی فہرست",
+ "watching": "دیکھ رہے ہیں",
+ "not-watching": "نہیں دیکھ رہے",
+ "watching.description": "میں نئے موضوعات کے لیے اطلاعات حاصل کرنا چاہتا ہوں۔",
+ "not-watching.description": "میں نئے موضوعات کے لیے اطلاعات حاصل نہیں کرنا چاہتا۔",
+ "following-tag.message": "اب آپ کو اطلاعات موصول ہوں گی جب کوئی اس ٹیگ کے ساتھ موضوع پوسٹ کرے گا۔",
+ "not-following-tag.message": "آپ کو اطلاعات موصول نہیں ہوں گی جب کوئی اس ٹیگ کے ساتھ موضوع پوسٹ کرے گا۔"
+}
\ No newline at end of file
diff --git a/public/language/ur/themes/harmony.json b/public/language/ur/themes/harmony.json
new file mode 100644
index 0000000000..a76466fe61
--- /dev/null
+++ b/public/language/ur/themes/harmony.json
@@ -0,0 +1,23 @@
+{
+ "theme-name": "ہارمنی تھیم",
+ "skins": "سکنز",
+ "collapse": "سمیٹیں",
+ "expand": "پھیلائیں",
+ "sidebar-toggle": "سائڈبار ٹوگل",
+ "login-register-to-search": "تلاش کرنے کے لیے لاگ ان کریں یا رجسٹر کریں۔",
+ "settings.title": "تھیم کی ترتیبات",
+ "settings.enableQuickReply": "فوری جوابات فعال کریں",
+ "settings.enableBreadcrumbs": "زمرہ جات اور موضوعات کے صفحات پر بریڈ کرمبس دکھائیں",
+ "settings.enableBreadcrumbs.why": "بریڈ کرمبس زیادہ تر صفحات پر آسان نیویگیشن کے لیے دکھائی دیتے ہیں۔ زمرہ جات اور موضوعات کے صفحات کا بنیادی ڈیزائن زیادہ عمومی صفحات پر واپس جانے کے دیگر طریقے فراہم کرتا ہے، لیکن اگر آپ چاہیں تو بصری بھرتی کو کم کرنے کے لیے بریڈ کرمبس کا ڈسپلے بند کر سکتے ہیں۔",
+ "settings.centerHeaderElements": "ہیڈر عناصر کو وسط میں رکھیں",
+ "settings.mobileTopicTeasers": "موبائل ڈیوائسز پر موضوعات کے ٹیززر دکھائیں",
+ "settings.stickyToolbar": "سٹیٹک ٹولبار",
+ "settings.stickyToolbar.help": "موضوعات اور زمرہ جات کے صفحات پر ٹولبار ہمیشہ صفحہ کے اوپری حصے میں رہے گی",
+ "settings.topicSidebarTools": "موضوعات کے لیے سائڈبار ٹولز",
+ "settings.topicSidebarTools.help": "یہ ترتیب ویب سائٹ کے ڈیسک ٹاپ ورژن کے استعمال کے دوران موضوعات کے ٹولز کو سائڈبار میں منتقل کر دے گی",
+ "settings.autohideBottombar": "موبائل ڈیوائسز کے لیے نیویگیشن بار کو خودکار طور پر چھپائیں",
+ "settings.autohideBottombar.help": "جب صفحہ نیچے سکرول کیا جائے گا تو موبائل نیویگیشن بار چھپ جائے گی",
+ "settings.topMobilebar": "موبائل نیویگیشن بار کو اوپر منتقل کریں",
+ "settings.openSidebars": "سائڈبارز کھولیں",
+ "settings.chatModals": "گفتگو کے ونڈوز فعال کریں"
+}
\ No newline at end of file
diff --git a/public/language/ur/themes/persona.json b/public/language/ur/themes/persona.json
new file mode 100644
index 0000000000..4233d7dfbc
--- /dev/null
+++ b/public/language/ur/themes/persona.json
@@ -0,0 +1,10 @@
+{
+ "settings.title": "تھیم کی ترتیبات",
+ "settings.intro": "یہاں آپ تھیم کی ترتیبات کو تبدیل کر سکتے ہیں۔ یہ ترتیبات ہر ڈیوائس پر الگ سے محفوظ کی جاتی ہیں، لہذا آپ اپنے مختلف ڈیوائسز (فون، ٹیبلٹ، ڈیسک ٹاپ وغیرہ) پر مختلف ترتیبات رکھ سکتے ہیں۔",
+ "settings.mobile-menu-side": "موبائل ڈیوائس پر مینو کس طرف سے کھلے گا اس کا انتخاب کریں",
+ "settings.autoHidingNavbar": "سکرولنگ کے دوران نیویگیشن بار کو خودکار طور پر چھپائیں",
+ "settings.autoHidingNavbar-xs": "بہت چھوٹی اسکرینز (مثلاً پورٹریٹ موڈ میں فون)",
+ "settings.autoHidingNavbar-sm": "چھوٹی اسکرینز (مثلاً فونز، کچھ ٹیبلٹس)",
+ "settings.autoHidingNavbar-md": "درمیانی سائز کی اسکرینز (مثلاً لینڈسکیپ موڈ میں ٹیبلٹس)",
+ "settings.autoHidingNavbar-lg": "بڑی اسکرینز (مثلاً لیپ ٹاپس اور ڈیسک ٹاپس)"
+}
\ No newline at end of file
diff --git a/public/language/ur/top.json b/public/language/ur/top.json
new file mode 100644
index 0000000000..d98a236c05
--- /dev/null
+++ b/public/language/ur/top.json
@@ -0,0 +1,4 @@
+{
+ "title": "سب سے مقبول",
+ "no-top-topics": "کوئی سب سے مقبول موضوعات نہیں ہیں"
+}
\ No newline at end of file
diff --git a/public/language/ur/topic.json b/public/language/ur/topic.json
new file mode 100644
index 0000000000..5c6e9f7991
--- /dev/null
+++ b/public/language/ur/topic.json
@@ -0,0 +1,234 @@
+{
+ "topic": "موضوع",
+ "title": "عنوان",
+ "no-topics-found": "کوئی موضوعات نہیں ملے!",
+ "no-posts-found": "کوئی پوسٹس نہیں ملیں!",
+ "post-is-deleted": "پوسٹ حذف کر دی گئی!",
+ "topic-is-deleted": "موضوع حذف کر دیا گیا!",
+ "profile": "پروفائل",
+ "posted-by": "%1 کی طرف سے پوسٹ کیا گیا",
+ "posted-by-guest": "مہمان کی طرف سے پوسٹ کیا گیا",
+ "chat": "چیت",
+ "notify-me": "اس موضوع میں نئے جوابات کے لیے نوٹیفکیشنز حاصل کریں",
+ "quote": "اقتباس",
+ "reply": "جواب",
+ "replies-to-this-post": "%1 جوابات",
+ "one-reply-to-this-post": "1 جواب",
+ "last-reply-time": "آخری جواب",
+ "reply-options": "جواب کے اختیارات",
+ "reply-as-topic": "نئے موضوع میں جواب",
+ "guest-login-reply": "جواب دینے کے لیے لاگ ان کریں",
+ "login-to-view": "🔒 اسے دیکھنے کے لیے لاگ ان کریں",
+ "edit": "ترمیم کریں",
+ "delete": "حذف کریں",
+ "delete-event": "ایونٹ حذف کریں",
+ "delete-event-confirm": "کیا آپ واقعی اس ایونٹ کو حذف کرنا چاہتے ہیں؟",
+ "purge": "صاف کریں",
+ "restore": "بحال کریں",
+ "move": "منتقل کریں",
+ "change-owner": "مالک تبدیل کریں",
+ "manage-editors": "ایڈیٹرز کا انتظام کریں",
+ "fork": "تقسیم کریں",
+ "link": "لنک",
+ "share": "شیئر کریں",
+ "tools": "ٹولز",
+ "locked": "مقفل",
+ "pinned": "پن کیا گیا",
+ "pinned-with-expiry": "%1 تک پن کیا گیا",
+ "scheduled": "طے شدہ",
+ "deleted": "حذف شدہ",
+ "moved": "منتقل شدہ",
+ "moved-from": "%1 سے منتقل کیا گیا",
+ "copy-code": "کوڈ کاپی کریں",
+ "copy-ip": "IP ایڈریس کاپی کریں",
+ "ban-ip": "IP ایڈریس بلاک کریں",
+ "view-history": "ترمیمی تاریخ",
+ "wrote-ago": " لکھا",
+ "wrote-on": " پر لکھا",
+ "replied-to-user-ago": "%3 کو جواب دیا",
+ "replied-to-user-on": "%3 کو پر جواب دیا",
+ "user-locked-topic-ago": "%1 نے اس موضوع کو %2 پر مقفل کیا",
+ "user-locked-topic-on": "%1 نے اس موضوع کو %2 پر مقفل کیا",
+ "user-unlocked-topic-ago": "%1 نے اس موضوع کو %2 پر کھول دیا",
+ "user-unlocked-topic-on": "%1 نے اس موضوع کو %2 پر کھول دیا",
+ "user-pinned-topic-ago": "%1 نے اس موضوع کو %2 پر پن کیا",
+ "user-pinned-topic-on": "%1 نے اس موضوع کو %2 پر پن کیا",
+ "user-unpinned-topic-ago": "%1 نے اس موضوع کو %2 پر ان پن کیا",
+ "user-unpinned-topic-on": "%1 نے اس موضوع کو %2 پر ان پن کیا",
+ "user-deleted-topic-ago": "%1 نے اس موضوع کو %2 پر حذف کیا",
+ "user-deleted-topic-on": "%1 نے اس موضوع کو %2 پر حذف کیا",
+ "user-restored-topic-ago": "%1 نے اس موضوع کو %2 پر بحال کیا",
+ "user-restored-topic-on": "%1 نے اس موضوع کو %2 پر بحال کیا",
+ "user-moved-topic-from-ago": "%1 نے اس موضوع کو %2 سے %3 پر منتقل کیا",
+ "user-moved-topic-from-on": "%1 نے اس موضوع کو %2 سے %3 پر منتقل کیا",
+ "user-shared-topic-ago": "%1 نے اس موضوع کو %2 پر شیئر کیا",
+ "user-shared-topic-on": "%1 نے اس موضوع کو %2 پر شیئر کیا",
+ "user-queued-post-ago": "%1 نے اس پوسٹ کو منظوری کے لیے قطار میں %3 پر شامل کیا",
+ "user-queued-post-on": "%1 نے اس پوسٹ کو قطار میں منظوری کے لیے %3 پر شامل کیا",
+ "user-referenced-topic-ago": "%1 نے اس موضوع کی طرف حوالہ دیا %3 پر",
+ "user-referenced-topic-on": "%1 نے اس موضوع کی طرف حوالہ دیا %3 پر",
+ "user-forked-topic-ago": "%1 نے اس موضوع کو تقسیم کیا %3 پر",
+ "user-forked-topic-on": "%1 نے اس موضوع کو تقسیم کیا %3 پر",
+ "bookmark-instructions": "اس موضوع میں آخری پڑھی گئی پوسٹ پر واپس جانے کے لیے یہاں کلک کریں۔",
+ "flag-post": "اس پوسٹ کی رپورٹ کریں",
+ "flag-user": "اس صارف کی رپورٹ کریں",
+ "already-flagged": "پہلے سے رپورٹ کیا جا چکا ہے",
+ "view-flag-report": "رپورٹ دیکھیں",
+ "resolve-flag": "رپورٹ حل کریں",
+ "merged-message": "یہ موضوع %2 میں ضم کر دیا گیا",
+ "forked-message": "یہ موضوع %2 سے الگ کیا گیا",
+ "deleted-message": "موضوع حذف کر دیا گیا۔ صرف موضوعات کے انتظام کے حقوق رکھنے والے صارفین اسے دیکھ سکتے ہیں۔",
+ "following-topic.message": "اب آپ کو اس موضوع میں کسی کے تبصرہ پوسٹ کرنے پر نوٹیفکیشنز موصول ہوں گے۔",
+ "not-following-topic.message": "آپ اس موضوع کو غیر پڑھے ہوئے موضوعات کی فہرست میں دیکھیں گے، لیکن جب لوگ اس میں کچھ پوسٹ کریں گے تو آپ کو نوٹیفکیشنز موصول نہیں ہوں گے۔",
+ "ignoring-topic.message": "اب آپ اس موضوع کو غیر پڑھے ہوئے موضوعات کی فہرست میں نہیں دیکھیں گے۔ جب کوئی آپ کا تذکرہ کرے گا یا آپ کی پوسٹ کے لیے مثبت ووٹ دے گا تو آپ کو نوٹیفکیشن ملے گا۔",
+ "login-to-subscribe": "براہ کرم اس موضوع کے لیے سبسکرائب کرنے کے لیے رجسٹر کریں یا لاگ ان کریں۔",
+ "markAsUnreadForAll.success": "موضوع کو سب کے لیے غیر پڑھا ہوا نشان زد کیا گیا۔",
+ "mark-unread": "غیر پڑھا ہوا نشان زد کریں",
+ "mark-unread.success": "موضوع کو غیر پڑھا ہوا نشان زد کیا گیا۔",
+ "watch": "مشاہدہ کریں",
+ "unwatch": "مشاہدہ بند کریں",
+ "watch.title": "اس موضوع میں نئے جوابات کے لیے نوٹیفکیشنز حاصل کریں",
+ "unwatch.title": "اس موضوع کا مشاہدہ بند کریں",
+ "share-this-post": "اس پوسٹ کو شیئر کریں",
+ "watching": "مشاہدہ کر رہے ہیں",
+ "not-watching": "مشاہدہ نہیں کر رہے",
+ "ignoring": "نظر انداز کر رہے ہیں",
+ "watching.description": "میں نئے جوابات کے لیے نوٹیفکیشنز حاصل کرنا چاہتا ہوں۔ میں چاہتا ہوں کہ موضوع غیر پڑھے ہوئے کی فہرست میں دکھائی دے۔",
+ "not-watching.description": "میں نئے جوابات کے لیے نوٹیفکیشنز نہیں چاہتا۔ موضوع غیر پڑھے ہوئے کی فہرست میں دکھائی دے، صرف اس صورت میں جب زمرہ نظر انداز نہ کیا گیا ہو۔",
+ "ignoring.description": "میں نئے جوابات کے لیے نوٹیفکیشنز نہیں چاہتا۔ میں نہیں چاہتا کہ موضوع غیر پڑھے ہوئے کی فہرست میں دکھائی دے۔",
+ "thread-tools.title": "موضوع کے ٹولز",
+ "thread-tools.markAsUnreadForAll": "سب کے لیے غیر پڑھا ہوا نشان زد کریں",
+ "thread-tools.pin": "موضوع کو پن کریں",
+ "thread-tools.unpin": "موضوع کو ان پن کریں",
+ "thread-tools.lock": "موضوع کو مقفل کریں",
+ "thread-tools.unlock": "موضوع کو کھولیں",
+ "thread-tools.move": "موضوع منتقل کریں",
+ "thread-tools.crosspost": "Crosspost Topic",
+ "thread-tools.move-posts": "پوسٹس منتقل کریں",
+ "thread-tools.move-all": "سب منتقل کریں",
+ "thread-tools.change-owner": "مالک تبدیل کریں",
+ "thread-tools.manage-editors": "ایڈیٹرز کا انتظام کریں",
+ "thread-tools.select-category": "زمرہ منتخب کریں",
+ "thread-tools.fork": "موضوع تقسیم کریں",
+ "thread-tools.tag": "موضوع پر ٹیگ لگائیں",
+ "thread-tools.delete": "موضوع حذف کریں",
+ "thread-tools.delete-posts": "پوسٹس حذف کریں",
+ "thread-tools.delete-confirm": "کیا آپ واقعی اس موضوع کو حذف کرنا چاہتے ہیں؟",
+ "thread-tools.restore": "موضوع بحال کریں",
+ "thread-tools.restore-confirm": "کیا آپ واقعی اس موضوع کو بحال کرنا چاہتے ہیں؟",
+ "thread-tools.purge": "موضوع صاف کریں",
+ "thread-tools.purge-confirm": "کیا آپ واقعی اس موضوع کو صاف کرنا چاہتے ہیں؟",
+ "thread-tools.merge-topics": "موضوعات ضم کریں",
+ "thread-tools.merge": "موضوع ضم کریں",
+ "topic-move-success": "موضوع جلد ہی „%1“ میں منتقل ہو جائے گا۔ منتقل کرنے کو منسوخ کرنے کے لیے یہاں کلک کریں۔",
+ "topic-move-multiple-success": "موضوعات جلد ہی „%1“ میں منتقل ہو جائیں گے۔ منتقل کرنے کو منسوخ کرنے کے لیے یہاں کلک کریں۔",
+ "topic-move-all-success": "تمام موضوعات جلد ہی „%1“ میں منتقل ہو جائیں گے۔ منتقل کرنے کو منسوخ کرنے کے لیے یہاں کلک کریں۔",
+ "topic-move-undone": "موضوع کی منتقلی منسوخ کر دی گئی",
+ "topic-move-posts-success": "پوسٹس جلد ہی منتقل ہو جائیں گی۔ منتقل کرنے کو منسوخ کرنے کے لیے یہاں کلک کریں۔",
+ "topic-move-posts-undone": "پوسٹس کی منتقلی منسوخ کر دی گئی",
+ "post-delete-confirm": "کیا آپ واقعی اس پوسٹ کو حذف کرنا چاہتے ہیں؟",
+ "post-restore-confirm": "کیا آپ واقعی اس پوسٹ کو بحال کرنا چاہتے ہیں؟",
+ "post-purge-confirm": "کیا آپ واقعی اس پوسٹ کو صاف کرنا چاہتے ہیں؟",
+ "pin-modal-expiry": "ختم ہونے کی تاریخ",
+ "pin-modal-help": "اگر آپ چاہیں تو یہاں پن کیے گئے موضوعات کے لیے ختم ہونے کی تاریخ بتا سکتے ہیں۔ آپ اس فیلڈ کو خالی بھی چھوڑ سکتے ہیں، اس صورت میں موضوع اس وقت تک پن رہے گا جب تک اسے دستی طور پر ان پن نہ کیا جائے۔",
+ "load-categories": "زمرہ جات لوڈ کریں",
+ "confirm-move": "منتقل کریں",
+ "confirm-crosspost": "Cross-post",
+ "confirm-fork": "تقسیم کریں",
+ "bookmark": "بک مارک",
+ "bookmarks": "بک مارکس",
+ "bookmarks.has-no-bookmarks": "آپ نے ابھی تک کسی پوسٹ کے لیے بک مارکس محفوظ نہیں کیے۔",
+ "copy-permalink": "مستقل لنک کاپی کریں",
+ "go-to-original": "اصل پوسٹ دیکھیں",
+ "loading-more-posts": "مزید پوسٹس لوڈ ہو رہی ہیں",
+ "move-topic": "موضوع منتقل کریں",
+ "move-topics": "موضوعات منتقل کریں",
+ "crosspost-topic": "Cross-post Topic",
+ "move-post": "پوسٹ منتقل کریں",
+ "post-moved": "پوسٹ منتقل کر دی گئی!",
+ "fork-topic": "موضوع تقسیم کریں",
+ "enter-new-topic-title": "نئے موضوع کا عنوان درج کریں",
+ "fork-topic-instruction": "ان پوسٹس پر کلک کریں جنہیں آپ تقسیم کرنا چاہتے ہیں، نئے موضوع کا نام درج کریں، اور „موضوع تقسیم کریں“ پر کلک کریں",
+ "fork-no-pids": "کوئی پوسٹس منتخب نہیں کی گئیں!",
+ "no-posts-selected": "کوئی پوسٹس منتخب نہیں کی گئیں!",
+ "x-posts-selected": "منتخب پوسٹس: %1",
+ "x-posts-will-be-moved-to-y": "%1 پوسٹس „%2“ میں منتقل ہو جائیں گی",
+ "fork-pid-count": "منتخب پوسٹس: %1",
+ "fork-success": "موضوع کامیابی سے تقسیم کر دیا گیا! تقسیم شدہ موضوع پر جانے کے لیے یہاں کلک کریں۔",
+ "delete-posts-instruction": "ان پوسٹس پر کلک کریں جنہیں آپ حذف/صاف کرنا چاہتے ہیں",
+ "merge-topics-instruction": "ان موضوعات پر کلک کریں جنہیں آپ ضم کرنا چاہتے ہیں، یا انہیں تلاش کریں",
+ "merge-topic-list-title": "ضم کیے جانے والے موضوعات کی فہرست",
+ "merge-options": "ضم کرنے کے اختیارات",
+ "merge-select-main-topic": "مرکزی موضوع منتخب کریں",
+ "merge-new-title-for-topic": "موضوع کے لیے نیا عنوان",
+ "topic-id": "موضوع کی شناخت",
+ "move-posts-instruction": "ان پوسٹس پر کلک کریں جنہیں آپ منتقل کرنا چاہتے ہیں، پھر موضوع کی شناخت درج کریں یا ہدف موضوع پر جائیں",
+ "move-topic-instruction": "ہدف زمرہ منتخب کریں اور „منتقل کریں“ پر کلک کریں",
+ "change-owner-instruction": "ان پوسٹس پر کلک کریں جنہیں آپ دوسرے صارف کو منتقل کرنا چاہتے ہیں",
+ "manage-editors-instruction": "نیچے ان صارفین کو نامزد کریں جو اس پوسٹ کو ترمیم کر سکتے ہیں۔",
+ "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": "یہاں نام درج کریں",
+ "composer.hide": "چھپائیں",
+ "composer.discard": "مسترد کریں",
+ "composer.submit": "شائع کریں",
+ "composer.additional-options": "اضافی اختیارات",
+ "composer.post-later": "بعد میں پوسٹ کریں",
+ "composer.schedule": "طے کریں",
+ "composer.replying-to": "%1 کو جواب",
+ "composer.new-topic": "نیا موضوع",
+ "composer.editing-in": "%1 میں پوسٹ کی ترمیم",
+ "composer.uploading": "اپ لوڈ ہو رہا ہے...",
+ "composer.thumb-url-label": "موضوع کے لیے آئیکن کا ایڈریس پیسٹ کریں",
+ "composer.thumb-title": "اس موضوع میں آئیکن شامل کریں",
+ "composer.thumb-url-placeholder": "http://example.com/thumb.png",
+ "composer.thumb-file-label": "یا فائل اپ لوڈ کریں",
+ "composer.thumb-remove": "فیلڈز صاف کریں",
+ "composer.drag-and-drop-images": "یہاں تصاویر گھسیٹیں",
+ "more-users-and-guests": "مزید %1 صارفین اور %2 مہمان",
+ "more-users": "مزید %1 صارفین",
+ "more-guests": "مزید %1 مہمان",
+ "users-and-others": "%1 اور %2 دیگر",
+ "sort-by": "ترتیب دیں بمطابق",
+ "oldest-to-newest": "پہلے سب سے پرانے",
+ "newest-to-oldest": "پہلے سب سے نئے",
+ "recently-replied": "پہلے تازہ ترین جوابات والے",
+ "recently-created": "پہلے تازہ ترین بنائے گئے",
+ "most-votes": "پہلے سب سے زیادہ ووٹ والے",
+ "most-posts": "پہلے سب سے زیادہ پوسٹس والے",
+ "most-views": "پہلے سب سے زیادہ نظاروں والے",
+ "stale.title": "اس کے بجائے نیا موضوع بنائیں؟",
+ "stale.warning": "جس موضوع میں آپ جواب دے رہے ہیں وہ کافی پرانا ہے۔ کیا آپ اس کے بجائے ایک نیا موضوع بنانا چاہیں گے اور اپنے جواب میں اس کا حوالہ دیں گے؟",
+ "stale.create": "نیا موضوع بنائیں",
+ "stale.reply-anyway": "پھر بھی اس موضوع میں جواب دیں",
+ "link-back": "جواب: [%1](%2)",
+ "diffs.title": "ترمیمی تاریخ",
+ "diffs.description": "اس پوسٹ کی %1 ورژنز ہیں۔ نیچے کسی بھی ورژن پر کلک کریں تاکہ اس وقت کا مواد دیکھیں۔",
+ "diffs.no-revisions-description": "اس پوسٹ کی %1 ورژنز ہیں۔",
+ "diffs.current-revision": "موجودہ ورژن",
+ "diffs.original-revision": "اصل ورژن",
+ "diffs.restore": "اس ورژن کو بحال کریں",
+ "diffs.restore-description": "اس ورژن کی بحالی کے بعد اس پوسٹ کی ترمیمی تاریخ میں ایک نیا ورژن شامل ہو جائے گا۔",
+ "diffs.post-restored": "پوسٹ کو کامیابی سے پچھلے ورژن میں بحال کر دیا گیا",
+ "diffs.delete": "اس ورژن کو حذف کریں",
+ "diffs.deleted": "ورژن حذف کر دیا گیا",
+ "timeago-later": "%1 بعد میں",
+ "timeago-earlier": "%1 پہلے",
+ "first-post": "پہلی پوسٹ",
+ "last-post": "آخری پوسٹ",
+ "go-to-my-next-post": "میری اگلی پوسٹ پر جائیں",
+ "no-more-next-post": "اس موضوع میں آپ کی مزید پوسٹس نہیں ہیں",
+ "open-composer": "ایڈیٹر کھولیں",
+ "post-quick-reply": "فوری جواب",
+ "navigator.index": "پوسٹ %1 از %2",
+ "navigator.unread": "%1 غیر پڑھے ہوئے",
+ "upvote-post": "پوسٹ کے لیے مثبت ووٹ",
+ "downvote-post": "پوسٹ کے لیے منفی ووٹ",
+ "post-tools": "پوسٹس کے ٹولز",
+ "unread-posts-link": "غیر پڑھے ہوئے پوسٹس کا لنک",
+ "thumb-image": "موضوع کی آئیکن",
+ "announcers": "شیئرز",
+ "announcers-x": "شیئرز (%1)"
+}
\ No newline at end of file
diff --git a/public/language/ur/unread.json b/public/language/ur/unread.json
new file mode 100644
index 0000000000..46001ee599
--- /dev/null
+++ b/public/language/ur/unread.json
@@ -0,0 +1,16 @@
+{
+ "title": "غیر پڑھے ہوئے",
+ "no-unread-topics": "کوئی غیر پڑھے ہوئے موضوعات نہیں ہیں۔",
+ "load-more": "مزید لوڈ کریں",
+ "mark-as-read": "پڑھا ہوا نشان زد کریں",
+ "mark-as-unread": "غیر پڑھا ہوا نشان زد کریں",
+ "selected": "منتخب کردہ",
+ "all": "تمام",
+ "all-categories": "تمام زمرہ جات",
+ "topics-marked-as-read.success": "موضوعات کو پڑھا ہوا نشان زد کر دیا گیا!",
+ "all-topics": "تمام موضوعات",
+ "new-topics": "نئے موضوعات",
+ "watched-topics": "دیکھے ہوئے موضوعات",
+ "unreplied-topics": "بغیر جواب والے موضوعات",
+ "multiple-categories-selected": "کئی زمرہ جات منتخب کیے گئے ہیں"
+}
\ No newline at end of file
diff --git a/public/language/ur/uploads.json b/public/language/ur/uploads.json
new file mode 100644
index 0000000000..bccdcb10f9
--- /dev/null
+++ b/public/language/ur/uploads.json
@@ -0,0 +1,9 @@
+{
+ "uploading-file": "فائل اپ لوڈ ہو رہی ہے…",
+ "select-file-to-upload": "اپ لوڈ کرنے کے لیے فائل منتخب کریں!",
+ "upload-success": "فائل کامیابی سے اپ لوڈ ہو گئی!",
+ "maximum-file-size": "زیادہ سے زیادہ %1 KB",
+ "no-uploads-found": "کوئی اپ لوڈز نہیں ملے",
+ "public-uploads-info": "اپ لوڈز عوامی ہیں – تمام زائرین انہیں دیکھ سکتے ہیں۔",
+ "private-uploads-info": "اپ لوڈز نجی ہیں – صرف لاگ ان صارفین انہیں دیکھ سکتے ہیں"
+}
\ No newline at end of file
diff --git a/public/language/ur/user.json b/public/language/ur/user.json
new file mode 100644
index 0000000000..a9dde7f93c
--- /dev/null
+++ b/public/language/ur/user.json
@@ -0,0 +1,234 @@
+{
+ "user-menu": "صارف مینو",
+ "banned": "بلاک کیا گیا",
+ "unbanned": "بلاک ہٹایا گیا",
+ "muted": "خاموش کیا گیا",
+ "unmuted": "خاموشی ہٹائی گئی",
+ "offline": "آف لائن",
+ "deleted": "حذف کیا گیا",
+ "username": "صارف کا نام",
+ "joindate": "شمولیت کی تاریخ",
+ "postcount": "پوسٹس کی تعداد",
+ "email": "ای میل",
+ "confirm-email": "ای میل کی تصدیق کریں",
+ "account-info": "اکاؤنٹ کی معلومات",
+ "admin-actions-label": "انتظامی اقدامات",
+ "ban-account": "اکاؤنٹ بلاک کریں",
+ "ban-account-confirm": "کیا آپ واقعی اس صارف کو بلاک کرنا چاہتے ہیں؟",
+ "unban-account": "اکاؤنٹ کا بلاک ہٹائیں",
+ "mute-account": "اکاؤنٹ کو خاموش کریں",
+ "unmute-account": "اکاؤنٹ کی خاموشی ہٹائیں",
+ "delete-account": "اکاؤنٹ حذف کریں",
+ "delete-account-as-admin": "اکاؤنٹ حذف کریں",
+ "delete-content": "اکاؤنٹ کے مواد کو حذف کریں",
+ "delete-all": "اکاؤنٹ اور مواد کو حذف کریں",
+ "delete-account-confirm": "کیا آپ واقعی اپنی پوسٹس کو گمنام کرنا اور اپنا اکاؤنٹ حذف کرنا چاہتے ہیں؟ یہ عمل ناقابل واپسی ہے اور آپ اپنے ڈیٹا کو دوبارہ بحال نہیں کر سکیں گے۔
اس اکاؤنٹ کو ختم کرنے کی تصدیق کے لیے اپنا پاس ورڈ درج کریں۔",
+ "delete-this-account-confirm": "کیا آپ واقعی اس اکاؤنٹ کو حذف کرنا چاہتے ہیں، لیکن اس کے مواد کو برقرار رکھنا چاہتے ہیں؟ یہ عمل ناقابل واپسی ہے۔ پوسٹس گمنام ہو جائیں گی اور آپ حذف شدہ اکاؤنٹ اور پوسٹس کے درمیان رابطہ دوبارہ بحال نہیں کر سکیں گے
",
+ "delete-account-content-confirm": "کیا آپ واقعی اس اکاؤنٹ کے مواد (پوسٹس/موضوعات/اپ لوڈز) کو حذف کرنا چاہتے ہیں؟ یہ عمل ناقابل واپسی ہے اور آپ کوئی بھی ڈیٹا بحال نہیں کر سکیں گے۔
",
+ "delete-all-confirm": "کیا آپ واقعی اس اکاؤنٹ اور اس کے تمام مواد (پوسٹس/موضوعات/اپ لوڈز) کو حذف کرنا چاہتے ہیں؟ یہ عمل ناقابل واپسی ہے اور آپ کوئی بھی ڈیٹا بحال نہیں کر سکیں گے۔
",
+ "account-deleted": "اکاؤنٹ حذف کر دیا گیا",
+ "account-content-deleted": "اکاؤنٹ کا مواد حذف کر دیا گیا",
+ "fullname": "مکمل نام",
+ "website": "ویب سائٹ",
+ "location": "مقام",
+ "age": "عمر",
+ "joined": "شامل ہوئے",
+ "lastonline": "آخری بار آن لائن",
+ "profile": "پروفائل",
+ "profile-views": "پروفائل کے نظارے",
+ "reputation": "ساکھ",
+ "bookmarks": "بک مارکس",
+ "watched-categories": "دیکھے گئے زمرہ جات",
+ "watched-tags": "دیکھے گئے ٹیگز",
+ "change-all": "سب کچھ تبدیل کریں",
+ "watched": "دیکھے گئے",
+ "ignored": "نظر انداز کیے گئے",
+ "read": "پڑھے گئے",
+ "default-category-watch-state": "زمرہ جات کے مشاہدے کے لیے طے شدہ حالت",
+ "followers": "پیروی کرنے والے",
+ "following": "پیروی کر رہے ہیں",
+ "shares": "شیئرز",
+ "blocks": "بلاکس",
+ "blocked-users": "بلاک کیے گئے صارفین",
+ "block-toggle": "بلاک کو ٹوگل کریں",
+ "block-user": "صارف کو بلاک کریں",
+ "unblock-user": "صارف کا بلاک ہٹائیں",
+ "aboutme": "میرے بارے میں",
+ "signature": "دستخط",
+ "birthday": "سالگرہ",
+ "chat": "چیت",
+ "chat-with": "%1 کے ساتھ بات چیت جاری رکھیں",
+ "new-chat-with": "%1 کے ساتھ نئی بات چیت شروع کریں",
+ "view-remote": "اصل دیکھیں",
+ "flag-profile": "پروفائل کی رپورٹ کریں",
+ "profile-flagged": "پہلے سے رپورٹ کیا جا چکا ہے",
+ "follow": "پیروی کریں",
+ "unfollow": "پیروی بند کریں",
+ "cancel-follow": "پیروی کی درخواست منسوخ کریں",
+ "more": "مزید",
+ "profile-update-success": "پروفائل کامیابی سے اپ ڈیٹ ہو گیا!",
+ "change-picture": "تصویر تبدیل کریں",
+ "change-username": "صارف کا نام تبدیل کریں",
+ "change-email": "ای میل تبدیل کریں",
+ "email-updated": "ای میل تبدیل ہو گئی",
+ "email-same-as-password": "براہ کرم جاری رکھنے کے لیے اپنا موجودہ پاس ورڈ درج کریں – آپ نے اپنی نئی ای میل دوبارہ درج کی",
+ "edit": "ترمیم کریں",
+ "edit-profile": "پروفائل ترمیم کریں",
+ "default-picture": "طے شدہ آئیکن",
+ "uploaded-picture": "اپ لوڈ کی گئی تصویر",
+ "upload-new-picture": "نئی تصویر اپ لوڈ کریں",
+ "upload-new-picture-from-url": "یو آر ایل سے نئی تصویر اپ لوڈ کریں",
+ "current-password": "موجودہ پاس ورڈ",
+ "new-password": "نیا پاس ورڈ",
+ "change-password": "پاس ورڈ تبدیل کریں",
+ "change-password-error": "غلط پاس ورڈ!",
+ "change-password-error-wrong-current": "آپ کا موجودہ پاس ورڈ غلط ہے!",
+ "change-password-error-same-password": "آپ کا نیا پاس ورڈ موجودہ پاس ورڈ کے ساتھ مماثل ہے۔ براہ کرم نیا پاس ورڈ استعمال کریں۔",
+ "change-password-error-match": "پاس ورڈز مختلف ہیں!",
+ "change-password-error-privileges": "آپ کو اس پاس ورڈ کو تبدیل کرنے کے اختیارات نہیں ہیں۔",
+ "change-password-success": "آپ کا پاس ورڈ اپ ڈیٹ ہو گیا!",
+ "confirm-password": "پاس ورڈ کی تصدیق کریں",
+ "password": "پاس ورڈ",
+ "username-taken-workaround": "آپ جو صارف کا نام چاہتے ہیں وہ لیا جا چکا ہے اور اس لیے ہم نے اسے تھوڑا سا تبدیل کیا۔ آپ کا نام %1 ہوگا",
+ "password-same-as-username": "پاس ورڈ آپ کے صارف کے نام جیسا ہے۔ براہ کرم کوئی اور پاس ورڈ منتخب کریں۔",
+ "password-same-as-email": "پاس ورڈ آپ کی ای میل جیسا ہے۔ براہ کرم کوئی اور پاس ورڈ منتخب کریں۔",
+ "weak-password": "سادہ پاس ورڈ۔",
+ "upload-picture": "تصویر اپ لوڈ کریں",
+ "upload-a-picture": "ایک تصویر اپ لوڈ کریں",
+ "remove-uploaded-picture": "اپ لوڈ کی گئی تصویر ہٹائیں",
+ "upload-cover-picture": "کवर تصویر اپ لوڈ کریں",
+ "remove-cover-picture-confirm": "کیا آپ واقعی کور تصویر ہٹانا چاہتے ہیں؟",
+ "crop-picture": "تصویر کاٹ کریں",
+ "upload-cropped-picture": "کاٹ کر اپ لوڈ کریں",
+ "avatar-background-colour": "تصویر کا پس منظر رنگ",
+ "settings": "ترتیبات",
+ "show-email": "میری ای میل دکھائیں",
+ "show-fullname": "میرا مکمل نام دکھائیں",
+ "restrict-chats": "صرف ان صارفین سے پیغامات کی اجازت دیں جن کی میں پیروی کرتا ہوں",
+ "disable-incoming-chats": "آنے والے پیغامات کو غیر فعال کریں ",
+ "chat-allow-list": "درج ذیل صارفین سے پیغامات کی اجازت دیں",
+ "chat-deny-list": "درج ذیل صارفین سے پیغامات منع کریں",
+ "chat-list-add-user": "صارف شامل کریں",
+ "digest-label": "خلاصوں کے لیے سبسکرائب کریں",
+ "digest-description": "اس فورم کے بارے میں ای میل کے ذریعے خبروں (نئے نوٹیفکیشنز اور موضوعات) کے لیے سبسکرائب کریں، منتخب کردہ شیڈول کے مطابق",
+ "digest-off": "بند",
+ "digest-daily": "روزانہ",
+ "digest-weekly": "ہفتہ وار",
+ "digest-biweekly": "ہر دو ہفتے بعد",
+ "digest-monthly": "ماہانہ",
+ "has-no-follower": "اس صارف کے کوئی پیروکار نہیں ہیں :(",
+ "follows-no-one": "یہ صارف کسی کی پیروی نہیں کرتا :(",
+ "has-no-posts": "اس صارف نے ابھی تک کچھ بھی پوسٹ نہیں کیا۔",
+ "has-no-best-posts": "اس صارف کو ابھی تک اپنی پوسٹس کے لیے مثبت ووٹ نہیں ملے۔",
+ "has-no-topics": "اس صارف نے ابھی تک کوئی موضوعات نہیں بنائے۔",
+ "has-no-watched-topics": "اس صارف نے ابھی تک کوئی موضوعات نہیں دیکھے۔",
+ "has-no-ignored-topics": "اس صارف نے ابھی تک کوئی موضوعات کو نظر انداز نہیں کیا۔",
+ "has-no-read-topics": "اس صارف نے ابھی تک کوئی موضوعات نہیں پڑھے۔",
+ "has-no-upvoted-posts": "اس صارف نے ابھی تک مثبت ووٹ نہیں کیا۔",
+ "has-no-downvoted-posts": "اس صارف نے ابھی تک منفی ووٹ نہیں کیا۔",
+ "has-no-controversial-posts": "اس صارف کی ابھی تک منفی ووٹوں والی کوئی پوسٹس نہیں ہیں۔",
+ "has-no-blocks": "آپ نے کسی کو بلاک نہیں کیا۔",
+ "has-no-shares": "اس صارف نے کوئی موضوع شیئر نہیں کیا۔",
+ "email-hidden": "ای میل چھپی ہوئی ہے",
+ "hidden": "چھپا ہوا",
+ "paginate-description": "موضوعات اور پوسٹس کو صفحات پر تقسیم کریں، لامتناہی سکرولنگ کے بجائے",
+ "topics-per-page": "فی صفحہ موضوعات",
+ "posts-per-page": "فی صفحہ پوسٹس",
+ "category-topic-sort": "زمرہ میں موضوعات کی ترتیب",
+ "topic-post-sort": "موضوع میں پوسٹس کی ترتیب",
+ "max-items-per-page": "زیادہ سے زیادہ %1",
+ "acp-language": "ایڈمن پیج کی زبان",
+ "notifications": "نوٹیفکیشنز",
+ "upvote-notif-freq": "مثبت ووٹوں کے نوٹیفکیشنز کی تعدد",
+ "upvote-notif-freq.all": "تمام مثبت ووٹ",
+ "upvote-notif-freq.first": "پوسٹ کے لیے پہلے ووٹ پر",
+ "upvote-notif-freq.everyTen": "ہر دس مثبت ووٹ پر",
+ "upvote-notif-freq.threshold": "1, 5, 10, 25, 50, 100, 150, 200… پر",
+ "upvote-notif-freq.logarithmic": "10, 100, 1000… پر",
+ "upvote-notif-freq.disabled": "غیر فعال",
+ "browsing": "صفحات کی ترتیبات",
+ "open-links-in-new-tab": "بیرونی لنکس کو نئی ونڈو میں کھولیں",
+ "enable-topic-searching": "موضوعات میں تلاش کو فعال کریں",
+ "topic-search-help": "اگر فعال ہو، موضوع کی تلاش براؤزر کے معیاری تلاش کے رویے کو بدل دے گی اور آپ کو پورے موضوع کی تلاش کی اجازت دے گی، نہ کہ صرف اسکرین پر نظر آنے والا مواد",
+ "update-url-with-post-index": "موضوعات دیکھتے وقت ایڈریس بار کو پوسٹ نمبر کے ساتھ اپ ڈیٹ کریں",
+ "scroll-to-my-post": "جواب پوسٹ کرنے کے بعد نئی پوسٹ دکھائیں",
+ "follow-topics-you-reply-to": "جن موضوعات میں آپ جواب دیتے ہیں ان کی پیروی کریں",
+ "follow-topics-you-create": "جن موضوعات کو آپ بناتے ہیں ان کی پیروی کریں",
+ "grouptitle": "گروپ کا عنوان",
+ "group-order-help": "ایک گروپ منتخب کریں اور عنوانات کو دوبارہ ترتیب دینے کے لیے تیر کا استعمال کریں",
+ "show-group-title": "گروپ کا عنوان دکھائیں",
+ "hide-group-title": "گروپ کا عنوان چھپائیں",
+ "order-group-up": "گروپ کو اوپر منتقل کریں",
+ "order-group-down": "گروپ کو نیچے منتقل کریں",
+ "no-group-title": "کوئی گروپ عنوان نہیں",
+ "select-skin": "جلد منتخب کریں",
+ "default": "طے شدہ (%1)",
+ "no-skin": "کوئی جلد نہیں",
+ "select-homepage": "ہوم پیج منتخب کریں",
+ "homepage": "ہوم پیج",
+ "homepage-description": "فورم کے لیے ہوم پیج کے طور پر استعمال کرنے کے لیے ایک صفحہ منتخب کریں، یا „کچھ نہیں“ طے شدہ استعمال کے لیے۔",
+ "custom-route": "اپنی مرضی کے ہوم پیج کا راستہ",
+ "custom-route-help": "یہاں راستے کا نام درج کریں، بغیر آگے کی ترچھی لکیر کے (مثال: „recent“ یا \"category/2/general-discussion\")",
+ "sso.title": "ایک بار لاگ ان خدمات",
+ "sso.associated": "کے ساتھ منسلک",
+ "sso.not-associated": "کے ساتھ منسلک کرنے کے لیے یہاں کلک کریں",
+ "sso.dissociate": "رابطہ منقطع کریں",
+ "sso.dissociate-confirm-title": "منقطع کرنے کی تصدیق",
+ "sso.dissociate-confirm": "کیا آپ واقعی اپنے اکاؤنٹ کو „%1“ سے منقطع کرنا چاہتے ہیں؟",
+ "info.latest-flags": "تازہ ترین رپورٹس",
+ "info.profile": "پروفائل",
+ "info.post": "پوسٹ",
+ "info.view-flag": "رپورٹ دیکھیں",
+ "info.reported-by": "رپورٹ کیا گیا:",
+ "info.no-flags": "کوئی رپورٹ شدہ پوسٹس نہیں ملیں",
+ "info.ban-history": "حالیہ پابندیوں کی تاریخ",
+ "info.no-ban-history": "اس صارف پر کبھی پابندی نہیں لگائی گئی",
+ "info.banned-until": "%1 تک پابندی",
+ "info.banned-expiry": "ختم ہونے کی تاریخ",
+ "info.ban-expired": "پابندی ختم ہو گئی",
+ "info.banned-permanently": "مستقل پابندی",
+ "info.banned-reason-label": "وجہ",
+ "info.banned-no-reason": "کوئی وجہ نہیں بتائی گئی۔",
+ "info.mute-history": "حالیہ خاموشیوں کی تاریخ",
+ "info.no-mute-history": "اس صارف کو کبھی خاموش نہیں کیا گیا",
+ "info.muted-until": "%1 تک خاموش",
+ "info.muted-expiry": "ختم ہونے کی تاریخ",
+ "info.muted-no-reason": "کوئی وجہ نہیں بتائی گئی۔",
+ "info.username-history": "صارف کے ناموں کی تاریخ",
+ "info.email-history": "ای میلوں کی تاریخ",
+ "info.moderation-note": "ماڈریٹر نوٹ",
+ "info.moderation-note.success": "ماڈریٹر نوٹ محفوظ ہو گیا",
+ "info.moderation-note.add": "نوٹ شامل کریں",
+ "sessions.description": "اس صفحے پر آپ اس فورم پر اپنی فعال سیشنز دیکھ سکتے ہیں اور اگر چاہیں تو انہیں منسوخ کر سکتے ہیں۔ آپ اپنے اکاؤنٹ سے لاگ آؤٹ کرکے موجودہ سیشن منسوخ کر سکتے ہیں۔",
+ "revoke-session": "سیشن منسوخ کریں",
+ "browser-version-on-platform": "%1 %2 پر %3",
+ "consent.title": "آپ کے حقوق اور رضامندی",
+ "consent.lead": "یہ عوامی فورم ذاتی معلومات جمع اور پروسیس کرتا ہے۔",
+ "consent.intro": "ہم اس معلومات کو صرف آپ کے فورم کے ساتھ تعامل کو ذاتی بنانے اور آپ کی پوسٹس کو آپ کے صارف اکاؤنٹ سے جوڑنے کے لیے استعمال کرتے ہیں۔ رجسٹریشن کے دوران آپ کو صارف کا نام اور ای میل درج کرنا ہوگا، لیکن اگر آپ چاہیں تو ویب سائٹ پر اپنا صارف پروفائل مکمل کرنے کے لیے اضافی معلومات فراہم کر سکتے ہیں۔
ہم اس معلومات کو اس وقت تک محفوظ رکھتے ہیں جب تک آپ کا صارف اکاؤنٹ موجود ہے۔ آپ کسی بھی وقت اپنا اکاؤنٹ حذف کرکے اس کی رضامندی واپس لے سکتے ہیں۔ آپ کسی بھی وقت „حقوق اور رضامندی“ صفحے کے ذریعے ویب سائٹ پر درج کردہ معلومات کی کاپی مانگ سکتے ہیں۔
اگر آپ کے کوئی سوالات یا خدشات ہیں، تو آپ فورم کے ایڈمن ٹیم سے رابطہ کر سکتے ہیں۔",
+ "consent.email-intro": "ہم کبھی کبھار آپ کے رجسٹرڈ ای میل پر ای میلز بھیج سکتے ہیں تاکہ آپ کو بتائیں کہ کیا ہو رہا ہے، یا آپ کو مطلع کریں کہ کوئی نئی چیز ہے جو آپ سے متعلق ہے۔ آپ صارف کی ترتیبات کے صفحے کے ذریعے خلاصوں کی تعدد کو اپنی مرضی کے مطابق بنا سکتے ہیں (اور انہیں بند بھی کر سکتے ہیں)، اور یہ بھی منتخب کر سکتے ہیں کہ آپ کو ای میل کے ذریعے کون سے نوٹیفکیشنز موصول ہوں۔",
+ "consent.digest-frequency": "جب تک آپ اسے اپنی صارف ترتیبات میں تبدیل نہ کریں، یہ کمیونٹی آپ کو ہر %1 پر ای میل کے ذریعے خلاصے بھیجے گی۔",
+ "consent.digest-off": "جب تک آپ اسے اپنی صارف ترتیبات میں تبدیل نہ کریں، یہ کمیونٹی آپ کو ای میل کے ذریعے خلاصے نہیں بھیجے گی۔",
+ "consent.received": "آپ نے اس ویب سائٹ کو آپ کی ذاتی معلومات جمع کرنے اور پروسیس کرنے کی رضامندی دی ہے۔ کوئی اضافی عمل کی ضرورت نہیں ہے۔",
+ "consent.not-received": "آپ نے اپنی معلومات جمع کرنے اور پروسیس کرنے کی رضامندی نہیں دی۔ ویب سائٹ کی انتظامیہ ڈیٹا تحفظ کے تقاضوں کو پورا کرنے کے لیے کسی بھی وقت آپ کا اکاؤنٹ حذف کر سکتی ہے۔",
+ "consent.give": "رضHامندی دیں",
+ "consent.right-of-access": "آپ کو رسائی کا حق ہے",
+ "consent.right-of-access-description": "آپ کو اس ویب سائٹ کے ذریعے جمع کردہ تمام ڈیٹا تک رسائی کا حق ہے، درخواست پر۔ آپ نیچے دیے گクリック करेंボタン پر کلک کرکے ڈیٹا کی کاپی حاصل کر سکتے ہیں۔",
+ "consent.right-to-rectification": "آپ کو اصلاح کا حق ہے",
+ "consent.right-to-rectification-description": "آپ کو ہمارے دیے گئے کسی بھی غلط ڈیٹا کو تبدیل یا درست کرنے کا حق ہے۔ آپ اپنا پروفائل ترمیم کرکے تبدیل کر سکتے ہیں، اور پوسٹس کا مواد کسی بھی وقت ترمیم کیا جا سکتا ہے۔ اگر آپ کی کوئی مختلف ضرورت ہے، تو براہ کرم ایڈمن ٹیم سے رابطہ کریں۔",
+ "consent.right-to-erasure": "آپ کو حذف کرنے کا حق ہے",
+ "consent.right-to-erasure-description": "آپ کسی بھی وقت اپنا اکاؤنٹ حذف کرکے ڈیٹا جمع کرنے اور/یا پروسیس کرنے کی رضامندی واپس لے سکتے ہیں۔ آپ کا پروفائل حذف کیا جا سکتا ہے، لیکن آپ کا پوسٹ کیا گیا مواد باقی رہے گا۔ اگر آپ اپنا اکاؤنٹ اور آپ کا پوسٹ کیا گیا مواد دونوں حذف کرنا چاہتے ہیں، تو براہ کرم ویب سائٹ کے ایڈمن ٹیم سے رابطہ کریں۔",
+ "consent.right-to-data-portability": "آپ کو ڈیٹا پورٹیبلٹی کا حق ہے",
+ "consent.right-to-data-portability-description": "آپ ہم سے آپ اور آپ کے اکاؤنٹ کے بارے میں جمع کردہ تمام ڈیٹا مشین قابلِ خواندہ فارمیٹ میں مانگ سکتے ہیں۔ آپ نیچے دیے گئے بٹن پر کلک کرکے ایسا کر سکتے ہیں۔",
+ "consent.export-profile": "پروفائل ایکسپورٹ کریں (.json)",
+ "consent.export-profile-success": "پروفائل ایکسپورٹ ہو رہا ہے… تیار ہونے پر آپ کو نوٹیفکیشن موصول ہوگا۔",
+ "consent.export-uploads": "اپ لوڈ کردہ مواد ایکسپورٹ کریں (.zip)",
+ "consent.export-uploads-success": "اپ لوڈ کردہ مواد ایکسپورٹ ہو رہا ہے… تیار ہونے پر آپ کو نوٹیفکیشن موصول ہوگا۔",
+ "consent.export-posts": "پوسٹس ایکسپورٹ کریں (.csv)",
+ "consent.export-posts-success": "پوسٹس ایکسپورٹ ہو رہی ہیں… تیار ہونے پر آپ کو نوٹیفکیشن موصول ہوگا۔",
+ "emailUpdate.intro": "نیچے اپنا ای میل درج کریں۔ یہ فورم شیڈول شدہ خلاصوں اور نوٹیفکیشنز کے لیے ای میل استعمال کرتا ہے، اور بھولے ہوئے پاس ورڈ کی صورت میں اکاؤنٹ کی بحالی کے لیے بھی۔",
+ "emailUpdate.optional": "یہ فیلڈ لازمی نہیں ہے۔ آپ کو ای میل ایڈریس فراہم کرنے کی ضرورت نہیں ہے، لیکن تصدیق شدہ ای میل کے بغیر، آپ اپنا اکاؤنٹ کسی مسئلے کی صورت میں بحال نہیں کر سکیں گے، نہ ہی آپ اپنے ای میل کے ساتھ لاگ ان کر سکیں گے۔",
+ "emailUpdate.required": "یہ فیلڈ لازمی ہے۔",
+ "emailUpdate.change-instructions": "ہم آپ کے دیے گئے ای میل پر ایک تصدیقی ای میل بھیجیں گے، جس میں ایک منفرد لنک ہوگا۔ اس لنک پر عمل کرنے پر آپ کے اس ای میل کے مالک ہونے کی تصدیق ہو جائے گی اور یہ آپ کے اکاؤنٹ سے منسلک ہو جائے گی۔ آپ اپنے اکاؤنٹ کے صفحے سے اس ای میل کو کسی بھی وقت تبدیل کر سکتے ہیں۔",
+ "emailUpdate.password-challenge": "اپنا پاس ورڈ درج کریں تاکہ یہ تصدیق ہو کہ اکاؤنٹ آپ کا ہے۔",
+ "emailUpdate.pending": "آپ کا ای میل ابھی تک تصدیق شدہ نہیں ہے، حالانکہ اس پر ایک تصدیقی ای میل بھیج دیا گیا ہے۔ اگر آپ اسے منسوخ کرنا چاہتے ہیں اور نیا درخواست دینا چاہتے ہیں، تو نیچے دیا گیا فارم پُر کریں۔"
+}
\ No newline at end of file
diff --git a/public/language/ur/users.json b/public/language/ur/users.json
new file mode 100644
index 0000000000..22809a70dd
--- /dev/null
+++ b/public/language/ur/users.json
@@ -0,0 +1,26 @@
+{
+ "all-users": "تمام صارفین",
+ "followed-users": "فالو کیے گئے صارفین",
+ "latest-users": "تازہ ترین صارفین",
+ "top-posters": "سب سے زیادہ پوسٹس والے",
+ "most-reputation": "سب سے زیادہ ساکھ والے",
+ "most-flags": "سب سے زیادہ رپورٹس والے",
+ "search": "تلاش",
+ "enter-username": "تلاش کرنے کے لیے صارف نام درج کریں",
+ "search-user-for-chat": "گفتگو شروع کرنے کے لیے صارف تلاش کریں",
+ "load-more": "مزید لوڈ کریں",
+ "users-found-search-took": "%1 صارفین ملے! تلاش میں %2 سیکنڈ لگے۔",
+ "filter-by": "فلٹر کریں",
+ "online-only": "صرف آن لائن والے",
+ "invite": "دعوت دیں",
+ "prompt-email": "ای میلز:",
+ "groups-to-join": "دعوت قبول کرنے کے بعد شامل ہونے والے گروپس:",
+ "invitation-email-sent": "%1 کو ایک تصدیقی ای میل بھیج دیا گیا ہے",
+ "user-list": "صارفین کی فہرست",
+ "recent-topics": "حالیہ موضوعات",
+ "popular-topics": "مقبول موضوعات",
+ "unread-topics": "غیر پڑھے ہوئے موضوعات",
+ "categories": "زمرہ جات",
+ "tags": "ٹیگز",
+ "no-users-found": "کوئی صارفین نہیں ملے!"
+}
\ No newline at end of file
diff --git a/public/language/ur/world.json b/public/language/ur/world.json
new file mode 100644
index 0000000000..98ab943724
--- /dev/null
+++ b/public/language/ur/world.json
@@ -0,0 +1,21 @@
+{
+ "name": "جهان",
+ "popular": "مقبول موضوعات",
+ "recent": "تمام موضوعات",
+ "help": "مدد",
+
+ "help.title": "یہ صفحہ کیا ہے؟",
+ "help.intro": "فیڈی ورس میں آپ کے اپنے گوشے میں خوش آمدید۔",
+ "help.fediverse": "„فیڈی ورس“ ایک ایسی نیٹ ورک ہے جس میں باہم مربوط ایپلیکیشنز اور ویب سائٹس ایک دوسرے سے بات چیت کرتی ہیں اور جن کے صارفین ایک دوسرے کو دیکھ سکتے ہیں۔ یہ فورم فیڈریٹڈ ہے اور اس سوشل نیٹ ورک (جسے „فیڈی ورس“ کہا جاتا ہے) کے ساتھ تعامل کر سکتا ہے۔ یہ صفحہ فیڈی ورس میں آپ کا اپنا گوشہ ہے۔ اس میں آپ صرف ان موضوعات کو دیکھیں گے جو ان صارفین نے بنائے یا شیئر کیے ہیں جنہیں آپ فالو کرتے ہیں۔",
+ "help.build": "شروع میں یہاں زیادہ موضوعات نہیں ہو سکتے۔ یہ معمول کی بات ہے۔ جب آپ دوسرے صارفین کو فالو کرنا شروع کریں گے تو آپ یہاں زیادہ مواد دیکھنا شروع کریں گے۔",
+ "help.federating": "اسی طرح، اگر اس فورم سے باہر کے صارفین آپ کو فالو کرنا شروع کر دیں، تو آپ کی پوسٹس ان کے ایپلیکیشنز اور ویب سائٹس پر ظاہر ہونا شروع ہو جائیں گی۔",
+ "help.next-generation": "یہ سوشل نیٹ ورک کی نئی نسل ہے۔ آج ہی سے حصہ ڈالنا شروع کریں!",
+
+ "onboard.title": "فیڈی ورس کی طرف آپ کی کھڑکی…",
+ "onboard.what": "یہ آپ کی ذاتی نوعیت کی کیٹیگری ہے جو صرف اس فورم سے باہر کے مواد پر مشتمل ہے۔ یہاں وہ چیزیں ظاہر ہوتی ہیں جو آپ کے فالو کیے ہوئے لوگوں نے بنائیں یا شیئر کیں۔",
+ "onboard.why": "اس فورم سے باہر بہت کچھ ہو رہا ہے، اور ہر چیز آپ کے مفادات سے مطابقت نہیں رکھتی۔ اس لیے مخصوص لوگوں کو فالو کرنا یہ ظاہر کرنے کا بہترین طریقہ ہے کہ آپ ان سے مزید دیکھنا چاہتے ہیں۔",
+ "onboard.how": "اس دوران، آپ اس فورم کے قابل رسائی مواد کو دیکھنے کے لیے اوپر کے بٹن استعمال کر سکتے ہیں۔ اس طرح آپ نئے مواد کی دریافت شروع کر سکتے ہیں!",
+
+ "show-categories": "زمرہ جات دکھائیں",
+ "hide-categories": "زمرہ جات چھپائیں"
+}
\ No newline at end of file
diff --git a/public/language/vi/admin/dashboard.json b/public/language/vi/admin/dashboard.json
index 6d2a736380..d12d7771e2 100644
--- a/public/language/vi/admin/dashboard.json
+++ b/public/language/vi/admin/dashboard.json
@@ -75,6 +75,7 @@
"graphs.page-views-registered": "Đã Đăng Ký Xem Trang",
"graphs.page-views-guest": "Khách Xem Trang",
"graphs.page-views-bot": "Bot Xem Trang",
+ "graphs.page-views-ap": "Lượt Xem Trang ActivityPub",
"graphs.unique-visitors": "Khách Độc Lập",
"graphs.registered-users": "Thành Viên Chính Thức",
"graphs.guest-users": "Người dùng khách",
diff --git a/public/language/vi/admin/manage/categories.json b/public/language/vi/admin/manage/categories.json
index d89112626c..adb8895367 100644
--- a/public/language/vi/admin/manage/categories.json
+++ b/public/language/vi/admin/manage/categories.json
@@ -1,18 +1,22 @@
{
"manage-categories": "Quản lý Danh mục",
"add-category": "Thêm Danh Mục",
+ "add-local-category": "Thêm danh mục Cục Bộ",
+ "add-remote-category": "Thêm danh mục Từ Xa",
+ "remove": "Xóa",
+ "rename": "Đổi tên",
"jump-to": "Chuyển tới...",
"settings": "Cài Đặt Chuyên Mục",
"edit-category": "Sửa Danh Mục",
"privileges": "Đặc quyền",
"back-to-categories": "Quay lại danh mục",
- "name": "Tên Chuyên Mục",
+ "id": "ID Danh Mục",
+ "name": "Tên Danh Mục",
"handle": "Xử Lý Danh Mục",
"handle.help": "Xử lý danh mục của bạn được sử dụng làm đại diện cho danh mục này trên các mạng khác, tương tự như tên đăng nhập. Thẻ điều khiển danh mục không được khớp với tên người dùng hoặc nhóm người dùng hiện có.",
"description": "Mô Tả Chuyên Mục",
- "federatedDescription": "Mô Tả Liên Kết",
- "federatedDescription.help": "Văn bản này sẽ được thêm vào mô tả danh mục khi được truy vấn bởi các trang web/ứng dụng khác.",
- "federatedDescription.default": "Đây là một danh mục diễn đàn có chứa thảo luận tại chỗ. Bạn có thể bắt đầu các cuộc thảo luận mới bằng cách đề cập đến thể loại này.",
+ "topic-template": "Mẫu Chủ Đề",
+ "topic-template.help": "Xác định mẫu cho các chủ đề mới được tạo trong danh mục này.",
"bg-color": "Màu Nền",
"text-color": "Màu Chữ",
"bg-image-size": "Kích Thước Hình Nền",
@@ -103,6 +107,11 @@
"alert.create-success": "Đã tạo chuyên mục thành công!",
"alert.none-active": "Bạn không có chuyên mục hoạt động.",
"alert.create": "Tạo Chuyên Mục",
+ "alert.add": "Thêm Danh Mục",
+ "alert.add-help": "Các danh mục từ xa có thể được thêm vào danh sách danh sách bằng cách chỉ định cách xử lý của chúng.
Ghi chú — Danh mục từ xa có thể không phản ánh tất cả các chủ đề được xuất bản trừ khi có ít nhất một người dùng cục bộ theo dõi/xem nó.",
+ "alert.rename": "Đổi tên Danh Mục Từ Xa",
+ "alert.rename-help": "Nhập tên mới cho danh mục này. Để trống để khôi phục tên gốc.",
+ "alert.confirm-remove": "Bạn có chắc muốn xóa danh mục này? Bạn có thể thêm nó trở lại bất kỳ lúc nào.",
"alert.confirm-purge": "
Bạn có chắc muốn loại bỏ danh mục \"%1\" này không?
Cảnh báo! Tất cả chủ đề và bài đăng trong danh mục này sẽ bị xóa!
Xóa danh mục sẽ xóa tất cả các chủ đề và bài đăng, đồng thời xóa danh mục khỏi cơ sở dữ liệu. Nếu bạn muốn xóa một danh mụctạm thời, thay vào đó bạn sẽ muốn \"vô hiệu hóa\" danh mục.
",
"alert.purge-success": "Đã loại bỏ chuyên mục!",
"alert.copy-success": "Đã Sao Chép Cài Đặt!",
diff --git a/public/language/vi/admin/manage/users.json b/public/language/vi/admin/manage/users.json
index 8a0a2b0806..d3136effd4 100644
--- a/public/language/vi/admin/manage/users.json
+++ b/public/language/vi/admin/manage/users.json
@@ -119,7 +119,7 @@
"alerts.create-success": "Đã tạo người dùng!",
"alerts.prompt-email": "Thư điện tử:",
- "alerts.email-sent-to": "Email mời đã được gửi đến %1",
+ "alerts.email-sent-to": "Một email mời đã được gửi đến %1",
"alerts.x-users-found": "Tìm được %1 người, (%2 giây)",
"alerts.select-a-single-user-to-change-email": "Chọn một người dùng để thay đổi email",
"export": "Xuất",
diff --git a/public/language/vi/admin/settings/activitypub.json b/public/language/vi/admin/settings/activitypub.json
index a2502f039a..c1a9a54a7e 100644
--- a/public/language/vi/admin/settings/activitypub.json
+++ b/public/language/vi/admin/settings/activitypub.json
@@ -18,6 +18,28 @@
"probe-timeout": "Hết Thời Gian Tra Cứu (mili giây)",
"probe-timeout-help": "(Mặc định: 2000) Nếu truy vấn tra cứu không nhận được phản hồi trong khung thời gian đã đặt, thay vào đó sẽ đưa người dùng đến liên kết trực tiếp. Điều chỉnh con số này cao hơn nếu các trang web phản hồi chậm và bạn muốn dành thêm thời gian.",
+ "rules": "Phân loại",
+ "rules-intro": "Nội dung được phát hiện thông qua ActivityPub có thể được tự động phân loại dựa trên các quy tắc nhất định (ví dụ: hashtag)",
+ "rules.modal.title": "Cách nó hoạt động",
+ "rules.modal.instructions": "Bất kỳ nội dung đến nào cũng được kiểm tra theo các quy tắc phân loại này và nội dung phù hợp được tự động chuyển sang danh mục lựa chọn.
N.B. Nội dung đã được phân loại (nghĩa là trong một danh mục từ xa) sẽ không thông qua các quy tắc này.",
+ "rules.add": "Thêm Quy Tắc Mới",
+ "rules.help-hashtag": "Các chủ đề có chứa hashtag không phân biệt chữ hoa chữ thường này sẽ khớp. Không nhập ký tự #",
+ "rules.help-user": "Các chủ đề do người dùng đã nhập đã tạo sẽ khớp. Nhập tên người dùng hoặc ID đầy đủ (vd: bob@example.org hoặc https://example.org/users/bob.",
+ "rules.type": "Loại",
+ "rules.value": "Giá trị",
+ "rules.cid": "Danh mục",
+
+ "relays": "Chuyển tiếp",
+ "relays.intro": "Một chuyển tiếp cải thiện khám phá nội dung đến và từ nodeBB của bạn. Đăng ký một chuyển tiếp có nghĩa là nội dung nhận được bởi chuyển tiếp được chuyển tiếp ở đây và nội dung được đăng ở đây được cung cấp bên ngoài bởi chuyển tiếp.",
+ "relays.warning": "Lưu ý: Chuyển tiếp có thể gửi lượng lưu lượng truy cập lớn và có thể tăng gánh nặng lưu trữ và xử lý.",
+ "relays.litepub": "NodeBB tuân theo tiêu chuẩn chuyển tiếp kiểu LitePub. URL bạn nhập ở đây sẽ kết thúc với /actor.",
+ "relays.add": "Thêm Chuyển Tiếp Mới",
+ "relays.relay": "Chuyển tiếp",
+ "relays.state": "Trạng thái",
+ "relays.state-0": "Đang đợi",
+ "relays.state-1": "Chỉ nhận",
+ "relays.state-2": "Kích hoạt",
+
"server-filtering": "Lọc",
"count": "NodeBB này hiện đã biết về %1 máy chủ",
"server.filter-help": "Chỉ định các máy chủ mà bạn muốn cấm liên kết với NodeBB của mình. Ngoài ra, bạn có thể chọn tham gia có chọn lọc cho phép liên kết có chọn lọc với các máy chủ cụ thể. Cả hai tùy chọn đều được hỗ trợ, mặc dù chúng loại trừ lẫn nhau.",
diff --git a/public/language/vi/admin/settings/uploads.json b/public/language/vi/admin/settings/uploads.json
index f89c13a955..055f3dcf47 100644
--- a/public/language/vi/admin/settings/uploads.json
+++ b/public/language/vi/admin/settings/uploads.json
@@ -22,6 +22,7 @@
"reject-image-height": "Chiều Cao Ảnh Tối Đa (pixel)",
"reject-image-height-help": "Hình ảnh cao hơn giá trị này sẽ bị từ chối.",
"allow-topic-thumbnails": "Cho phép người dùng tải lên ảnh thumbnails chủ đề",
+ "show-post-uploads-as-thumbnails": "Show post uploads as thumbnails",
"topic-thumb-size": "Kích Cỡ Ảnh Thumbnails Chủ Đề",
"allowed-file-extensions": "Cho Phép Phần Mở Rộng Tệp",
"allowed-file-extensions-help": "Nhập danh sách phần mở rộng tệp phân tách bằng dấu phẩy ở đây (VD: pdf,xls,doc). Để trống là cho phép tất cả.",
diff --git a/public/language/vi/aria.json b/public/language/vi/aria.json
index 25d06e5ed4..b82f396907 100644
--- a/public/language/vi/aria.json
+++ b/public/language/vi/aria.json
@@ -5,5 +5,6 @@
"profile-page-for": "Trang hồ sơ cho người dùng %1",
"user-watched-tags": "Thẻ người dùng đã xem",
"delete-upload-button": "Xóa nút tải lên",
- "group-page-link-for": "Liên kết trang nhóm cho %1"
+ "group-page-link-for": "Liên kết trang nhóm cho %1",
+ "show-crossposts": "Show Cross-posts"
}
\ No newline at end of file
diff --git a/public/language/vi/category.json b/public/language/vi/category.json
index 4abc703c44..ccddbfda2b 100644
--- a/public/language/vi/category.json
+++ b/public/language/vi/category.json
@@ -1,7 +1,7 @@
{
"category": "Danh mục",
"subcategories": "Danh mục phụ",
- "uncategorized": "Chưa có danh mục",
+ "uncategorized": "Chưa phân loại",
"uncategorized.description": "Các chủ đề không phù hợp với bất kỳ danh mục hiện có nào",
"handle.description": "Có thể theo dõi danh mục này từ mạng xã hội mở thông qua xử lý %1",
"new-topic-button": "Chủ Đề Mới",
diff --git a/public/language/vi/error.json b/public/language/vi/error.json
index c95f985908..8924d37160 100644
--- a/public/language/vi/error.json
+++ b/public/language/vi/error.json
@@ -3,6 +3,7 @@
"invalid-json": "JSON không hợp lệ",
"wrong-parameter-type": "Giá trị của loại %3 được mong đợi cho thuộc tính `%1`, nhưng thay vào đó, %2 đã được nhận",
"required-parameters-missing": "Các thông số bắt buộc bị thiếu trong lệnh gọi API này: %1",
+ "reserved-ip-address": "Không được phép yêu cầu mạng đến phạm vi IP dành riêng.",
"not-logged-in": "Có vẻ như bạn chưa đăng nhập.",
"account-locked": "Tài khoản của bạn tạm thời bị khóa",
"search-requires-login": "Tìm kiếm yêu cầu một tài khoản - vui lòng đăng nhập hoặc đăng ký.",
@@ -83,8 +84,8 @@
"post-delete-duration-expired-hours-minutes": "Bạn chỉ được phép xóa bài viết sau khi đăng %1 giờ(s) 2 phút(s)",
"post-delete-duration-expired-days": "Bạn chỉ được phép xóa các bài viết sau khi đăng %1 ngày(s)",
"post-delete-duration-expired-days-hours": "Bạn chỉ được phép xóa các bài viết sau khi đăng %1 ngày(s) %2 giờ(s)",
- "cant-delete-topic-has-reply": "Bạn không thể xóa chủ đề vì đã có 1 bình luận",
- "cant-delete-topic-has-replies": "Bạn không thể xóa chủ đề này vì đã có %1 bình luận",
+ "cant-delete-topic-has-reply": "Bạn không thể xóa chủ đề của bạn sau khi nó có câu trả lời",
+ "cant-delete-topic-has-replies": "Bạn không thể xóa chủ đề của bạn sau khi nó có %1 trả lời",
"content-too-short": "Vui lòng nhập một bài viết dài hơn. Bài viết phải chứa ít nhất %1 ký tự.",
"content-too-long": "Hãy nhập một bài đăng ngắn hơn. Bài đăng không thể dài hơn %1 ký tự.",
"title-too-short": "Hãy nhập tiêu đề dài hơn. Tiêu đề nên có ít nhất %1 ký tự.",
@@ -126,7 +127,7 @@
"already-deleting": "Đã sẵn sàng xóa",
"invalid-image": "Hình ảnh không hợp lệ",
"invalid-image-type": "Định dạng ảnh không hợp lệ. Các loại được phép là: %1",
- "invalid-image-extension": "Định dạng ảnh không hợp lệ",
+ "invalid-image-extension": "Phần mở rộng ảnh không hợp lệ",
"invalid-file-type": "Loại tệp không hợp lệ. Loại cho phép là: %1",
"invalid-image-dimensions": "Độ phân giải của ảnh quá lớn",
"group-name-too-short": "Tên nhóm quá ngắn",
@@ -136,7 +137,7 @@
"group-already-member": "Đã là thành viên của nhóm.",
"group-not-member": "Không phải thành viên nhóm này.",
"group-needs-owner": "Yêu cầu phải có ít nhất một chủ nhóm",
- "group-already-invited": "Thành viên này đã được mời",
+ "group-already-invited": "Người dùng này đã được mời",
"group-already-requested": "Yêu cầu tham gia thành viên của bạn đã được gửi.",
"group-join-disabled": "Bạn không thể tham gia nhóm này vào lúc này",
"group-leave-disabled": "Bạn không thể rời khỏi nhóm này vào lúc này",
@@ -146,6 +147,7 @@
"post-already-restored": "Bài viết này đã được khôi phục",
"topic-already-deleted": "Chủ đề này đã bị xóa",
"topic-already-restored": "Chủ đề này đã được khôi phục",
+ "topic-already-crossposted": "This topic has already been cross-posted there.",
"cant-purge-main-post": "Bạn không thể xoá bài viết chính, thay vào đó vui lòng xóa chủ đề",
"topic-thumbnails-are-disabled": "Ảnh Thumbnails chủ đề đã bị tắt",
"invalid-file": "Tệp Không Hợp Lệ",
@@ -158,7 +160,7 @@
"chat-deny-list-user-already-added": "Người dùng này đã có trong danh sách từ chối của bạn",
"chat-user-blocked": "Bạn đã bị chặn bởi người dùng này.",
"chat-disabled": "Hệ thống trò chuyện bị tắt",
- "too-many-messages": "Bạn đã gửi quá nhiều tin nhắn, vui lòng đợi trong giây lát.",
+ "too-many-messages": "Bạn đã gửi quá nhiều tin nhắn, vui lòng đợi một lúc.",
"invalid-chat-message": "Tin nhắn trò chuyện không hợp lệ",
"chat-message-too-long": "Tin nhắn trò chuyện không được dài hơn %1 ký tự.",
"cant-edit-chat-message": "Bạn không được phép sửa tin nhắn này",
@@ -201,7 +203,7 @@
"too-many-user-flags-per-day": "Bạn chỉ được gắn cờ %1 người dùng mỗi ngày",
"cant-flag-privileged": "Bạn không có quyền gắn cờ hồ sơ hay nội dung của người dùng đặc quyền (kiểm duyệt viên/người kiểm duyệt chung/quản trị viên)",
"cant-locate-flag-report": "Không thể định vị báo cáo cờ",
- "self-vote": "Bạn không thể tự bầu cho bài đăng của mình",
+ "self-vote": "Bạn không thể tự bình chọn bài đăng của mình",
"too-many-upvotes-today": "Bạn chỉ có thể ủng hộ %1 lần một ngày",
"too-many-upvotes-today-user": "Bạn chỉ được ủng hộ người dùng %1 lần một ngày",
"too-many-downvotes-today": "Bạn chỉ có thể phản đối %1 lần một ngày",
@@ -224,9 +226,10 @@
"invalid-session-text": "Có vẻ như phiên đăng nhập của bạn không còn hoạt động. Vui lòng làm mới trang này.",
"session-mismatch": "Phiên Không Khớp",
"session-mismatch-text": "Có vẻ như phiên đăng nhập của bạn không còn khớp với máy chủ. Vui lòng làm mới trang này.",
- "no-topics-selected": "Không có chủ đề nào đang được chọn!",
+ "no-topics-selected": "Không chọn chủ đề!",
"cant-move-to-same-topic": "Bạn không thể đưa bài đăng vào cùng chủ đề!",
"cant-move-topic-to-same-category": "Không thể di chuyển chủ đề đến cùng danh mục!",
+ "cant-move-topic-to-from-remote-categories": "You cannot move topics in or out of remote categories; consider cross-posting instead.",
"cannot-block-self": "Bạn không thể tự khóa bạn!",
"cannot-block-privileged": "Bạn không thể khóa quản trị viên hay người kiểm duyệt chung.",
"cannot-block-guest": "Khách không thể chặn người dùng khác",
@@ -236,6 +239,7 @@
"socket-reconnect-failed": "Không thể truy cập máy chủ vào lúc này. Nhấp vào đây để thử lại hoặc thử lại sau",
"invalid-plugin-id": "ID plugin không hợp lệ",
"plugin-not-whitelisted": "Không thể cài đặt plugin – chỉ có plugin được Quản Lý Gói NodeBB đưa vào danh sách trắng mới có thể được cài đặt qua ACP",
+ "cannot-toggle-system-plugin": "Bạn không thể chuyển đổi trạng thái của một plugin hệ thống",
"plugin-installation-via-acp-disabled": "Cài đặt plugin qua ACP bị tắt",
"plugins-set-in-configuration": "Bạn không được phép thay đổi trạng thái plugin vì chúng được xác định trong thời gian chạy (config.json, biến môi trường hoặc đối số đầu cuối), thay vào đó hãy sửa đổi cấu hình.",
"theme-not-set-in-configuration": "Khi xác định các plugin hoạt động trong cấu hình, thay đổi giao diện buộc phải thêm giao diện mới vào danh sách các plugin hoạt động trước khi cập nhật nó trong ACP",
diff --git a/public/language/vi/global.json b/public/language/vi/global.json
index 3ac87d5132..adaf20785a 100644
--- a/public/language/vi/global.json
+++ b/public/language/vi/global.json
@@ -68,6 +68,7 @@
"users": "Người dùng",
"topics": "Chủ Đề",
"posts": "Bài Viết",
+ "crossposts": "Cross-posts",
"x-posts": "%1 bài đăng",
"x-topics": "%1 chủ để",
"x-reputation": "%1 uy tín",
@@ -134,11 +135,11 @@
"upload": "Tải lên",
"uploads": "Tải lên",
"allowed-file-types": "Loại cho phép là %1",
- "unsaved-changes": "Có một vài thay đổi chưa được lưu. Bạn muốn rời đi ngay?",
- "reconnecting-message": "Có vẻ như bạn đã mất kết nối tới %1, vui lòng đợi một lúc để chúng tôi thử kết nối lại.",
- "play": "Chơi",
+ "unsaved-changes": "Bạn có những thay đổi chưa lưu. Bạn có chắc muốn điều hướng đi?",
+ "reconnecting-message": "Có vẻ như bạn đã mất kết nối tới %1, hãy đợi trong khi chúng tôi cố gắng kết nối lại.",
+ "play": "Phát",
"cookies.message": "Trang web này sử dụng cookie để đảm bảo bạn có được trải nghiệm tốt.",
- "cookies.accept": "Đã rõ!",
+ "cookies.accept": "Hiểu rồi!",
"cookies.learn-more": "Tìm Hiểu Thêm",
"edited": "Đã Sửa",
"disabled": "Đã tắt",
@@ -146,7 +147,7 @@
"selected": "Đã chọn",
"copied": "Đã sao chép",
"user-search-prompt": "Nhập để tìm kiếm thành viên",
- "hidden": "Ẩn",
+ "hidden": "Đã ẩn",
"sort": "Xếp",
"actions": "Hành Động",
"rss-feed": "Nguồn RSS",
diff --git a/public/language/vi/groups.json b/public/language/vi/groups.json
index df781930e5..d4c6e34b97 100644
--- a/public/language/vi/groups.json
+++ b/public/language/vi/groups.json
@@ -29,7 +29,7 @@
"details.disableJoinRequests": "Tắt yêu cầu tham gia",
"details.disableLeave": "Không cho phép người dùng rời khỏi nhóm",
"details.grant": "Cấp/Huỷ bỏ quyền sở hữu",
- "details.kick": "Đá ra",
+ "details.kick": "Loại ra",
"details.kick-confirm": "Bạn có chắc chắn muốn xoá thành viên này khỏi nhóm?",
"details.add-member": "Thêm Thành Viên",
"details.owner-options": "Quản Trị Nhóm",
diff --git a/public/language/vi/modules.json b/public/language/vi/modules.json
index 2d5b2e4b92..c238cc8d51 100644
--- a/public/language/vi/modules.json
+++ b/public/language/vi/modules.json
@@ -19,7 +19,7 @@
"chat.see-all": "Tất cả trò chuyện",
"chat.mark-all-read": "Đánh dấu tất cả đã đọc",
"chat.no-messages": "Hãy chọn người nhận để xem lịch sử tin nhắn trò chuyện",
- "chat.no-users-in-room": "Không có người nào trong phòng này.",
+ "chat.no-users-in-room": "Không có ai trong phòng này",
"chat.recent-chats": "Trò Chuyện Gần Đây",
"chat.contacts": "Liên hệ",
"chat.message-history": "Lịch Sử Tin Nhắn",
@@ -48,6 +48,7 @@
"chat.add-user": "Thêm Người",
"chat.notification-settings": "Cài Đặt Thông Báo",
"chat.default-notification-setting": "Cài Đặt Thông Báo Mặc Định",
+ "chat.join-leave-messages": "Tham gia/Rời đi Tin Nhắn",
"chat.notification-setting-room-default": "Phòng Mặc Định",
"chat.notification-setting-none": "Không thông báo",
"chat.notification-setting-at-mention-only": "Chỉ khi @đề cập",
@@ -100,7 +101,7 @@
"composer.formatting.code": "Mã",
"composer.formatting.link": "Liên kết",
"composer.formatting.picture": "Liên Kết Ảnh",
- "composer.upload-picture": "Tải ảnh lên",
+ "composer.upload-picture": "Tải Lên Ảnh",
"composer.upload-file": "Tải Lên Tệp",
"composer.zen-mode": "Chế Độ Zen",
"composer.select-category": "Chọn chuyên mục",
diff --git a/public/language/vi/pages.json b/public/language/vi/pages.json
index 851486de52..f260251b9b 100644
--- a/public/language/vi/pages.json
+++ b/public/language/vi/pages.json
@@ -1,10 +1,10 @@
{
"home": "Trang chủ",
"unread": "Chủ Đề Chưa Đọc",
- "popular-day": "Chủ đề nổi bật hôm nay",
- "popular-week": "Chủ đề nội bật tuần này",
- "popular-month": "Chủ đề nổi bật tháng này",
- "popular-alltime": "Chủ đề nổi bật mọi thời đại",
+ "popular-day": "Chủ đề phổ biến hôm nay",
+ "popular-week": "Chủ đề phổ biến tuần này",
+ "popular-month": "Chủ đề phổ biến tháng này",
+ "popular-alltime": "Chủ đề phổ biến mọi lúc",
"recent": "Chủ Đề Gần Đây",
"top-day": "Chủ đề được bình chọn nhiều hôm nay",
"top-week": "Chủ đề được bình chọn nhiều tuần này",
@@ -24,7 +24,7 @@
"users/search": "Tìm Kiếm Người Dùng",
"notifications": "Thông báo",
"tags": "Thẻ",
- "tag": "Các chủ đề được gắn thẻ bên dưới "%1"",
+ "tag": "Chủ đề được gắn thẻ bên dưới "%1"",
"register": "Đăng ký một tài khoản",
"registration-complete": "Đăng ký hoàn tất",
"login": "Đăng nhập vào tài khoản của bạn",
@@ -42,11 +42,11 @@
"account/edit/username": "Chỉnh sửa tên đăng nhập của \"%1\"",
"account/edit/email": "Chỉnh sửa email của \"%1\"",
"account/info": "Thông Tin Tài Khoản",
- "account/following": "Thành viên %1 đang theo dõi",
- "account/followers": "Thành viên đang theo dõi %1",
- "account/posts": "Bài viết được đăng bởi %1",
+ "account/following": "Người %1 theo dõi",
+ "account/followers": "Những người theo dõi %1",
+ "account/posts": "Bài viết làm bởi %1",
"account/latest-posts": "Bài viết mới nhất do %1",
- "account/topics": "Chủ đề được tạo bởi %1",
+ "account/topics": "Chủ đề tạo bởi %1",
"account/groups": "Nhóm của %1",
"account/watched-categories": "Danh Mục Đã Xem Của %1",
"account/watched-tags": "%1's Thẻ Đã Xem",
@@ -64,7 +64,7 @@
"account/uploads": "Tải lên bởi %1",
"account/sessions": "Phiên Đăng Nhập",
"account/shares": "Chủ đề được chia sẻ bởi %1",
- "confirm": "Đã xác nhận email",
+ "confirm": "Đã Xác Nhận Email",
"maintenance.text": "%1 hiện đang bảo trì. Vui lòng quay lại vào lúc khác.",
"maintenance.messageIntro": "Ngoài ra, quản trị viên đã để lại thông báo này:",
"throttled.text": "%1 hiện không khả dụng do quá tải. Vui lòng quay lại vào lúc khác."
diff --git a/public/language/vi/post-queue.json b/public/language/vi/post-queue.json
index 0a7e124bcd..84f04594b8 100644
--- a/public/language/vi/post-queue.json
+++ b/public/language/vi/post-queue.json
@@ -9,7 +9,7 @@
"public-description": "Diễn đàn này được cấu hình tự động xếp hàng các bài đăng từ tài khoản mới, chờ người điều hành phê duyệt. Nếu bạn đã xếp hàng các bài đăng đợi phê duyệt, bạn sẽ có thể xem chúng ở đây.",
"user": "Người dùng",
"when": "Khi",
- "category": "Chuyên mục",
+ "category": "Danh mục",
"title": "Tiêu đề",
"content": "Nội dung",
"posted": "Đã đăng",
diff --git a/public/language/vi/search.json b/public/language/vi/search.json
index 56361bb4d5..43b468535f 100644
--- a/public/language/vi/search.json
+++ b/public/language/vi/search.json
@@ -33,12 +33,12 @@
"replies": "Trả lời",
"replies-atleast-count": "Trả lời: Ít nhất %1",
"replies-atmost-count": "Trả lời: Nhiều nhất là %1",
- "at-least": "Tối thiểu",
+ "at-least": "Ít nhất",
"at-most": "Nhiều nhất",
"relevance": "Mức độ liên quan",
"time": "Thời gian",
"post-time": "Thời gian đăng bài",
- "votes": "Phiếu bầu",
+ "votes": "Bình chọn",
"newer-than": "Mới hơn",
"older-than": "Cũ hơn",
"any-date": "Ngày bất kỳ",
@@ -67,10 +67,10 @@
"sort": "Sắp xếp",
"last-reply-time": "Thời gian trả lời lần cuối",
"topic-title": "Tiêu đề chủ đề",
- "topic-votes": "Phiếu bầu chủ đề",
+ "topic-votes": "Bình chọn chủ đề",
"number-of-replies": "Số lượt trả lời",
"number-of-views": "Số lượt xem",
- "topic-start-date": "Ngày bắt đầu chủ đề",
+ "topic-start-date": "Ngày tạo chủ đề",
"username": "Tên đăng nhập",
"category": "Danh mục",
"descending": "Theo thứ tự giảm dần",
diff --git a/public/language/vi/social.json b/public/language/vi/social.json
index 2a1194b3fd..ff5bafd340 100644
--- a/public/language/vi/social.json
+++ b/public/language/vi/social.json
@@ -8,5 +8,7 @@
"log-in-with-facebook": "Đăng nhập với Facebook",
"continue-with-facebook": "Tiếp tục với Facebook",
"sign-in-with-linkedin": "Đăng nhập với LinkedIn",
- "sign-up-with-linkedin": "Đăng ký với LinkedIn"
+ "sign-up-with-linkedin": "Đăng ký với LinkedIn",
+ "sign-in-with-wordpress": "Đăng nhập bằng WordPress",
+ "sign-up-with-wordpress": "Đăng ký với WordPress"
}
\ No newline at end of file
diff --git a/public/language/vi/topic.json b/public/language/vi/topic.json
index 59db71b7a6..63c5f43ae1 100644
--- a/public/language/vi/topic.json
+++ b/public/language/vi/topic.json
@@ -28,8 +28,8 @@
"move": "Di chuyển",
"change-owner": "Đổi Chủ Sở Hữu",
"manage-editors": "Quản Lý Biên Tập Viên",
- "fork": "Tạo bản sao",
- "link": "Đường dẫn",
+ "fork": "Chia nhánh",
+ "link": "Liên kết",
"share": "Chia sẻ",
"tools": "Công cụ",
"locked": "Đã Khóa",
@@ -103,6 +103,7 @@
"thread-tools.lock": "Khóa Chủ Đề",
"thread-tools.unlock": "Mở Khóa Chủ Đề",
"thread-tools.move": "Di Chuyển Chủ Đề",
+ "thread-tools.crosspost": "Crosspost Topic",
"thread-tools.move-posts": "Di Chuyển Bài Viết",
"thread-tools.move-all": "Di chuyển tất cả",
"thread-tools.change-owner": "Đổi chủ sở hữu",
@@ -132,7 +133,8 @@
"pin-modal-help": "Bạn có thể đặt ngày hết hạn cho các chủ đề được ghim tại đây. Ngoài ra, bạn có thể để trống để giữ chủ đề được ghim cho đến khi chủ đề được bỏ ghim theo cách thủ công.",
"load-categories": "Đang Tải Chuyên Mục",
"confirm-move": "Di chuyển",
- "confirm-fork": "Tạo bảo sao",
+ "confirm-crosspost": "Cross-post",
+ "confirm-fork": "Chia nhánh",
"bookmark": "Dấu trang",
"bookmarks": "Dấu trang",
"bookmarks.has-no-bookmarks": "Bạn chưa đánh dấu bất kỳ bài viết nào.",
@@ -141,6 +143,7 @@
"loading-more-posts": "Tải Thêm Bài Đăng",
"move-topic": "Di Chuyển Chủ Đề",
"move-topics": "Di Chuyển Chủ Đề",
+ "crosspost-topic": "Cross-post Topic",
"move-post": "Di chuyển bài đăng",
"post-moved": "Đã di chuyển bài đăng!",
"fork-topic": "Tạo bản sao chủ đề",
@@ -154,7 +157,7 @@
"fork-success": "Đã phân nhánh chủ đề thành công! Nhấp vào đây để đi đến chủ đề đã phân nhánh.",
"delete-posts-instruction": "Chọn các bài viết bạn muốn xoá/loại bỏ",
"merge-topics-instruction": "Nhấn vào các chủ đề bạn muốn gộp hoặc tìm kiếm chúng",
- "merge-topic-list-title": "Danh sách các chủ đề sẽ được gộp",
+ "merge-topic-list-title": "Danh sách các chủ đề được gộp",
"merge-options": "Tùy chọn gộp",
"merge-select-main-topic": "Chọn chủ đề chính",
"merge-new-title-for-topic": "Tiêu đề mới cho chủ đề",
@@ -163,6 +166,9 @@
"move-topic-instruction": "Chọn danh mục nhắm đến và sau đó nhấp vào di chuyển",
"change-owner-instruction": "Bấm vào bài viết bạn muốn chỉ định cho người dùng khác",
"manage-editors-instruction": "Quản lý những người dùng có thể chỉnh sửa bài đăng này bên dưới.",
+ "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": "Nhập tiêu đề chủ đề của bạn tại đây...",
"composer.handle-placeholder": "Nhập tên/xử lý của bạn ở đây",
"composer.hide": "Ẩn",
@@ -194,8 +200,8 @@
"most-posts": "Nhiều Bài Đăng Nhất",
"most-views": "Xem Nhiều Nhất",
"stale.title": "Tạo chủ đề mới thay thế?",
- "stale.warning": "Chủ đề bạn đang trả lời đã khá cũ. Bạn có muốn tạo chủ đề mới, và liên kết với chủ đề hiện tại trong bài viết trả lời của bạn?",
- "stale.create": "Tạo chủ đề mới",
+ "stale.warning": "Chủ đề bạn đang trả lời đã khá cũ. Thay vào đó, bạn có muốn tạo một chủ đề mới và tham khảo phần này trong câu trả lời của bạn không?",
+ "stale.create": "Tạo một chủ đề mới",
"stale.reply-anyway": "Trả lời chủ đề này bằng mọi cách",
"link-back": "Trả lời: [%1](%2)",
"diffs.title": "Lịch Sử Sửa Bài",
@@ -214,7 +220,7 @@
"last-post": "Bài viết cuối cùng",
"go-to-my-next-post": "Đi tới bài kế tiếp của tôi",
"no-more-next-post": "Bạn không có bài viết nào khác trong chủ đề này",
- "open-composer": "Mỏ composer",
+ "open-composer": "Mở composer",
"post-quick-reply": "Trả lời nhanh",
"navigator.index": "Bài đăng %1 trên %2",
"navigator.unread": "%1 chưa đọc",
diff --git a/public/language/vi/user.json b/public/language/vi/user.json
index 9584fe0e5d..198aeb678e 100644
--- a/public/language/vi/user.json
+++ b/public/language/vi/user.json
@@ -8,7 +8,7 @@
"deleted": "Đã xoá",
"username": "Tên Đăng Nhập",
"joindate": "Ngày Tham Gia",
- "postcount": "Số bài viết",
+ "postcount": "Số Bài Đăng",
"email": "Thư điện tử",
"confirm-email": "Xác Nhận Email",
"account-info": "Thông Tin Tài Khoản",
@@ -188,7 +188,7 @@
"info.ban-expired": "Hết hạn cấm",
"info.banned-permanently": "Bị cấm vĩnh viễn",
"info.banned-reason-label": "Lý do",
- "info.banned-no-reason": "Không có lí do.",
+ "info.banned-no-reason": "Không có lý do nào được đưa ra.",
"info.mute-history": "Lịch Sử Im Lặng Gần Đây",
"info.no-mute-history": "Người dùng này chưa bao giờ bị im lặng",
"info.muted-until": "Bị im lặng đến %1",
diff --git a/public/language/vi/users.json b/public/language/vi/users.json
index bf1c11b467..b3f9fda3a5 100644
--- a/public/language/vi/users.json
+++ b/public/language/vi/users.json
@@ -15,7 +15,7 @@
"invite": "Mời",
"prompt-email": "Thư điện tử:",
"groups-to-join": "Nhóm được tham gia khi lời mời được chấp nhận:",
- "invitation-email-sent": "Email mời đã được gửi tới %1",
+ "invitation-email-sent": "Một email mời đã được gửi đến %1",
"user-list": "Danh Sách Người Dùng",
"recent-topics": "Chủ Đề Gần Đây",
"popular-topics": "Chủ Đề Phổ Biến",
diff --git a/public/language/zh-CN/admin/dashboard.json b/public/language/zh-CN/admin/dashboard.json
index 2214fb1dfe..df503c4369 100644
--- a/public/language/zh-CN/admin/dashboard.json
+++ b/public/language/zh-CN/admin/dashboard.json
@@ -75,6 +75,7 @@
"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": "游客",
diff --git a/public/language/zh-CN/admin/manage/categories.json b/public/language/zh-CN/admin/manage/categories.json
index bc9da615d5..cbeb2689ba 100644
--- a/public/language/zh-CN/admin/manage/categories.json
+++ b/public/language/zh-CN/admin/manage/categories.json
@@ -1,18 +1,22 @@
{
"manage-categories": "管理版块",
"add-category": "添加版块",
+ "add-local-category": "添加本地版块",
+ "add-remote-category": "添加远程版块",
+ "remove": "移除",
+ "rename": "重命名",
"jump-to": "跳转…",
"settings": "版块设置",
"edit-category": "编辑版块",
"privileges": "权限",
"back-to-categories": "回到版块",
+ "id": "版块 ID",
"name": "版块名",
"handle": "版块句柄",
"handle.help": "您的版块句柄在其他网络中用作该版块的代表,类似于用户名。版块句柄不得与现有的用户名或用户组相匹配。",
"description": "版块描述",
- "federatedDescription": "“联邦化”说明",
- "federatedDescription.help": "当其他网站/应用程序查询时,该文本将附加到版块描述中。",
- "federatedDescription.default": "这是一个包含专题讨论的论坛版块。您可以通过提及该版块开始新的讨论。",
+ "topic-template": "主题模板",
+ "topic-template.help": "为本版块下新建的主题定义模板。",
"bg-color": "背景颜色",
"text-color": "图标颜色",
"bg-image-size": "背景图片大小",
@@ -103,6 +107,11 @@
"alert.create-success": "版块创建成功!",
"alert.none-active": "您没有有效的版块。",
"alert.create": "创建一个版块",
+ "alert.add": "添加一个版块",
+ "alert.add-help": "可以通过指定其句柄将远程版块添加到版块列表中。
如有任何疑问或顾虑,欢迎联系本论坛管理团队。",
+ "consent.email-intro": "我们可能会不定期向您注册的电子邮件地址发送邮件,以便提供更新信息和/或通知您与您相关的新动态。您可通过用户设置页面自定义社区摘要的接收频率(包括完全停用该功能),并选择希望通过邮件接收的通知类型。",
+ "consent.digest-frequency": "除非在您的用户设置中明确更改,否则本社区默认每 %1 发送一次邮件摘要。",
+ "consent.digest-off": "除非您在用户设置中明确更改,否则本社区不会发送任何邮件摘要。",
"consent.received": "您已许可本网站收集与处理您的个人数据。无需其他额外操作。",
"consent.not-received": "您未许可本网站收集与处理您的个人数据。本网站的管理团队可能于任何时候删除您的账号,以符合通用数据保护条例的要求。",
"consent.give": "授予许可",
diff --git a/public/language/zh-TW/admin/dashboard.json b/public/language/zh-TW/admin/dashboard.json
index 4cc161c595..acf93cadda 100644
--- a/public/language/zh-TW/admin/dashboard.json
+++ b/public/language/zh-TW/admin/dashboard.json
@@ -75,6 +75,7 @@
"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": "Guest Users",
diff --git a/public/language/zh-TW/admin/manage/categories.json b/public/language/zh-TW/admin/manage/categories.json
index 7a857a1d8c..0989aa7bc7 100644
--- a/public/language/zh-TW/admin/manage/categories.json
+++ b/public/language/zh-TW/admin/manage/categories.json
@@ -1,18 +1,22 @@
{
"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": "版面名稱",
"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": "版面描述",
- "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.",
+ "topic-template": "Topic Template",
+ "topic-template.help": "Define a template for new topics created in this category.",
"bg-color": "背景顏色",
"text-color": "圖示顏色",
"bg-image-size": "背景圖片大小",
@@ -103,6 +107,11 @@
"alert.create-success": "版面建立成功!",
"alert.none-active": "您沒有有效的版面。",
"alert.create": "建立一個版面",
+ "alert.add": "Add a Category",
+ "alert.add-help": "Remote categories can be added to the categories listing by specifying their handle.
Note — 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": "
您確定要清除 “%1” 版面嗎?
警告! 版面將被清除!
清除版塊將刪除所有主題和帖子,並從數據庫中刪除版塊。 如果您想暫時移除版塊,請使用停用版塊。
",
"alert.purge-success": "版面已刪除!",
"alert.copy-success": "設定已複製!",
diff --git a/public/language/zh-TW/admin/settings/activitypub.json b/public/language/zh-TW/admin/settings/activitypub.json
index 87f654e125..dd07276f94 100644
--- a/public/language/zh-TW/admin/settings/activitypub.json
+++ b/public/language/zh-TW/admin/settings/activitypub.json
@@ -18,6 +18,28 @@
"probe-timeout": "查詢時限 (毫秒)",
"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.
N.B. 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 # symbol",
+ "rules.help-user": "Topics created by the entered user will match. Enter a handle or full ID (e.g. bob@example.org or https://example.org/users/bob.",
+ "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 /actor.",
+ "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": "過濾...",
"count": "本 NodeBB 已發現 %1 台伺服器。",
"server.filter-help": "Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively allow federation with specific servers, instead. Both options are supported, although they are mutually exclusive.",
diff --git a/public/language/zh-TW/admin/settings/uploads.json b/public/language/zh-TW/admin/settings/uploads.json
index fc3bddd9ca..a72caffbc2 100644
--- a/public/language/zh-TW/admin/settings/uploads.json
+++ b/public/language/zh-TW/admin/settings/uploads.json
@@ -22,6 +22,7 @@
"reject-image-height": "圖片最大高度值(單位:像素)",
"reject-image-height-help": "高於此數值大小的圖片將會被拒絕",
"allow-topic-thumbnails": "允許使用者上傳主題縮圖",
+ "show-post-uploads-as-thumbnails": "Show post uploads as thumbnails",
"topic-thumb-size": "主題縮圖大小",
"allowed-file-extensions": "允許的副檔名",
"allowed-file-extensions-help": "在此處輸入以逗號分隔的副檔名列表 (例如 pdf,xls,doc )。 為空則表示允許所有副檔名。",
diff --git a/public/language/zh-TW/aria.json b/public/language/zh-TW/aria.json
index d0388293b0..61fee5591f 100644
--- a/public/language/zh-TW/aria.json
+++ b/public/language/zh-TW/aria.json
@@ -5,5 +5,6 @@
"profile-page-for": "Profile page for user %1",
"user-watched-tags": "關注的標簽",
"delete-upload-button": "删除上傳按鈕",
- "group-page-link-for": "%1 的群組頁面鏈結"
+ "group-page-link-for": "%1 的群組頁面鏈結",
+ "show-crossposts": "Show Cross-posts"
}
\ No newline at end of file
diff --git a/public/language/zh-TW/error.json b/public/language/zh-TW/error.json
index f7b64e8001..98893b9921 100644
--- a/public/language/zh-TW/error.json
+++ b/public/language/zh-TW/error.json
@@ -3,6 +3,7 @@
"invalid-json": "無效 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": "搜尋功能僅限成員使用 - 請先登入或者註冊。",
@@ -146,6 +147,7 @@
"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": "無效檔案",
@@ -227,6 +229,7 @@
"no-topics-selected": "沒有主題被選中!",
"cant-move-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": "您不能把自己封鎖!",
"cannot-block-privileged": "您不能封鎖管理員或者超級版主",
"cannot-block-guest": "訪客無法封鎖其他使用者",
@@ -236,6 +239,7 @@
"socket-reconnect-failed": "Unable to reach the server at this time. Click here to try again, or try again later",
"invalid-plugin-id": "無效的插件 ID",
"plugin-not-whitelisted": "Unable to install plugin – 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",
diff --git a/public/language/zh-TW/global.json b/public/language/zh-TW/global.json
index d1ce88efbf..a9452ca9b3 100644
--- a/public/language/zh-TW/global.json
+++ b/public/language/zh-TW/global.json
@@ -68,6 +68,7 @@
"users": "使用者",
"topics": "主題",
"posts": "貼文",
+ "crossposts": "Cross-posts",
"x-posts": "%1 posts",
"x-topics": "%1 topics",
"x-reputation": "%1 reputation",
diff --git a/public/language/zh-TW/modules.json b/public/language/zh-TW/modules.json
index a0d0f953d3..0262c03fb0 100644
--- a/public/language/zh-TW/modules.json
+++ b/public/language/zh-TW/modules.json
@@ -48,6 +48,7 @@
"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",
diff --git a/public/language/zh-TW/social.json b/public/language/zh-TW/social.json
index dc1efd7912..0c2974c36c 100644
--- a/public/language/zh-TW/social.json
+++ b/public/language/zh-TW/social.json
@@ -8,5 +8,7 @@
"log-in-with-facebook": "以Facebook登入",
"continue-with-facebook": "以Facebook繼續使用",
"sign-in-with-linkedin": "以 LinkedIn 登入",
- "sign-up-with-linkedin": "以 LinkedIn 註冊"
+ "sign-up-with-linkedin": "以 LinkedIn 註冊",
+ "sign-in-with-wordpress": "Sign in with WordPress",
+ "sign-up-with-wordpress": "Sign up with WordPress"
}
\ No newline at end of file
diff --git a/public/language/zh-TW/topic.json b/public/language/zh-TW/topic.json
index 927d486876..ab27551f77 100644
--- a/public/language/zh-TW/topic.json
+++ b/public/language/zh-TW/topic.json
@@ -103,6 +103,7 @@
"thread-tools.lock": "鎖定主題",
"thread-tools.unlock": "解鎖主題",
"thread-tools.move": "移動主題",
+ "thread-tools.crosspost": "Crosspost Topic",
"thread-tools.move-posts": "移動貼文",
"thread-tools.move-all": "移動全部",
"thread-tools.change-owner": "更改所有者",
@@ -132,6 +133,7 @@
"pin-modal-help": "您可在這裏設定置頂話題的有效日期,也可放著不動它直到被手動將置頂取消。",
"load-categories": "正在載入版面",
"confirm-move": "移動",
+ "confirm-crosspost": "Cross-post",
"confirm-fork": "分割",
"bookmark": "書籤",
"bookmarks": "書籤",
@@ -141,6 +143,7 @@
"loading-more-posts": "正在載入更多貼文",
"move-topic": "移動主題",
"move-topics": "移動主題",
+ "crosspost-topic": "Cross-post Topic",
"move-post": "移動貼文",
"post-moved": "回覆已移動!",
"fork-topic": "分割主題",
@@ -163,6 +166,9 @@
"move-topic-instruction": "選擇目標分類後點擊移動",
"change-owner-instruction": "點擊您想轉移給其他使用者的貼文",
"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": "在此輸入您的名稱/代稱",
"composer.hide": "隱藏",
diff --git a/public/openapi/components/schemas/Chats.yaml b/public/openapi/components/schemas/Chats.yaml
index dc84aca4ef..036b937158 100644
--- a/public/openapi/components/schemas/Chats.yaml
+++ b/public/openapi/components/schemas/Chats.yaml
@@ -27,6 +27,10 @@ RoomObject:
description: Timestamp of when room was created
notificationSetting:
type: number
+ description: The notification setting for the room, 0 = no notifications, 1 = only mentions, 2 = all messages
+ joinLeaveMessages:
+ type: number
+ description: Whether join/leave messages are enabled in the room
MessageObject:
type: object
properties:
diff --git a/public/openapi/components/schemas/CrosspostObject.yaml b/public/openapi/components/schemas/CrosspostObject.yaml
new file mode 100644
index 0000000000..54f36a4f5f
--- /dev/null
+++ b/public/openapi/components/schemas/CrosspostObject.yaml
@@ -0,0 +1,52 @@
+CrosspostObject:
+ anyOf:
+ - type: object
+ properties:
+ id:
+ type: string
+ description: The cross-post ID
+ cid:
+ type: object
+ description: The category id that the topic was cross-posted to
+ additionalProperties:
+ oneOf:
+ - type: string
+ - type: number
+ tid:
+ type: object
+ description: The topic id that was cross-posted
+ additionalProperties:
+ oneOf:
+ - type: string
+ - type: number
+ timestamp:
+ type: number
+ uid:
+ type: object
+ description: The user id that initiated the cross-post
+ additionalProperties:
+ oneOf:
+ - type: string
+ - type: number
+ - type: object
+ properties:
+ category:
+ type: object
+ properties:
+ cid:
+ type: number
+ name:
+ type: string
+ icon:
+ type: string
+ bgColor:
+ type: string
+ color:
+ type: string
+ slug:
+ type: string
+CrosspostsArray:
+ type: array
+ description: A list of crosspost objects
+ items:
+ $ref: '#/CrosspostObject'
\ No newline at end of file
diff --git a/public/openapi/components/schemas/PostObject.yaml b/public/openapi/components/schemas/PostObject.yaml
index bcb2f79e53..1904cded51 100644
--- a/public/openapi/components/schemas/PostObject.yaml
+++ b/public/openapi/components/schemas/PostObject.yaml
@@ -300,6 +300,8 @@ PostDataObject:
type: boolean
attachments:
type: array
+ uploads:
+ type: array
replies:
type: object
properties:
diff --git a/public/openapi/components/schemas/TopicObject.yaml b/public/openapi/components/schemas/TopicObject.yaml
index b26623072e..30ba9d3a77 100644
--- a/public/openapi/components/schemas/TopicObject.yaml
+++ b/public/openapi/components/schemas/TopicObject.yaml
@@ -106,6 +106,9 @@ TopicObject:
description: A topic identifier
content:
type: string
+ sourceContent:
+ type: string
+ nullable: true
timestampISO:
type: string
description: An ISO 8601 formatted date string (complementing `timestamp`)
@@ -118,6 +121,10 @@ TopicObject:
username:
type: string
description: A friendly name for a given user account
+ displayname:
+ type: string
+ isLocal:
+ type: boolean
userslug:
type: string
description: An URL-safe variant of the username (i.e. lower-cased, spaces
diff --git a/public/openapi/components/schemas/admin/relays.yaml b/public/openapi/components/schemas/admin/relays.yaml
new file mode 100644
index 0000000000..67bdd09b10
--- /dev/null
+++ b/public/openapi/components/schemas/admin/relays.yaml
@@ -0,0 +1,18 @@
+RelayObject:
+ type: object
+ properties:
+ url:
+ type: string
+ description: The relay actor endpoint
+ example: https://example.org/actor
+ state:
+ type: number
+ description: "The established state of the relay(0: pending; 1: one way receive; 2: bidirectional)"
+ enum: [0, 1, 2]
+ label:
+ type: string
+ description: A language key pertaining to the `state` value
+RelaysArray:
+ type: array
+ items:
+ $ref: '#/RelayObject'
\ No newline at end of file
diff --git a/public/openapi/components/schemas/admin/rules.yaml b/public/openapi/components/schemas/admin/rules.yaml
new file mode 100644
index 0000000000..282d6eff11
--- /dev/null
+++ b/public/openapi/components/schemas/admin/rules.yaml
@@ -0,0 +1,23 @@
+RuleObject:
+ type: object
+ properties:
+ rid:
+ type: string
+ description: a valid rule ID
+ example: 4eb506f8-a173-4693-a41b-e23604bc973a
+ type:
+ type: string
+ description: The auto-categorization rule type
+ example: hashtag
+ value:
+ type: string
+ description: The value that incoming content will be matched against (used alongside `type`)
+ example: 'example'
+ cid:
+ type: number
+ description: The category ID of a local category
+ example: 1
+RulesArray:
+ type: array
+ items:
+ $ref: '#/RuleObject'
\ No newline at end of file
diff --git a/public/openapi/read/admin/analytics.yaml b/public/openapi/read/admin/analytics.yaml
index 508325aace..67f8ed516c 100644
--- a/public/openapi/read/admin/analytics.yaml
+++ b/public/openapi/read/admin/analytics.yaml
@@ -53,6 +53,10 @@ get:
items:
type: number
pageviews:guest:
+ type: array
+ items:
+ type: number
+ pageviews:ap:
type: array
items:
type: number
\ No newline at end of file
diff --git a/public/openapi/read/admin/manage/categories.yaml b/public/openapi/read/admin/manage/categories.yaml
index b4e6102ac1..c4c48b7a06 100644
--- a/public/openapi/read/admin/manage/categories.yaml
+++ b/public/openapi/read/admin/manage/categories.yaml
@@ -25,8 +25,14 @@ get:
description: A category identifier
name:
type: string
+ nickname:
+ type: string
+ description: A custom name given to a remote category for de-duplication purposes (not available to local categories.)
description:
type: string
+ descriptionParsed:
+ type: string
+ description: A variable-length description of the category (usually displayed underneath the category name). Unlike `description`, this value here will have been run through any parsers installed on the forum (e.g. Markdown)
disabled:
type: number
icon:
@@ -48,6 +54,8 @@ get:
type: string
order:
type: number
+ isLocal:
+ type: boolean
subCategoriesPerPage:
type: number
children:
diff --git a/public/openapi/read/admin/settings/activitypub.yaml b/public/openapi/read/admin/settings/activitypub.yaml
index b0871999b6..48a0415fef 100644
--- a/public/openapi/read/admin/settings/activitypub.yaml
+++ b/public/openapi/read/admin/settings/activitypub.yaml
@@ -16,4 +16,8 @@ get:
instanceCount:
type: number
description: The number of ActivityPub-enabled instances that this forum knows about.
+ rules:
+ $ref: ../../../components/schemas/admin/rules.yaml#/RulesArray
+ relays:
+ $ref: ../../../components/schemas/admin/relays.yaml#/RelaysArray
- $ref: ../../../components/schemas/CommonProps.yaml#/CommonProps
\ No newline at end of file
diff --git a/public/openapi/read/ap.yaml b/public/openapi/read/ap.yaml
index 0704cc6dab..89bee103c5 100644
--- a/public/openapi/read/ap.yaml
+++ b/public/openapi/read/ap.yaml
@@ -14,8 +14,8 @@ get:
name: resource
schema:
type: string
- description: A URL to query for potential ActivityPub resource
- example: 'https://example.org/ap'
+ description: A URL-encoded address to query for potential ActivityPub resource
+ example: 'https://try.nodebb.org/uid/1'
responses:
"200":
description: Sent if the `/api` prefix is used. The `X-Redirect` header is sent with the redirection target.
@@ -24,7 +24,7 @@ get:
schema:
type: string
"307":
- description: Redirect the user to the local representation or original URL.
+ description: Redirect the user to the local representation or /outgoing interstitial page for original URL.
headers:
Location:
schema:
diff --git a/public/openapi/read/popular.yaml b/public/openapi/read/popular.yaml
index 67c7d5030f..fe6a0a6480 100644
--- a/public/openapi/read/popular.yaml
+++ b/public/openapi/read/popular.yaml
@@ -60,6 +60,8 @@ get:
type: string
feeds:disableRSS:
type: number
+ reputation:disabled:
+ type: number
rssFeedUrl:
type: string
title:
diff --git a/public/openapi/read/recent.yaml b/public/openapi/read/recent.yaml
index 74d3d91a27..848a306b79 100644
--- a/public/openapi/read/recent.yaml
+++ b/public/openapi/read/recent.yaml
@@ -58,6 +58,8 @@ get:
type: string
feeds:disableRSS:
type: number
+ reputation:disabled:
+ type: number
rssFeedUrl:
type: string
title:
diff --git a/public/openapi/read/top.yaml b/public/openapi/read/top.yaml
index 8594ca9f14..6f0cbc9bc1 100644
--- a/public/openapi/read/top.yaml
+++ b/public/openapi/read/top.yaml
@@ -71,6 +71,8 @@ get:
type: string
feeds:disableRSS:
type: number
+ reputation:disabled:
+ type: number
rssFeedUrl:
type: string
title:
diff --git a/public/openapi/read/topic/topic_id.yaml b/public/openapi/read/topic/topic_id.yaml
index 302d39dbcc..81b3e9531f 100644
--- a/public/openapi/read/topic/topic_id.yaml
+++ b/public/openapi/read/topic/topic_id.yaml
@@ -212,6 +212,10 @@ get:
isLocal:
type: boolean
description: Whether the user belongs to the local installation or not.
+ crossposts:
+ type: array
+ items:
+ $ref: ../../components/schemas/CrosspostObject.yaml#/CrosspostObject
- type: object
description: Optional properties that may or may not be present (except for `tid`, which is always present, and is only here as a hack to pass validation)
properties:
diff --git a/public/openapi/read/unread.yaml b/public/openapi/read/unread.yaml
index e916231d65..77e9ec44f6 100644
--- a/public/openapi/read/unread.yaml
+++ b/public/openapi/read/unread.yaml
@@ -19,6 +19,8 @@ get:
type: boolean
showTopicTools:
type: boolean
+ reputation:disabled:
+ type: number
nextStart:
type: number
topics:
@@ -138,6 +140,9 @@ get:
description: A topic identifier
content:
type: string
+ sourceContent:
+ type: string
+ nullable: true
timestampISO:
type: string
description: An ISO 8601 formatted date string (complementing `timestamp`)
@@ -150,6 +155,10 @@ get:
username:
type: string
description: A friendly name for a given user account
+ displayname:
+ type: string
+ isLocal:
+ type: boolean
userslug:
type: string
description: An URL-safe variant of the username (i.e. lower-cased, spaces
diff --git a/public/openapi/read/user/userslug/chats/roomid.yaml b/public/openapi/read/user/userslug/chats/roomid.yaml
index 5c5fd1c296..73c4a62da9 100644
--- a/public/openapi/read/user/userslug/chats/roomid.yaml
+++ b/public/openapi/read/user/userslug/chats/roomid.yaml
@@ -56,6 +56,8 @@ get:
type: array
notificationOptionsIcon:
type: string
+ joinLeaveMessages:
+ type: number
messages:
type: array
items:
@@ -360,6 +362,8 @@ get:
type: string
notificationSetting:
type: number
+ joinLeaveMessages:
+ type: number
publicRooms:
type: array
items:
diff --git a/public/openapi/write.yaml b/public/openapi/write.yaml
index 5f58bdfbf1..dfef0aa0cf 100644
--- a/public/openapi/write.yaml
+++ b/public/openapi/write.yaml
@@ -168,6 +168,8 @@ paths:
$ref: 'write/topics/tid/bump.yaml'
/topics/{tid}/move:
$ref: 'write/topics/tid/move.yaml'
+ /topics/{tid}/crossposts:
+ $ref: 'write/topics/tid/crossposts.yaml'
/tags/{tag}/follow:
$ref: 'write/tags/tag/follow.yaml'
/posts/{pid}:
@@ -206,6 +208,10 @@ paths:
$ref: 'write/posts/queue/id.yaml'
/posts/queue/{id}/notify:
$ref: 'write/posts/queue/notify.yaml'
+ /posts/{pid}/owner:
+ $ref: 'write/posts/pid/owner.yaml'
+ /posts/owner:
+ $ref: 'write/posts/owner.yaml'
/chats/:
$ref: 'write/chats.yaml'
/chats/unread:
@@ -270,6 +276,14 @@ paths:
$ref: 'write/admin/chats/roomId.yaml'
/admin/groups:
$ref: 'write/admin/groups.yaml'
+ /admin/activitypub/rules:
+ $ref: 'write/admin/activitypub/rules.yaml'
+ /admin/activitypub/rules/{rid}:
+ $ref: 'write/admin/activitypub/rules/rid.yaml'
+ /admin/activitypub/relays:
+ $ref: 'write/admin/activitypub/relays.yaml'
+ /admin/activitypub/relays/{url}:
+ $ref: 'write/admin/activitypub/relays/url.yaml'
/files/:
$ref: 'write/files.yaml'
/files/folder:
diff --git a/public/openapi/write/admin/activitypub/relays.yaml b/public/openapi/write/admin/activitypub/relays.yaml
new file mode 100644
index 0000000000..0f58c7580d
--- /dev/null
+++ b/public/openapi/write/admin/activitypub/relays.yaml
@@ -0,0 +1,28 @@
+post:
+ tags:
+ - admin
+ summary: add relay
+ description: This operation establishes a connection to a remote relay for content discovery purposes
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ url:
+ type: string
+ description: The relay actor endpoint
+ example: https://example.org/actor
+ responses:
+ '200':
+ description: rule successfully created
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ status:
+ $ref: ../../../components/schemas/Status.yaml#/Status
+ response:
+ $ref: ../../../components/schemas/admin/relays.yaml#/RelaysArray
diff --git a/public/openapi/write/admin/activitypub/relays/url.yaml b/public/openapi/write/admin/activitypub/relays/url.yaml
new file mode 100644
index 0000000000..4f4b182ffb
--- /dev/null
+++ b/public/openapi/write/admin/activitypub/relays/url.yaml
@@ -0,0 +1,25 @@
+delete:
+ tags:
+ - admin
+ summary: remove relay
+ description: This operation removes a pre-established relay connection
+ parameters:
+ - in: path
+ name: url
+ schema:
+ type: string
+ required: true
+ description: The relay actor endpoint, URL encoded.
+ example: https%3A%2F%2Fexample.org%2Factor
+ responses:
+ '200':
+ description: rule successfully deleted
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ status:
+ $ref: ../../../../components/schemas/Status.yaml#/Status
+ response:
+ $ref: ../../../../components/schemas/admin/relays.yaml#/RelaysArray
diff --git a/public/openapi/write/admin/activitypub/rules.yaml b/public/openapi/write/admin/activitypub/rules.yaml
new file mode 100644
index 0000000000..8a74425101
--- /dev/null
+++ b/public/openapi/write/admin/activitypub/rules.yaml
@@ -0,0 +1,36 @@
+post:
+ tags:
+ - admin
+ summary: create auto-categorization rule
+ description: This operation creates a new auto-categorization rule that is applied to new remote content received via ActivityPub.
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ type:
+ type: string
+ description: The auto-categorization rule type
+ example: hashtag
+ value:
+ type: string
+ description: The value that incoming content will be matched against (used alongside `type`)
+ example: 'example'
+ cid:
+ type: number
+ description: The category ID of a local category
+ example: 1
+ responses:
+ '200':
+ description: rule successfully created
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ status:
+ $ref: ../../../components/schemas/Status.yaml#/Status
+ response:
+ $ref: ../../../components/schemas/admin/rules.yaml#/RulesArray
diff --git a/public/openapi/write/admin/activitypub/rules/rid.yaml b/public/openapi/write/admin/activitypub/rules/rid.yaml
new file mode 100644
index 0000000000..08243c16a2
--- /dev/null
+++ b/public/openapi/write/admin/activitypub/rules/rid.yaml
@@ -0,0 +1,25 @@
+delete:
+ tags:
+ - admin
+ summary: delete auto-categorization rule
+ description: This operation deletes a previously set-up auto-categorization rule
+ parameters:
+ - in: path
+ name: rid
+ schema:
+ type: string
+ required: true
+ description: a valid rule ID
+ example: 4eb506f8-a173-4693-a41b-e23604bc973a
+ responses:
+ '200':
+ description: rule successfully deleted
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ status:
+ $ref: ../../../../components/schemas/Status.yaml#/Status
+ response:
+ $ref: ../../../../components/schemas/admin/rules.yaml#/RulesArray
diff --git a/public/openapi/write/categories/cid/moderator/uid.yaml b/public/openapi/write/categories/cid/moderator/uid.yaml
index 217c3c09b0..3e7223d1d7 100644
--- a/public/openapi/write/categories/cid/moderator/uid.yaml
+++ b/public/openapi/write/categories/cid/moderator/uid.yaml
@@ -86,7 +86,6 @@ put:
privileges:
type: object
additionalProperties:
- type: boolean
description: A set of privileges with either true or false
types:
type: object
@@ -103,7 +102,6 @@ put:
privileges:
type: object
additionalProperties:
- type: boolean
description: A set of privileges with either true or false
types:
type: object
diff --git a/public/openapi/write/categories/cid/privileges.yaml b/public/openapi/write/categories/cid/privileges.yaml
index b450aee682..4760e03f5c 100644
--- a/public/openapi/write/categories/cid/privileges.yaml
+++ b/public/openapi/write/categories/cid/privileges.yaml
@@ -47,7 +47,6 @@ get:
privileges:
type: object
additionalProperties:
- type: boolean
description: A set of privileges with either true or false
isPrivate:
type: boolean
@@ -65,7 +64,6 @@ get:
privileges:
type: object
additionalProperties:
- type: boolean
description: A set of privileges with either true or false
types:
type: object
diff --git a/public/openapi/write/categories/cid/privileges/privilege.yaml b/public/openapi/write/categories/cid/privileges/privilege.yaml
index 06303ac092..9c7cba8882 100644
--- a/public/openapi/write/categories/cid/privileges/privilege.yaml
+++ b/public/openapi/write/categories/cid/privileges/privilege.yaml
@@ -93,7 +93,6 @@ put:
privileges:
type: object
additionalProperties:
- type: boolean
description: A set of privileges with either true or false
groups:
type: array
@@ -107,7 +106,6 @@ put:
privileges:
type: object
additionalProperties:
- type: boolean
description: A set of privileges with either true or false
types:
type: object
@@ -230,7 +228,6 @@ delete:
privileges:
type: object
additionalProperties:
- type: boolean
description: A set of privileges with either true or false
groups:
type: array
@@ -244,7 +241,6 @@ delete:
privileges:
type: object
additionalProperties:
- type: boolean
description: A set of privileges with either true or false
types:
type: object
diff --git a/public/openapi/write/categories/cid/topics.yaml b/public/openapi/write/categories/cid/topics.yaml
index a14664b20c..fd36d8e417 100644
--- a/public/openapi/write/categories/cid/topics.yaml
+++ b/public/openapi/write/categories/cid/topics.yaml
@@ -71,5 +71,4 @@ get:
privileges:
type: object
additionalProperties:
- type: boolean
description: A set of privileges with either true or false
\ No newline at end of file
diff --git a/public/openapi/write/chats/roomId/messages/mid.yaml b/public/openapi/write/chats/roomId/messages/mid.yaml
index 5053f1546d..c899627802 100644
--- a/public/openapi/write/chats/roomId/messages/mid.yaml
+++ b/public/openapi/write/chats/roomId/messages/mid.yaml
@@ -49,7 +49,7 @@ put:
type: number
required: true
description: a valid message id
- example: 5
+ example: 2
requestBody:
required: true
content:
@@ -92,7 +92,7 @@ delete:
type: number
required: true
description: a valid message id
- example: 5
+ example: 2
responses:
'200':
description: Message successfully deleted
@@ -125,7 +125,7 @@ post:
type: number
required: true
description: a valid message id
- example: 5
+ example: 2
responses:
'200':
description: message successfully restored
diff --git a/public/openapi/write/chats/roomId/messages/mid/ip.yaml b/public/openapi/write/chats/roomId/messages/mid/ip.yaml
index 0d2a82cba9..2c2af8fb1b 100644
--- a/public/openapi/write/chats/roomId/messages/mid/ip.yaml
+++ b/public/openapi/write/chats/roomId/messages/mid/ip.yaml
@@ -17,7 +17,7 @@ get:
type: string
required: true
description: a valid chat message id
- example: 5
+ example: 2
responses:
'200':
description: Chat message ip address retrieved
diff --git a/public/openapi/write/posts/owner.yaml b/public/openapi/write/posts/owner.yaml
new file mode 100644
index 0000000000..98283f8e96
--- /dev/null
+++ b/public/openapi/write/posts/owner.yaml
@@ -0,0 +1,39 @@
+post:
+ tags:
+ - posts
+ summary: Change owner of one or more posts
+ description: Change the owner of the posts identified by pids to the user uid.
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - pids
+ - uid
+ properties:
+ pids:
+ type: array
+ items:
+ type: integer
+ description: Array of post IDs to change owner for
+ example: [2]
+ uid:
+ type: integer
+ description: Target user id
+ example: 1
+ responses:
+ '200':
+ description: Owner changed successfully
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ status:
+ $ref: ../../components/schemas/Status.yaml#/Status
+ response:
+ type: object
+ '404':
+ description: Post not found
diff --git a/public/openapi/write/posts/pid/owner.yaml b/public/openapi/write/posts/pid/owner.yaml
new file mode 100644
index 0000000000..0e1a701faa
--- /dev/null
+++ b/public/openapi/write/posts/pid/owner.yaml
@@ -0,0 +1,39 @@
+put:
+ summary: Change owner of a post
+ description: Change the owner (uid) of a post identified by pid.
+ tags:
+ - posts
+ parameters:
+ - name: pid
+ in: path
+ description: Post id
+ required: true
+ schema:
+ type: integer
+ example: 2
+ requestBody:
+ description: New owner payload
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - uid
+ properties:
+ uid:
+ type: integer
+ description: User id of the new owner
+ example: 2
+ responses:
+ '200':
+ description: Owner changed successfully
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ status:
+ $ref: ../../../components/schemas/Status.yaml#/Status
+ response:
+ type: object
diff --git a/public/openapi/write/topics/tid/crossposts.yaml b/public/openapi/write/topics/tid/crossposts.yaml
new file mode 100644
index 0000000000..f292292e0a
--- /dev/null
+++ b/public/openapi/write/topics/tid/crossposts.yaml
@@ -0,0 +1,104 @@
+get:
+ tags:
+ - topics
+ summary: get topic crossposts
+ description: This operation retrieves a list of crossposts for the requested topic
+ parameters:
+ - in: path
+ name: tid
+ schema:
+ type: string
+ required: true
+ description: a valid topic id
+ example: 1
+ responses:
+ '200':
+ description: Topic crossposts retrieved
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ status:
+ $ref: ../../../components/schemas/Status.yaml#/Status
+ response:
+ type: object
+ properties:
+ crossposts:
+ $ref: ../../../components/schemas/CrosspostObject.yaml#/CrosspostsArray
+post:
+ tags:
+ - topics
+ summary: crosspost a topic
+ description: This operation crossposts a topic to another category.
+ parameters:
+ - in: path
+ name: tid
+ schema:
+ type: string
+ required: true
+ description: a valid topic id
+ example: 1
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ cid:
+ type: number
+ example: 1
+ responses:
+ '200':
+ description: Topic successfully crossposted
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ status:
+ $ref: ../../../components/schemas/Status.yaml#/Status
+ response:
+ type: object
+ properties:
+ crossposts:
+ $ref: ../../../components/schemas/CrosspostObject.yaml#/CrosspostsArray
+delete:
+ tags:
+ - topics
+ summary: uncrossposts a topic
+ description: This operation uncrossposts a topic from a category.
+ parameters:
+ - in: path
+ name: tid
+ schema:
+ type: string
+ required: true
+ description: a valid topic id
+ example: 1
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ cid:
+ type: number
+ example: 1
+ responses:
+ '200':
+ description: Topic successfully uncrossposted
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ status:
+ $ref: ../../../components/schemas/Status.yaml#/Status
+ response:
+ type: object
+ properties:
+ crossposts:
+ $ref: ../../../components/schemas/CrosspostObject.yaml#/CrosspostsArray
\ No newline at end of file
diff --git a/public/openapi/write/topics/tid/thumbs.yaml b/public/openapi/write/topics/tid/thumbs.yaml
index 3817d2a5a3..5d28264266 100644
--- a/public/openapi/write/topics/tid/thumbs.yaml
+++ b/public/openapi/write/topics/tid/thumbs.yaml
@@ -83,55 +83,6 @@ post:
type: string
name:
type: string
-put:
- tags:
- - topics
- summary: migrate topic thumbnail
- description: This operation migrates a thumbnails from a topic or draft, to another tid or draft.
- parameters:
- - in: path
- name: tid
- schema:
- type: string
- required: true
- description: a valid topic id or draft uuid
- example: 1
- requestBody:
- required: true
- content:
- application/json:
- schema:
- type: object
- properties:
- tid:
- type: string
- description: a valid topic id or draft uuid
- example: '1'
- responses:
- '200':
- description: Topic thumbnails migrated
- content:
- application/json:
- schema:
- type: object
- properties:
- status:
- $ref: ../../../components/schemas/Status.yaml#/Status
- response:
- type: array
- description: A list of the topic thumbnails in the destination topic
- items:
- type: object
- properties:
- id:
- type: string
- name:
- type: string
- path:
- type: string
- url:
- type: string
- description: Path to a topic thumbnail
delete:
tags:
- topics
diff --git a/public/openapi/write/topics/tid/thumbs/order.yaml b/public/openapi/write/topics/tid/thumbs/order.yaml
index a0f1602bc8..a8acefbf0a 100644
--- a/public/openapi/write/topics/tid/thumbs/order.yaml
+++ b/public/openapi/write/topics/tid/thumbs/order.yaml
@@ -2,14 +2,14 @@ put:
tags:
- topics
summary: reorder topic thumbnail
- description: This operation sets the order for a topic thumbnail. It can handle either topics (if a valid `tid` is passed in), or drafts. A 404 is returned if the topic or draft does not actually contain that thumbnail path. Paths passed in should **not** contain the path to the uploads folder (`config.upload_url` on client side)
+ description: This operation sets the order for a topic thumbnail. A 404 is returned if the topic does not contain path. Paths passed in should **not** contain the path to the uploads folder (`config.upload_url` on client side)
parameters:
- in: path
name: tid
schema:
type: string
required: true
- description: a valid topic id or draft uuid
+ description: a valid topic id
example: 2
requestBody:
required: true
diff --git a/public/scss/admin/fonts.scss b/public/scss/admin/fonts.scss
index ba9988154d..d13da2cc7b 100644
--- a/public/scss/admin/fonts.scss
+++ b/public/scss/admin/fonts.scss
@@ -1,20 +1,24 @@
-@use "@fontsource/inter/scss/mixins" as Inter;
-@use "@fontsource/poppins/scss/mixins" as Poppins;
+@use "pkg:@fontsource-utils/scss" as fontsource;
+@use "pkg:@fontsource/inter/scss" as inter;
+@use "pkg:@fontsource/poppins/scss" as poppins;
$weights: $font-weight-light, $font-weight-normal, $font-weight-semibold, $font-weight-bold;
$subsets: (latin, latin-ext);
-@include Inter.faces(
- $weights: $weights,
- $subsets: $subsets,
- $display: fallback,
- $directory: "./plugins/core/inter"
+@include fontsource.faces(
+ $metadata: inter.$metadata,
+ $subsets: $subsets,
+ $weights: $weights,
+ $styles: all,
+ $directory: "./plugins/core/inter"
);
-@include Poppins.faces(
- $weights: $weights,
- $subsets: $subsets,
- $display: fallback,
- $directory: "./plugins/core/poppins"
+
+@include fontsource.faces(
+ $metadata: poppins.$metadata,
+ $subsets: $subsets,
+ $weights: $weights,
+ $styles: all,
+ $directory: "./plugins/core/poppins"
);
.ff-base { font-family: $font-family-base !important; }
diff --git a/public/src/admin/admin.js b/public/src/admin/admin.js
index e0d4e49b7f..7e68c65b8c 100644
--- a/public/src/admin/admin.js
+++ b/public/src/admin/admin.js
@@ -9,43 +9,12 @@ require('../../scripts-admin');
app.onDomReady();
(function () {
- let logoutTimer = 0;
- let logoutMessage;
- function startLogoutTimer() {
- if (app.config.adminReloginDuration <= 0) {
- return;
- }
- if (logoutTimer) {
- clearTimeout(logoutTimer);
- }
- // pre-translate language string gh#9046
- if (!logoutMessage) {
- require(['translator'], function (translator) {
- translator.translate('[[login:logged-out-due-to-inactivity]]', function (translated) {
- logoutMessage = translated;
- });
- });
- }
-
- logoutTimer = setTimeout(function () {
- require(['bootbox'], function (bootbox) {
- bootbox.alert({
- closeButton: false,
- message: logoutMessage,
- callback: function () {
- window.location.reload();
- },
- });
- });
- }, 3600000);
- }
-
- require(['hooks', 'admin/settings'], (hooks, Settings) => {
+ require(['hooks', 'admin/settings', 'admin/modules/relogin-timer'], (hooks, Settings, reloginTimer) => {
hooks.on('action:ajaxify.end', (data) => {
updatePageTitle(data.url);
setupRestartLinks();
showCorrectNavTab();
- startLogoutTimer();
+ reloginTimer.start(app.config.adminReloginDuration);
$('[data-bs-toggle="tooltip"]').tooltip({
animation: false,
@@ -59,6 +28,7 @@ app.onDomReady();
Settings.populateTOC();
}
});
+
hooks.on('action:ajaxify.start', function () {
require(['bootstrap'], function (boostrap) {
const offcanvas = boostrap.Offcanvas.getInstance('#offcanvas');
diff --git a/public/src/admin/dashboard.js b/public/src/admin/dashboard.js
index a2b624c5a8..5fa55a7e0d 100644
--- a/public/src/admin/dashboard.js
+++ b/public/src/admin/dashboard.js
@@ -165,6 +165,7 @@ function setupGraphs(callback) {
t.translateKey('admin/dashboard:graphs.page-views-registered', []),
t.translateKey('admin/dashboard:graphs.page-views-guest', []),
t.translateKey('admin/dashboard:graphs.page-views-bot', []),
+ t.translateKey('admin/dashboard:graphs.page-views-ap', []),
t.translateKey('admin/dashboard:graphs.unique-visitors', []),
t.translateKey('admin/dashboard:graphs.registered-users', []),
t.translateKey('admin/dashboard:graphs.guest-users', []),
@@ -231,6 +232,18 @@ function setupGraphs(callback) {
fill: 'origin',
tension: tension,
backgroundColor: 'rgba(151,187,205,0.2)',
+ borderColor: 'rgba(110, 187, 132, 1)',
+ pointBackgroundColor: 'rgba(110, 187, 132, 1)',
+ pointHoverBackgroundColor: 'rgba(110, 187, 132, 1)',
+ pointBorderColor: '#fff',
+ pointHoverBorderColor: 'rgba(110, 187, 132, 1)',
+ data: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+ },
+ {
+ label: translations[5],
+ fill: 'origin',
+ tension: tension,
+ backgroundColor: 'rgba(151,187,205,0.2)',
borderColor: 'rgba(151,187,205,1)',
pointBackgroundColor: 'rgba(151,187,205,1)',
pointHoverBackgroundColor: 'rgba(151,187,205,1)',
@@ -247,7 +260,8 @@ function setupGraphs(callback) {
data.datasets[1].yAxisID = 'left-y-axis';
data.datasets[2].yAxisID = 'left-y-axis';
data.datasets[3].yAxisID = 'left-y-axis';
- data.datasets[4].yAxisID = 'right-y-axis';
+ data.datasets[4].yAxisID = 'left-y-axis';
+ data.datasets[5].yAxisID = 'right-y-axis';
graphs.traffic = new Chart(trafficCtx, {
type: 'line',
@@ -269,7 +283,7 @@ function setupGraphs(callback) {
type: 'linear',
title: {
display: true,
- text: translations[4],
+ text: translations[5],
},
beginAtZero: true,
},
@@ -446,7 +460,8 @@ function updateTrafficGraph(units, until, amount) {
graphs.traffic.data.datasets[1].data = data.pageviewsRegistered;
graphs.traffic.data.datasets[2].data = data.pageviewsGuest;
graphs.traffic.data.datasets[3].data = data.pageviewsBot;
- graphs.traffic.data.datasets[4].data = data.uniqueVisitors;
+ graphs.traffic.data.datasets[4].data = data.appageviews;
+ graphs.traffic.data.datasets[5].data = data.uniqueVisitors;
graphs.traffic.data.labels = graphs.traffic.data.xLabels;
graphs.traffic.update();
diff --git a/public/src/admin/manage/categories.js b/public/src/admin/manage/categories.js
index 7342d0c1de..5478beab39 100644
--- a/public/src/admin/manage/categories.js
+++ b/public/src/admin/manage/categories.js
@@ -27,6 +27,7 @@ define('admin/manage/categories', [
Categories.render(ajaxify.data.categoriesTree);
$('button[data-action="create"]').on('click', Categories.throwCreateModal);
+ $('button[data-action="add"]').on('click', Categories.throwAddModal);
// Enable/Disable toggle events
$('.categories').on('click', '.category-tools [data-action="toggle"]', function () {
@@ -68,7 +69,7 @@ define('admin/manage/categories', [
if (val && cid) {
const modified = {};
modified[cid] = { order: Math.max(1, parseInt(val, 10)) };
- api.put('/categories/' + cid, modified[cid]).then(function () {
+ api.put('/categories/' + encodeURIComponent(cid), modified[cid]).then(function () {
ajaxify.refresh();
}).catch(alerts.error);
} else {
@@ -80,6 +81,22 @@ define('admin/manage/categories', [
});
});
+ $('.categories').on('click', 'a[data-action]', function () {
+ const action = this.getAttribute('data-action');
+
+ switch (action) {
+ case 'remove': {
+ Categories.remove.call(this);
+ break;
+ }
+
+ case 'rename': {
+ Categories.rename.call(this);
+ break;
+ }
+ }
+ });
+
$('#toggle-collapse-all').on('click', function () {
const $this = $(this);
const isCollapsed = parseInt($this.attr('data-collapsed'), 10) === 1;
@@ -151,6 +168,53 @@ define('admin/manage/categories', [
});
};
+ Categories.throwAddModal = function () {
+ Benchpress.render('admin/partials/categories/add', {}).then(function (html) {
+ const modal = bootbox.dialog({
+ title: '[[admin/manage/categories:alert.add]]',
+ message: html,
+ buttons: {
+ save: {
+ label: '[[global:save]]',
+ className: 'btn-primary',
+ callback: submit,
+ },
+ },
+ });
+
+ function submit() {
+ const formData = modal.find('form').serializeObject();
+ api.post('/api/admin/manage/categories', formData).then(() => {
+ ajaxify.refresh();
+ modal.modal('hide');
+ }).catch(alerts.error);
+ return false;
+ }
+
+ modal.find('form').on('submit', submit);
+ });
+ };
+
+ Categories.remove = function () {
+ bootbox.confirm('[[admin/manage/categories:alert.confirm-remove]]', (ok) => {
+ if (ok) {
+ const cid = this.getAttribute('data-cid');
+ api.del(`/api/admin/manage/categories/${encodeURIComponent(cid)}`).then(ajaxify.refresh);
+ }
+ });
+ };
+
+ Categories.rename = function () {
+ bootbox.prompt({
+ title: '[[admin/manage/categories:alert.rename]]',
+ message: '
diff --git a/src/views/admin/partials/activitypub/relays.tpl b/src/views/admin/partials/activitypub/relays.tpl
new file mode 100644
index 0000000000..8f53b167f0
--- /dev/null
+++ b/src/views/admin/partials/activitypub/relays.tpl
@@ -0,0 +1,11 @@
+
[[admin/settings/activitypub:relays.warning]]
+
[[admin/settings/activitypub:relays.litepub]]
+
+
+
+
\ No newline at end of file
diff --git a/src/views/admin/partials/activitypub/rules.tpl b/src/views/admin/partials/activitypub/rules.tpl
new file mode 100644
index 0000000000..33273942b5
--- /dev/null
+++ b/src/views/admin/partials/activitypub/rules.tpl
@@ -0,0 +1,27 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/admin/partials/categories/add.tpl b/src/views/admin/partials/categories/add.tpl
new file mode 100644
index 0000000000..05131c050f
--- /dev/null
+++ b/src/views/admin/partials/categories/add.tpl
@@ -0,0 +1,12 @@
+
\ No newline at end of file
diff --git a/src/views/admin/partials/categories/category-rows.tpl b/src/views/admin/partials/categories/category-rows.tpl
index 57b3676093..5ed85f9da9 100644
--- a/src/views/admin/partials/categories/category-rows.tpl
+++ b/src/views/admin/partials/categories/category-rows.tpl
@@ -24,9 +24,11 @@
[[admin/settings/uploads:topic-thumb-size]]
diff --git a/src/views/modals/crosspost-topic.tpl b/src/views/modals/crosspost-topic.tpl
new file mode 100644
index 0000000000..8574a85795
--- /dev/null
+++ b/src/views/modals/crosspost-topic.tpl
@@ -0,0 +1,16 @@
+
+
+ [[topic:crosspost-topic]]
+
+
+
+ [[topic:crossposts.instructions]]
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/modals/crossposts.tpl b/src/views/modals/crossposts.tpl
new file mode 100644
index 0000000000..8b7d2b9272
--- /dev/null
+++ b/src/views/modals/crossposts.tpl
@@ -0,0 +1,10 @@
+
+ {{{ if crossposts.length }}}
+
[[topic:crossposts.listing]]
+ {{{ each crossposts }}}
+ {buildCategoryLabel(./category, "a", "border")}
+ {{{ end }}}
+ {{{ else }}}
+
\ No newline at end of file
diff --git a/src/views/partials/category/filter-dropdown-content.tpl b/src/views/partials/category/filter-dropdown-content.tpl
index 145e905ad9..19422fe6e6 100644
--- a/src/views/partials/category/filter-dropdown-content.tpl
+++ b/src/views/partials/category/filter-dropdown-content.tpl
@@ -16,12 +16,14 @@
abc', 'test title'],
-
- // other tags like h1 or span
- ['
Lorem ipsum dolor sit amet
consectetur adipiscing elit. Integer tincidunt metus scelerisque, dignissim risus a, fermentum leo. Pellentesque eleifend ullamcorper risus tempus vestibulum. Proin mollis ipsum et magna lobortis, at pretium enim pharetra. Ut vel ex metus. Mauris faucibus lectus et nulla iaculis, et pellentesque elit pellentesque. Aliquam rhoncus nec nulla eu lacinia. Maecenas cursus iaculis ligula, eu pharetra ex suscipit sit amet.
', 'Lorem ipsum dolor sit amet'],
- ['Lorem ipsum dolor sit amet
consectetur adipiscing elit. Integer tincidunt metus scelerisque, dignissim risus a, fermentum leo. Pellentesque eleifend ullamcorper risus tempus vestibulum. Proin mollis ipsum et magna lobortis, at pretium enim pharetra. Ut vel ex metus. Mauris faucibus lectus et nulla iaculis, et pellentesque elit pellentesque. Aliquam rhoncus nec nulla eu lacinia. Maecenas cursus iaculis ligula, eu pharetra ex suscipit sit amet.
', 'Lorem ipsum dolor sit amet'],
-
- // first line's text otherwise
- ['Lorem ipsum dolor sit amet\n\nconsectetur adipiscing elit. Integer tincidunt metus scelerisque, dignissim risus a, fermentum leo. Pellentesque eleifend ullamcorper risus tempus vestibulum. Proin mollis ipsum et magna lobortis, at pretium enim pharetra. Ut vel ex metus. Mauris faucibus lectus et nulla iaculis, et pellentesque elit pellentesque. Aliquam rhoncus nec nulla eu lacinia. Maecenas cursus iaculis ligula, eu pharetra ex suscipit sit amet.', 'Lorem ipsum dolor sit amet'],
-
- // first sentence of matched line/element
- ['Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam a ex pellentesque, fringilla lorem non, blandit est. Nulla facilisi. Curabitur cursus neque vel enim semper, id lacinia elit facilisis. Vestibulum turpis orci, efficitur ut semper eu, faucibus eu turpis. Praesent eu odio non libero gravida tempor. Ut porta pellentesque orci. In porta nunc eget tincidunt interdum. Curabitur vel dui nec libero tempus porttitor. Phasellus tincidunt, diam id viverra suscipit, est diam maximus purus, in vestibulum dui ligula vel libero. Sed tempus finibus ante, sit amet consequat magna facilisis eget. Proin ullamcorper, velit sit amet feugiat varius, massa sem aliquam dui, non aliquam augue velit vel est. Phasellus eu sapien in purus feugiat scelerisque congue id velit. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.', 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.'],
-
- // other sentence ending symbols
- ['Lorem ipsum dolor sit amet, consectetur adipiscing elit? Etiam a ex pellentesque, fringilla lorem non, blandit est. Nulla facilisi. Curabitur cursus neque vel enim semper, id lacinia elit facilisis. Vestibulum turpis orci, efficitur ut semper eu, faucibus eu turpis. Praesent eu odio non libero gravida tempor. Ut porta pellentesque orci. In porta nunc eget tincidunt interdum. Curabitur vel dui nec libero tempus porttitor. Phasellus tincidunt, diam id viverra suscipit, est diam maximus purus, in vestibulum dui ligula vel libero. Sed tempus finibus ante, sit amet consequat magna facilisis eget. Proin ullamcorper, velit sit amet feugiat varius, massa sem aliquam dui, non aliquam augue velit vel est. Phasellus eu sapien in purus feugiat scelerisque congue id velit. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.', 'Lorem ipsum dolor sit amet, consectetur adipiscing elit?'],
-
- // Content after line breaks can be discarded
- ['
+
+
\ No newline at end of file
diff --git a/vendor/nodebb-theme-harmony-2.1.35/templates/account/consent.tpl b/vendor/nodebb-theme-harmony-2.1.35/templates/account/consent.tpl
new file mode 100644
index 0000000000..f472e9ee99
--- /dev/null
+++ b/vendor/nodebb-theme-harmony-2.1.35/templates/account/consent.tpl
@@ -0,0 +1,73 @@
+
+
+ {{{ end }}}
+
+
+ {{{ if (allowAccountDelete && isSelf) }}}
+
+
+
+ {{{ end }}}
+
+
+
+
\ No newline at end of file
diff --git a/vendor/nodebb-theme-harmony-2.1.35/templates/account/edit/password.tpl b/vendor/nodebb-theme-harmony-2.1.35/templates/account/edit/password.tpl
new file mode 100644
index 0000000000..4505529fa3
--- /dev/null
+++ b/vendor/nodebb-theme-harmony-2.1.35/templates/account/edit/password.tpl
@@ -0,0 +1,35 @@
+
+
+
{{{ if isSelf }}}[[user:change-password]]{{{ else }}}[[pages:{template.name}, {username}]]{{{ end }}}
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/vendor/nodebb-theme-harmony-2.1.35/templates/account/edit/username.tpl b/vendor/nodebb-theme-harmony-2.1.35/templates/account/edit/username.tpl
new file mode 100644
index 0000000000..a98f78ebd9
--- /dev/null
+++ b/vendor/nodebb-theme-harmony-2.1.35/templates/account/edit/username.tpl
@@ -0,0 +1,30 @@
+
+
+
{{{ if isSelf }}}[[user:change-username]]{{{ else }}}[[pages:{template.name}, {username}]]{{{ end }}}
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/vendor/nodebb-theme-harmony-2.1.35/templates/account/followers.tpl b/vendor/nodebb-theme-harmony-2.1.35/templates/account/followers.tpl
new file mode 100644
index 0000000000..68fe6de65d
--- /dev/null
+++ b/vendor/nodebb-theme-harmony-2.1.35/templates/account/followers.tpl
@@ -0,0 +1,15 @@
+
+
[[pages:{template.name}, {username}]]
+
+{{{ if !users.length }}}
+
[[user:has-no-follower]]
+{{{ end }}}
+
+
+{{{ each users }}}
+
+{{{end}}}
+
+
+
+
\ No newline at end of file
diff --git a/vendor/nodebb-theme-harmony-2.1.35/templates/account/following.tpl b/vendor/nodebb-theme-harmony-2.1.35/templates/account/following.tpl
new file mode 100644
index 0000000000..73fd4913db
--- /dev/null
+++ b/vendor/nodebb-theme-harmony-2.1.35/templates/account/following.tpl
@@ -0,0 +1,16 @@
+
+
+
[[pages:{template.name}, {username}]]
+
+{{{ if !users.length }}}
+
[[user:follows-no-one]]
+{{{ end }}}
+
+
+{{{ each users }}}
+
+{{{end}}}
+
+
+
+
\ No newline at end of file
diff --git a/vendor/nodebb-theme-harmony-2.1.35/templates/account/groups.tpl b/vendor/nodebb-theme-harmony-2.1.35/templates/account/groups.tpl
new file mode 100644
index 0000000000..c1faf80836
--- /dev/null
+++ b/vendor/nodebb-theme-harmony-2.1.35/templates/account/groups.tpl
@@ -0,0 +1,15 @@
+
+
+
[[pages:{template.name}, {username}]]
+
+
+
+ {{{ if !groups.length }}}
+
[[groups:no-groups-found]]
+ {{{ else }}}
+
+ {{{ end }}}
+
+
+
+
diff --git a/vendor/nodebb-theme-harmony-2.1.35/templates/account/ignored.tpl b/vendor/nodebb-theme-harmony-2.1.35/templates/account/ignored.tpl
new file mode 100644
index 0000000000..238b943cd5
--- /dev/null
+++ b/vendor/nodebb-theme-harmony-2.1.35/templates/account/ignored.tpl
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/vendor/nodebb-theme-harmony-2.1.35/templates/account/info.tpl b/vendor/nodebb-theme-harmony-2.1.35/templates/account/info.tpl
new file mode 100644
index 0000000000..8bdd0a3ec7
--- /dev/null
+++ b/vendor/nodebb-theme-harmony-2.1.35/templates/account/info.tpl
@@ -0,0 +1,271 @@
+
+
+{{{ if sessions.length }}}
+
+ {{{ if (./type != "unmute") }}}
+ [[user:muted]]
+ {{{ else }}}
+ [[user:unmuted]]
+ {{{ end }}}
+
+
+ [[user:info.banned-reason-label]]: {./reason}
+
+
+ {{{ if ./until }}}
+ [[user:info.muted-until, {isoTimeToLocaleString(./untilISO, config.userLang)}]]
+ {{{ end }}}
+
+
+ {{{ end }}}
+
+ {{{ else }}}
+
[[user:info.no-mute-history]]
+ {{{ end }}}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/vendor/nodebb-theme-harmony-2.1.35/templates/account/posts.tpl b/vendor/nodebb-theme-harmony-2.1.35/templates/account/posts.tpl
new file mode 100644
index 0000000000..d155ad3f4f
--- /dev/null
+++ b/vendor/nodebb-theme-harmony-2.1.35/templates/account/posts.tpl
@@ -0,0 +1,35 @@
+
+
+
+
+
diff --git a/vendor/nodebb-theme-harmony-2.1.35/templates/account/read.tpl b/vendor/nodebb-theme-harmony-2.1.35/templates/account/read.tpl
new file mode 100644
index 0000000000..238b943cd5
--- /dev/null
+++ b/vendor/nodebb-theme-harmony-2.1.35/templates/account/read.tpl
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/vendor/nodebb-theme-harmony-2.1.35/templates/account/sessions.tpl b/vendor/nodebb-theme-harmony-2.1.35/templates/account/sessions.tpl
new file mode 100644
index 0000000000..679d087729
--- /dev/null
+++ b/vendor/nodebb-theme-harmony-2.1.35/templates/account/sessions.tpl
@@ -0,0 +1,9 @@
+
+
+
[[user:sessions.description]]
+
+
+
+
+
+
\ No newline at end of file
diff --git a/vendor/nodebb-theme-harmony-2.1.35/templates/account/settings.tpl b/vendor/nodebb-theme-harmony-2.1.35/templates/account/settings.tpl
new file mode 100644
index 0000000000..70374d5a74
--- /dev/null
+++ b/vendor/nodebb-theme-harmony-2.1.35/templates/account/settings.tpl
@@ -0,0 +1,268 @@
+
+
+
+
{{{ if isSelf }}}[[pages:account/settings]]{{{ else }}}[[pages:account/settings-of, {username}]]{{{ end }}}
+
+
+
+
+ {{{ if !disableCustomUserSkins }}}
+ [[user:select-skin]]
+
+
+
+ {{{ end }}}
+
+ {{{ if allowUserHomePage }}}
+ [[user:select-homepage]]
+
+
+
+
[[user:homepage-description]]
+
+
+ [[user:custom-route]]
+
+
[[user:custom-route-help]]
+
+
+
+ {{{ end }}}
+
+
[[global:privacy]]
+
+ {{{ if !hideEmail }}}
+
+
+ [[user:show-email]]
+
+ {{{ end }}}
+
+ {{{ if !hideFullname }}}
+
+
+ [[user:show-fullname]]
+
+ {{{ end }}}
+
+ {{{ if !config.disableChat }}}
+
+
+ {{{ if config.usePagination }}}
+
+ {{{ end }}}
+
+
+
\ No newline at end of file
diff --git a/vendor/nodebb-theme-harmony-2.1.35/templates/account/tags.tpl b/vendor/nodebb-theme-harmony-2.1.35/templates/account/tags.tpl
new file mode 100644
index 0000000000..c1007eb836
--- /dev/null
+++ b/vendor/nodebb-theme-harmony-2.1.35/templates/account/tags.tpl
@@ -0,0 +1,13 @@
+
+
+
+
+
{title}
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/vendor/nodebb-theme-harmony-2.1.35/templates/account/theme.tpl b/vendor/nodebb-theme-harmony-2.1.35/templates/account/theme.tpl
new file mode 100644
index 0000000000..01206b1d5d
--- /dev/null
+++ b/vendor/nodebb-theme-harmony-2.1.35/templates/account/theme.tpl
@@ -0,0 +1,82 @@
+
+
+
+
[[themes/harmony:settings.title]]
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/vendor/nodebb-theme-harmony-2.1.35/templates/account/topics.tpl b/vendor/nodebb-theme-harmony-2.1.35/templates/account/topics.tpl
new file mode 100644
index 0000000000..4a78a9534b
--- /dev/null
+++ b/vendor/nodebb-theme-harmony-2.1.35/templates/account/topics.tpl
@@ -0,0 +1,45 @@
+
+
+
+
+ {{{ if config.usePagination }}}
+
+ {{{ end }}}
+
+
+
\ No newline at end of file
diff --git a/vendor/nodebb-theme-harmony-2.1.35/templates/account/uploads.tpl b/vendor/nodebb-theme-harmony-2.1.35/templates/account/uploads.tpl
new file mode 100644
index 0000000000..dd5e79002e
--- /dev/null
+++ b/vendor/nodebb-theme-harmony-2.1.35/templates/account/uploads.tpl
@@ -0,0 +1,37 @@
+
+
+
{title}
+
+
+ {{{ if privateUploads }}}[[uploads:private-uploads-info]]{{{ else }}}[[uploads:public-uploads-info]]{{{ end }}}
+