Compare commits

..

173 Commits

Author SHA1 Message Date
Julian Lam
4f70d19e1e chore: v3.0.0-alpha.1 🎉 2022-10-05 14:09:57 -04:00
Julian Lam
3ddf91fb75 chore: clean up package.json for alpha 2022-10-05 14:02:03 -04:00
Barış Soner Uşaklı
9f0ecd6ea3 chore: rename panel to card 2022-10-05 10:55:46 -04:00
Barış Soner Uşaklı
97d499ce97 chore: up composer 2022-10-05 10:45:45 -04:00
Barış Soner Uşaklı
1fac6f69ad breaking: remove deprecated app methods 2022-10-05 10:18:23 -04:00
Barış Soner Uşaklı
cbc632da7d fix bs tooltips, update status tooltips
see https://github.com/twbs/bootstrap/issues/32372
2022-10-05 10:09:44 -04:00
Barış Soner Uşaklı
1d5cc19351 chore: up persona 2022-10-04 19:47:34 -04:00
Barış Soner Uşaklı
18cdb2575b chore: up persona 2022-10-04 19:31:13 -04:00
Barış Soner Uşaklı
78917e9117 fix: web installer css/tpl 2022-10-04 19:05:20 -04:00
Julian Lam
4757affa65 fix(deps): up 2factor 2022-10-04 13:48:32 -04:00
Barış Soner Uşaklı
ba52531a20 tooltip container 2022-10-03 14:03:40 -04:00
Barış Soner Uşaklı
6a5a28abca chore: up persona version 2022-10-03 13:42:59 -04:00
Barış Soner Uşaklı
661c0507a5 chore: up peace 2022-10-03 11:38:42 -04:00
Barış Soner Uşaklı
26bcb8b673 breaking: move bottom-sheet.scss to core 2022-10-03 10:41:21 -04:00
Barış Soner Uşaklı
eeb39b42b9 chore: add peace to package.json 2022-10-03 10:17:45 -04:00
Barış Soner Uşaklı
b35e90a6ad breaking: move modals to core 2022-10-03 10:13:20 -04:00
Barış Soner Uşaklı
389a2df9bf fix: category ordering add test 2022-10-03 09:40:54 -04:00
Barış Soner Uşaklı
68ba7cf97e fix timeago 2022-10-02 22:21:56 -04:00
Barış Soner Uşaklı
f3ee1097ed hover d-flex/block 2022-10-02 20:45:03 -04:00
Barış Soner Uşaklı
5f12d167ab fix: typo, timeago on blocks page 2022-10-02 20:28:09 -04:00
Barış Soner Uşaklı
adc248960b fix: timeago cutoff on users page
remove unused translator import
2022-10-02 18:02:33 -04:00
Barış Soner Uşaklı
a4e0b589ae bold/underlerine matches 2022-10-02 11:36:01 -04:00
Barış Soner Uşaklı
415f65cd79 add border-muted utility 2022-10-02 01:40:10 -04:00
Barış Soner Uşaklı
dfe69400ac fix: crash in category drag, closes #10932
happens when a child is dragged to root or from root to a nested level
2022-10-01 22:16:20 -04:00
Barış Soner Uşaklı
c81eb18623 fix more categories button not moving with parent
fix order issue
2022-10-01 22:02:56 -04:00
Barış Soner Uşaklı
4667dc8c88 fix admin toast 2022-10-01 22:00:55 -04:00
Barış Soner Uşaklı
7b18ea3e61 add hover display utility 2022-09-30 23:01:39 -04:00
Barış Soner Uşaklı
260ac5f427 refactor: use avatar helper
fix empty dropdown when searching
2022-09-30 23:01:14 -04:00
Barış Soner Uşaklı
e270474eed add manage lang string 2022-09-30 18:33:39 -04:00
Barış Soner Uşaklı
4d734714dd fix group preview update 2022-09-30 18:33:33 -04:00
Barış Soner Uşaklı
8ffc1c3e96 feat: add btnClass to membershipBtn helper 2022-09-30 12:05:04 -04:00
Barış Soner Uşaklı
0f2bd3e6ec use form control 2022-09-29 22:41:05 -04:00
Barış Soner Uşaklı
af190ac210 fix tagsinput to look like bs5 inputs 2022-09-29 22:26:10 -04:00
Barış Soner Uşaklı
21236fdc37 restore scroll position after adding necro messages 2022-09-29 19:32:08 -04:00
Julian Lam
dc0b3753d8 refactor: buildAvatar attributes to be Map instead of array of strings, to allow for easier overwriting 2022-09-29 16:28:58 -04:00
Julian Lam
d68806db1b fix: remove user avatar on error out 2022-09-29 16:28:58 -04:00
Julian Lam
ab157136aa refactor: helpers.buildAvatar now renders both avatars, and hides the second one using CSS 2022-09-29 16:28:58 -04:00
Barış Soner Uşaklı
f58e1cda30 fix: tag update only the edited post 2022-09-29 16:16:15 -04:00
Barış Soner Uşaklı
375dad8961 fix: navigator not properly updating url
remove threshold not used anymore
2022-09-29 15:13:05 -04:00
Barış Soner Uşaklı
5dc74abcf1 chore: add account lang string 2022-09-29 15:07:01 -04:00
Barış Soner Uşaklı
9c97211d8d lighter icons 2022-09-29 13:13:18 -04:00
Barış Soner Uşaklı
80c1ce8d85 fix: if no voters clear tooltip 2022-09-29 12:51:50 -04:00
Barış Soner Uşaklı
4c86c767b1 fix: bgColor not changing on picture modal 2022-09-29 12:36:49 -04:00
Barış Soner Uşaklı
b0a98e7f12 breaking: move/rename change_picture_modal to core 2022-09-29 12:30:54 -04:00
Barış Soner Uşaklı
daaa93b6e4 feat: add action:unread.updateCount 2022-09-29 10:42:32 -04:00
Barış Soner Uşaklı
a970c615fb feat: add action:chat.updateCount client side hook 2022-09-29 09:21:13 -04:00
Barış Soner Uşaklı
58cecafb34 breaking: use components instead of ids for search
breaking: remove deprecated app.search methods
allow having multiple search forms in the page
2022-09-28 12:01:31 -04:00
Barış Soner Uşaklı
092bdd9f22 fix: dynamic tooltips 2022-09-27 22:27:40 -04:00
Barış Soner Uşaklı
75eea53c4b feat: add buildCategoryIcon helper
similar to buildAvatar
2022-09-27 21:32:12 -04:00
Julian Lam
d45a34fdb8 test: fix tests so that when user.create is called, email is set prior to confirmation 2022-09-27 14:34:01 -04:00
Julian Lam
91849efde1 fix: #10805, do not set email field in user hash on user creation 2022-09-27 14:34:01 -04:00
Julian Lam
5a39fc2548 chore: remove passport.authenticate wrapper that passed in keepSessionInfo option [breaking] 2022-09-27 13:42:01 -04:00
Julian Lam
ee77ce0789 chore: remove deprecated socket.io user export methods [breaking] 2022-09-27 13:34:00 -04:00
Julian Lam
1d63fc469a chore: remove deprecated old routes for user data exports [breaking] 2022-09-27 11:23:52 -04:00
Julian Lam
a6f8ff440a fix: move alert.tpl to partials/toast.tpl 2022-09-27 10:39:46 -04:00
Barış Soner Uşaklı
7118cfa433 chore: up deps 2022-09-24 22:10:05 -04:00
Barış Soner Uşaklı
67b488aa7d add changeSkin calls to settings
add templateData to header/footer to match other filter:<tpl>:build hooks
2022-09-24 14:49:11 -04:00
Barış Soner Uşaklı
e9bd46592b use bs class for necro post 2022-09-24 14:46:30 -04:00
Barış Soner Uşaklı
1a2ad81471 fix: tool dropdown 2022-09-24 00:11:22 -04:00
Barış Soner Uşaklı
90b6d593fc give post tool dropdown min-height
it starts empty since its rendered after clicking the toggle
2022-09-24 00:03:20 -04:00
Barış Soner Uşaklı
f5d30d83c6 breaking: move some modals to core 2022-09-23 20:15:37 -04:00
Barış Soner Uşaklı
1aa916feb2 feat: allow merge from inside topic 2022-09-23 14:43:04 -04:00
Barış Soner Uşaklı
9e0f100d36 match other tool labels 2022-09-23 14:38:07 -04:00
Barış Soner Uşaklı
d1417609dd feat: allow logout button anywhere 2022-09-23 12:55:02 -04:00
Barış Soner Uşaklı
9510cc540a breaking: remove renderTopicEvents
use partial template
2022-09-23 10:56:15 -04:00
Barış Soner Uşaklı
0930934200 feat: add relevant topic events to post objects
see c9604f216a
2022-09-23 10:49:50 -04:00
Barış Soner Uşaklı
21e38d9e45 fix: scroll to post if theme doesn't have top navbar 2022-09-23 09:16:39 -04:00
Barış Soner Uşaklı
a5d4e6b68a fix another avatar 2022-09-22 21:03:56 -04:00
Barış Soner Uşaklı
48021c0b0a feat: allow always visible search input
if the search input is already visible do not hide it after it loses focus
2022-09-22 21:03:51 -04:00
Barış Soner Uşaklı
9f72f84775 fix: img-fluid 2022-09-22 15:43:42 -04:00
Barış Soner Uşaklı
179faa2270 fix: add missing post index 2022-09-22 12:31:25 -04:00
Barış Soner Uşaklı
c3920ccb10 feat: add the user of the post to category teaser 2022-09-22 12:23:34 -04:00
Barış Soner Uşaklı
cc4d320111 persona 2022-09-21 22:26:26 -04:00
Barış Soner Uşaklı
6b4e00fd47 test: fix profile pic test 2022-09-21 13:01:00 -04:00
Barış Soner Uşaklı
bfb63061c7 test: fix theme test 2022-09-21 12:49:15 -04:00
Barış Soner Uşaklı
e607c622b3 drop socket.io version 2022-09-21 12:40:34 -04:00
Barış Soner Uşaklı
ed9172d757 Merge branch 'bootstrap5' of https://github.com/NodeBB/NodeBB into bootstrap5 2022-09-21 12:31:00 -04:00
Barış Soner Uşaklı
375cd3202a chore: up deps 2022-09-21 12:30:59 -04:00
Julian Lam
dcfcc5ea2c Merge remote-tracking branch 'origin/develop' into bootstrap5 2022-09-21 12:12:27 -04:00
Barış Soner Uşaklı
0997fc626c chore: up deps 2022-09-21 10:33:12 -04:00
Barış Soner Uşaklı
0e3c8a201a up deps 2022-09-21 10:02:32 -04:00
Barış Soner Uşaklı
53d830d87e add max to cache 2022-09-21 09:52:16 -04:00
Barış Soner Uşaklı
be33752ba6 fix admin reconnect icon 2022-09-21 09:48:56 -04:00
Barış Soner Uşaklı
b2c3fcaaf5 increase webpack size limits 2022-09-20 21:11:08 -04:00
Barış Soner Uşaklı
ce2d180a23 remove extra param 2022-09-17 22:10:17 -04:00
Barış Soner Uşaklı
75dc78b738 perf: ltr/rtl change
fix modals
2022-09-17 21:32:31 -04:00
Julian Lam
25d1560dd1 fix(deps): bump mentions to v4 2022-09-16 21:29:00 -04:00
Julian Lam
f1c5adbf00 fix(deps): update to v3.0 compatible markdown and 2factor plugins 2022-09-16 21:13:38 -04:00
Barış Soner Uşaklı
37027003b5 fix grunt 2022-09-15 16:40:32 -04:00
Barış Soner Uşaklı
c7da128ecd fix: #10895, build client/adminCSS in single call 2022-09-15 14:45:11 -04:00
Barış Soner Uşaklı
11cf4fb144 widget changes 2022-09-15 14:29:59 -04:00
Barış Soner Uşaklı
916759b802 test: build test fix 2022-09-15 10:10:03 -04:00
Barış Soner Uşaklı
0bd96ab582 lint: remove less 2022-09-15 09:54:27 -04:00
Barış Soner Uşaklı
4cbfe33714 remove less 2022-09-15 09:31:53 -04:00
Barış Soner Uşaklı
e8d8b65b80 remove blue bg 2022-09-14 16:15:39 -04:00
Barış Soner Uşaklı
65cfbef567 update findBootstrapEnv, remove dupe functions 2022-09-14 15:59:27 -04:00
Julian Lam
f1817efe5d fix: add back timeago to post history modal 2022-09-14 13:19:06 -04:00
Julian Lam
bca239c476 fix: some small modal bugs with change picture modal 2022-09-14 13:04:50 -04:00
Julian Lam
5d332ea052 fix: have width and height defined in user-icon-style mixin 2022-09-14 11:05:51 -04:00
Barış Soner Uşaklı
9932a0dd1a fix text-right 2022-09-13 22:13:33 -04:00
Barış Soner Uşaklı
41b371c53c avatar fixes 2022-09-13 20:48:29 -04:00
Barış Soner Uşaklı
ba75be47ae div>span 2022-09-13 19:40:41 -04:00
Julian Lam
f75838c906 refactor: buildAvatar helper to take css variable for size instead of hardcoded xs, sm, etc., fixed up picture selection modal 2022-09-13 15:19:52 -04:00
Barış Soner Uşaklı
6bffe519b3 bs5 rtl support 2022-09-13 14:11:55 -04:00
Barış Soner Uşaklı
541ab312d5 margins 2022-09-13 11:17:59 -04:00
Barış Soner Uşaklı
d23b9563c8 modal fix 2022-09-13 11:10:20 -04:00
Barış Soner Uşaklı
7c5690cc49 match fontsize/body color 2022-09-13 10:54:03 -04:00
Barış Soner Uşaklı
f865f00ecb buttons no longer reversed 2022-09-13 10:44:08 -04:00
Barış Soner Uşaklı
775971d19b btn sizes 2022-09-13 10:37:00 -04:00
Barış Soner Uşaklı
c61935bb96 fix: typo 2022-09-13 10:26:07 -04:00
Barış Soner Uşaklı
b25a0769d5 fix privilege filters 2022-09-13 10:17:41 -04:00
Barış Soner Uşaklı
d2e972cf6c switch to scss in customCSS 2022-09-13 09:37:24 -04:00
Barış Soner Uşaklı
401aaf1757 fix floats 2022-09-12 18:34:37 -04:00
Barış Soner Uşaklı
1df99a4727 Merge branch 'bootstrap5' of https://github.com/NodeBB/NodeBB into bootstrap5 2022-09-12 17:14:58 -04:00
Barış Soner Uşaklı
5d7dbafb1d inherit works better if category search is inside a hidden element
like the composer
2022-09-12 17:14:57 -04:00
Julian Lam
57ff967ab0 Merge remote-tracking branch 'origin/develop' into bootstrap5 2022-09-12 16:57:02 -04:00
Barış Soner Uşaklı
91d1cbb5dc remove unnecessary tooltip calls 2022-09-11 21:59:47 -04:00
Barış Soner Uşaklı
a94cc877c4 tooltip fixes 2022-09-11 21:49:30 -04:00
Barış Soner Uşaklı
0512992afc remove search&dropdown tooltips 2022-09-11 20:07:04 -04:00
Barış Soner Uşaklı
8dde53c7af fix navlink active 2022-09-11 20:01:24 -04:00
Barış Soner Uşaklı
ff7c57f7bf fix: fa icon picker, help-block => form-text 2022-09-11 00:05:42 -04:00
Barış Soner Uşaklı
bdd02b72de fa shims and fix fonts 2022-09-10 20:50:13 -04:00
Barış Soner Uşaklı
9b30fc1680 fix panels 2022-09-10 20:13:45 -04:00
Barış Soner Uşaklı
9d7c1073d3 search padding 2022-09-09 14:08:10 -04:00
Barış Soner Uşaklı
527834a555 remove margin 2022-09-09 13:51:42 -04:00
Barış Soner Uşaklı
825538d5a9 acp header fix 2022-09-09 13:50:09 -04:00
Barış Soner Uşaklı
1510baa9a6 fix floating button zindex 2022-09-09 13:25:04 -04:00
Barış Soner Uşaklı
d3bd9f4697 partials and btn fixes 2022-09-09 12:36:18 -04:00
Barış Soner Uşaklı
2c1f920b6d fix col-xs-<> classes 2022-09-08 21:20:50 -04:00
Barış Soner Uşaklı
89aa9fb212 acp advanced pages 2022-09-08 21:06:23 -04:00
Barış Soner Uşaklı
9f9c9c6a66 plugins/rewards/widgets/skins/customize
modal fixes
2022-09-07 20:36:32 -04:00
Barış Soner Uşaklı
48207bc2a2 advanced/api/web-crawler pages 2022-09-03 22:34:58 -04:00
Barış Soner Uşaklı
ce9bcba16d feat: paper skin got renamed to materia 2022-09-03 22:11:18 -04:00
Barış Soner Uşaklı
b9de84e5bf email/post/uploads settings pages 2022-09-02 19:39:00 -04:00
Barış Soner Uşaklı
22e478307d cookies/reputation/user pages 2022-09-02 12:56:58 -04:00
Barış Soner Uşaklı
8cf64ff9ce feat: navigation 2022-09-02 12:26:38 -04:00
Barış Soner Uşaklı
75494011e1 more admin settings pages 2022-09-01 19:05:41 -04:00
Barış Soner Uşaklı
75506250e1 more manage pages 2022-09-01 18:00:44 -04:00
Barış Soner Uşaklı
d06938d877 groups/tags 2022-08-31 17:49:28 -04:00
Julian Lam
4eb71b1284 fix: update .avatar generic to use line-height and font-size variables, instead of hardcoded values 2022-08-31 17:14:11 -04:00
Barış Soner Uşaklı
3f4e5bb9a8 users page 2022-08-31 14:55:50 -04:00
Barış Soner Uşaklı
0ad61c53ae privileges 2022-08-31 14:30:55 -04:00
Barış Soner Uşaklı
a45131ab0e dashboard header fix 2022-08-30 20:41:33 -04:00
Barış Soner Uşaklı
cddc2c0b76 feat: update categories/category pages
fix dropdowns
2022-08-30 20:13:51 -04:00
Barış Soner Uşaklı
1930db6086 dashboard/nav fixes 2022-08-29 15:59:38 -04:00
Barış Soner Uşaklı
1cea5ab8c4 admin menu fixes 2022-08-29 15:36:50 -04:00
Barış Soner Uşaklı
30b999c16f Merge branch 'develop' into bootstrap5 2022-08-29 14:55:06 -04:00
Barış Soner Uşaklı
9260b4ef19 add missing pointer class 2022-08-26 19:41:10 -04:00
Barış Soner Uşaklı
dc231bf3b3 fix: dont hide dropdowns 2022-08-26 18:41:10 -04:00
Barış Soner Uşaklı
1b539fd0ff Merge branch 'master' into bootstrap5 2022-08-26 18:39:39 -04:00
Barış Soner Uşaklı
635cc1ffdf get rid of old grays and brand colors 2022-08-26 18:35:54 -04:00
Barış Soner Uşaklı
18b9a7afe1 change fa-stack 2022-08-25 22:17:47 -04:00
Barış Soner Uşaklı
5ad7c89803 fix taginput for bs5 2022-08-25 19:56:36 -04:00
Barış Soner Uşaklı
c4393af8c0 feat: add the same timeout to blur 2022-08-25 19:18:06 -04:00
Barış Soner Uşaklı
da75b07add feat: remove shadow mixin, dont highlight single letters 2022-08-25 15:12:51 -04:00
Barış Soner Uşaklı
bed8d97840 feat: add new_password key 2022-08-25 10:46:10 -04:00
Barış Soner Uşaklı
fecc4f948a feat: use visibility hidden for search button 2022-08-24 19:29:38 -04:00
Barış Soner Uşaklı
d5d4c1b3ed fix crash 2022-08-24 16:39:29 -04:00
Barış Soner Uşaklı
f2bd8e22d7 remove hidden 2022-08-24 11:17:40 -04:00
Barış Soner Uşaklı
d7a29a3df2 bs5 import 2022-08-24 10:27:15 -04:00
Barış Soner Uşaklı
f7f7066286 feat: add new bootswatch skins 2022-08-24 10:21:21 -04:00
Barış Soner Uşaklı
c6436bc542 fix: users navpills 2022-08-24 09:48:56 -04:00
Barış Soner Uşaklı
b50f662d45 skin support, correct order of imports for overrides 2022-08-23 19:30:31 -04:00
Barış Soner Uşaklı
62ec61e00c fix: category dropdown search 2022-08-23 16:39:33 -04:00
Barış Soner Uşaklı
0fb0745613 feat: bring back responsive-utilities 2022-08-23 12:05:33 -04:00
Barış Soner Uşaklı
eadeb42e57 fix: move fontawesome before theme 2022-08-22 19:01:17 -04:00
Barış Soner Uşaklı
c674422205 refactor: order of scss files 2022-08-22 14:29:41 -04:00
Barış Soner Uşaklı
0042307234 fix: sass division warnings 2022-08-22 13:54:47 -04:00
Barış Soner Uşaklı
288e6260ef refactor: remove unused url 2022-08-22 13:16:25 -04:00
Barış Soner Uşaklı
11c7a02aaf refactor: fixPath 2022-08-22 13:14:05 -04:00
Barış Soner Uşaklı
196d22be16 bs5 prep 2022-08-22 12:56:46 -04:00
Barış Soner Uşaklı
2a8f1e4cba add fa scss 2022-08-22 11:15:25 -04:00
Barış Soner Uşaklı
58141f603b bs5 2022-08-22 11:14:22 -04:00
3181 changed files with 50122 additions and 52622 deletions

View File

@@ -18,3 +18,12 @@ logs/
.eslintrc
test/files
*.min.js
/public/src/app.js
/public/src/client.js
/public/src/admin/admin.js
/public/src/modules/translator.common.js
/public/src/modules/pictureCropper.js
/public/src/modules/ace-editor.js
/public/src/client/account/header.js
/public/src/client/test.js

View File

@@ -11,16 +11,12 @@ on:
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@v3
- uses: actions/checkout@v2
with:
fetch-depth: 0
@@ -30,32 +26,26 @@ jobs:
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Login to GitHub Container Registry
- name: Login to Docker Hub
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Docker meta
id: meta
uses: docker/metadata-action@v4
with:
images: ghcr.io/${{ github.repository }}
images: nodebb/docker
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=latest
- name: Build and push Docker images
uses: docker/build-push-action@v4
uses: docker/build-push-action@v3
with:
context: .
file: ./Dockerfile
push: true
tags: ${{ steps.meta.outputs.tags }}
platforms: linux/amd64,linux/arm64,linux/arm/v7
cache-from: type=gha
cache-to: type=gha,mode=max

View File

@@ -14,32 +14,26 @@ defaults:
run:
shell: bash
permissions:
contents: read
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: [18, 20]
node: [14, 16, 18]
database: [mongo-dev, mongo, redis, postgres]
include:
# only run coverage once
- os: ubuntu-latest
node: 18
node: 14
coverage: true
# test under development once
- database: mongo-dev
test_env: development
# only run eslint once
- os: ubuntu-latest
node: 18
node: 14
database: mongo-dev
lint: true
runs-on: ${{ matrix.os }}
@@ -48,7 +42,7 @@ jobs:
services:
postgres:
image: 'postgres:15-alpine'
image: 'postgres:14-alpine'
env:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
@@ -63,7 +57,7 @@ jobs:
- 5432:5432
redis:
image: 'redis:7.2.0'
image: 'redis:2.8.23'
# Set health checks to wait until redis has started
options: >-
--health-cmd "redis-cli ping"
@@ -75,7 +69,7 @@ jobs:
- 6379:6379
mongo:
image: 'mongo:7.0'
image: 'mongo:3.7'
ports:
# Maps port 27017 on service container to the host
- 27017:27017
@@ -86,7 +80,7 @@ jobs:
- run: cp install/package.json package.json
- name: Install Node
uses: actions/setup-node@v3
uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node }}
@@ -192,7 +186,7 @@ jobs:
run: npm run coverage
- name: Test coverage
uses: coverallsapp/github-action@3b7078ee895f74fc267b7b267c88211df59fa816 # v2.2.2
uses: coverallsapp/github-action@1.1.3
if: matrix.coverage
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
@@ -200,13 +194,11 @@ jobs:
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@3b7078ee895f74fc267b7b267c88211df59fa816 # v2.2.2
uses: coverallsapp/github-action@1.1.3
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
parallel-finished: true

7544
.tx/config

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,19 +1,3 @@
FROM --platform=$BUILDPLATFORM node:lts as npm
RUN mkdir -p /usr/src/build && \
chown -R node:node /usr/src/build
WORKDIR /usr/src/build
ARG NODE_ENV
ENV NODE_ENV $NODE_ENV
COPY --chown=node:node install/package.json /usr/src/build/package.json
USER node
RUN npm install --omit=dev
FROM node:lts
RUN mkdir -p /usr/src/app && \
@@ -23,11 +7,11 @@ WORKDIR /usr/src/app
ARG NODE_ENV
ENV NODE_ENV $NODE_ENV
COPY --chown=node:node --from=npm /usr/src/build /usr/src/app
COPY --chown=node:node install/package.json /usr/src/app/package.json
USER node
RUN npm rebuild && \
RUN npm install --only=prod && \
npm cache clean --force
COPY --chown=node:node . /usr/src/app

View File

@@ -49,8 +49,8 @@ module.exports = function (grunt) {
if (!pluginList.includes('nodebb-plugin-composer-default')) {
pluginList.push('nodebb-plugin-composer-default');
}
if (!pluginList.includes('nodebb-theme-harmony')) {
pluginList.push('nodebb-theme-harmony');
if (!pluginList.includes('nodebb-theme-persona')) {
pluginList.push('nodebb-theme-persona');
}
}
@@ -65,7 +65,7 @@ module.exports = function (grunt) {
const templatesUpdated = pluginList.map(p => `node_modules/${p}/+(public|static|templates)/**/*.tpl`);
const langUpdated = pluginList.map(p => `node_modules/${p}/+(public|static|languages)/**/*.json`);
const interval = 100;
grunt.config(['watch'], {
styleUpdated: {
files: [
@@ -73,7 +73,7 @@ module.exports = function (grunt) {
...styleUpdated_Client,
],
options: {
interval: interval,
interval: 1000,
},
},
clientUpdated: {
@@ -84,7 +84,7 @@ module.exports = function (grunt) {
'node_modules/benchpressjs/build/benchpress.js',
],
options: {
interval: interval,
interval: 1000,
},
},
serverUpdated: {
@@ -99,7 +99,7 @@ module.exports = function (grunt) {
'!src/upgrades/**',
],
options: {
interval: interval,
interval: 1000,
},
},
templatesUpdated: {
@@ -108,7 +108,7 @@ module.exports = function (grunt) {
...templatesUpdated,
],
options: {
interval: interval,
interval: 1000,
},
},
langUpdated: {
@@ -118,15 +118,16 @@ module.exports = function (grunt) {
...langUpdated,
],
options: {
interval: interval,
interval: 1000,
},
},
});
const build = require('./src/meta/build');
if (!grunt.option('skip')) {
await build.build(true, { watch: true });
await build.build(true, { webpack: false });
}
run();
await build.webpack({ watch: true });
done();
});

View File

@@ -3,7 +3,6 @@
[![Workflow](https://github.com/NodeBB/NodeBB/actions/workflows/test.yaml/badge.svg)](https://github.com/NodeBB/NodeBB/actions/workflows/test.yaml)
[![Coverage Status](https://coveralls.io/repos/github/NodeBB/NodeBB/badge.svg?branch=master)](https://coveralls.io/github/NodeBB/NodeBB?branch=master)
[![Code Climate](https://codeclimate.com/github/NodeBB/NodeBB/badges/gpa.svg)](https://codeclimate.com/github/NodeBB/NodeBB)
[![](https://dcbadge.vercel.app/api/server/p6YKPXu7er?style=flat)](https://discord.gg/p6YKPXu7er)
[**NodeBB Forum Software**](https://nodebb.org) is powered by Node.js and supports either Redis, MongoDB, or a PostgreSQL database. It utilizes web sockets for instant interactions and real-time notifications. NodeBB takes the best of the modern web: real-time streaming discussions, mobile responsiveness, and rich RESTful read/write APIs, while staying true to the original bulletin board/forum format &rarr; categorical hierarchies, local user accounts, and asynchronous messaging.
@@ -24,14 +23,17 @@ NodeBB's theming engine is highly flexible and does not restrict your design cho
[![](http://i.imgur.com/LmHtPhob.png)](http://i.imgur.com/LmHtPho.png)
[![](http://i.imgur.com/paiJPJkb.jpg)](http://i.imgur.com/paiJPJk.jpg)
Our minimalist "Harmony" theme gets you going right away, no coding experience required.
Our minimalist "Persona" theme gets you going right away, no coding experience required.
[![](http://i.imgur.com/HwNEXGu.png)](http://i.imgur.com/HwNEXGu.png)
[![](http://i.imgur.com/II1byYs.png)](http://i.imgur.com/II1byYs.png)
![Rendering of a NodeBB install on desktop and mobile devices](https://user-images.githubusercontent.com/923011/228570420-2a4db745-b20d-474a-a571-1b59259508ef.png)
## How can I follow along/contribute?
* If you are a developer, feel free to check out the source and submit pull requests. We also have a wide array of [plugins](http://community.nodebb.org/category/7/nodebb-plugins) which would be a great starting point for learning the codebase.
* If you are a designer, [NodeBB needs themes](http://community.nodebb.org/category/10/nodebb-themes)! NodeBB's theming system allows extension of the base templates as well as styling via SCSS or CSS. NodeBB's base theme utilizes [Bootstrap 5](http://getbootstrap.com/) as a frontend toolkit.
* If you are a designer, [NodeBB needs themes](http://community.nodebb.org/category/10/nodebb-themes)! NodeBB's theming system allows extension of the base templates as well as styling via LESS or CSS. NodeBB's base theme utilizes [Bootstrap 3](http://getbootstrap.com/) but themes can choose to use a different framework altogether.
* If you know languages other than English you can help us translate NodeBB. We use [Transifex](https://explore.transifex.com/nodebb/nodebb/) for internationalization.
* Please don't forget to **like**, **follow**, and **star our repo**! Join our growing [community](http://community.nodebb.org) to keep up to date with the latest NodeBB development.
@@ -39,7 +41,7 @@ Our minimalist "Harmony" theme gets you going right away, no coding experience r
NodeBB requires the following software to be installed:
* A version of Node.js at least 16 or greater ([installation/upgrade instructions](https://github.com/nodesource/distributions))
* A version of Node.js at least 12 or greater ([installation/upgrade instructions](https://github.com/nodesource/distributions))
* MongoDB, version 3.6 or greater **or** Redis, version 2.8.9 or greater
* If you are using [clustering](https://docs.nodebb.org/configuring/scaling/) you need Redis installed and configured.
* nginx, version 1.3.13 or greater (**only if** intending to use nginx to proxy requests to a NodeBB)
@@ -73,10 +75,10 @@ Interested in a sublicense agreement for use of NodeBB in a non-free/restrictive
* [Demo](https://try.nodebb.org)
* [Developer Community](http://community.nodebb.org)
* [Documentation & Installation Instructions](https://docs.nodebb.org)
* [Documentation & Installation Instructions](http://docs.nodebb.org)
* [Help translate NodeBB](https://explore.transifex.com/nodebb/nodebb/)
* [NodeBB Blog](https://nodebb.org/blog)
* [Premium Hosting for NodeBB](https://www.nodebb.org/ "NodeBB")
* [NodeBB Blog](http://blog.nodebb.org)
* [Premium Hosting for NodeBB](http://www.nodebb.org/ "NodeBB")
* Unofficial IRC community &ndash; channel `#nodebb` on Libera.chat
* [Follow us on Twitter](http://www.twitter.com/NodeBB/ "NodeBB Twitter")
* [Like us on Facebook](http://www.facebook.com/NodeBB/ "NodeBB Facebook")

View File

@@ -4,7 +4,6 @@
"defaultLang": "en-GB",
"loginDays": 14,
"loginSeconds": 0,
"sessionDuration": 0,
"loginAttempts": 5,
"lockoutDuration": 60,
"adminReloginDuration": 60,
@@ -16,7 +15,7 @@
"postDeleteDuration": 0,
"enablePostHistory": 1,
"topicBacklinks": 1,
"postCacheSize": 20971520,
"postCacheSize": 10485760,
"disableChat": 0,
"chatEditDuration": 0,
"chatDeleteDuration": 0,
@@ -26,7 +25,6 @@
"postQueue": 0,
"postQueueReputationThreshold": 0,
"groupsExemptFromPostQueue": ["administrators", "Global Moderators"],
"groupsExemptFromMaintenanceMode": ["administrators", "Global Moderators"],
"minimumPostLength": 8,
"maximumPostLength": 32767,
"systemTags": "",
@@ -64,7 +62,6 @@
"maximumAboutMeLength": 1000,
"maximumUsersInChatRoom": 0,
"maximumChatMessageLength": 1000,
"maximumChatRoomNameLength": 50,
"maximumProfileImageSize": 256,
"maximumCoverImageSize": 2048,
"profileImageDimension": 200,
@@ -89,7 +86,6 @@
"min:rep:chat": 0,
"min:rep:downvote": 0,
"min:rep:upvote": 0,
"min:rep:post-links": 0,
"min:rep:flag": 0,
"min:rep:profile-picture": 0,
"min:rep:cover-picture": 0,
@@ -150,7 +146,6 @@
"maximumRelatedTopics": 0,
"disableEmailSubscriptions": 0,
"emailConfirmInterval": 10,
"emailConfirmExpiry": 24,
"removeEmailNotificationImages": 0,
"sendValidationEmail": 1,
"includeUnverifiedEmails": 0,
@@ -184,6 +179,5 @@
"composer:showHelpTab": 1,
"composer:allowPluginHelp": 1,
"maxReconnectionAttempts": 5,
"reconnectionDelay": 1500,
"disableCustomUserSkins": 0
"reconnectionDelay": 1500
}

View File

@@ -2,7 +2,7 @@
{
"widget": "html",
"data" : {
"html": "<footer id=\"footer\" class=\"container footer d-flex flex-column align-items-center gap-1 mb-2\">\n\t<span>Powered by <a class=\"link-secondary text-decoration-underline\" target=\"_blank\" href=\"https://nodebb.org\">NodeBB</a></span>\n\t<span><a class=\"link-secondary\" target=\"_blank\" href=\"//github.com/NodeBB/NodeBB/graphs/contributors\"><i class=\"fa fa-users\"></i> <span class=\"text-decoration-underline\">Contributors<span></a></span>\n</footer>",
"html": "<footer id=\"footer\" class=\"container footer\">\r\n\t<div>\r\n\t\tPowered by <a target=\"_blank\" href=\"https://nodebb.org\">NodeBB</a> | <a target=\"_blank\" href=\"//github.com/NodeBB/NodeBB/graphs/contributors\">Contributors</a>\r\n\t</div>\r\n</footer>",
"title":"",
"container":""
}

View File

@@ -4,7 +4,7 @@
"title": "[[global:header.categories]]",
"enabled": true,
"iconClass": "fa-list",
"textClass": "d-lg-none",
"textClass": "visible-xs-inline",
"text": "[[global:header.categories]]"
},
{
@@ -13,7 +13,7 @@
"title": "[[global:header.unread]]",
"enabled": true,
"iconClass": "fa-inbox",
"textClass": "d-lg-none",
"textClass": "visible-xs-inline",
"text": "[[global:header.unread]]",
"groups": ["registered-users"]
},
@@ -22,7 +22,7 @@
"title": "[[global:header.recent]]",
"enabled": true,
"iconClass": "fa-clock-o",
"textClass": "d-lg-none",
"textClass": "visible-xs-inline",
"text": "[[global:header.recent]]"
},
{
@@ -30,7 +30,7 @@
"title": "[[global:header.tags]]",
"enabled": true,
"iconClass": "fa-tags",
"textClass": "d-lg-none",
"textClass": "visible-xs-inline",
"text": "[[global:header.tags]]"
},
{
@@ -38,7 +38,7 @@
"title": "[[global:header.popular]]",
"enabled": true,
"iconClass": "fa-fire",
"textClass": "d-lg-none",
"textClass": "visible-xs-inline",
"text": "[[global:header.popular]]"
},
{
@@ -46,7 +46,7 @@
"title": "[[global:header.users]]",
"enabled": true,
"iconClass": "fa-user",
"textClass": "d-lg-none",
"textClass": "visible-xs-inline",
"text": "[[global:header.users]]"
},
{
@@ -54,7 +54,7 @@
"title": "[[global:header.groups]]",
"enabled": true,
"iconClass": "fa-group",
"textClass": "d-lg-none",
"textClass": "visible-xs-inline",
"text": "[[global:header.groups]]"
},
{
@@ -62,7 +62,7 @@
"title": "[[global:header.admin]]",
"enabled": true,
"iconClass": "fa-cogs",
"textClass": "d-lg-none",
"textClass": "visible-xs-inline",
"text": "[[global:header.admin]]",
"groups": ["administrators"]
}

View File

@@ -1,9 +1,9 @@
### Welcome to your brand new NodeBB forum!
# Welcome to your brand new NodeBB forum!
This is what a topic and post looks like. As an administrator, you can edit the post\'s title and content.
To customise your forum, go to the [Administrator Control Panel](../../admin). You can modify all aspects of your forum there, including installation of third-party plugins.
#### Additional Resources
## Additional Resources
* [NodeBB Documentation](https://docs.nodebb.org)
* [Community Support Forum](https://community.nodebb.org)

View File

@@ -2,7 +2,7 @@
"name": "nodebb",
"license": "GPL-3.0",
"description": "NodeBB Forum",
"version": "3.4.2",
"version": "3.0.0-alpha.1",
"homepage": "https://www.nodebb.org",
"repository": {
"type": "git",
@@ -29,152 +29,139 @@
},
"dependencies": {
"@adactive/bootstrap-tagsinput": "0.8.2",
"@fontsource/inter": "5.0.8",
"@fontsource/poppins": "5.0.8",
"@fortawesome/fontawesome-free": "6.4.2",
"@isaacs/ttlcache": "1.4.1",
"@popperjs/core": "2.11.8",
"ace-builds": "1.24.1",
"archiver": "6.0.1",
"@isaacs/ttlcache": "1.2.0",
"ace-builds": "1.11.0",
"archiver": "5.3.1",
"async": "3.2.4",
"autoprefixer": "10.4.15",
"autoprefixer": "10.4.12",
"bcryptjs": "2.4.3",
"benchpressjs": "2.5.1",
"body-parser": "1.20.2",
"bootbox": "6.0.0",
"bootstrap": "5.3.1",
"bootswatch": "5.3.1",
"benchpressjs": "2.4.3",
"body-parser": "1.20.0",
"bootbox": "https://github.com/makeusabrew/bootbox.git#v6-wip",
"bootstrap": "5.2.1",
"bootswatch": "5.2.1",
"chalk": "4.1.2",
"chart.js": "2.9.4",
"cli-graph": "3.2.2",
"clipboard": "2.0.11",
"colors": "1.4.0",
"commander": "11.0.0",
"compare-versions": "6.1.0",
"commander": "9.4.0",
"compare-versions": "5.0.1",
"compression": "1.7.4",
"connect-flash": "0.1.1",
"connect-mongo": "5.0.0",
"connect-mongo": "4.6.0",
"connect-multiparty": "2.2.0",
"connect-pg-simple": "9.0.0",
"connect-redis": "7.1.0",
"connect-pg-simple": "7.0.0",
"connect-redis": "6.1.3",
"cookie-parser": "1.4.6",
"cron": "2.4.3",
"cropperjs": "1.6.0",
"csrf-sync": "4.0.1",
"cron": "2.1.0",
"cropperjs": "1.5.12",
"csurf": "1.11.0",
"daemon": "1.1.0",
"diff": "5.1.0",
"esbuild": "0.19.2",
"express": "4.18.2",
"express": "4.18.1",
"express-session": "1.17.3",
"express-useragent": "1.0.15",
"file-loader": "6.2.0",
"fs-extra": "11.1.1",
"graceful-fs": "4.2.11",
"helmet": "7.0.0",
"html-to-text": "9.0.5",
"imagesloaded": "5.0.0",
"ipaddr.js": "2.1.0",
"jquery": "3.7.1",
"fs-extra": "10.1.0",
"graceful-fs": "4.2.10",
"helmet": "5.1.1",
"html-to-text": "8.2.1",
"ipaddr.js": "2.0.1",
"jquery": "3.6.1",
"jquery-deserialize": "2.0.0",
"jquery-form": "4.3.0",
"jquery-serializeobject": "1.0.0",
"jquery-ui": "1.13.2",
"jsesc": "3.0.2",
"json2csv": "5.0.7",
"jsonwebtoken": "9.0.2",
"jsonwebtoken": "8.5.1",
"less": "4.1.3",
"lodash": "4.17.21",
"logrotate-stream": "0.2.9",
"lru-cache": "10.0.1",
"logrotate-stream": "0.2.8",
"lru-cache": "7.14.0",
"material-design-lite": "1.3.0",
"mime": "3.0.0",
"mkdirp": "3.0.1",
"mongodb": "5.8.1",
"mkdirp": "1.0.4",
"mongodb": "4.10.0",
"morgan": "1.10.0",
"mousetrap": "1.6.5",
"multiparty": "4.2.3",
"nconf": "0.12.0",
"nodebb-plugin-2factor": "7.3.0",
"nodebb-plugin-composer-default": "10.2.20",
"nodebb-plugin-dbsearch": "6.2.2",
"nodebb-plugin-emoji": "5.1.5",
"nodebb-plugin-2factor": "6.0.2",
"nodebb-plugin-composer-default": "10.0.5",
"nodebb-plugin-dbsearch": "6.0.0",
"nodebb-plugin-emoji": "5.0.2",
"nodebb-plugin-emoji-android": "4.0.0",
"nodebb-plugin-markdown": "12.2.3",
"nodebb-plugin-mentions": "4.3.5",
"nodebb-plugin-ntfy": "1.6.1",
"nodebb-plugin-spam-be-gone": "2.1.1",
"nodebb-rewards-essentials": "0.2.3",
"nodebb-theme-harmony": "1.1.60",
"nodebb-theme-lavender": "7.1.3",
"nodebb-theme-peace": "2.1.18",
"nodebb-theme-persona": "13.2.29",
"nodebb-widget-essentials": "7.0.13",
"nodemailer": "6.9.5",
"nodebb-plugin-markdown": "11.0.2",
"nodebb-plugin-mentions": "4.0.2",
"nodebb-plugin-spam-be-gone": "2.0.0",
"nodebb-rewards-essentials": "0.2.1",
"nodebb-theme-peace": "2.0.1",
"nodebb-theme-persona": "13.0.3",
"nodebb-widget-essentials": "7.0.1",
"nodemailer": "6.7.8",
"nprogress": "0.2.0",
"passport": "0.6.0",
"passport-http-bearer": "1.0.1",
"passport-local": "1.0.0",
"pg": "8.11.3",
"pg-cursor": "2.10.3",
"postcss": "8.4.29",
"pg": "8.8.0",
"pg-cursor": "2.7.4",
"postcss": "8.4.16",
"postcss-clean": "1.2.0",
"progress-webpack-plugin": "1.0.16",
"prompt": "1.3.0",
"ioredis": "5.3.2",
"ioredis": "5.2.3",
"request": "2.88.2",
"request-promise-native": "1.0.9",
"rimraf": "5.0.1",
"rimraf": "3.0.2",
"rss": "1.2.2",
"rtlcss": "4.1.0",
"sanitize-html": "2.11.0",
"sass": "1.66.1",
"semver": "7.5.4",
"rtlcss": "4.0.0",
"sanitize-html": "2.7.2",
"sass": "1.54.9",
"semver": "7.3.7",
"serve-favicon": "2.5.0",
"sharp": "0.32.5",
"sharp": "0.31.0",
"sitemap": "7.1.1",
"socket.io": "4.7.2",
"socket.io-client": "4.7.2",
"@socket.io/redis-adapter": "8.2.1",
"slideout": "1.0.1",
"socket.io": "4.5.1",
"socket.io-client": "4.5.1",
"@socket.io/redis-adapter": "7.2.0",
"sortablejs": "1.15.0",
"spdx-license-list": "6.7.0",
"spider-detector": "2.0.1",
"terser-webpack-plugin": "5.3.9",
"spdx-license-list": "6.6.0",
"spider-detector": "2.0.0",
"textcomplete": "0.18.2",
"textcomplete.contenteditable": "0.1.1",
"timeago": "1.6.7",
"tinycon": "0.6.8",
"toobusy-js": "0.5.1",
"validator": "13.11.0",
"webpack": "5.88.2",
"webpack-merge": "5.9.0",
"winston": "3.10.0",
"uglify-es": "3.3.9",
"validator": "13.7.0",
"webpack": "5.74.0",
"webpack-merge": "5.8.0",
"winston": "3.8.2",
"xml": "1.0.1",
"xregexp": "5.1.1",
"yargs": "17.7.2",
"yargs": "17.5.1",
"zxcvbn": "4.4.2"
},
"devDependencies": {
"@apidevtools/swagger-parser": "10.1.0",
"@commitlint/cli": "17.7.1",
"@commitlint/config-angular": "17.7.0",
"@apidevtools/swagger-parser": "10.0.3",
"@commitlint/cli": "17.1.2",
"@commitlint/config-angular": "17.1.0",
"coveralls": "3.1.1",
"eslint": "8.48.0",
"eslint-config-nodebb": "0.2.1",
"eslint-plugin-import": "2.28.1",
"grunt": "1.6.1",
"eslint": "8.23.1",
"eslint-config-nodebb": "0.1.1",
"eslint-plugin-import": "2.26.0",
"grunt": "1.5.3",
"grunt-contrib-watch": "1.1.0",
"husky": "8.0.3",
"jsdom": "22.1.0",
"lint-staged": "14.0.1",
"mocha": "10.2.0",
"husky": "8.0.1",
"jsdom": "20.0.0",
"lint-staged": "13.0.3",
"mocha": "10.0.0",
"mocha-lcov-reporter": "1.3.0",
"mockdate": "3.0.5",
"nyc": "15.1.0",
"smtp-server": "3.13.0"
},
"optionalDependencies": {
"sass-embedded": "1.66.1"
},
"resolutions": {
"*/jquery": "3.7.1"
"smtp-server": "3.11.0"
},
"bugs": {
"url": "https://github.com/NodeBB/NodeBB/issues"

View File

@@ -6,14 +6,14 @@ const bodyParser = require('body-parser');
const fs = require('fs');
const path = require('path');
const childProcess = require('child_process');
const sass = require('sass');
const webpack = require('webpack');
const nconf = require('nconf');
const Benchpress = require('benchpressjs');
const { mkdirp } = require('mkdirp');
const mkdirp = require('mkdirp');
const { paths } = require('../src/constants');
const sass = require('../src/utils').getSass();
const app = express();
let server;
@@ -50,9 +50,6 @@ let installing = false;
let success = false;
let error = false;
let launchUrl;
let timeStart = 0;
const totalTime = 1000 * 60 * 3;
const viewsDir = path.join(paths.baseDir, 'build/public/templates');
@@ -105,32 +102,11 @@ function launchExpress(port) {
function setupRoutes() {
app.get('/', welcome);
app.post('/', install);
app.get('/testdb', testDatabase);
app.post('/launch', launch);
app.get('/ping', ping);
app.get('/sping', ping);
}
async function testDatabase(req, res) {
let db;
try {
const keys = Object.keys(req.query);
const dbName = keys[0].split(':')[0];
db = require(`../src/database/${dbName}`);
const opts = {};
keys.forEach((key) => {
opts[key.replace(`${dbName}:`, '')] = req.query[key];
});
await db.init(opts);
const global = await db.getObject('global');
await db.close();
res.json({ success: 1, dbfull: !!global });
} catch (err) {
res.json({ error: err.stack });
}
}
function ping(req, res) {
res.status(200).send(req.path === '/sping' ? 'healthy' : '200');
}
@@ -147,6 +123,7 @@ function welcome(req, res) {
});
const defaults = require('./data/defaults.json');
res.render('install/index', {
url: nconf.get('url') || (`${req.protocol}://${req.get('host')}`),
launchUrl: launchUrl,
@@ -159,7 +136,6 @@ function welcome(req, res) {
minimumPasswordLength: defaults.minimumPasswordLength,
minimumPasswordStrength: defaults.minimumPasswordStrength,
installing: installing,
percentInstalled: installing ? ((Date.now() - timeStart) / totalTime * 100).toFixed(2) : 0,
});
}
@@ -167,7 +143,6 @@ function install(req, res) {
if (installing) {
return welcome(req, res);
}
timeStart = Date.now();
req.setTimeout(0);
installing = true;
@@ -195,22 +170,21 @@ function install(req, res) {
const child = require('child_process').fork('app', ['--setup'], {
env: setupEnvVars,
});
child.on('error', (err) => {
error = true;
success = false;
winston.error(err.stack);
});
child.on('close', (data) => {
installing = false;
success = data === 0;
error = data !== 0;
launch();
welcome(req, res);
});
welcome(req, res);
}
async function launch() {
async function launch(req, res) {
try {
res.json({});
server.close();
req.setTimeout(0);
let child;
if (!nconf.get('launchCmd')) {

View File

@@ -6,7 +6,7 @@ const url = require('url');
const path = require('path');
const { fork } = require('child_process');
const logrotate = require('logrotate-stream');
const { mkdirp } = require('mkdirp');
const mkdirp = require('mkdirp');
const file = require('./src/file');
const pkg = require('./package.json');
@@ -30,7 +30,9 @@ const output = logrotate({ file: outputLogFilePath, size: '1m', keep: 3, compres
const silent = nconf.get('silent') === 'false' ? false : nconf.get('silent') !== false;
let numProcs;
const workers = [];
const Loader = {};
const Loader = {
timesStarted: 0,
};
const appPath = path.join(__dirname, 'app.js');
Loader.init = function () {
@@ -55,6 +57,21 @@ Loader.displayStartupMessages = function () {
Loader.addWorkerEvents = function (worker) {
worker.on('exit', (code, signal) => {
if (code !== 0) {
if (Loader.timesStarted < numProcs * 3) {
Loader.timesStarted += 1;
if (Loader.crashTimer) {
clearTimeout(Loader.crashTimer);
}
Loader.crashTimer = setTimeout(() => {
Loader.timesStarted = 0;
}, 10000);
} else {
console.log(`${numProcs * 3} restarts in 10 seconds, most likely an error on startup. Halting.`);
process.exit();
}
}
console.log(`[cluster] Child Process (${worker.pid}) has exited (code: ${code}, signal: ${signal})`);
if (!(worker.suicide || code === 0)) {
console.log('[cluster] Spinning up another process...');

View File

@@ -6,6 +6,7 @@
body {
background: #00A9EA;
color: white;
/* see public/less/admin/vars.less for documentation on system font family */
font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", Helvetica, Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
text-align: center;
-webkit-transform-style: preserve-3d;

View File

@@ -6,13 +6,6 @@
"settings-header-contents": "محتويات",
"changes-saved": "Changes Saved",
"changes-saved-message": "Your changes to the NodeBB configuration have been saved.",
"changes-not-saved": "لم يتم حفظ التغييرات",
"changes-not-saved-message": "حدثت مشكلة أثناء حفظ التغييرات في NodeBB. (%1)",
"save-changes": "Save changes",
"min": "Min:",
"max": "Max:",
"view": "View",
"edit": "Edit",
"add": "Add",
"select-icon": "Select Icon"
"changes-not-saved": "Changes Not Saved",
"changes-not-saved-message": "NodeBB encountered a problem saving your changes. (%1)"
}

View File

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

View File

@@ -1,52 +1,52 @@
{
"x-b": "٪1 بايت",
"x-mb": "٪1 ميقا بايت",
"x-gb": "٪1 قيقا بايت",
"uptime-seconds": "مدة التشغيل بالثواني",
"uptime-days": "مدة التشغيل بالأيام",
"x-b": "%1 b",
"x-mb": "%1 mb",
"x-gb": "%1 gb",
"uptime-seconds": "Uptime in Seconds",
"uptime-days": "Uptime in Days",
"mongo": "MongoDB",
"mongo.version": "اصدار MongoDB",
"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": "Mongo",
"mongo.version": "MongoDB Version",
"mongo.storage-engine": "Storage Engine",
"mongo.collections": "Collections",
"mongo.objects": "Objects",
"mongo.avg-object-size": "Avg. Object Size",
"mongo.data-size": "Data Size",
"mongo.storage-size": "Storage Size",
"mongo.index-size": "Index Size",
"mongo.file-size": "File Size",
"mongo.resident-memory": "Resident Memory",
"mongo.virtual-memory": "الذاكرة الإفتراضية",
"mongo.mapped-memory": "الذاكرة المعينة",
"mongo.bytes-in": "البايتات الواردة",
"mongo.bytes-out": "البايتات الصادرة",
"mongo.num-requests": "عدد الطلبات",
"mongo.raw-info": "معلومات MongoDB الأولية",
"mongo.unauthorized": "لم يستطع NodeBB من الاستعلام عن احصاءات قواعد البيانات ل MongoDB. الرجاء التأكد من أن المستخدم في NodeBB يحتوي على دور &quot;clusterMonitor&quot; ال &quot;admin&quot; لقواعد البيانات.",
"mongo.mapped-memory": "Mapped Memory",
"mongo.bytes-in": "Bytes In",
"mongo.bytes-out": "Bytes Out",
"mongo.num-requests": "Number of Requests",
"mongo.raw-info": "MongoDB Raw Info",
"mongo.unauthorized": "NodeBB was unable to query the MongoDB database for relevant statistics. Please ensure that the user in use by NodeBB contains the &quot;clusterMonitor&quot; role for the &quot;admin&quot; database.",
"redis": "Redis",
"redis.version": "إصدار Redis",
"redis.keys": "المفاتيح",
"redis.expires": "ينتهي ",
"redis.avg-ttl": "متوسط وقت الانعاش",
"redis.connected-clients": "العميل المتصل",
"redis.connected-slaves": "البدلاء المتصلين",
"redis.blocked-clients": "العملاء المحظورون",
"redis.version": "Redis Version",
"redis.keys": "Keys",
"redis.expires": "Expires",
"redis.avg-ttl": "Average TTL",
"redis.connected-clients": "Connected Clients",
"redis.connected-slaves": "Connected Slaves",
"redis.blocked-clients": "Blocked Clients",
"redis.used-memory": "الذاكرة المستخدمة",
"redis.memory-frag-ratio": "نسبة تجزئة الذاكرة",
"redis.memory-frag-ratio": "Memory Fragmentation Ratio",
"redis.total-connections-recieved": "إجمالي الاتصالات المستلمة",
"redis.total-commands-processed": "إجمالي الأوامر التي تمت معالجتها",
"redis.iops": "العمليات اللحظية في الثانية",
"redis.iinput": "الإدخال الفوري في الثانية",
"redis.ioutput": "المخرجات الفورية في الثانية",
"redis.total-input": "مجموع المدخلات",
"redis.total-output": "مجموع المخرجات",
"redis.iops": "Instantaneous Ops. Per Second",
"redis.iinput": "Instantaneous Input Per Second",
"redis.ioutput": "Instantaneous Output Per Second",
"redis.total-input": "Total Input",
"redis.total-output": "Total Ouput",
"redis.keyspace-hits": "المفاتيح المضغوطة",
"redis.keyspace-misses": "المفاتيح المخفقة",
"redis.raw-info": "معلومات Redis الأولية",
"redis.keyspace-hits": "Keyspace Hits",
"redis.keyspace-misses": "Keyspace Misses",
"redis.raw-info": "Redis Raw Info",
"postgres": "Postgres",
"postgres.version": "إصدار PostgreSQL",
"postgres.raw-info": "معلومات Postgres الأولية"
"postgres.version": "PostgreSQL Version",
"postgres.raw-info": "Postgres Raw Info"
}

View File

@@ -1,5 +1,4 @@
{
"errors": "Errors",
"figure-x": "شكل %1",
"error-events-per-day": "<code>%1</code> حدث كل يوم ",
"error.404": "404 لم يتم العثور",

View File

@@ -3,7 +3,7 @@
"no-events": "لا توجد أحداث",
"control-panel": "لوحة تحكم الأحداث",
"delete-events": "حذف الاحداث",
"confirm-delete-all-events": "هل أنت متاكد أنك تريد حذف كل سجل اﻻحداث؟",
"confirm-delete-all-events": "Are you sure you want to delete all logged events?",
"filters": "تصفية",
"filters-apply": "تطبيق التصفية",
"filter-type": "نوع الحدث",

View File

@@ -1,20 +1,16 @@
{
"customise": "Customise",
"custom-css": "Custom CSS/SASS",
"custom-css.description": "Enter your own CSS/SASS declarations here, which will be applied after all other styles.",
"custom-css.enable": "Enable Custom CSS/SASS",
"custom-css": "Custom CSS/LESS",
"custom-css.description": "Enter your own CSS/LESS declarations here, which will be applied after all other styles.",
"custom-css.enable": "Enable Custom CSS/LESS",
"custom-js": "Javascript مخصصة",
"custom-js.description": "أدخل Javascript الخاص بك هنا. سيتم تنفيذها بعد تحميل الصفحة بالكامل.",
"custom-js.enable": "تفعيل Javascript المخصصة",
"custom-header": "ترويسة مخصصة",
"custom-header.description": "أدخل وسوم HTML المخصصة هنا (مثل: Meta Tags, وغيرها)، والتي سيتم تضمينها لجزئية <code>&lt;head&gt;</code> من ترميز المنتدى. يُسمح بعلامات البرمجة النصية، ولكن لا يُنصح بها ، نظرًا لأن علامة التبويب <a href=\"#custom-js\" data-toggle=\"tab\"> Custom Javascript </a> متاحة.",
"custom-header.description": "Enter custom HTML here (ex. Meta Tags, etc.), which will be appended to the <code>&lt;head&gt;</code> section of your forum's markup. Script tags are allowed, but are discouraged, as the <a href=\"#custom-js\" data-toggle=\"tab\">Custom Javascript</a> tab is available.",
"custom-header.enable": "تفعيل الترويسة المخصصة",
"custom-css.livereload": "تفعيل إعادة التحميل المباشرة",
"custom-css.livereload.description": "فعل هذا الخيار لإجبار جميع الجلسات في الأجهزة التي قمت بتسجيل الدخول فيها بحسابك على التحديث عند النقر على زر الحفظ",
"bsvariables": "_variables.scss",
"bsvariables.description": "Override bootstrap variables here. You can also use a tool like <a href=\"https://bootstrap.build/app\">bootstrap.build</a> and paste the output here.<br/>Changes require a rebuild & restart.",
"bsvariables.enable": "Enable _variables.scss"
"custom-css.livereload.description": "فعل هذا الخيار لإجبار جميع الجلسات في الأجهزة التي قمت بتسجيل الدخول فيها بحسابك على التحديث عند النقر على زر الحفظ"
}

View File

@@ -1,16 +1,7 @@
{
"skins": "Skins",
"bootswatch-skins": "Bootswatch Skins",
"custom-skins": "Custom Skins",
"add-skin": "Add Skin",
"save-custom-skins": "Save Custom Skins",
"save-custom-skins-success": "Custom skins saved successfully",
"custom-skin-name": "Custom Skin Name",
"custom-skin-variables": "Custom Skin Variables",
"loading": "جاري تحميل السمات...",
"homepage": "الصفحة الرئيسية",
"select-skin": "إختيار السمة",
"revert-skin": "Revert Skin",
"current-skin": "السمة الحالية",
"skin-updated": "تم تحديث السمة",
"applied-success": "تم تطبيق السمة %1 بنجاح",

View File

@@ -1,13 +1,11 @@
{
"themes": "Themes",
"checking-for-installed": "جاري التحقق من القوالب المثبتة...",
"homepage": "الصفحة الرئيسية",
"select-theme": "إختيار القالب",
"revert-theme": "Revert Theme",
"current-theme": "القالب المستخدم حالياً",
"no-themes": "لم يتم العثور على قوالب مثبتة",
"revert-confirm": "هل أنت متأكد من أنك ترغب في استعادة قااب NodeBB الافتراضي؟",
"theme-changed": "تم تغيير القالب",
"revert-success": "لقد قمت بنجاح بإستعادة القالب الأساسي لـNodeBB",
"restart-to-activate": "يرجى إعادة بناء وإعادة تشغيل NodeBB لتنشيط هذا الثيم."
"restart-to-activate": "Please rebuild and restart your NodeBB to fully activate this theme."
}

View File

@@ -1,9 +1,9 @@
{
"forum-traffic": "حركة المنتدى",
"forum-traffic": "Forum Traffic",
"page-views": "مشاهدات الصفحات",
"unique-visitors": "زائرين فريدين",
"logins": "عمليات تسجيل الدخول",
"new-users": "مستخدم جديد",
"logins": "Logins",
"new-users": "New Users",
"posts": "مشاركات",
"topics": "مواضيع",
"page-views-seven": "آخر 7 ايام",
@@ -15,24 +15,24 @@
"page-views-custom-help": "أدخل نطاقا زمنيا لمرات مشاهدة الصفحات التي ترغب في عرضها. إذا لم يظهر منتقي التاريخ، فإن التنسيق المقبول هو <code>YYYY-MM-DD</code>",
"page-views-custom-error": "الرجاء إدخال نطاق تاريخ صالح بالتنسيق <code>YYYY-MM-DD</code>",
"stats.yesterday": "الأمس",
"stats.today": "اليوم",
"stats.last-week": "الاسبوع الماضي",
"stats.this-week": "هذا الاسبوع",
"stats.last-month": "الشهر الماضي",
"stats.this-month": "هذا الشهر",
"stats.yesterday": "Yesterday",
"stats.today": "Today",
"stats.last-week": "Last Week",
"stats.this-week": "This Week",
"stats.last-month": "Last Month",
"stats.this-month": "This Month",
"stats.all": "كل الوقت",
"updates": "تحديثات",
"running-version": "المنتدى يعمل حاليا على <strong>NodeBB الإصدار<span id=\"version\">%1</span></strong>.",
"keep-updated": "تأكد دائما من أن NodeBB يعمل على احدث إصدار للحصول على أحدث التصحيحات الأمنية وإصلاحات الأخطاء.",
"up-to-date": "You are <strong>up-to-date</strong> <i class=\"fa fa-check\"></i>",
"upgrade-available": "A new version (v%1) has been released. Consider <a href=\"https://docs.nodebb.org/configuring/upgrade/\" target=\"_blank\">upgrading your NodeBB</a>.",
"prerelease-upgrade-available": "This is an outdated pre-release version of NodeBB. A new version (v%1) has been released. Consider <a href=\"https://docs.nodebb.org/configuring/upgrade/\" target=\"_blank\">upgrading your NodeBB</a>.",
"prerelease-warning": "This is a <strong>pre-release</strong> version of NodeBB. Unintended bugs may occur. <i class=\"fa fa-exclamation-triangle\"></i>",
"fallback-emailer-not-found": "مرسل البريد الإلكتروني الاحتياطي غير موجود!",
"running-in-development": "Forum is running in development mode. The forum may be open to potential vulnerabilities; please contact your system administrator",
"latest-lookup-failed": "Failed to look up latest available version of NodeBB",
"up-to-date": "<p>المنتدى <strong>يعمل على أحدث إصدار</strong> <i class=\"fa fa-check\"></i></p>",
"upgrade-available": "<p>A new version (v%1) has been released. Consider <a href=\"https://docs.nodebb.org/configuring/upgrade/\" target=\"_blank\">upgrading your NodeBB</a>.</p>",
"prerelease-upgrade-available": "<p>This is an outdated pre-release version of NodeBB. A new version (v%1) has been released. Consider <a href=\"https://docs.nodebb.org/configuring/upgrade/\" target=\"_blank\">upgrading your NodeBB</a>.</p>",
"prerelease-warning": "<p>هذه نسخة <strong>ماقبل الإصدار</strong> من NodeBB. قد تحدث أخطاء غير مقصودة. <i class=\"fa fa-exclamation-triangle\"></i></p>",
"fallback-emailer-not-found": "Fallback emailer not found!",
"running-in-development": "المنتدى قيد التشغيل في وضع \"المطورين\". وقد تكون هناك ثغرات أمنية مفتوحة؛ من فضلك تواصل مع مسؤول نظامك.",
"latest-lookup-failed": "<p>Failed to look up latest available version of NodeBB</p>",
"notices": "إشعارات",
"restart-not-required": "إعادة التشغيل غير مطلوب",
@@ -42,23 +42,22 @@
"search-plugin-tooltip": "نصب إضافة البحث من صفحة الإضافات البرمجية لتنشيط وظيفة البحث",
"control-panel": "التحكم بالنظام",
"rebuild-and-restart": "أعد البناء &amp; وأعد التشغيل",
"restart": "أعد التشغيل",
"restart-warning": "ستؤدي إعادة بناء أو إعادة تشغيل NodeBB إلى إنقطاع الاتصال بالمنتدى لبضع ثوان.",
"restart-disabled": "تم تعطيل إعادة بناء NodeBB وإعادة تشغيله حيث لا يبدو أنك تقوم بتشغيله عبر البرنامج الخفي المناسب.",
"rebuild-and-restart": "Rebuild &amp; Restart",
"restart": "Restart",
"restart-warning": "Rebuilding or Restarting your NodeBB will drop all existing connections for a few seconds.",
"restart-disabled": "Rebuilding and Restarting your NodeBB has been disabled as you do not seem to be running it via the appropriate daemon.",
"maintenance-mode": "وضع الصيانة",
"maintenance-mode-title": "انقر هنا لإعداد وضع الصيانة لـNodeBB",
"dark-mode": "Dark Mode",
"realtime-chart-updates": "التحديث الفوري للرسم البياني",
"active-users": "المستخدمين النشطين",
"active-users.users": "الأعضاء",
"active-users.guests": "الزوار",
"active-users.total": "المجموع",
"active-users.connections": "روابط الاتصال",
"active-users.connections": "Connections",
"guest-registered-users": "الزائر مقابل المستخدمين المسجلين",
"guest": "الزائر",
"guest-registered-users": "Guest vs Registered Users",
"guest": "Guest",
"registered": "مسجل",
"user-presence": "تواجد المستخدمين",
@@ -69,30 +68,23 @@
"unread": "غير مقروء",
"high-presence-topics": "مواضيع ذات حضور قوي",
"popular-searches": "عمليات البحث الشائعة",
"popular-searches": "Popular Searches",
"graphs.page-views": "مشاهدات الصفحة",
"graphs.page-views-registered": "زيارات الصفحات المسجلة",
"graphs.page-views-guest": "زيارات الصفحات للزوار",
"graphs.page-views-bot": "زيارات الصفحات الآلية",
"graphs.page-views-registered": "Page Views Registered",
"graphs.page-views-guest": "Page Views Guest",
"graphs.page-views-bot": "Page Views Bot",
"graphs.unique-visitors": "زوار فريدين",
"graphs.registered-users": "مستخدمين مسجلين",
"graphs.guest-users": "المستخدمين الزوار",
"last-restarted-by": "آخر إعادة تشغيل بواسطة",
"no-users-browsing": "لا يوجد مستخدمين يتصفحون",
"graphs.guest-users": "Guest Users",
"last-restarted-by": "Last restarted by",
"no-users-browsing": "No users browsing",
"back-to-dashboard": "العودة للوحة التحكم",
"details.no-users": "لم ينضم أي مستخدم خلال الإطار الزمني المحدد",
"details.no-topics": "لم يتم نشر أي مواضيع خلال الإطار الزمني المحدد",
"details.no-searches": "لم يتم إجراء أي بحث خلال الإطار الزمني المحدد",
"details.no-logins": "لم يوثق أي تسجيل دخول خلال الإطار الزمني المحدد",
"details.logins-static": "يقوم NodeBB بحفظ بيانات الجلسة لمدة ٪1 يوم/أيام فقط، ولذا فإن هذا الجدول أدناه سيعرض فقط أحدث الجلسات النشطة",
"details.logins-login-time": "وقت تسجيل الدخول",
"start": "بدء",
"end": "إنهاء",
"filter": "تصفية",
"view-as-json": "View as JSON",
"expand-analytics": "Expand analytics",
"clear-search-history": "Clear Search History",
"clear-search-history-confirm": "Are you sure you want to clear entire search history?"
"back-to-dashboard": "Back to Dashboard",
"details.no-users": "No users have joined within the selected timeframe",
"details.no-topics": "No topics have been posted within the selected timeframe",
"details.no-searches": "No searches have been made yet",
"details.no-logins": "No logins have been recorded within the selected timeframe",
"details.logins-static": "NodeBB only saves session data for %1 days, and so this table below will only show the most recently active sessions",
"details.logins-login-time": "Login Time"
}

View File

@@ -1,8 +1,8 @@
{
"you-are-on": "أنت في <strong> %1:%2 </strong>",
"ip": "رقم الآي بي <strong> %1 </strong>",
"nodes-responded": "عدد %1 نقطة/نقاط استجابوا خلال %2 جزء من الثانية.",
"host": "المضيف",
"you-are-on": "You are on <strong>%1:%2</strong>",
"ip": "IP <strong>%1</strong>",
"nodes-responded": "%1 nodes responded within %2ms!",
"host": "host",
"primary": "primary / run jobs",
"pid": "pid",
"nodejs": "nodejs",

View File

@@ -1,13 +1,12 @@
{
"logger": "Logger",
"logger-settings": "إعدادات المسجِّل",
"description": "من خلال تمكين مربعات الاختيار ، ستتلقى سجلات إلى جهازك الطرفي. إذا حددت مسارًا ، فسيتم بعد ذلك حفظ السجلات في ملف بدلاً من ذلك. يعد تسجيل HTTP مفيدًا لجمع الإحصائيات حول من ومتى وماذا يصل الأشخاص في المنتدى. بالإضافة إلى تسجيل طلبات HTTP ، يمكننا أيضًا تسجيل أحداث socket.io. يمكن أن يكون تسجيل Socket.io ، جنبًا إلى جنب مع شاشة redis-cli ، مفيدًا جدًا في تعلم العناصر الداخلية لـ NodeBB.",
"explanation": "ما عليك سوى تحديدأو/ إلغاء تحديد إعدادات التسجيل لتمكين أو تعطيل التسجيل أثناء التنقل. لا حاجة لإعادة التشغيل.",
"enable-http": "تمكين سجلات HTTP",
"enable-socket": "تفعيل تسجيل أحداث socket.io",
"file-path": "مسار ملف السجل",
"file-path-placeholder": "/path/to/log/file.log ::: اتركه فارغا لاظهار السجلات لنافذة الطرفية",
"logger-settings": "Logger Settings",
"description": "By enabling the check boxes, you will receive logs to your terminal. If you specify a path, logs will then be saved to a file instead. HTTP logging is useful for collecting statistics about who, when, and what people access on your forum. In addition to logging HTTP requests, we can also log socket.io events. Socket.io logging, in combination with redis-cli monitor, can be very helpful for learning NodeBB's internals.",
"explanation": "Simply check/uncheck the logging settings to enable or disable logging on the fly. No restart needed.",
"enable-http": "Enable HTTP logging",
"enable-socket": "Enable socket.io event logging",
"file-path": "Path to log file",
"file-path-placeholder": "/path/to/log/file.log ::: leave blank to log to your terminal",
"control-panel": "لوحة تحكم المسجل",
"update-settings": "تحديث إعدادات المسجل"
"control-panel": "Logger Control Panel",
"update-settings": "Update Logger Settings"
}

View File

@@ -1,5 +1,4 @@
{
"plugins": "Plugins",
"trending": "Trending",
"installed": "منصبة",
"active": "مفعلة",

View File

@@ -1,17 +1,15 @@
{
"rewards": "المكافآت",
"add-reward": "Add reward",
"condition-if-users": "إذا كان للمستخدم",
"condition-is": "يكون: ",
"condition-then": "عندئذ:",
"max-claims": "عدد المرات التي يمكن فيها المطالبة بالمكافأة",
"zero-infinite": "أدخل 0 للقيمة اللانهائية",
"select-reward": "Select reward",
"delete": "احذف",
"enable": "مكّن",
"disable": "عطّل",
"rewards": "Rewards",
"condition-if-users": "If User's",
"condition-is": "Is:",
"condition-then": "Then:",
"max-claims": "Amount of times reward is claimable",
"zero-infinite": "Enter 0 for infinite",
"delete": "Delete",
"enable": "Enable",
"disable": "Disable",
"alert.delete-success": "المكافآت المحذوفة بنجاح",
"alert.no-inputs-found": "مكافأة غير قانونية - لم يتم العثور على مدخلات!",
"alert.save-success": "المكافآت المحفوظة بنجاح"
"alert.delete-success": "Successfully deleted reward",
"alert.no-inputs-found": "Illegal reward - no inputs found!",
"alert.save-success": "Successfully saved rewards"
}

View File

@@ -1,5 +1,4 @@
{
"widgets": "Widgets",
"available": "Available Widgets",
"explanation": "Select a widget from the dropdown menu and then drag and drop it into a template's widget area on the left.",
"none-installed": "No widgets found! Activate the widget essentials plugin in the <a href=\"%1\">plugins</a> control panel.",
@@ -9,9 +8,9 @@
"containers.none": "None",
"container.well": "Well",
"container.jumbotron": "Jumbotron",
"container.card": "Card",
"container.card-header": "Card Header",
"container.card-body": "Card Body",
"container.panel": "Panel",
"container.panel-header": "Panel Header",
"container.panel-body": "Panel Body",
"container.alert": "Alert",
"alert.confirm-delete": "Are you sure you wish to delete this widget?",
@@ -27,7 +26,5 @@
"container.placeholder": "Drag and drop a container or enter HTML here.",
"show-to-groups": "Show to groups",
"hide-from-groups": "Hide from groups",
"start-date": "Start date",
"end-date": "End date",
"hide-on-mobile": "Hide on mobile"
}

View File

@@ -1,11 +1,10 @@
{
"manage-admins-and-mods": "Manage Admins & Mods",
"administrators": "Administrators",
"global-moderators": "Global Moderators",
"moderators": "Moderators",
"no-global-moderators": "No Global Moderators",
"no-sub-categories": "No subcategories",
"view-children": "View children (%1)",
"subcategories": "%1 subcategories",
"no-moderators": "No Moderators",
"add-administrator": "Add Administrator",
"add-global-moderator": "Add Global Moderator",

View File

@@ -1,11 +1,7 @@
{
"manage-categories": "Manage Categories",
"add-category": "Add category",
"jump-to": "Jump to...",
"settings": "اعدادات القسم",
"edit-category": "Edit Category",
"privileges": "الصلاحيات",
"back-to-categories": "Back to categories",
"name": "Category Name",
"description": "Category Description",
"bg-color": "Background Colour",
@@ -19,10 +15,8 @@
"post-queue": "Post queue",
"tag-whitelist": "Tag Whitelist",
"upload-image": "Upload Image",
"upload": "Upload",
"delete-image": "Remove",
"category-image": "Category Image",
"image-and-icon": "Image & Icon",
"parent-category": "Parent Category",
"optional-parent-category": "(Optional) Parent Category",
"top-level": "Top Level",
@@ -37,7 +31,6 @@
"disable": "Disable",
"edit": "Edit",
"analytics": "Analytics",
"view-category": "View category",
"set-order": "Set order",
"set-order-help": "Setting the order of the category will move this category to that order and update the order of other categories as necessary. Minimum order is 1 which puts the category at the top.",

View File

@@ -1,10 +1,4 @@
{
"manage-groups": "Manage Groups",
"add-group": "Add group",
"edit-group": "Edit Group",
"back-to-groups": "Back to groups",
"view-group": "View group",
"icon-and-title": "Icon & Title",
"name": "اسم المجموعة",
"badge": "Badge",
"properties": "Properties",
@@ -16,7 +10,7 @@
"edit": "Edit",
"delete": "Delete",
"privileges": "Privileges",
"members-csv": "Members (CSV)",
"download-csv": "CSV",
"search-placeholder": "Search",
"create": "Create Group",
"description-placeholder": "A short description about your group",
@@ -45,5 +39,6 @@
"revert": "Revert",
"edit.no-users-found": "No Users Found",
"edit.confirm-remove-user": "Are you sure you want to remove this user?"
"edit.confirm-remove-user": "Are you sure you want to remove this user?",
"edit.save-success": "Changes saved!"
}

View File

@@ -1,6 +1,4 @@
{
"manage-privileges": "Manage Privileges",
"discard-changes": "Discard changes",
"global": "Global",
"admin": "Admin",
"group-privileges": "Group Privileges",
@@ -51,6 +49,7 @@
"alert.confirm-moderate": "<strong>Are you sure you wish to grant the moderation privilege to this user group?</strong> This group is public, and any users can join at will.",
"alert.confirm-admins-mods": "<strong>Are you sure you wish to grant the &quot;Admins &amp; Mods&quot; privilege to this user/group?</strong> Users with this privilege are able to promote and demote other users into privileged positions, <em>including super administrator</em>",
"alert.confirm-save": "Please confirm your intention to save these privileges",
"alert.saved": "Privilege changes saved and applied",
"alert.confirm-discard": "Are you sure you wish to discard your privilege changes?",
"alert.discarded": "Privilege changes discarded",
"alert.confirm-copyToAll": "Are you sure you wish to apply this set of <strong>%1</strong> to <strong>all categories</strong>?",

View File

@@ -1,20 +1,20 @@
{
"queue": "الطابور",
"queue": "Queue",
"description": "There are no users in the registration queue. <br> To enable this feature, go to <a href=\"%1\">Settings &rarr; User &rarr; User Registration</a> and set <strong>Registration Type</strong> to \"Admin Approval\".",
"list.name": "اﻹسم",
"list.email": "البريد الإلكتروني",
"list.name": "Name",
"list.email": "Email",
"list.ip": "IP",
"list.time": "التوقيت",
"list.time": "Time",
"list.username-spam": "Frequency: %1 Appears: %2 Confidence: %3",
"list.email-spam": "Frequency: %1 Appears: %2",
"list.ip-spam": "Frequency: %1 Appears: %2",
"invitations": "الدعوات",
"invitations": "Invitations",
"invitations.description": "Below is a complete list of invitations sent. Use ctrl-f to search through the list by email or username. <br><br>The username will be displayed to the right of the emails for users who have redeemed their invitations.",
"invitations.inviter-username": "أسم المستخدم الداعي",
"invitations.invitee-email": "البريد اﻻلكتروني للمدعو",
"invitations.invitee-username": "اسم المستخم للمدعو (اذا كان مسجل)",
"invitations.inviter-username": "Inviter Username",
"invitations.invitee-email": "Invitee Email",
"invitations.invitee-username": "Invitee Username (if registered)",
"invitations.confirm-delete": "هل أنت متأكد من أنك تريد حذف هذه الدعوة؟"
"invitations.confirm-delete": "Are you sure you wish to delete this invitation?"
}

View File

@@ -1,11 +1,9 @@
{
"manage-tags": "Manage Tags",
"none": "Your forum does not have any topics with tags yet.",
"bg-color": "Background Colour",
"text-color": "Text Colour",
"description": "Select tags by clicking or dragging, use <code>CTRL</code> to select multiple tags.",
"create": "Create Tag",
"add-tag": "Add tag",
"modify": "Modify Tags",
"rename": "Rename Tags",
"delete": "Delete Selected Tags",

View File

@@ -1,5 +1,4 @@
{
"manage-uploads": "Manage Uploads",
"upload-file": "Upload File",
"filename": "Filename",
"usage": "Post Usage",

View File

@@ -1,5 +1,4 @@
{
"manage-users": "Manage Users",
"users": "المستخدمين",
"edit": "Actions",
"make-admin": "Make Admin",
@@ -18,7 +17,6 @@
"purge": "Delete <strong>User(s)</strong> and <strong>Content</strong>",
"download-csv": "Download CSV",
"manage-groups": "Manage Groups",
"set-reputation": "Set Reputation",
"add-group": "Add Group",
"create": "Create User",
"invite": "Invite by Email",
@@ -51,10 +49,6 @@
"users.username": "username",
"users.email": "email",
"users.no-email": "(no email)",
"users.validated": "Validated",
"users.not-validated": "Not Validated",
"users.validation-pending": "Validation Pending",
"users.validation-expired": "Validation Expired",
"users.ip": "IP",
"users.postcount": "postcount",
"users.reputation": "reputation",

View File

@@ -14,7 +14,6 @@
"manage/users": "الأعضاء",
"manage/admins-mods": "Admins & Mods",
"manage/registration": "قائمة انتظار التسجيل",
"manage/flagged-content": "Flagged Content",
"manage/post-queue": "قائمة انتظار المشاركة",
"manage/groups": "المجموعات",
"manage/ip-blacklist": "قائمة حظر عناوين IP",
@@ -73,9 +72,7 @@
"development/info": "Info",
"rebuild-and-restart-forum": "Rebuild & Restart Forum",
"rebuild-and-restart": "Rebuild & Restart",
"restart-forum": "Restart Forum",
"restart": "Restart",
"logout": "Log out",
"view-forum": "View Forum",

View File

@@ -3,7 +3,6 @@
"maintenance-mode.help": "When the forum is in maintenance mode, all requests will be redirected to a static holding page. Administrators are exempt from this redirection, and are able to access the site normally.",
"maintenance-mode.status": "Maintenance Mode Status Code",
"maintenance-mode.message": "Maintenance Message",
"maintenance-mode.groups-exempt-from-maintenance-mode": "Select groups that should be exempt from maintenance mode",
"headers": "Headers",
"headers.allow-from": "Set ALLOW-FROM to Place NodeBB in an iFrame",
"headers.csp-frame-ancestors": "Set Content-Security-Policy frame-ancestors header to Place NodeBB in an iFrame",
@@ -20,8 +19,6 @@
"headers.coep-help": "When enabled (default), will set the header to <code>require-corp</code>",
"headers.coop": "Cross-Origin-Opener-Policy",
"headers.corp": "Cross-Origin-Resource-Policy",
"headers.permissions-policy": "Permissions-Policy",
"headers.permissions-policy-help": "Allows setting permissions policy header, for example \"geolocation=*, camera=()\", see <a href=\"https://github.com/w3c/webappsec-permissions-policy/blob/main/permissions-policy-explainer.md\">this</a> for more info.",
"hsts": "Strict Transport Security",
"hsts.enabled": "Enabled HSTS (recommended)",
"hsts.maxAge": "HSTS Max Age",

View File

@@ -3,27 +3,14 @@
"settings": "Settings",
"lead-text": "From this page you can configure access to the Write API in NodeBB.",
"intro": "By default, the Write API authenticates users based on their session cookie, but NodeBB also supports Bearer authentication via tokens generated via this page.",
"warning": "<strong>Be advised</strong> — treat tokens like passwords. If they are leaked, your account should be considered compromised.",
"docs": "Click here to access the full API specification",
"require-https": "Require API usage via HTTPS only",
"require-https-caveat": "<strong>Note</strong>: Some installations involving load balancers may proxy their requests to NodeBB using HTTP, in which case this option should remain disabled.",
"uid": "User ID",
"token": "Token",
"uid-help-text": "Specify a User ID to associate with this token. If the user ID is <code>0</code>, it will be considered a <em>master</em> token, which can assume the identity of other users based on the <code>_uid</code> parameter",
"description": "Description",
"last-seen": "Last seen",
"created": "Created",
"create-token": "Create Token",
"update-token": "Update Token",
"master-token": "Master token",
"last-seen-never": "This key has never been used.",
"no-description": "No description specified.",
"actions": "Actions",
"edit": "Edit",
"roll": "Roll",
"delete-confirm": "Are you sure you wish to delete this token? It will not be recoverable.",
"roll-confirm": "Are you sure you wish to regenerate this token? The old token will be immediately revoked and will not be recoverable."
"token-on-save": "Token will be generated once form is saved"
}

View File

@@ -4,7 +4,6 @@
"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-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 in milliseconds",
"notification-delay": "Notification delay for chat messages. (0 for no delay)",

View File

@@ -5,9 +5,6 @@
"from": "From Name",
"from-help": "The from name to display in the email.",
"confirmation-settings": "Confirmation",
"confirmation.expiry": "Hours to keep email confirmation link valid",
"smtp-transport": "SMTP Transport",
"smtp-transport.enabled": "Enable SMTP Transport",
"smtp-transport-help": "You can select from a list of well-known services or enter a custom one.",
@@ -42,7 +39,7 @@
"subscriptions.hour-help": "Please enter a number representing the hour to send scheduled email digests (e.g. <code>0</code> for midnight, <code>17</code> for 5:00pm). Keep in mind that this is the hour according to the server itself, and may not exactly match your system clock.<br /> The approximate server time is: <span id=\"serverTime\"></span><br /> The next daily digest is scheduled to be sent <span id=\"nextDigestTime\"></span>",
"notifications.remove-images": "Remove images from email notifications",
"require-email-address": "Require new users to specify an email address",
"require-email-address-warning": "By default, users can opt-out of entering an email address by leaving the field blank. Enabling this option means new users will have to enter <strong>and confirm</strong> an email address in order to proceed with registration and subsequent access to the forum. <strong>It does not ensure user will enter a real email address, nor even an address they own.</strong>",
"require-email-address-warning": "By default, users can opt-out of entering an email address by leaving the field blank. Enabling this option means they have to enter an email address in order to proceed with registration. <strong>It does not ensure user will enter a real email address, nor even an address they own.</strong>",
"send-validation-email": "Send validation emails when an email is added or changed",
"include-unverified-emails": "Send emails to recipients who have not explicitly confirmed their emails",
"include-unverified-warning": "By default, users with emails associated with their account have already been verified, but there are situations where this is not the case (e.g. SSO logins, grandfathered users, etc). <strong>Enable this setting at your own risk</strong> &ndash; sending emails to unverified addresses may be a violation of regional anti-spam laws.",

View File

@@ -1,13 +1,11 @@
{
"general-settings": "General Settings",
"on-this-page": "On this page:",
"site-settings": "اعدادات الموقع",
"title": "عنوان الموقع",
"title.short": "عنوان قصير",
"title.short-placeholder": "ان لم تقم بكتابة عنوان مختصر, سيتم استخدام عنوان الموقع الكلي",
"title.url": "Title Link URL",
"title.url-placeholder": "The URL of the site title",
"title.url-help": "When the title is clicked, send users to this address. If left blank, user will be sent to the forum index. Note: This is not the external URL used in emails, etc. That is set by the <code>url</code> property in config.json",
"title.url-help": "When the title is clicked, send users to this address. If left blank, user will be sent to the forum index. <br> Note: This is not the external URL used in emails, etc. That is set by the <code>url</code> property in config.json",
"title.name": "اسم المنتدي",
"title.show-in-header": "Show Site Title in Header",
"browser-title": "عنوان المتصفح",
@@ -18,7 +16,7 @@
"description": "وصف الموقع",
"keywords": "الكلمات الدليله للموقع",
"keywords-placeholder": "Keywords describing your community, comma-separated",
"logo-and-icons": "Site Logo & Icons",
"logo": "شعار الموقع",
"logo.image": "صورة",
"logo.image-placeholder": "Path to a logo to display on forum header",
"logo.upload": "رفع",

View File

@@ -1,6 +1,5 @@
{
"settings": "Settings",
"guest-settings": "Guest Settings",
"handles.enabled": "Allow guest handles",
"handles.enabled-help": "This option exposes a new field that allows guests to pick a name to associate with each post they make. If disabled, they will simply be called \"Guest\"",
"topic-views.enabled": "Allow guests to increase topic view counts",

View File

@@ -1,5 +1,4 @@
{
"navigation": "Navigation",
"icon": "Icon:",
"change-icon": "change",
"route": "Route:",
@@ -13,7 +12,7 @@
"groups": "Groups:",
"open-new-window": "Open in a new window",
"dropdown": "Dropdown",
"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a class=&quot;dropdown-item&quot; href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
"btn.delete": "Delete",
"btn.disable": "Disable",

View File

@@ -1,5 +1,4 @@
{
"general": "General",
"sorting": "Post Sorting",
"sorting.post-default": "Default Post Sorting",
"sorting.oldest-to-newest": "Oldest to Newest",
@@ -24,8 +23,10 @@
"restrictions.seconds-edit-after": "Number of seconds a post remains editable (set to 0 to disable)",
"restrictions.seconds-delete-after": "Number of seconds a post remains deletable (set to 0 to disable)",
"restrictions.replies-no-delete": "Number of replies after users are disallowed to delete their own topics (set to 0 to disable)",
"restrictions.title-length": "Title Length",
"restrictions.post-length": "Post Length",
"restrictions.min-title-length": "Minimum Title Length",
"restrictions.max-title-length": "Maximum Title Length",
"restrictions.min-post-length": "Minimum Post Length",
"restrictions.max-post-length": "Maximum Post Length",
"restrictions.days-until-stale": "Days until topic is considered stale",
"restrictions.stale-help": "If a topic is considered \"stale\", then a warning will be shown to users who attempt to reply to that topic.",
"timestamp": "Timestamp",
@@ -40,9 +41,10 @@
"teaser.last-reply": "Last &ndash; Show the latest reply, or a \"No replies\" placeholder if no replies",
"teaser.first": "First",
"showPostPreviewsOnHover": "Show a preview of posts when mouse overed",
"unread-and-recent": "Unread & Recent Settings",
"unread": "Unread Settings",
"unread.cutoff": "Unread cutoff days",
"unread.min-track-last": "Minimum posts in topic before tracking last read",
"recent": "Recent Settings",
"recent.max-topics": "Maximum topics on /recent",
"recent.categoryFilter.disable": "Disable filtering of topics in ignored categories on the /recent page",
"signature": "Signature Settings",

View File

@@ -11,7 +11,6 @@
"downvotes-per-day": "Downvotes per day (set to 0 for unlimited downvotes)",
"downvotes-per-user-per-day": "Downvotes per user per day (set to 0 for unlimited downvotes)",
"min-rep-chat": "Minimum reputation to send chat messages",
"min-rep-post-links": "Minimum reputation to post links",
"min-rep-flag": "Minimum reputation to flag posts",
"min-rep-website": "Minimum reputation to add \"Website\" to user profile",
"min-rep-aboutme": "Minimum reputation to add \"About me\" to user profile",
@@ -28,5 +27,5 @@
"flags.action-on-resolve": "Do the following when a flag is resolved",
"flags.action-on-reject": "Do the following when a flag is rejected",
"flags.action.nothing": "Do nothing",
"flags.action.rescind": "Rescind the notification sent to moderators/administrators"
"flags.action.rescind": "Rescind the notification send to moderators/administrators"
}

View File

@@ -1,4 +1,5 @@
{
"post-sharing": "Post Sharing",
"info-plugins-additional": "Plugins can add additional networks for sharing posts."
"info-plugins-additional": "Plugins can add additional networks for sharing posts.",
"save-success": "Successfully saved Post Sharing Networks!"
}

View File

@@ -3,7 +3,6 @@
"link-to-manage": "Manage Tags",
"system-tags": "System Tags",
"system-tags-help": "Only privileged users will be able to use these tags.",
"tags-per-topic": "Tags per topic",
"min-per-topic": "Minimum Tags per Topic",
"max-per-topic": "Maximum Tags per Topic",
"min-length": "Minimum Tag Length",

View File

@@ -1,7 +1,7 @@
{
"authentication": "المصادقة",
"email-confirm-interval": "لا يمكن للمستخدم إعادة إرسال رسالة تأكيد البريد الالكتروني حتى مرور",
"email-confirm-interval2": "minutes have elapsed",
"email-confirm-email2": "دقائق",
"allow-login-with": "السماح بتسجيل الدخول باستخدام",
"allow-login-with.username-email": "اسم المستخدم أو البريد الالكتروني",
"allow-login-with.username": "اسم المستخدم فقط",
@@ -29,8 +29,6 @@
"session-time-days": "Days",
"session-time-seconds": "Seconds",
"session-time-help": "These values are used to govern how long a user stays logged in when they check &quot;Remember Me&quot; on login. Note that only one of these values will be used. If there is no <i>seconds</i> value we fall back to <i>days</i>. If there is no <i>days</i> value we default to <i>14 days</i>.",
"session-duration": "Session length if \"Remember Me\" is not checked (seconds)",
"session-duration-help": "By default — or if set to <code>0</code> — a user will stay logged in for the duration of the session (e.g. however long the browser window/tab remains open). Set this value to explicitly invalidate the session after the specified number of seconds.",
"online-cutoff": "Minutes after user is considered inactive",
"online-cutoff-help": "If user performs no actions for this duration, they are considered inactive and they do not receive realtime updates.",
"registration": "تسجيل المستخدم",
@@ -59,7 +57,7 @@
"max-about-me-length": "الحد الأعلى من الأحرف في حقل \"عني\"",
"terms-of-use": "شروط استخدام المنتدى <small>(تترك فارغة لتعطيلها)</small>",
"user-search": "بحث الأعضاء",
"user-search-results-per-page": "Number of users to display in search results",
"user-search-results-per-page": "عدد النتائج المراد عرضها",
"default-user-settings": "إعدادات الأعضاء الافتراضية",
"show-email": "عرض البريد الإلكتروني",
"show-fullname": "عرض الاسم الكامل",

View File

@@ -22,8 +22,6 @@
"reset.notify.subject": "تم تغيير كلمة المرور بنجاح",
"reset.notify.text1": "نحيطك علما أن كلمة مرورك قد تم تغييرها في %1",
"reset.notify.text2": "إن لم يكن لديك علم بهذا، المرجو إشعار مدبر النظام بأسرع مايمكن.",
"digest.unread-rooms": "Unread rooms",
"digest.room-name-unreadcount": "%1 (%2 unread)",
"digest.latest_topics": "آخر المستجدات من %1",
"digest.top-topics": "Top topics from %1",
"digest.popular-topics": "Popular topics from %1",
@@ -37,7 +35,6 @@
"digest.title.week": "Your Weekly Digest",
"digest.title.month": "Your Monthly Digest",
"notif.chat.subject": "هناك محادثة جديدة من %1",
"notif.chat.public-chat-subject": "New message from %1 in room %2",
"notif.chat.cta": "انقر هنا لمتابعة المحادثة",
"notif.chat.unsub.info": "تم إرسال هذا الإشعار بوجودة محادثة جديدة وفقا لخيارات تسجيلك.",
"notif.post.unsub.info": "تم إشعارك بهذه المشاركة بناءً على الخيارات التي سبق وأن حددتها.",

View File

@@ -42,7 +42,6 @@
"user-doesnt-have-email": "User \"%1\" does not have an email set.",
"email-confirm-failed": "لم نستطع تفعيل بريدك الإلكتروني، المرجو المحاولة لاحقًا.",
"confirm-email-already-sent": "لقد تم ارسال بريد التأكيد، الرجاء اﻹنتظار 1% دقائق لإعادة اﻹرسال",
"confirm-email-expired": "Confirmation email expired",
"sendmail-not-found": "The sendmail executable could not be found, please ensure it is installed and executable by the user running NodeBB.",
"digest-not-enabled": "This user does not have digests enabled, or the system default is not configured to send digests",
"username-too-short": "اسم المستخدم قصير.",
@@ -55,7 +54,6 @@
"user-banned-reason-until": "Sorry, this account has been banned until %1 (Reason: %2)",
"user-too-new": "عذرا, يجب أن تنتظر 1% ثواني قبل قيامك بأول مشاركة",
"blacklisted-ip": "نأسف، لقد تم حظرك من استخدام وتصفح المنتدى. إذا كنت تعتقد أن هذا خطأ رجاءًا اتصل بالإدارة. ",
"cant-blacklist-self-ip": "You can't blacklist your own IP",
"ban-expiry-missing": "رجاءًا ضع تاريخ نهاية الحظر. ",
"no-category": "قائمة غير موجودة",
"no-topic": "موضوع غير موجود",
@@ -64,7 +62,6 @@
"no-user": "اسم مستخدم غير موجود",
"no-teaser": "مقتطف غير موجود",
"no-flag": "Flag does not exist",
"no-chat-room": "Chat room does not exist",
"no-privileges": "لاتملك الصلاحيات اللازمة للقيام بهذه العملية",
"category-disabled": "قائمة معطلة",
"topic-locked": "الموضوع مقفول",
@@ -91,10 +88,8 @@
"category-not-selected": "Category not selected.",
"too-many-posts": "يسمح لك بالنشر مرة كل %1 ثانية - يرجى الإنتظار قبل النشر مجدداً",
"too-many-posts-newbie": "As a new user, you can only post once every %1 second(s) until you have earned %2 reputation - please wait before posting again",
"already-posting": "You are already posting",
"tag-too-short": "Please enter a longer tag. Tags should contain at least %1 character(s)",
"tag-too-long": "Please enter a shorter tag. Tags can't be longer than %1 character(s)",
"tag-not-allowed": "Tag not allowed",
"not-enough-tags": "Not enough tags. Topics must have at least %1 tag(s)",
"too-many-tags": "Too many tags. Topics can't have more than %1 tag(s)",
"cant-use-system-tag": "You can not use this system tag.",
@@ -104,7 +99,6 @@
"guest-upload-disabled": "خاصية رفع الملفات غير مفعلة للزوار.",
"cors-error": "Unable to upload image due to misconfigured CORS",
"upload-ratelimit-reached": "You have uploaded too many files at one time. Please try again later.",
"upload-error-fallback": "Unable to upload image — %1",
"scheduling-to-past": "Please select a date in the future.",
"invalid-schedule-date": "Please enter a valid date and time.",
"cant-pin-scheduled": "Scheduled topics cannot be (un)pinned.",
@@ -138,8 +132,6 @@
"group-already-requested": "سبق وتم تسجيل طلب العضوية",
"group-join-disabled": "You are not able to join this group at this time",
"group-leave-disabled": "You are not able to leave this group at this time",
"group-user-not-pending": "User does not have a pending request to join this group.",
"gorup-user-not-invited": "User has not been invited to join this group.",
"post-already-deleted": "سبق وتم حذف هذا الرد",
"post-already-restored": "سبق وتم إلغاء حذف هذا الرد",
"topic-already-deleted": "سبق وتم حذف هذا الموضوع",
@@ -163,16 +155,12 @@
"chat-deleted-already": "This chat message has already been deleted.",
"chat-restored-already": "This chat message has already been restored.",
"chat-room-does-not-exist": "Chat room does not exist.",
"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.",
"already-voting-for-this-post": "لقد شاركت بالتصويت ، ألا تذكر؟",
"reputation-system-disabled": "نظام السمعة معطل",
"downvoting-disabled": "التصويتات السلبية معطلة",
"not-enough-reputation-to-chat": "You need %1 reputation to chat",
"not-enough-reputation-to-upvote": "You need %1 reputation to upvote",
"not-enough-reputation-to-downvote": "You need %1 reputation to downvote",
"not-enough-reputation-to-post-links": "You need %1 reputation to post links",
"not-enough-reputation-to-flag": "You need %1 reputation to flag this post",
"not-enough-reputation-min-rep-website": "You need %1 reputation to add a website",
"not-enough-reputation-min-rep-aboutme": "You need %1 reputation to add an about me",
@@ -201,7 +189,6 @@
"not-in-room": "المستخدم غير موجود في الغرفة.",
"cant-kick-self": "لا يمكنك طرد نفسك من المجموعة.",
"no-users-selected": "لا يوجد مستخدم محدد.",
"no-groups-selected": "No group(s) selected",
"invalid-home-page-route": "Invalid home page route",
"invalid-session": "Invalid Session",
"invalid-session-text": "It looks like your login session is no longer active. Please refresh this page.",
@@ -232,6 +219,5 @@
"api.429": "You have made too many requests, please try again later",
"api.500": "An unexpected error was encountered while attempting to service your request.",
"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."
"api.503": "The route you are trying to call is not currently available due to a server configuration"
}

View File

@@ -3,27 +3,25 @@
"reports": "Reports",
"first-reported": "First Reported",
"no-flags": "Hooray! No flags found.",
"x-flags-found": "%1 flag(s) found.",
"assignee": "المحال إليه",
"update": "تحديث",
"updated": "تم التحديث",
"resolved": "Resolved",
"target-purged": "The content this flag referred to has been purged and is no longer available.",
"target-aboutme-empty": "This user has no &quot;About Me&quot; set.",
"graph-label": "Daily Flags",
"quick-filters": "Quick Filters",
"filter-active": "There are one or more filters active in this list of flags",
"filter-reset": "ازالة الفلاتر",
"filters": "خيارات الفلتر",
"filter-reporterId": "Reporter",
"filter-targetUid": "Reportee",
"filter-reporterId": "Reporter UID",
"filter-targetUid": "Flagged UID",
"filter-type": "عنوان العلامة",
"filter-type-all": "كل المحتوي",
"filter-type-post": "مشاركة",
"filter-type-user": "مستخدم",
"filter-state": "الحالة",
"filter-assignee": "Assignee",
"filter-assignee": "Assignee UID",
"filter-cid": "Category",
"filter-quick-mine": "Assigned to me",
"filter-cid-all": "All categories",
@@ -47,7 +45,6 @@
"notes": "Flag Notes",
"add-note": "اضافة ملاحظة",
"edit-note": "Edit Note",
"no-notes": "No shared notes.",
"delete-note-confirm": "Are you sure you want to delete this flag note?",
"delete-flag-confirm": "Are you sure you want to delete this flag?",

View File

@@ -4,13 +4,13 @@
"buttons.close": "أغلق",
"403.title": "غير مسموح بالدخول",
"403.message": "يبدو أنك قد تعثرت على صفحة لا تمتلك الصلاحية للدخول إليها",
"403.login": "Perhaps you should <a class=\"alert-link\" href='%1/login'>try logging in</a>?",
"403.login": "ربما يجب عليك <a href='%1/login'>تسجل دخولك</a>.",
"404.title": "لم يتم العثور",
"404.message": "You seem to have stumbled upon a page that does not exist.<br/><div class=\"text-sm text-muted\">Return to the <a href='%1/'>home page</a>.</div>",
"404.message": "الصفحة غير موجودة. العودة لـ <a href='%1/'>الرئيسية</a>",
"500.title": "خطأ داخلي",
"500.message": "عفوا! يبدو وكأنه شيء ذهب على نحو خاطئ!",
"400.title": "طلب سيئ",
"400.message": "It looks like this link is malformed, please double-check and try again.<br/><div class=\"text-sm text-muted\">Return to the <a href='%1/'>home page</a>.</div>",
"400.message": "الرابط غير صحيح. رجاءًا تأكد من الرابط أو ارجع لـ <a href='%1/'>الرئيسية</a>",
"register": "تسجيل",
"login": "دخول",
"please_log_in": "الرجاء تسجيل الدخول",
@@ -20,8 +20,6 @@
"you_have_successfully_logged_in": "تم سجيل الدخول بنجاح",
"save_changes": "حفظ التغييرات",
"save": "حفظ",
"create": "Create",
"cancel": "Cancel",
"close": "أغلق",
"pagination": "الصفحات",
"pagination.out_of": "%1 من %2",
@@ -39,20 +37,14 @@
"header.notifications": "التنبيهات",
"header.search": "بحث",
"header.profile": "ملف",
"header.account": "Account",
"header.navigation": "الاستكشاف",
"header.manage": "Manage",
"header.drafts": "Drafts",
"notifications.loading": "تحميل التنبيهات",
"chats.loading": "تحميل الدردشات",
"drafts.loading": "Loading Drafts",
"motd.welcome": "مرحبا بكم في NodeBB، منصة المناقشة المستقبلية.",
"previouspage": "الصفحة السابقة",
"nextpage": "الصفحة التالية",
"alert.success": "نجاح",
"alert.error": "خطأ",
"alert.warning": "Warning",
"alert.info": "Info",
"alert.banned": "محظور",
"alert.banned.message": "You have just been banned, your access is now restricted.",
"alert.unbanned": "Unbanned",
@@ -62,9 +54,7 @@
"users": "الأعضاء",
"topics": "المواضيع",
"posts": "المشاركات",
"x-posts": "<span class=\"formatted-number\">%1</span> posts",
"x-topics": "<span class=\"formatted-number\">%1</span> topics",
"x-reputation": "<span class=\"formatted-number\">%1</span> reputation",
"x-posts": "%1 posts",
"best": "الأفضل",
"controversial": "Controversial",
"votes": "Votes",
@@ -79,7 +69,6 @@
"reputation": "السمعة",
"lastpost": "Last post",
"firstpost": "First post",
"about": "About",
"read_more": "اقرأ المزيد",
"more": "المزيد",
"none": "None",
@@ -93,13 +82,11 @@
"user_posted_ago": "%1 كتب %2",
"guest_posted_ago": "كتب زائر %1",
"last_edited_by": "اخر تحرير بواسطة 1%",
"edited-timestamp": "Edited %1",
"norecentposts": "لاوجود لمشاركات جديدة",
"norecenttopics": "لاوجود لمواضيع جديدة",
"recentposts": "آخر المشاركات",
"recentips": "آخر عناوين ال IP التي سجلت الدخول",
"moderator_tools": "أدوات المشرف",
"status": "Status",
"online": "المتواجدون حاليًّا",
"away": "غير متواجد",
"dnd": "عدم الإزعاج",
@@ -135,9 +122,5 @@
"edited": "حُرِر",
"disabled": "معطل",
"select": "تحديد",
"copied": "Copied",
"user-search-prompt": "Type something here to find users...",
"hidden": "Hidden",
"sort": "Sort",
"actions": "Actions"
"user-search-prompt": "Type something here to find users..."
}

View File

@@ -1,7 +1,5 @@
{
"all-groups": "All groups",
"groups": "المجموعات",
"members": "Members",
"view_group": "معاينة المجموعة",
"owner": "مالك المجموعة",
"new_group": "أنشئ مجموعة جديدة",

View File

@@ -1,17 +1,11 @@
{
"chat.room-id": "Room %1",
"chat.chatting_with": "Chat with",
"chat.placeholder": "Type chat message here, drag & drop images, press enter to send",
"chat.placeholder.mobile": "Type chat message here",
"chat.scroll-up-alert": "Go to most recent message",
"chat.usernames-and-x-others": "%1 & %2 others",
"chat.chat-with-usernames": "Chat with %1",
"chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others",
"chat.scroll-up-alert": "You are looking at older messages, click here to go to most recent message.",
"chat.send": "أرسل",
"chat.no_active": "لا يوجد لديك دردشات نشطة.",
"chat.user_typing": "%1 يكتب رسالة...",
"chat.user_has_messaged_you": "%1 أرسل لك رسالة.",
"chat.replying-to": "Replying to %1",
"chat.see_all": "All chats",
"chat.mark_all_read": "Mark all read",
"chat.no-messages": "المرجو اختيار مرسل إليه لمعاينة تاريخ الدردشات",
@@ -29,47 +23,25 @@
"chat.three_months": "3 أشهر",
"chat.delete_message_confirm": "هل أنت متأكد من أنك تريد حذف هذه الرسالة؟",
"chat.retrieving-users": "Retrieving users...",
"chat.view-users-list": "View users list",
"chat.public-rooms": "Public Rooms (%1)",
"chat.private-rooms": "Private Rooms (%1)",
"chat.create-room": "Create Chat Room",
"chat.private.option": "Private (Only visible to users added to room)",
"chat.public.option": "Public (Visible to every user in selected groups)",
"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": "Manage Chat Room",
"chat.add-user": "Add User",
"chat.notification-settings": "Notification Settings",
"chat.default-notification-setting": "Default Notification Setting",
"chat.notification-setting-room-default": "Room Default",
"chat.notification-setting-none": "No notifications",
"chat.notification-setting-at-mention-only": "@mention only",
"chat.notification-setting-all-messages": "All messages",
"chat.select-groups": "Select Groups",
"chat.add-user-help": "Search for users here. When selected, the user will be added to the chat. The new user will not be able to see chat messages written before they were added to the conversation. Only room owners (<i class=\"fa fa-star text-warning\"></i>) may remove users from chat rooms.",
"chat.confirm-chat-with-dnd-user": "This user has set their status to DnD(Do not disturb). Do you still want to chat with them?",
"chat.room-name-optional": "Room Name (Optional)",
"chat.rename-room": "Rename Room",
"chat.rename-placeholder": "Enter your room name here",
"chat.rename-help": "The room name set here will be viewable by all participants in the room.",
"chat.leave": "Leave",
"chat.leave-room": "Leave Room",
"chat.leave": "Leave Chat",
"chat.leave-prompt": "Are you sure you wish to leave this chat?",
"chat.leave-help": "Leaving this chat will remove you from future correspondence in this chat. If you are re-added in the future, you will not see any chat history from prior to your re-joining.",
"chat.delete": "Delete",
"chat.delete-room": "Delete Room",
"chat.delete-prompt": "Are you sure you wish to delete this chat room?",
"chat.in-room": "In this room",
"chat.kick": "Kick",
"chat.show-ip": "Show IP",
"chat.owner": "Room Owner",
"chat.grant-rescind-ownership": "Grant/Rescind Ownership",
"chat.system.user-join": "%1 has joined the room <span class=\"timeago\" title=\"%2\"></span>",
"chat.system.user-leave": "%1 has left the room <span class=\"timeago\" title=\"%2\"></span>",
"chat.system.room-rename": "%2 has renamed this room to \"%1\" <span class=\"timeago\" title=\"%3\"></span>",
"chat.system.user-join": "%1 has joined the room",
"chat.system.user-leave": "%1 has left the room",
"chat.system.room-rename": "%2 has renamed this room: %1",
"composer.compose": "اكتب",
"composer.show_preview": "عرض المعاينة",
"composer.hide_preview": "إخفاء المعاينة",
"composer.help": "Help",
"composer.user_said_in": "%1 كتب في %2",
"composer.user_said": "%1 كتب:",
"composer.discard": "هل أنت متأكد أنك تريد التخلي عن التغييرات؟",
@@ -92,11 +64,7 @@
"composer.schedule-date": "Date",
"composer.schedule-time": "Time",
"composer.cancel-scheduling": "Cancel Scheduling",
"composer.change-schedule-date": "Change Date",
"composer.set-schedule-date": "Set Date",
"composer.discard-all-drafts": "Discard all drafts",
"composer.no-drafts": "You have no drafts",
"composer.discard-draft-confirm": "Do you want to discard this draft?",
"bootbox.ok": "OK",
"bootbox.cancel": "إلغاء",
"bootbox.confirm": "تأكيد",

View File

@@ -15,41 +15,31 @@
"replies": "ردود",
"chat": "محادثات",
"group-chat": "Group Chats",
"public-chat": "Public Chats",
"follows": "متابعون",
"upvote": "الموافقين",
"new-flags": "New Flags",
"my-flags": "Flags assigned to me",
"bans": "الحظر",
"new_message_from": "رسالة جديدة من <strong>%1</strong>",
"user_posted_in_public_room": "<strong>%1</strong> wrote in <strong><i class=\"fa %2\"></i>%3</strong>",
"user_posted_in_public_room_dual": "<strong>%1</strong> and <strong>%2</strong> wrote in <strong><i class=\"fa %3\"></i>%4</strong>",
"user_posted_in_public_room_triple": "<strong>%1</strong>, <strong>%2</strong> and <strong>%3</strong> wrote in <strong><i class=\"fa %4\"></i>%5</strong>",
"user_posted_in_public_room_multiple": "<strong>%1</strong>, <strong>%2</strong> and %3 others wrote in <strong><i class=\"fa %4\"></i>%5</strong>",
"upvoted_your_post_in": "<strong>%1</strong> أضاف صوتًا إيجابيا إلى مشاركتك في <strong>%2</strong>.",
"upvoted_your_post_in_dual": "<strong>%1</strong> and <strong>%2</strong> have upvoted your post in <strong>%3</strong>.",
"upvoted_your_post_in_triple": "<strong>%1</strong>, <strong>%2</strong> and <strong>%3</strong> have upvoted your post in <strong>%4</strong>.",
"upvoted_your_post_in_multiple": "<strong>%1</strong>, <strong>%2</strong> and %3 others have upvoted your post in <strong>%4</strong>.",
"upvoted_your_post_in_multiple": "<strong>%1</strong> and %2 others have upvoted your post in <strong>%3</strong>.",
"moved_your_post": "<strong>%1</strong> has moved your post to <strong>%2</strong>",
"moved_your_topic": "<strong>%1</strong> has moved <strong>%2</strong>",
"user_flagged_post_in": "<strong>%1</strong> أشعَرَ بمشاركة مخلة في <strong>%2</strong>",
"user_flagged_post_in_dual": "<strong>%1</strong> and <strong>%2</strong> flagged a post in <strong>%3</strong>",
"user_flagged_post_in_triple": "<strong>%1</strong>, <strong>%2</strong> and <strong>%3</strong> flagged a post in <strong>%4</strong>",
"user_flagged_post_in_multiple": "<strong>%1</strong>, <strong>%2</strong> and %3 others flagged a post in <strong>%4</strong>",
"user_flagged_post_in_multiple": "<strong>%1</strong> and %2 others flagged a post in <strong>%3</strong>",
"user_flagged_user": "<strong>%1</strong> flagged a user profile (%2)",
"user_flagged_user_dual": "<strong>%1</strong> and <strong>%2</strong> flagged a user profile (%3)",
"user_flagged_user_triple": "<strong>%1</strong>, <strong>%2</strong> and <strong>%3</strong> flagged a user profile (%4)",
"user_flagged_user_multiple": "<strong>%1</strong>, <strong>%2</strong> and %3 others flagged a user profile (%4)",
"user_flagged_user_multiple": "<strong>%1</strong> and %2 others flagged a user profile (%3)",
"user_posted_to": "<strong>%1</strong> أضاف ردا إلى: <strong>%2</strong>",
"user_posted_to_dual": "<strong>%1</strong> and <strong>%2</strong> have posted replies to: <strong>%3</strong>",
"user_posted_to_triple": "<strong>%1</strong>, <strong>%2</strong> and <strong>%3</strong> have posted replies to: <strong>%4</strong>",
"user_posted_to_multiple": "<strong>%1</strong>, <strong>%2</strong> and %3 others have posted replies to: <strong>%4</strong>",
"user_posted_to_multiple": "<strong>%1</strong> and %2 others have posted replies to: <strong>%3</strong>",
"user_posted_topic": "<strong>%1</strong> أنشأ موضوعًا جديدًا: <strong>%2</strong>",
"user_edited_post": "<strong>%1</strong> has edited a post in <strong>%2</strong>",
"user_started_following_you": "<strong>%1</strong> صار يتابعك.",
"user_started_following_you_dual": "<strong>%1</strong> and <strong>%2</strong> started following you.",
"user_started_following_you_triple": "<strong>%1</strong>, <strong>%2</strong> and <strong>%3</strong> started following you.",
"user_started_following_you_multiple": "<strong>%1</strong>, <strong>%2</strong> and %3 others started following you.",
"user_started_following_you_multiple": "<strong>%1</strong> and %2 others started following you.",
"new_register": "<strong>%1</strong> sent a registration request.",
"new_register_multiple": "There are <strong>%1</strong> registration requests awaiting review.",
"flag_assigned_to_you": "تم تخصيص العلامة 1% لك",
@@ -76,7 +66,6 @@
"notificationType_follow": "When someone starts following you",
"notificationType_new-chat": "When you receive a chat message",
"notificationType_new-group-chat": "When you receive a group chat message",
"notificationType_new-public-chat": "When you receive a public group chat message",
"notificationType_group-invite": "When you receive a group invite",
"notificationType_group-leave": "When a user leaves your group",
"notificationType_group-request-membership": "When someone requests to join a group you own",

View File

@@ -14,7 +14,6 @@
"flagged-content": "Flagged Content",
"ip-blacklist": "IP Blacklist",
"post-queue": "Post Queue",
"registration-queue": "Registration Queue",
"users/online": "اﻷعضاء المتصلون",
"users/latest": "أحدث اﻷعضاء",
"users/sort-posts": "الأعضاء الأكثر نشاطاً",
@@ -50,7 +49,6 @@
"account/watched_categories": "%1's Watched Categories",
"account/bookmarks": "%1's Bookmarked Posts",
"account/settings": "خيارات المستخدم",
"account/settings-of": "Changing settings of %1",
"account/watched": "Topics watched by %1",
"account/ignored": "Topics ignored by %1",
"account/upvoted": "Posts upvoted by %1",
@@ -61,7 +59,7 @@
"account/uploads": "Uploads by %1",
"account/sessions": "Login Sessions",
"confirm": "تم التحقق من عنوان البريد الإلكتروني",
"maintenance.text": "%1 is currently undergoing maintenance.<br/>Please come back another time.",
"maintenance.text": "جاري صيانة %1. المرجو العودة لاحقًا.",
"maintenance.messageIntro": "بالإضافة إلى ذلك، قام مدبر النظام بترك هذه الرسالة:",
"throttled.text": "%1 is currently unavailable due to excessive load. Please come back another time."
}

View File

@@ -1,12 +1,8 @@
{
"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": "To enable this feature, go to <a href=\"%1\">Settings &rarr; Post &rarr; Post Queue</a> and enable <strong>Post Queue</strong>.",
"back-to-list": "Back to Post Queue",
"description": "There are no posts in the post queue. <br> To enable this feature, go to <a href=\"%1\">Settings &rarr; Post &rarr; Post Queue</a> and enable <strong>Post Queue</strong>.",
"user": "User",
"when": "When",
"category": "Category",
"title": "Title",
"content": "Content",
@@ -23,7 +19,6 @@
"notify": "Notify",
"notify-user": "Notify User",
"confirm-reject": "Do you want to reject this post?",
"confirm-remove": "Do you want to remove this post?",
"bulk-actions": "Bulk Actions",
"accept-all": "Accept All",
"accept-selected": "Accept Selected",
@@ -31,10 +26,6 @@
"reject-all-confirm": "Do you want to reject all posts?",
"reject-selected": "Reject Selected",
"reject-selected-confirm": "Do you want to reject %1 selected posts?",
"remove-all": "Remove all",
"remove-all-confirm": "Do you want to remove all posts?",
"remove-selected": "Remove Selected",
"remove-selected-confirm": "Do you want to remove %1 selected posts?",
"bulk-accept-success": "%1 posts accepted",
"bulk-reject-success": "%1 posts rejected"
}

View File

@@ -7,5 +7,13 @@
"alltime": "دائمًا",
"no_recent_topics": "لايوجد مواضيع جديدة",
"no_popular_topics": "لا يوجد مواضيع شائعة",
"load-new-posts": "Load new posts"
"there-is-a-new-topic": "يوجد موضوع جديد",
"there-is-a-new-topic-and-a-new-post": "يوجد موضوع جديد و رد جديد",
"there-is-a-new-topic-and-new-posts": "يوجد موضوع جديد و %1 ردود جديدة ",
"there-are-new-topics": "يوجد %1 مواضيع جديدة",
"there-are-new-topics-and-a-new-post": "يوجد %1 مواضيع جديدة و رد جديد",
"there-are-new-topics-and-new-posts": "يوجد %1 مواضيع جديدة و %2 مشاركات جديدة",
"there-is-a-new-post": "يوجد مشاركة جديدة",
"there-are-new-posts": "يوجد %1 مشاركات جديدة",
"click-here-to-reload": "إضغط هنا لإعادة التحميل"
}

View File

@@ -1,6 +1,5 @@
{
"register": "تسجيل",
"already-have-account": "Already have an account?",
"cancel_registration": "إلغاء التسجيل",
"help.email": "افتراضيا، سيتم إخفاء بريدك الإلكتروني من العامة.",
"help.username_restrictions": "اسم مستخدم فريدة من نوعها بين 1% و 2% حرفا. بإمكان الآخرين مناداتك بـ @<span id='yourUsername'>اسم المستخدم</span>.",

View File

@@ -1,41 +1,21 @@
{
"type-to-search": "Type to search",
"results_matching": "%1 نتيجة (نتائج) موافقة لـ \"%2\", (%3 ثواني)",
"no-matches": "لم يتم العثور على نتائج.",
"advanced-search": "بحث متقدم",
"in": "في",
"in-titles": "In titles",
"in-titles-posts": "In titles and posts",
"in-posts": "In posts",
"in-categories": "In categories",
"in-users": "In users",
"in-tags": "In tags",
"categories": "Categories",
"all-categories": "All categories",
"categories-x": "Categories: %1",
"categories-watched-categories": "Categories: Watched categories",
"type-a-category": "Type a category",
"tags": "Tags",
"tags-x": "Tags: %1",
"type-a-tag": "Type a tag",
"titles": "العناوين",
"titles-posts": "العناوين والمشاركات",
"match-words": "Match words",
"match-all-words": "Match all words",
"match-any-word": "Match any word",
"all": "All",
"any": "Any",
"posted-by": "مشاركة من طرف",
"posted-by-usernames": "Posted by: %1",
"type-a-username": "Type a username",
"in-categories": "في الفئات",
"search-child-categories": "بحث في الفئات الفرعية",
"has-tags": "Has tags",
"reply-count": "عدد المشاركات",
"replies": "Replies",
"replies-atleast-count": "Replies: At least %1",
"replies-atmost-count": "Replies: At most %1",
"at-least": "على اﻷقل",
"at-most": "على اﻷكثر",
"relevance": "Relevance",
"time": "Time",
"post-time": "تاريخ المشاركة",
"votes": "Votes",
"newer-than": "أحدث من",
@@ -48,22 +28,7 @@
"three-months": "ثلاثة أشهر",
"six-months": "ستة أشهر",
"one-year": "عام",
"time-newer-than-86400": "Time: Newer than yesterday",
"time-older-than-86400": "Time: Older than yesterday",
"time-newer-than-604800": "Time: Newer than one week",
"time-older-than-604800": "Time: Older than one week",
"time-newer-than-1209600": "Time: Newer than two weeks",
"time-older-than-1209600": "Time: Older than two weeks",
"time-newer-than-2592000": "Time: Newer than one month",
"time-older-than-2592000": "Time: Older than one month",
"time-newer-than-7776000": "Time: Newer than three months",
"time-older-than-7776000": "Time: Older than three months",
"time-newer-than-15552000": "Time: Newer than six months",
"time-older-than-15552000": "Time: Older than six months",
"time-newer-than-31104000": "Time: Newer than one year",
"time-older-than-31104000": "Time: Older than one year",
"sort-by": "عرض حسب",
"sort": "Sort",
"last-reply-time": "تاريخ آخر رد",
"topic-title": "عنوان الموضوع",
"topic-votes": "Topic votes",
@@ -74,36 +39,11 @@
"category": "فئة",
"descending": "في ترتيب تنازلي",
"ascending": "في ترتيب تصاعدي",
"sort-by-relevance-desc": "Sort by: Relevance in descending order",
"sort-by-relevance-asc": "Sort by: Relevance in ascending order",
"sort-by-timestamp-desc": "Sort by: Post time in descending order",
"sort-by-timestamp-asc": "Sort by: Post time in ascending order",
"sort-by-votes-desc": "Sort by: Votes in descending order",
"sort-by-votes-asc": "Sort by: Votes in ascending order",
"sort-by-topic.lastposttime-desc": "Sort by: Last reply time in descending order",
"sort-by-topic.lastposttime-asc": "Sort by: Last reply time in ascending order",
"sort-by-topic.title-desc": "Sort by: Topic title in descending order",
"sort-by-topic.title-asc": "Sort by: Topic title in ascending order",
"sort-by-topic.postcount-desc": "Sort by: Number of replies in descending order",
"sort-by-topic.postcount-asc": "Sort by: Number of replies in ascending order",
"sort-by-topic.viewcount-desc": "Sort by: Number of views in descending order",
"sort-by-topic.viewcount-asc": "Sort by: Number of views in ascending order",
"sort-by-topic.votes-desc": "Sort by: Topic votes in descending order",
"sort-by-topic.votes-asc": "Sort by: Topic votes in ascending order",
"sort-by-topic.timestamp-desc": "Sort by: Topic start date in descending order",
"sort-by-topic.timestamp-asc": "Sort by: Topic start date in ascending order",
"sort-by-user.username-desc": "Sort by: Username in descending order",
"sort-by-user.username-asc": "Sort by: Username in ascending order",
"sort-by-category.name-desc": "Sort by: Category in descending order",
"sort-by-category.name-asc": "Sort by: Category in ascending order",
"save": "Save",
"save-preferences": "حفظ التفضيلات",
"clear-preferences": "ازالة التفضيلات",
"search-preferences-saved": "تم حفظ تفضيلات البحث",
"search-preferences-cleared": "تم ازالة تفضيلات البحث",
"show-results-as": "عرض النتائج كـ",
"show-results-as-topics": "Show results as topics",
"show-results-as-posts": "Show results as posts",
"see-more-results": "See more results (%1)",
"search-in-category": "Search in \"%1\""
}

View File

@@ -1,10 +0,0 @@
{
"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": "التسجيل باستخدام فيسبوك"
}

View File

@@ -1,11 +1,8 @@
{
"all-tags": "All tags",
"no_tag_topics": "لا يوجد مواضيع بهذه الكلمة الدلالية.",
"no-tags-found": "No tags found",
"tags": "الكلمات الدلالية",
"enter_tags_here": "Enter tags here, between %1 and %2 characters each.",
"enter_tags_here_short": "أدخل الكلمات الدلالية...",
"no_tags": "لا يوجد كلمات دلالية بعد.",
"select_tags": "Select Tags",
"tag-whitelist": "Tag Whitelist"
"select_tags": "Select Tags"
}

View File

@@ -1,16 +0,0 @@
{
"theme-name": "Harmony Theme",
"skins": "Skins",
"collapse": "Collapse",
"expand": "Expand",
"login-register-to-search": "Login or register to search.",
"settings.title": "Theme settings",
"settings.enableQuickReply": "Enable quick reply",
"settings.centerHeaderElements": "Center header elements",
"settings.mobileTopicTeasers": "Show topic teasers on mobile",
"settings.stickyToolbar": "Sticky toolbar",
"settings.stickyToolbar.help": "The toolbar on topic and category pages will stick to the top of the page",
"settings.autohideBottombar": "Auto hide bottom bar",
"settings.autohideBottombar.help": "The bottom bar on mobile view will be hidden when the page is scrolled down",
"settings.chatModals": "Enable chat modals"
}

View File

@@ -1,10 +0,0 @@
{
"settings.title": "Theme settings",
"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",
"settings.autoHidingNavbar-xs": "Very small screens (e.g. phones in portrait mode)",
"settings.autoHidingNavbar-sm": "Smaller screens (e.g. phones, some tablets)",
"settings.autoHidingNavbar-md": "Medium sized screens (e.g. tablets in landscape mode)",
"settings.autoHidingNavbar-lg": "Larger screens (e.g. desktop computers)"
}

View File

@@ -1,6 +1,6 @@
{
"topic": "موضوع",
"title": "العنوان",
"title": "Title",
"no_topics_found": "لا توجد مواضيع !",
"no_posts_found": "لا توجد مشاركات!",
"post_is_deleted": "هذه المشاركة محذوفة!",
@@ -12,12 +12,12 @@
"notify_me": "تلق تنبيهات بالردود الجديدة في هذا الموضوع",
"quote": "اقتبس",
"reply": "رد",
"replies_to_this_post": "%1 الردود",
"one_reply_to_this_post": "1 رد",
"last_reply_time": "آخر رد",
"replies_to_this_post": "%1 Replies",
"one_reply_to_this_post": "1 Reply",
"last_reply_time": "Last reply",
"reply-as-topic": "رد بموضوع",
"guest-login-reply": "يجب عليك تسجيل الدخول للرد",
"login-to-view": "سجل الدخول للمشاهدة",
"login-to-view": "🔒 Log in to view",
"edit": "تعديل",
"delete": "حذف",
"delete-event": "Delete Event",
@@ -32,38 +32,23 @@
"tools": "أدوات",
"locked": "مقفل",
"pinned": "مثبت",
"pinned-with-expiry": "مثبت حتى %1",
"pinned-with-expiry": "Pinned until %1",
"scheduled": "Scheduled",
"moved": "منقول",
"moved-from": "Moved from %1",
"copy-code": "Copy Code",
"copy-ip": "Copy IP",
"ban-ip": "Ban IP",
"view-history": "Edit History",
"wrote-ago": "wrote <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
"wrote-on": "wrote on <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
"replied-to-user-ago": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> <a href=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
"replied-to-user-on": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> on <a href=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
"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-queued-post-ago": "%1 <a href=\"%2\">queued</a> post for approval %3",
"user-queued-post-on": "%1 <a href=\"%2\">queued</a> post for approval on %3",
"user-referenced-topic-ago": "%1 <a href=\"%2\">referenced</a> this topic %3",
"user-referenced-topic-on": "%1 <a href=\"%2\">referenced</a> this topic on %3",
"user-forked-topic-ago": "%1 <a href=\"%2\">forked</a> this topic %3",
"user-forked-topic-on": "%1 <a href=\"%2\">forked</a> this topic on %3",
"locked-by": "Locked by",
"unlocked-by": "Unlocked by",
"pinned-by": "Pinned by",
"unpinned-by": "Unpinned by",
"deleted-by": "Deleted by",
"restored-by": "Restored by",
"moved-from-by": "Moved from %1 by",
"queued-by": "Post queued for approval &rarr;",
"backlink": "Referenced by",
"forked-by": "Forked by",
"bookmark_instructions": "اضغط هنا للعودة لأخر مشاركة مقروءة في الموضوع",
"flag-post": "Flag this post",
"flag-user": "Flag this user",
@@ -102,7 +87,6 @@
"thread_tools.change_owner": "Change Owner",
"thread_tools.select_category": "Select Category",
"thread_tools.fork": "إنشاء فرع الموضوع",
"thread_tools.tag": "Tag Topic",
"thread_tools.delete": "حذف الموضوع",
"thread_tools.delete-posts": "مشاركات محذوفة",
"thread_tools.delete_confirm": "هل أنت متأكد أنك تريد حذف هذا الموضوع؟",
@@ -111,7 +95,7 @@
"thread_tools.purge": "تطهير الموضوع",
"thread_tools.purge_confirm": "هل أنت متأكد أنك تريد تطهير هذا الموضوع؟",
"thread_tools.merge_topics": "Merge Topics",
"thread_tools.merge": "Merge Topic",
"thread_tools.merge": "Merge",
"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.",
@@ -137,7 +121,7 @@
"post_moved": "تم نقل المشاركة",
"fork_topic": "فرع الموضوع",
"enter-new-topic-title": "Enter new topic title",
"fork_topic_instruction": "Click the posts you want to fork, enter a title for the new topic and click fork topic",
"fork_topic_instruction": "إضغط على المشاركات التي تريد تفريعها",
"fork_no_pids": "لم تختر أي مشاركة",
"no-posts-selected": "No posts selected!",
"x-posts-selected": "%1 post(s) selected",
@@ -152,19 +136,16 @@
"merge-new-title-for-topic": "New title for topic",
"topic-id": "Topic ID",
"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",
"composer.title_placeholder": "أدخل عنوان موضوعك هنا...",
"composer.handle_placeholder": "Enter your name/handle here",
"composer.hide": "Hide",
"composer.discard": "نبذ التغييرات",
"composer.submit": "حفظ",
"composer.additional-options": "Additional Options",
"composer.post-later": "Post Later",
"composer.schedule": "Schedule",
"composer.replying_to": "الرد على %1",
"composer.new_topic": "موضوع جديد",
"composer.editing-in": "Editing post in %1",
"composer.editing": "Editing",
"composer.uploading": "جاري الرفع",
"composer.thumb_url_label": "ألصق رابط الصورة المصغرة للموضوع",
"composer.thumb_title": "إضافة صورة مصغرة للموضوع",
@@ -203,7 +184,5 @@
"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",
"post-quick-reply": "Quick reply",
"navigator.index": "Post %1 of %2",
"navigator.unread": "%1 unread"
"post-quick-reply": "Post quick reply"
}

View File

@@ -1,6 +1,6 @@
{
"banned": "محظور",
"muted": "كتم ",
"muted": "Muted",
"offline": "غير متصل",
"deleted": "محذوف",
"username": "إسم المستخدم",
@@ -9,7 +9,7 @@
"email": "البريد الإلكتروني",
"confirm_email": "تأكيد عنوان البريد الإلكتروني",
"account_info": "معلومات الحساب",
"admin_actions_label": "الإجراءات الإدارية",
"admin_actions_label": "Administrative Actions",
"ban_account": "حظر الحساب",
"ban_account_confirm": "هل تريد حقاً حظر هاذا العضو؟",
"unban_account": "إزالة حظر الحساب",
@@ -24,7 +24,7 @@
"delete_account_content_confirm": "Are you sure you want to delete this account's content (posts/topics/uploads)? <br /><strong>This action is irreversible and you will not be able to recover any data</strong><br /><br />",
"delete_all_confirm": "Are you sure you want to delete this account and all of its content (posts/topics/uploads)? <br /><strong>This action is irreversible and you will not be able to recover any data</strong><br /><br />",
"account-deleted": "تم حذف الحساب",
"account-content-deleted": "تم حذف محتوى حساب",
"account-content-deleted": "Account content deleted",
"fullname": "الاسم الكامل",
"website": "الموقع الإلكتروني",
"location": "الموقع",
@@ -34,26 +34,25 @@
"profile": "الملف الشخصي",
"profile_views": "عدد المشاهدات",
"reputation": "السمعة",
"bookmarks": "المفضلات",
"watched_categories": "الأقسام المُتابعة",
"change_all": "غير الكل",
"bookmarks": "Bookmarks",
"watched_categories": "Watched categories",
"change_all": "Change All",
"watched": "متابع",
"ignored": "تم تجاهله",
"default-category-watch-state": "حالة مشاهدة اﻻقسام الافتراضية",
"default-category-watch-state": "Default category watch state",
"followers": "المتابعون",
"following": "يتابع",
"blocks": "الكتل",
"blocked-users": "Blocked users",
"block_toggle": "تبديل الكتلة",
"block_user": "أحظر المستخدم",
"unblock_user": "ألغ حظر المستخدم",
"blocks": "Blocks",
"block_toggle": "Toggle Block",
"block_user": "Block User",
"unblock_user": "Unblock User",
"aboutme": "معلومة عنك او السيرة الذاتية",
"signature": "توقيع",
"birthday": "عيد ميلاد",
"chat": "محادثة",
"chat_with": "متابعة الدردشة مع %1",
"new_chat_with": "بدء دردشة جديدة مع %1",
"flag-profile": "ضع علامة على الملف الشخصي",
"flag-profile": "Flag Profile",
"follow": "تابع",
"unfollow": "إلغاء المتابعة",
"more": "المزيد",
@@ -69,7 +68,6 @@
"upload_new_picture": "رفع صورة جديدة",
"upload_new_picture_from_url": "رفع صورة جديدة من رابط",
"current_password": "كلمة السر الحالية",
"new_password": "New Password",
"change_password": "تغيير كلمة السر",
"change_password_error": "كلمة سر غير صحيحة",
"change_password_error_wrong_current": "كلمة السر الحالية ليست صحيحة",
@@ -89,7 +87,7 @@
"remove_cover_picture_confirm": "هل تريد بالتأكيد إزالة صورة الغلاف؟",
"crop_picture": "إقتصاص الصورة",
"upload_cropped_picture": "إقتصاص ورفع",
"avatar-background-colour": "لون الخلفية للصورة الرمزية",
"avatar-background-colour": "Avatar background colour",
"settings": "خيارات",
"show_email": "أظهر بريدي الإلكتروني",
"show_fullname": "أظهر اسمي الكامل",
@@ -110,18 +108,16 @@
"has_no_ignored_topics": "هذا المستخدم لم يقم بتجاهل اية مواضيع حتى الآن.",
"has_no_upvoted_posts": "هذا المستخدم لم يقم بالتصويت للأعلى لأي مشاركة حتى الآن.",
"has_no_downvoted_posts": "هذا المستخدم لم يقم بالتصويت للأسفل لأي مشاركة حتى الآن.",
"has_no_controversial_posts": "هذا المستخدم ﻻيمتلك تصويت للأسفل لأي مشاركة حتى الآن.",
"has_no_blocks": "أنت لم تحظر اي مستخدم",
"has_no_controversial_posts": "This user does not have any downvoted posts yet.",
"has_no_blocks": "You have blocked no users.",
"email_hidden": "البريد الإلكتروني مخفي",
"hidden": "مخفي",
"paginate_description": "عرض المواضيع والردود موزعة على صفحات عوضاً عن التمرير اللانهائي.",
"topics_per_page": "المواضيع في كل صفحة",
"posts_per_page": "الردود في كل صفحة",
"category-topic-sort": "Category topic sort",
"topic-post-sort": "Topic post sort",
"max_items_per_page": "أقصى %1",
"acp_language": "لغة صفحة اﻻدارة",
"notifications": "التنبيهات",
"acp_language": "Admin Page Language",
"notifications": "Notifications",
"upvote-notif-freq": "معدل تكرار تنبيهات التصويت للأعلى",
"upvote-notif-freq.all": "كل التصويتات للأعلى",
"upvote-notif-freq.first": "First Per Post",
@@ -141,8 +137,6 @@
"group-order-help": "Select a group and use the arrows to order titles",
"no-group-title": "لا يوجد عنوان للمجموعة",
"select-skin": "إختر سمة",
"default": "Default (%1)",
"no-skin": "No Skin",
"select-homepage": "إختر الصفحة الرئيسية",
"homepage": "الصفحة الرئيسية",
"homepage_description": "حدد صفحة لاستخدامها كصفحة رئيسية للمنتدى أو \"لا شيء\" لاستخدام الصفحة الرئيسية الافتراضية.",
@@ -174,8 +168,6 @@
"info.moderation-note.success": "تم حفظ ملاحظة الإشراف",
"info.moderation-note.add": "إضافة ملاحظة",
"sessions.description": "This page allows you to view any active sessions on this forum and revoke them if necessary. You can revoke your own session by logging out of your account.",
"revoke-session": "Revoke Session",
"browser-version-on-platform": "%1 %2 on %3",
"consent.title": "Your Rights &amp; Consent",
"consent.lead": "This community forum collects and processes your personal information.",
"consent.intro": "We use this information strictly to personalise your experience in this community, as well as to associate the posts you make to your user account. During the registration step you were asked to provide a username and email address, you can also optionally provide additional information to complete your user profile on this website.<br /><br />We retain this information for the life of your user account, and you are able to withdraw consent at any time by deleting your account. At any time you may request a copy of your contribution to this website, via your Rights &amp; Consent page.<br /><br />If you have any questions or concerns, we encourage you to reach out to this forum's administrative team.",
@@ -203,6 +195,5 @@
"emailUpdate.optional": "<strong>This field is optional</strong>. You are not obligated to provide your email address, but without a validated email you will not be able to recover your account or login with your email.",
"emailUpdate.required": "<strong>This field is required</strong>.",
"emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page.",
"emailUpdate.password-challenge": "Please enter your password in order to verify account ownership.",
"emailUpdate.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.password-challenge": "Please enter your password in order to verify account ownership."
}

View File

@@ -1,19 +1,18 @@
{
"all-users": "All Users",
"latest_users": "أحدث الأعضاء",
"top_posters": "اﻷكثر مشاركة",
"most_reputation": "أعلى سمعة",
"most_flags": "معظم الأعلام",
"most_flags": "Most Flags",
"search": "بحث",
"enter_username": "أدخل اسم مستخدم للبحث",
"search-user-for-chat": "Search for a user to start chat",
"search-user-for-chat": "ابحث عن مستخدم لبدء محادثة ",
"load_more": "حمل المزيد",
"users-found-search-took": "تم إيجاد %1 مستخدمـ(ين)! استغرق البحث %2 ثانية.",
"filter-by": "تصفية بحسب",
"filter-by": "Filter By",
"online-only": "المتصلون فقط",
"invite": "دعوة",
"prompt-email": "البريد الإلكتروني:",
"groups-to-join": "المجموعات التي سيتم الانضمام إليها عند قبول الدعوة:",
"prompt-email": "Emails:",
"groups-to-join": "Groups to be joined when invite is accepted:",
"invitation-email-sent": "تم إرسال دعوة بالبريد الإلكتروني إلى %1",
"user_list": "قائمة اﻷعضاء",
"recent_topics": "أحدث المواضيع",

View File

@@ -7,12 +7,5 @@
"changes-saved": "Промените са запазени",
"changes-saved-message": "Промените Ви в настройките на NodeBB бяха запазени.",
"changes-not-saved": "Промените не са запазени",
"changes-not-saved-message": "Възникна проблем при запазването на промените Ви по NodeBB. (%1)",
"save-changes": "Запазване на промените",
"min": "Мин.:",
"max": "Макс.:",
"view": "Преглед",
"edit": "Редактиране",
"add": "Добавяне",
"select-icon": "Изберете иконка"
"changes-not-saved-message": "Възникна проблем при запазването на промените Ви по NodeBB. (%1)"
}

View File

@@ -1,5 +1,4 @@
{
"cache": "Кеш",
"post-cache": "Кеш за публикации",
"group-cache": "Кеш за групи",
"local-cache": "Локален кеш",

View File

@@ -5,7 +5,7 @@
"uptime-seconds": "Активно време в секунди",
"uptime-days": "Активно време в дни",
"mongo": "MongoDB",
"mongo": "Mongo",
"mongo.version": "Версия на MongoDB",
"mongo.storage-engine": "Система за съхранение",
"mongo.collections": "Колекции",

View File

@@ -1,5 +1,4 @@
{
"errors": "Грешки",
"figure-x": "Фигура %1",
"error-events-per-day": "<code>%1</code> събития на ден",
"error.404": "Страницата не е намерена (Грешка 404)",

View File

@@ -1,8 +1,7 @@
{
"customise": "Персонализиране",
"custom-css": "Персонализиран CSS/SASS",
"custom-css.description": "Въведете своите собствени декларации на CSS/SASS. Те ще бъдат приложени след всички останали стилове.",
"custom-css.enable": "Включване на персонализиран CSS/SASS",
"custom-css": "Персонализиран CSS/LESS",
"custom-css.description": "Въведете своите собствени декларации на CSS/LESS, те ще бъдат приложени след всички останали стилове.",
"custom-css.enable": "Включване на персонализиран CSS/LESS",
"custom-js": "Персонализиран код на Javascript",
"custom-js.description": "Въведете свой собствен код на javascript тук. Той ще бъде изпълнен след като страницата се зареди напълно.",
@@ -13,8 +12,5 @@
"custom-header.enable": "Включване на персонализирана заглавна част",
"custom-css.livereload": "Включване на моменталното презареждане",
"custom-css.livereload.description": "Ако включите това, всички сесии на всяко устройство, където използвате акаунта си, ще се презареждат, когато натискате „Запазване“.",
"bsvariables": "_variables.scss",
"bsvariables.description": "Тук може да промените променливите на bootstrap. Можете също да използвате и инструмент като <a href=\"https://bootstrap.build/app\">bootstrap.build</a> и да копирате резултата от него тук.<br/>Промените изискват повторно изграждане и рестартиране.",
"bsvariables.enable": "Включване на _variables.scss"
"custom-css.livereload.description": "Ако включите това, всички сесии на всяко устройство, където използвате акаунта си, ще се презареждат, когато натискате „Запазване“."
}

View File

@@ -1,16 +1,7 @@
{
"skins": "Облици",
"bootswatch-skins": "Облици от Bootswatch",
"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“ беше успешно приложен",

View File

@@ -1,9 +1,7 @@
{
"themes": "Теми",
"checking-for-installed": "Проверяване за инсталирани теми…",
"homepage": "Начална страница",
"select-theme": "Изберете тема",
"revert-theme": "Отмяна на темата",
"current-theme": "Текуща тема",
"no-themes": "Няма намерени инсталирани теми",
"revert-confirm": "Наистина ли искате да възстановите стандартната тема на NodeBB?",

View File

@@ -26,13 +26,13 @@
"updates": "Обновления",
"running-version": "Вие използвате <strong>NodeBB версия <span id=\"version\">%1</span></strong>.",
"keep-updated": "Стремете се винаги да използвате най-новата версия на NodeBB, за да се възползвате от последните подобрения на сигурността и поправки на проблеми.",
"up-to-date": "Вие използвате <strong>най-новата версия</strong> <i class=\"fa fa-check\"></i>",
"upgrade-available": "Има нова версия (%1). Ако имате възможност, <a href=\"https://docs.nodebb.org/configuring/upgrade/\" target=\"_blank\">обновете NodeBB</a>.",
"prerelease-upgrade-available": "Това е остаряла предварителна версия на NodeBB. Има нова версия (%1). Ако имате възможност, <a href=\"https://docs.nodebb.org/configuring/upgrade/\" target=\"_blank\">обновете NodeBB</a>.",
"prerelease-warning": "Това е <strong>предварителна версия</strong> на NodeBB. Възможно е да има неочаквани неизправности. <i class=\"fa fa-exclamation-triangle\"></i>",
"up-to-date": "<p>Вие използвате <strong>най-новата версия</strong> <i class=\"fa fa-check\"></i></p>",
"upgrade-available": "<p>Има нова версия (версия %1). Ако имате възможност, <a href=\"https://docs.nodebb.org/configuring/upgrade/\" target=\"_blank\">обновете NodeBB</a>.</p>",
"prerelease-upgrade-available": "<p>Това е остаряла предварителна версия на NodeBB. Има нова версия (версия %1). Ако имате възможност, <a href=\"https://docs.nodebb.org/configuring/upgrade/\" target=\"_blank\">обновете NodeBB</a>.</p>",
"prerelease-warning": "<p>Това е версия за <strong>предварителен преглед</strong> на NodeBB. Възможно е да има неочаквани неизправности. <i class=\"fa fa-exclamation-triangle\"></i></p>",
"fallback-emailer-not-found": "Не е намерен резервен изпращач на е-поща",
"running-in-development": "Форумът работи в режим за разработчици, така че може да бъде уязвим. Моля, свържете се със системния си администратор.",
"latest-lookup-failed": "Не може да бъде извършена проверка за последната налична версия на NodeBB",
"running-in-development": "<span>Форумът работи в режим за разработчици, така че може да бъде уязвим. Моля, свържете се със системния си администратор.</span>",
"latest-lookup-failed": "<p>Не може да бъде извършена проверка за последната налична версия на NodeBB</p>",
"notices": "Забележки",
"restart-not-required": "Не се изисква рестартиране",
@@ -48,7 +48,6 @@
"restart-disabled": "Възможностите за повторно изграждане и рестартиране на NodeBB са изключени, тъй като изглежда, че NodeBB не се изпълнява чрез подходящия демон.",
"maintenance-mode": "Режим на профилактика",
"maintenance-mode-title": "Щракнете тук, за да зададете режим на профилактика на NodeBB",
"dark-mode": "Тъмен режим",
"realtime-chart-updates": "Актуализации на таблиците в реално време",
"active-users": "Дейни потребители",
@@ -84,15 +83,8 @@
"back-to-dashboard": "Назад към таблото",
"details.no-users": "В избрания период не са се регистрирали нови потребители",
"details.no-topics": "В избрания период не са публикувани нови теми",
"details.no-searches": "В избрания период не са правени търсения",
"details.no-searches": "Все още не са правени търсения",
"details.no-logins": "В избрания период не са отчетени вписвания",
"details.logins-static": "NodeBB запазва данни за сесията в продължение на %1 дни, така че в следната таблица могат да се видят само последните активни сесии",
"details.logins-login-time": "Време на вписване",
"start": "Начало",
"end": "Край",
"filter": "Филтриране",
"view-as-json": "Преглед като JSON",
"expand-analytics": "Разгъване на данните за анализ",
"clear-search-history": "Изчистване на историята на търсенията",
"clear-search-history-confirm": "Наистина ли искате да изчистите историята на търсенията?"
"details.logins-login-time": "Време на вписване"
}

View File

@@ -1,5 +1,4 @@
{
"logger": "Журнал",
"logger-settings": "Настройки на журнала",
"description": "Ако поставите отметки тук, Вие ще виждате журнала в терминала си. Ако посочите пътечка, то вместо това журналите ще бъдат записвани във файл. Журналът чрез HTTP е удобен за получаване на статистика за това кога, кои и какви хора посещават форума Ви. В допълнение към следенето на заявките чрез HTTP, можем също да следим и събитията на socket.io. Журналът на Socket.io, в комбинация с redis-cli, може да Ви бъде много полезно, ако искате да разучите как работи NodeBB.",
"explanation": "За да включите или изключите журналите в реално време, просто поставете или премахнете отметките в настройките на журнала. Няма нужда от рестартиране.",

View File

@@ -1,5 +1,4 @@
{
"plugins": "Добавки",
"trending": "Популярни",
"installed": "Инсталирани",
"active": "Включени",

View File

@@ -1,12 +1,10 @@
{
"rewards": "Награди",
"add-reward": "Добавяне на награда",
"condition-if-users": "Ако потребителският(ата/ото)",
"condition-is": "Е:",
"condition-then": "Тогава:",
"max-claims": "Колко пъти може да бъде получавана наградата",
"zero-infinite": "0 = безкраен брой пъти",
"select-reward": "Изберете награда",
"delete": "Изтриване",
"enable": "Включване",
"disable": "Изключване",

View File

@@ -1,5 +1,4 @@
{
"widgets": "Джаджи",
"available": "Налични джаджи",
"explanation": "Изберете джаджа от падащото меню, а след това я завлачете и пуснете в областта за джаджи в някой от шаблоните вляво.",
"none-installed": "Няма намерени джаджи! Включете добавката с основните джаджи в контролния панел за <a href=\"%1\">добавките</a>.",
@@ -9,9 +8,9 @@
"containers.none": "Няма",
"container.well": "Кладенец",
"container.jumbotron": "Джъмботрон",
"container.card": "Карта",
"container.card-header": "Заглавна част на карта",
"container.card-body": "Основна част на карта",
"container.panel": "Панел",
"container.panel-header": "Заглавна част на панел",
"container.panel-body": "Основна част на панел",
"container.alert": "Предупреждение",
"alert.confirm-delete": "Наистина ли искате да изтриете джаджата?",
@@ -27,7 +26,5 @@
"container.placeholder": "Завлачете и пуснете контейнер или въведете HTML тук.",
"show-to-groups": "Показване на групите",
"hide-from-groups": "Скриване от групите",
"start-date": "Начална дата",
"end-date": "Крайна дата",
"hide-on-mobile": "Скриване на мобилни устройства"
}

View File

@@ -1,11 +1,10 @@
{
"manage-admins-and-mods": "Управление на администраторите и модераторите",
"administrators": "Администратори",
"global-moderators": "Глобални модератори",
"moderators": "Модератори",
"no-global-moderators": "Няма глобални модератори",
"no-sub-categories": "Няма подкатегории",
"view-children": "Преглед на подкатегориите (%1)",
"subcategories": "%1 подкатегории",
"no-moderators": "Няма модератори",
"add-administrator": "Добавяне на администратор",
"add-global-moderator": "Добавяне на глобален модератор",

View File

@@ -1,11 +1,7 @@
{
"manage-categories": "Управление на категориите",
"add-category": "Добавяне на категория",
"jump-to": "Прехвърляне към…",
"settings": "Настройки на категорията",
"edit-category": "Редактиране на категорията",
"privileges": "Правомощия",
"back-to-categories": "Назад към категориите",
"name": "Име на категорията",
"description": "Описание на категорията",
"bg-color": "Цвят на фона",
@@ -19,10 +15,8 @@
"post-queue": "Опашка за публикации",
"tag-whitelist": "Списък от разрешени етикети",
"upload-image": "Качване на изображение",
"upload": "Качване",
"delete-image": "Премахване",
"category-image": "Изображение на категорията",
"image-and-icon": "Изображение и иконка",
"parent-category": "Базова категория",
"optional-parent-category": "(Незадължително) Базова категория",
"top-level": "Най-горно ниво",
@@ -37,7 +31,6 @@
"disable": "Изключване",
"edit": "Редактиране",
"analytics": "Анализи",
"view-category": "Преглед на категорията",
"set-order": "Запазване на реда",
"set-order-help": "Задаването на позиция за категорията ще я премести на желаното място и ще промени местата на другите категории, ако е необходимо. Най-малкият възможен номер е 1, което ще постави категорията най-отгоре.",

View File

@@ -1,10 +1,4 @@
{
"manage-groups": "Управление на групите",
"add-group": "Добавяне на група",
"edit-group": "Редактиране на групата",
"back-to-groups": "Назад към групите",
"view-group": "Преглед на групата",
"icon-and-title": "Иконка и заглавие",
"name": "Име на групата",
"badge": "Емблема",
"properties": "Свойства",
@@ -16,7 +10,7 @@
"edit": "Редактиране",
"delete": "Изтриване",
"privileges": "Правомощия",
"members-csv": "Членове (CSV)",
"download-csv": "CSV",
"search-placeholder": "Търсене",
"create": "Създаване на група",
"description-placeholder": "Кратко описание на групата",
@@ -45,5 +39,6 @@
"revert": "Отмяна",
"edit.no-users-found": "Няма намерени потребители",
"edit.confirm-remove-user": "Наистина ли искате да премахнете този потребител?"
"edit.confirm-remove-user": "Наистина ли искате да премахнете този потребител?",
"edit.save-success": "Промените са запазени!"
}

View File

@@ -1,6 +1,4 @@
{
"manage-privileges": "Управление на правомощията",
"discard-changes": "Отхвърляне на промените",
"global": "Глобални",
"admin": "Администратор",
"group-privileges": "Правомощия за групите",
@@ -51,6 +49,7 @@
"alert.confirm-moderate": "<strong>Наистина ли искате да дадете правомощието за модериране на тази потребителска група?</strong> Тази група е публична и всеки може свободно да се присъедини към нея.",
"alert.confirm-admins-mods": "<strong>Наистина ли искате да дадете правото „Администратори и модератори“ на този потребител/група?</strong> Потребителите с това право могат да променят правомощията на други групи, <em>включително да им дават правото на супер администратори</em>",
"alert.confirm-save": "Моля, потвърдете желанието си да запазите тези правомощия",
"alert.saved": "Промените по правомощията са запазени и приложени",
"alert.confirm-discard": "Наистина ли искате да отхвърлите промените по правомощията?",
"alert.discarded": "Промените по правомощията са отхвърлени",
"alert.confirm-copyToAll": "Наистина ли искате да приложите този набор от <strong>%1</strong> към <strong>всички категории</strong>?",

View File

@@ -1,11 +1,9 @@
{
"manage-tags": "Управление на етикетите",
"none": "Форумът все още няма теми с етикети.",
"bg-color": "Цвят на фона",
"text-color": "Цвят на текста",
"description": "Изберете етикетите чрез щракване или влачене. Използвайте <code>CTRL</code>, за да изберете няколко етикета.",
"create": "Създаване на етикет",
"add-tag": "Добавяне на етикет",
"modify": "Редактиране на етикети",
"rename": "Преименуване на етикети",
"delete": "Изтриване на избраните етикети",

View File

@@ -1,5 +1,4 @@
{
"manage-uploads": "Управление на качванията",
"upload-file": "Качване на файл",
"filename": "Име на файла",
"usage": "Използване в публикации",

View File

@@ -1,5 +1,4 @@
{
"manage-users": "Управление на потребителите",
"users": "Потребители",
"edit": "Действия",
"make-admin": "Даване на администраторски права",
@@ -18,7 +17,6 @@
"purge": "Изтриване на <strong>потребителя/ите</strong> и <strong>съдържанието</strong>",
"download-csv": "Сваляне във формат „CSV“",
"manage-groups": "Управление на групите",
"set-reputation": "Задаване на репутация",
"add-group": "Добавяне на група",
"create": "Създаване на потребител",
"invite": "Поканване по е-поща",
@@ -51,10 +49,6 @@
"users.username": "потребителско име",
"users.email": "е-поща",
"users.no-email": "(няма е-поща)",
"users.validated": "Потвърдена",
"users.not-validated": "Непотвърдена",
"users.validation-pending": "Очаква потвърждение",
"users.validation-expired": "Изтекла давност на потвърждението",
"users.ip": "IP адрес",
"users.postcount": "брой публикации",
"users.reputation": "репутация",

View File

@@ -14,7 +14,6 @@
"manage/users": "Потребители",
"manage/admins-mods": "Администратори и модератори",
"manage/registration": "Регистрационна опашка",
"manage/flagged-content": "Докладвано съдържание",
"manage/post-queue": "Опашка за публикации",
"manage/groups": "Групи",
"manage/ip-blacklist": "Черен списък за IP адреси",
@@ -69,13 +68,11 @@
"advanced/logs": "Журнали",
"advanced/errors": "Грешки",
"advanced/cache": "Кеш",
"development/logger": "Журнал",
"development/logger": "Система на журнала",
"development/info": "Информация",
"rebuild-and-restart-forum": "Повторно изграждане и рестартиране на форума",
"rebuild-and-restart": "Повторно изграждане и рестартиране",
"restart-forum": "Рестартиране на форума",
"restart": "Рестартиране",
"logout": "Изход",
"view-forum": "Преглед на форума",

View File

@@ -3,7 +3,6 @@
"maintenance-mode.help": "Когато форумът е в режим на профилактика, всички заявки ще бъдат пренасочвани към статична страница за изчакване, с изключение на администраторите, които ще могат да използват уеб сайта нормално.",
"maintenance-mode.status": "Код на състоянието за режима на профилактика",
"maintenance-mode.message": "Съобщение за профилактиката",
"maintenance-mode.groups-exempt-from-maintenance-mode": "Изберете групи, които да бъдат изключени от режима на профилактика",
"headers": "Заглавни части",
"headers.allow-from": "Задайте „ALLOW-FROM“, за да поставите NodeBB в „iFrame“",
"headers.csp-frame-ancestors": "Задайте заглавката „Content-Security-Policy frame-ancestors“ за да поставите NodeBB „iFrame“",
@@ -20,8 +19,6 @@
"headers.coep-help": "Когато е включено (по подразбиране), стойността на заглавката ще бъде <code>require-corp</code>",
"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=()“. Вижте <a href=\"https://github.com/w3c/webappsec-permissions-policy/blob/main/permissions-policy-explainer.md\">тук</a> за повече информация.",
"hsts": "Стриктна транспортна сигурност",
"hsts.enabled": "Включване на HSTS (препоръчително)",
"hsts.maxAge": "Максимална възраст на HSTS",

View File

@@ -1,29 +1,16 @@
{
"tokens": "Идентификатор",
"tokens": "Кодове",
"settings": "Настройки",
"lead-text": "На тази страница можете да настроите достъпа до ППИ за писане в NodeBB.",
"intro": "По подразбиране ППИ за писане удостоверява потребителите чрез бисквитката им за сесията, но NodeBB поддържа и удостоверяване чрез метода „Bearer“, използвайки идентификаторите от тази страница.",
"warning": "<strong>Внимавайте</strong> отнасяйте се с идентификаторите като с пароли. Ако някой се сдобие с тях, може да получи достъп до акаунта Ви.",
"intro": "По подразбиране ППИ за писане удостоверява потребителите чрез бисквитката им за сесията, но NodeBB поддържа и удостоверяване чрез метода „Bearer“, използвайки кодовете от тази страница.",
"docs": "Щракнете тук за достъп до пълната документация на ППИ",
"require-https": "Ползването на ППИ да работи само чрез HTTPS",
"require-https-caveat": "<strong>Забележка</strong>: В някои случаи, когато се ползват програми за балансиране на натоварването, е възможно заявките към NodeBB да се препращат чрез HTTP тогава тази настройка трябва да остане изключена.",
"uid": "Потребителски ИД",
"token": "Идентификатор",
"uid-help-text": "Посочете потребителски ИД, който да бъде свързан с този код. Ако ИД е <code>0</code>, това ще се счита за <em>главен</em> код, който може да приема идентичността на всеки от другите потребители чрез параметъра <code>_uid</code>",
"description": "Описание",
"last-seen": "Последно видян",
"created": "Създаден",
"create-token": "Създаване на идентификатор",
"update-token": "Промяна на идентификатора",
"master-token": "Главен идентификатор",
"last-seen-never": "Този ключ не е използван никога.",
"no-description": "Няма описание.",
"actions": "Действия",
"edit": "Редактиране",
"roll": "Пресъздаване",
"delete-confirm": "Наистина ли искате да изтриете този идентификатор? След това няма да може да го възстановите.",
"roll-confirm": "Наистина ли искате да пресъздадете този идентификатор? Старият ще бъде премахнат незабавно и няма да може да бъде възстановен."
"token-on-save": "Кодът ще бъде създаден след като данните бъдат запазени"
}

View File

@@ -4,7 +4,6 @@
"disable-editing": "Изключване на редактирането и изтриването на съобщения в разговорите",
"disable-editing-help": "Това ограничение не засяга администраторите и глобалните модератори",
"max-length": "Максимална дължина на съобщенията в разговорите",
"max-chat-room-name-length": "Максимална дължина на имената на стаи за разговори",
"max-room-size": "Максимален брой потребители в стая за разговор",
"delay": "Време между съобщенията в разговорите (в милисекунди)",
"notification-delay": "Забавяне преди известяване за съобщения в разговорите. (0 без забавяне)",

View File

@@ -5,9 +5,6 @@
"from": "Име за полето „От“",
"from-help": "Името на изпращача, което да бъде показано в е-писмото.",
"confirmation-settings": "Потвърждение",
"confirmation.expiry": "Продължителност на давността на връзката за потвърждаване, в часове",
"smtp-transport": "Транспорт чрез SMTP",
"smtp-transport.enabled": "Включване на транспорта чрез SMTP",
"smtp-transport-help": "Можете да изберете от списък от познати услуги, или да въведете такава ръчно.",
@@ -42,7 +39,7 @@
"subscriptions.hour-help": "Моля, въведете число, представляващо часа, в който да се разпращат е-писма с подготвеното резюме (напр.. <code>0</code> за полунощ, <code>17</code> за 5 следобед). Имайте предвид, че този час е според часовата зона на сървъра и може да не съвпада с часовника на системата Ви.<br /> Приблизителното време на сървъра е: <span id=\"serverTime\"></span><br /> Изпращането на следващия ежедневен бюлетин е планирано за <span id=\"nextDigestTime\"></span>",
"notifications.remove-images": "Премахване на изображенията от известията по е-поща",
"require-email-address": "Новите потребители задължително трябва да предоставят е-поща",
"require-email-address-warning": "По подразбиране потребителите могат да не въвеждат адрес на е-поща, като оставят полето празно. Ако включите това, новите потребители задължително ще трябва да предоставят <strong>и потвърдят</strong> е-поща, за да могат да се регистрират и да получат достъп до форума. <strong>Това не означава, че потребителят ще въведе истинска е-поща, нито че тя ще е негова.</strong>",
"require-email-address-warning": "По подразбиране потребителите могат да не въвеждат адрес на е-поща, като оставят полето празно. Ако включите това, те задължително ще трябва да предоставят е-поща, за да могат да се регистрират. <strong>Това не означава, че потребителят ще въведе съществуваща е-поща, нито че тя ще е негова.</strong>",
"send-validation-email": "Изпращане на е-писма за потвърждение, когато бъде добавена или променена е-поща",
"include-unverified-emails": "Изпращане на е-писма към получатели, които не са потвърдили изрично е-пощата си",
"include-unverified-warning": "За потребителите, които имат свързана е-поща с регистрацията си, тя се смята за потвърдена. Но има ситуации, в които това не е така (например при ползване на регистрация от друга система, но и в други случаи), <strong>Включете тази настройка на собствен риск</strong> &ndash; изпращането на е-писма към непотвърдени адреси може да нарушава определени местни закони против нежеланата поща.",

View File

@@ -1,13 +1,11 @@
{
"general-settings": "Общи настройки",
"on-this-page": "На тази страница:",
"site-settings": "Настройки на уеб сайта",
"title": "Заглавие на уеб сайта",
"title.short": "Кратко заглавие",
"title.short-placeholder": "Ако не е посочено кратко заглавие, ще бъде използвано заглавието на уеб сайта",
"title.url": "Адрес за заглавието",
"title.url-placeholder": "Адресът за заглавието на уеб сайта",
"title.url-help": "Когато потребител щракне върху заглавието, той ще бъде прехвърлен към този адрес. Ако е празно, потребителят ще бъде изпратен към началната страница на форума. Забележка: Това не е външният адрес, който се ползва в е-писмата. Той се задава от свойството <code>url</code> във файла config.json.",
"title.url-help": "Когато потребител щракне върху заглавието, той ще бъде прехвърлен към този адрес. Ако е празно, потребителят ще бъде изпратен към началната страница на форума. <br> Забележка: Това не е външният адрес, който се ползва в е-писмата. Той се задава от свойството <code>url</code> във файла config.json",
"title.name": "Името на общността Ви",
"title.show-in-header": "Показване на заглавието на уеб сайта в заглавната част",
"browser-title": "Заглавие на браузъра",
@@ -18,7 +16,7 @@
"description": "Описание на уеб сайта",
"keywords": "Ключови думи на уеб сайта",
"keywords-placeholder": "Ключови думи, описващи общността Ви. Трябва да бъдат разделени със запетаи.",
"logo-and-icons": "Лого и иконки на уеб сайта",
"logo": "Лого на уеб сайта",
"logo.image": "Изображение",
"logo.image-placeholder": "Път до логото, което да бъде показано в заглавната част на форума",
"logo.upload": "Качване",

View File

@@ -1,6 +1,5 @@
{
"settings": "Настройки",
"guest-settings": "Настройки за гостите",
"handles.enabled": "Позволяване на имената за гостите",
"handles.enabled-help": "Тази възможност предоставя ново поле, което позволява на гостите да си изберат име, което да се използва за всяка публикация, която правят. Ако е изключено, всички те просто ще имат името „Гост“.",
"topic-views.enabled": "Гостите да допринасят за броя на преглеждания на темите",

View File

@@ -1,5 +1,4 @@
{
"navigation": "Навигация",
"icon": "Иконка:",
"change-icon": "промяна",
"route": "Маршрут:",
@@ -13,7 +12,7 @@
"groups": "Групи:",
"open-new-window": "Отваряне в нов прозорец",
"dropdown": "Падащо меню",
"dropdown-placeholder": "Въведете елементите на падащото меню по-долу. Пример: <br/>&lt;li&gt;&lt;a class=&quot;dropdown-item&quot; href&#x3D;&quot;https://myforum.com&quot;&gt;Връзка 1&lt;/a&gt;&lt;/li&gt;",
"dropdown-placeholder": "Въведете елементите на падащото меню по-долу. Пример: <br/>&lt;li&gt;&lt;a href&#x3D;&quot;https://myforum.com&quot;&gt;Връзка 1&lt;/a&gt;&lt;/li&gt;",
"btn.delete": "Изтриване",
"btn.disable": "Изключване",

View File

@@ -1,5 +1,4 @@
{
"general": "Общи",
"sorting": "Подредба на публикациите",
"sorting.post-default": "Подредба по подразбиране на публикациите",
"sorting.oldest-to-newest": "Първо най-старите",
@@ -24,8 +23,10 @@
"restrictions.seconds-edit-after": "Брой секунди, през които публикациите могат да бъдат редактирани. (0 = изключено)",
"restrictions.seconds-delete-after": "Брой секунди, през които публикациите могат да бъдат изтрити. (0 = изключено)",
"restrictions.replies-no-delete": "Брой отговори, след които потребителите вече не могат да изтриват собствените си теми. (0 = изключено)",
"restrictions.title-length": "Дължина на заглавието",
"restrictions.post-length": "Дължина на публикациите",
"restrictions.min-title-length": "Минимална дължина на заглавието",
"restrictions.max-title-length": "Максимална дължина на заглавието",
"restrictions.min-post-length": "Минимална дължина на публикацията",
"restrictions.max-post-length": "Максимална дължина на публикацията",
"restrictions.days-until-stale": "Брой дни, след които темата се смята за стара",
"restrictions.stale-help": "Ако дадена тема е определена като „стара“, то потребителите, които се опитат да пишат в нея, ще получат предупредително съобщение.",
"timestamp": "Време",
@@ -40,9 +41,10 @@
"teaser.last-reply": "Последната &ndash; Показване на последния отговор, или „Няма отговори“, ако все още няма такива.",
"teaser.first": "Първата",
"showPostPreviewsOnHover": "Показване на кратък преглед на публикациите при посочване с мишката",
"unread-and-recent": "Настройки за скорошните и непрочетените",
"unread": "Настройки за непрочетените",
"unread.cutoff": "Възраст на публикациите, след която те не се показват в непрочетените (в брой дни)",
"unread.min-track-last": "Минимален брой публикации в темата, след което да започва следене на последно прочетената",
"recent": "Настройки за скорошните",
"recent.max-topics": "Максимален брой теми в скорошните",
"recent.categoryFilter.disable": "Изключване на филтрирането на темите в пренебрегваните категории на страницата /recent",
"signature": "Настройки за подписите",

View File

@@ -11,7 +11,6 @@
"downvotes-per-day": "Отрицателни гласувания за ден (задайте 0 за неограничен брой)",
"downvotes-per-user-per-day": "Отрицателни гласувания за потребител за ден (задайте 0 за неограничен брой)",
"min-rep-chat": "Минимална репутация, необходима за изпращане на съобщения в разговори",
"min-rep-post-links": "Минимална репутация, необходима за публикуване на връзки",
"min-rep-flag": "Минимална репутация, необходима за докладване на публикации",
"min-rep-website": "Минимална репутация, необходима за добавяне на полето „Уебсайт“ към профила на потребителя",
"min-rep-aboutme": "Минимална репутация, необходима за добавяне на полето „За мен“ към профила на потребителя",

View File

@@ -1,4 +1,5 @@
{
"post-sharing": "Споделяне на публикации",
"info-plugins-additional": "Добавките могат да добавят допълнителни мрежи за споделяне на публикации."
"info-plugins-additional": "Добавките могат да добавят допълнителни мрежи за споделяне на публикации.",
"save-success": "Мрежите за споделяне на публикации са запазени успешно!"
}

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