mirror of
https://github.com/NodeBB/NodeBB.git
synced 2026-06-22 11:30:22 +02:00
Merge commit '45dfeeb033672e6537e8a8efd7a2970129a86a5a' into v1.13.x
This commit is contained in:
233
CHANGELOG.md
233
CHANGELOG.md
@@ -1,3 +1,236 @@
|
||||
#### 1.13.3 (2020-05-08)
|
||||
|
||||
##### Chores
|
||||
|
||||
* incrementing version number - v1.13.3 (ee583e80)
|
||||
* bump persona (d2bd746c)
|
||||
* incrementing version number - v1.13.2 (beafd613)
|
||||
* **deps:**
|
||||
* update dependency coveralls to v3.1.0 (5ed4a108)
|
||||
* pin dependency @apidevtools/swagger-parser to 9.0.1 (51eccef5)
|
||||
* update dependency husky to v4.2.5 (30a25983)
|
||||
* update dependency husky to v4.2.4 (0a650118)
|
||||
* update dependency lint-staged to v10.1.3 (a9e68639)
|
||||
* update dependency nyc to v15.0.1 (#8231) (a3789e28)
|
||||
* update dependency lint-staged to v10.1.2 (#8235) (e1919c90)
|
||||
* update dependency lint-staged to v10.1.1 (944a6f58)
|
||||
* update dependency lint-staged to v10.1.0 (30bd233b)
|
||||
* update dependency eslint-config-airbnb-base to v14.1.0 (811c3aee)
|
||||
* update dependency jsdom to v16.2.2 (c5a7242d)
|
||||
* update dependency eslint-plugin-import to v2.20.2 (b92c1600)
|
||||
* update dependency lint-staged to v10.0.10 (0ad4b556)
|
||||
* update dependency coveralls to v3.0.11 (14458087)
|
||||
* update dependency smtp-server to v3.6.0 (22681945)
|
||||
* update dependency mocha to v7.1.1 (#8215) (c5356541)
|
||||
* update dependency grunt to v1.1.0 (#8214) (b0864e7c)
|
||||
* update dependency husky to v4.2.3 (#8162) (776fe9d2)
|
||||
* update dependency lint-staged to v10.0.8 (#8180) (13d8f6f1)
|
||||
* update dependency eslint-plugin-import to v2.20.1 (#8081) (4cdb3131)
|
||||
* update dependency jsdom to v16.2.1 (#8165) (fbd95a50)
|
||||
* update dependency husky to v4.2.2 (#8160) (f4ed35c9)
|
||||
* update dependency jsdom to v16 (#8114) (1037de02)
|
||||
|
||||
##### Documentation Changes
|
||||
|
||||
* updated changelog (146388aa)
|
||||
|
||||
##### New Features
|
||||
|
||||
* allow activating additional plugins for testing via config.json (a969c5ce)
|
||||
* move plugin tests to separate file (3a23ddab)
|
||||
* remove node14 for now (a72e4429)
|
||||
* reduce infinite scroll area (3fcbd691)
|
||||
* manifest.json improvements from #8126 (#8264) (6e5ebb61)
|
||||
* show error if json is invalid (15345627)
|
||||
* moved component specs into separate files (cd506557)
|
||||
* added UserObject, UserObjectFull, Breadcrumb, Pagination component (64d79fe5)
|
||||
* added some summary and descriptions (ae3e90d6)
|
||||
* add some descriptions (442c018e)
|
||||
* common schema (eade13f9)
|
||||
* openapi component (1af5507a)
|
||||
* add page query param to docs (9987813f)
|
||||
* tag route doc (bbddaadf)
|
||||
* local redoc view on development mode only (1136a369)
|
||||
* added auto-generated, slimmed-down openapi 3.0 file for read api (7b155dab)
|
||||
* add parent cids to body class (23571224)
|
||||
* add 2 hooks for modifying privileges (d080c7b0)
|
||||
* add user ip to admin/dev/info (5e91a67e)
|
||||
* change option name (cba5b23e)
|
||||
* add no-build to ./nodebb setup (476f6717)
|
||||
* add awaitable socket.emit (4083a6e3)
|
||||
* settings sorted list (#8170) (3c9689a5)
|
||||
* guard against accidental ommision (79737c53)
|
||||
* **openapi:**
|
||||
* merging openapi-test branch into master (8387178b)
|
||||
* move all commonprops out for commonprops component (65c78de6)
|
||||
* added template to commonprops (2425f453)
|
||||
|
||||
##### Bug Fixes
|
||||
|
||||
* #8302, send string to writeFileSync (d09bd2cf)
|
||||
* winston showing json object (7d081843)
|
||||
* sortable topics even if only 1 pinned topic (6765de3d)
|
||||
* #8298, use class name added by jQueryUI instead (dd2bc189)
|
||||
* topic search shortcut for macs (f2c725c6)
|
||||
* #8297, uids.length is different than topics.length (0431d75f)
|
||||
* #8297 guest handles shown in category.tpl (fcb81cb8)
|
||||
* only add to set if numRecentReplies>0 (16a98eaf)
|
||||
* #8293, don't show error if there are no self messages (be305410)
|
||||
* failing tests @julianlam (ecd622fd)
|
||||
* #3321, run plugin tests for installed plugins (a6bb9f43)
|
||||
* remove deprecated mocha.opts (3d0db963)
|
||||
* spec (84383d39)
|
||||
* #8290, if there are no filters go to ?reset=1 (9839346e)
|
||||
* #8283, update gdpr link again (2d076344)
|
||||
* add missing await (4f1128fd)
|
||||
* #8287, dont readd user after deletion (9d153fd3)
|
||||
* missing await (4d6b2ec3)
|
||||
* #8286, rescind notif when its resolved/rejected (0391856d)
|
||||
* #8284, parse ToS on register (0ca84bd9)
|
||||
* #8283, point to official site (17d664e0)
|
||||
* jquery xhtml violations (275e837b)
|
||||
* #8274 Don't escape HTML in manage users (#8275) (4855f1de)
|
||||
* crash in topic controller (0c7c70ed)
|
||||
* crash when res.locals.linkTags is undefined (7cab2b0f)
|
||||
* #8272 user link in digest email (e80b8101)
|
||||
* tag of /api/unread/total (9ffdab02)
|
||||
* response hook logic (5a1c6ee7)
|
||||
* remove upload picture test (avatars) (6edf02d4)
|
||||
* remove tests related to group covers, as route is gone (442fe65f)
|
||||
* #8269, return array of topics from hook (4eafe0f0)
|
||||
* remove dead picture upload code #8260 (ef52461f)
|
||||
* path.resolve to logs file (5bcaf715)
|
||||
* only trigger infinitescroll on scroll end (ba6d3fd3)
|
||||
* wrong data returned in available.groups (c7ea84a2)
|
||||
* no focus on find user modal (1b425ef1)
|
||||
* accidental fp precision on flag and acp dash graphs (bcbf98aa)
|
||||
* #8232, unresolvable session mismatch on register cancel (f2f6fbf1)
|
||||
* pin jquery to 3.4.1, #8252 (e440d617)
|
||||
* #8249, don't send move notifications for deleted posts/topics (d77036db)
|
||||
* missing descriptions for common properties (7b31fb34)
|
||||
* some definitions in read API spec (03739b6f)
|
||||
* tagged all routes in read api spec (455d42bc)
|
||||
* override ACAO header for read API spec file (240d9091)
|
||||
* throw error if topic does not exist (59cf0e80)
|
||||
* hookname (e93578b8)
|
||||
* #8230, add hook getUserDataByUserSlug (0d1b5a7f)
|
||||
* ignore case for group details route (15d6975e)
|
||||
* lint (740e598a)
|
||||
* lint (8e23dec8)
|
||||
* #8221, fix parent selection (08031730)
|
||||
* invite properly (071506eb)
|
||||
* admins not seeing invite button (8f4b99a4)
|
||||
* #8217, add missing lang key (0b5fac75)
|
||||
* #8206 first message in chat has false `newSet` (93acd139)
|
||||
* #8203, fix user invites refreshing page (2f9c7c62)
|
||||
* #8202, filter non-existing users in search by uid (f07f4f8e)
|
||||
* notification bodyShort truncated if there is a comma in topic title (266061c3)
|
||||
* hsts max-age missing translation (b67af70d)
|
||||
* call next (80f1bcad)
|
||||
* try travis fix again (05bee629)
|
||||
* try fixing psql on travis (bc9e92a1)
|
||||
* dont let regular users see other users watched categories (cf6eadb9)
|
||||
* also fix updating bookmark if sorting is newest_to_oldest (6e5de39b)
|
||||
* #8188, fix bookmark if sorting is newest_to_oldest (32ada7c4)
|
||||
* duplicate ID + label (ac241fb8)
|
||||
* #8184 global mods unable to revoke other user sessions (f0db240a)
|
||||
* return null if field does not exist (e72a29b3)
|
||||
* #8179, limit length of location/website/fullname, check grouptitle (14e78667)
|
||||
* tag key (32636755)
|
||||
* #8175 (bc93b567)
|
||||
* #8168 re-allowing slashes in homePageRoute (667608a0)
|
||||
* tweak to session validation in addHeaders (eddbd868)
|
||||
* only call clearCookie for logged in users (630f5d5b)
|
||||
* #6422, update deleted/restored messages (06703408)
|
||||
* #8163, prevent account deletion (4d0636f8)
|
||||
* register (5a0c7c14)
|
||||
* #8157, update recent tid when post is moved (e7495440)
|
||||
* tests (b73aa84d)
|
||||
* move start/stop every iteration (dd3893b1)
|
||||
* #8154, move start/stop every iteration (300c04ce)
|
||||
* #8154, respect stop (690bb69d)
|
||||
* #8156 dont allow loading members from hidden groups (f23bc347)
|
||||
* #8155, don't validate name on update if groupName didn't change (03a02e5d)
|
||||
* return correct number of suggested topics (236e1e68)
|
||||
* #8151, don't crash if taskbar doesn't have element (2e794801)
|
||||
* logic for determining dailyStats hour vars (398f0120)
|
||||
* fix daily analytics being one day off (9ecdb92f)
|
||||
* remove debug line (0b9ad416)
|
||||
* no decimal places for category analytics (14655f87)
|
||||
* #8142, broken site if no server-side session (#8148) (d6e3f3f0)
|
||||
* #8144 pluginHooks in maintenance mode middleware (0885ec68)
|
||||
* **deps:**
|
||||
* #8298 bump persona (158d9231)
|
||||
* update dependency nodebb-plugin-composer-default to v6.3.25 (89d17647)
|
||||
* update dependency jquery to v3.5.1 [security] (#8281) (a69f0b29)
|
||||
* update dependency nodebb-rewards-essentials to v0.1.3 (#8289) (919034a7)
|
||||
* update dependency mongodb to v3.5.7 (#8279) (25d509c4)
|
||||
* actually, swagger-parser is a dev dependency (d09c6ae0)
|
||||
* missing @apidevtools/swagger-parser (f1720735)
|
||||
* update dependency nodebb-theme-persona to v10.1.37 (#8258) (b0c30ceb)
|
||||
* update dependency archiver to v4 (28777f67)
|
||||
* update dependency mongodb to v3.5.6 (#8256) (49236067)
|
||||
* bump dependencies (#8239) (e68156e1)
|
||||
* update dependency jsesc to v3.0.1 (#8243) (92b55ef5)
|
||||
* update dependency jsesc to v3 (bb70cebb)
|
||||
* update dependency pg to v8 (#8227) (ac98775f)
|
||||
* update dependency validator to v13 (f497ee62)
|
||||
* update dependency sharp to v0.25.2 (#8220) (dd660c87)
|
||||
* bump markdown (ee6cb412)
|
||||
* update dependency mongodb to v3.5.5 (#8205) (5535c50c)
|
||||
* update dependency sitemap to v6 (#8198) (2052f14c)
|
||||
* update dependency nodebb-plugin-composer-default to v6.3.23 (6d98d5a1)
|
||||
* update dependency sharp to v0.25.1 (#8199) (21e91c91)
|
||||
* update dependency nodebb-plugin-composer-default to v6.3.22 (#8193) (e01f05e3)
|
||||
* update dependency nodebb-theme-slick to v1.2.29 (#8177) (9daa21ff)
|
||||
* update dependency nodebb-theme-vanilla to v11.1.16 (#8178) (7d6a983b)
|
||||
* update dependency nodebb-theme-persona to v10.1.35 (#8176) (3acc24b0)
|
||||
* update dependency sharp to v0.24.1 (#8164) (7cc63f7d)
|
||||
* update dependency mongodb to v3.5.3 (#8161) (4b907137)
|
||||
* update dependency nodebb-widget-essentials to v4.1.0 (#8159) (a5f3c2a2)
|
||||
* update dependency request to v2.88.2 (#8158) (7fde180a)
|
||||
* update dependency redis to v3 (#8152) (ef964b11)
|
||||
* update dependency rimraf to v3.0.2 (#8153) (d8efc6b6)
|
||||
* **openapi:**
|
||||
* v14 test fix (23a0b8c5)
|
||||
* remove account and group upload routes (d342a28c)
|
||||
* more fleshing out (058a15db)
|
||||
* fleshed out admin routes (bae88e08)
|
||||
* added some descriptions (ab4bd7e1)
|
||||
* added PostsObject component (2395d2be)
|
||||
* finished moving all category objects out (23dd2727)
|
||||
* changed some descriptions (c939f8c6)
|
||||
* added CategoryObject component (55d0a9ff)
|
||||
* removed repeated breadcrumb blocks in favour of $ref (646fac1e)
|
||||
* remove all repeated pagination blocks in favour of (ac579f9d)
|
||||
* removed warning for category mods route (1cf62095)
|
||||
* normalising the file for programmatic updates (3a5c6e07)
|
||||
|
||||
##### Other Changes
|
||||
|
||||
* #8298 (2e57d8ac)
|
||||
* post.updatePostVoteCount (b25b51bd)
|
||||
* //github.com/NodeBB/NodeBB (5e140454)
|
||||
* categories.updateRecentTid (6c59683b)
|
||||
* categories.updateRecentTid (51933c1f)
|
||||
* router.page, dep. filter variant (0053e779)
|
||||
* flags as well (5ebcdb18)
|
||||
* crash when res.locals.linkTags is undefined" (fe03effe)
|
||||
* //github.com/NodeBB/NodeBB (87a6ff0d)
|
||||
* cnpm and pnpm (#8222) (e6a1741c)
|
||||
* //github.com/NodeBB/NodeBB (7ae76477)
|
||||
* openapi component" (683e5851)
|
||||
* override ACAO header for read API spec file" (c82a2637)
|
||||
* password.change (00e299e9)
|
||||
* topic.tools.load (5aa76cdf)
|
||||
* #8154, move start/stop every iteration" (4abe5eb7)
|
||||
|
||||
##### Refactors
|
||||
|
||||
* match core field name pinned (478ed6c1)
|
||||
* getUsersCSV to use batch lib (1efb238a)
|
||||
* reorganized socket.io admin modules (e1c6c3b2)
|
||||
|
||||
#### 1.13.2 (2020-02-05)
|
||||
|
||||
##### Chores
|
||||
|
||||
@@ -81,9 +81,11 @@
|
||||
"notificationType_upvote": "notification",
|
||||
"notificationType_new-topic": "notification",
|
||||
"notificationType_new-reply": "notification",
|
||||
"notificationType_post-edit": "notification",
|
||||
"notificationType_follow": "notification",
|
||||
"notificationType_new-chat": "notification",
|
||||
"notificationType_group-invite": "notification",
|
||||
"notificationType_group-request-membership": "notification",
|
||||
"notificationType_mention": "notification",
|
||||
"notificationType_new-register": "notification",
|
||||
"notificationType_post-queue": "notification",
|
||||
|
||||
@@ -79,7 +79,7 @@
|
||||
"mousetrap": "^1.6.5",
|
||||
"@nodebb/mubsub": "^1.6.0",
|
||||
"nconf": "^0.10.0",
|
||||
"nodebb-plugin-composer-default": "6.3.25",
|
||||
"nodebb-plugin-composer-default": "6.3.28",
|
||||
"nodebb-plugin-dbsearch": "4.0.7",
|
||||
"nodebb-plugin-emoji": "^3.3.0",
|
||||
"nodebb-plugin-emoji-android": "2.0.0",
|
||||
@@ -136,7 +136,7 @@
|
||||
"@commitlint/cli": "8.3.5",
|
||||
"@commitlint/config-angular": "8.3.4",
|
||||
"coveralls": "3.1.0",
|
||||
"eslint": "6.8.0",
|
||||
"eslint": "7.0.0",
|
||||
"eslint-config-airbnb-base": "14.1.0",
|
||||
"eslint-plugin-import": "2.20.2",
|
||||
"grunt": "1.1.0",
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
"user_posted_to_dual": "<strong>%1</strong> and <strong>%2</strong> have posted replies to: <strong>%3</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_multiple": "<strong>%1</strong> and %2 others started following you.",
|
||||
@@ -53,6 +54,7 @@
|
||||
"notificationType_upvote": "عندما يوافقك احدهم على منشورك",
|
||||
"notificationType_new-topic": "When someone you follow posts a topic",
|
||||
"notificationType_new-reply": "When a new reply is posted in a topic you are watching",
|
||||
"notificationType_post-edit": "When a post is edited in a topic you are watching",
|
||||
"notificationType_follow": "When someone starts following you",
|
||||
"notificationType_new-chat": "When you receive a chat message",
|
||||
"notificationType_group-invite": "When you receive a group invite",
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
"user_posted_to_dual": "<strong>%1</strong> и <strong>%2</strong> публикуваха отговори на: <strong>%3</strong>",
|
||||
"user_posted_to_multiple": "<strong>%1</strong> и %2 други публикуваха отговори на: <strong>%3</strong>",
|
||||
"user_posted_topic": "<strong>%1</strong> публикува нова тема: <strong>%2</strong>",
|
||||
"user_edited_post": "<strong>%1</strong> редактира публикация в <strong>%2</strong>",
|
||||
"user_started_following_you": "<strong>%1</strong> започна да Ви следва.",
|
||||
"user_started_following_you_dual": "<strong>%1</strong> и <strong>%2</strong> започнаха да Ви следват.",
|
||||
"user_started_following_you_multiple": "<strong>%1</strong> и %2 започнаха да Ви следват.",
|
||||
@@ -53,6 +54,7 @@
|
||||
"notificationType_upvote": "Когато някой гласува положително за Ваша публикация",
|
||||
"notificationType_new-topic": "Когато някой, когото следвате, публикува тема",
|
||||
"notificationType_new-reply": "Когато бъде публикуван нов отговор в тема, която следвате",
|
||||
"notificationType_post-edit": "Когато бъде редактирана публикация в тема, която следите",
|
||||
"notificationType_follow": "Когато някой започне да Ви следва",
|
||||
"notificationType_new-chat": "Когато получите съобщение в разговор",
|
||||
"notificationType_group-invite": "Когато получите покана за група",
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
"user_posted_to_dual": "<strong>%1</strong> and <strong>%2</strong> have posted replies to: <strong>%3</strong>",
|
||||
"user_posted_to_multiple": "<strong>%1</strong> and %2 others have posted replies to: <strong>%3</strong>",
|
||||
"user_posted_topic": "<strong>%1</strong> has posted a new topic: <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_multiple": "<strong>%1</strong> and %2 others started following you.",
|
||||
@@ -53,6 +54,7 @@
|
||||
"notificationType_upvote": "When someone upvotes your post",
|
||||
"notificationType_new-topic": "When someone you follow posts a topic",
|
||||
"notificationType_new-reply": "When a new reply is posted in a topic you are watching",
|
||||
"notificationType_post-edit": "When a post is edited in a topic you are watching",
|
||||
"notificationType_follow": "When someone starts following you",
|
||||
"notificationType_new-chat": "When you receive a chat message",
|
||||
"notificationType_group-invite": "When you receive a group invite",
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
"user_posted_to_dual": "<strong>%1</strong> a <strong>%2</strong> odpověděli na: <strong>%3</strong>",
|
||||
"user_posted_to_multiple": "<strong>%1</strong> a %2 další/ch odpověděli na <strong>%3</strong>",
|
||||
"user_posted_topic": "<strong>%1</strong> založil nové téma: <strong>%2</strong>",
|
||||
"user_edited_post": "<strong>%1</strong> has edited a post in <strong>%2</strong>",
|
||||
"user_started_following_you": "<strong>%1</strong> vás začal sledovat.",
|
||||
"user_started_following_you_dual": "<strong>%1</strong> a <strong>%2</strong> vás začali sledovat.",
|
||||
"user_started_following_you_multiple": "<strong>%1</strong> a %2 další/ch vás začali sledovat.",
|
||||
@@ -53,6 +54,7 @@
|
||||
"notificationType_upvote": "Vyjádří-li někdo souhlas s vaším příspěvkem",
|
||||
"notificationType_new-topic": "Začne-li někdo sledovat příspěvky a téma",
|
||||
"notificationType_new-reply": "Bude-li přidán nový příspěvek v tématu, které sledujete",
|
||||
"notificationType_post-edit": "When a post is edited in a topic you are watching",
|
||||
"notificationType_follow": "Začne-li vás někdo sledovat",
|
||||
"notificationType_new-chat": "Obdržíte-li novou konverzační zprávu",
|
||||
"notificationType_group-invite": "Obdržíte-li pozvání ke skupině",
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
"user_posted_to_dual": "<strong>%1</strong> og <strong>%2</strong> har skrevet svar til: <strong>%3</strong>",
|
||||
"user_posted_to_multiple": "<strong>%1</strong> og %2 andre har skrevet svar til: <strong>%3</strong>",
|
||||
"user_posted_topic": "<strong>%1</strong> har oprettet en ny tråd: <strong>%2</strong>",
|
||||
"user_edited_post": "<strong>%1</strong> has edited a post in <strong>%2</strong>",
|
||||
"user_started_following_you": "<strong>%1</strong> har valgt at følge dig.",
|
||||
"user_started_following_you_dual": "<strong>%1</strong> og <strong>%2</strong> har valgt at følge dig.",
|
||||
"user_started_following_you_multiple": "<strong>%1</strong> og %2 har valgt at følge dig.",
|
||||
@@ -53,6 +54,7 @@
|
||||
"notificationType_upvote": "When someone upvotes your post",
|
||||
"notificationType_new-topic": "When someone you follow posts a topic",
|
||||
"notificationType_new-reply": "When a new reply is posted in a topic you are watching",
|
||||
"notificationType_post-edit": "When a post is edited in a topic you are watching",
|
||||
"notificationType_follow": "When someone starts following you",
|
||||
"notificationType_new-chat": "When you receive a chat message",
|
||||
"notificationType_group-invite": "When you receive a group invite",
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
"user_posted_to_dual": "<strong>%1</strong> und <strong>%2</strong> haben auf <strong>%3</strong> geantwortet.",
|
||||
"user_posted_to_multiple": "<strong>%1</strong> und %2 andere Nutzer haben auf <strong>%3</strong> geantwortet.",
|
||||
"user_posted_topic": "<strong>%1</strong> hat ein neues Thema erstellt: <strong>%2</strong>",
|
||||
"user_edited_post": "<strong>%1</strong> has edited a post in <strong>%2</strong>",
|
||||
"user_started_following_you": "<strong>%1</strong> folgt dir jetzt.",
|
||||
"user_started_following_you_dual": "<strong>%1</strong> und <strong>%2</strong> folgen dir jetzt.",
|
||||
"user_started_following_you_multiple": "<strong>%1</strong> und %2 andere Nutzer folgen dir jetzt.",
|
||||
@@ -53,6 +54,7 @@
|
||||
"notificationType_upvote": "Wenn jemand deinen beitrag positiv bewertet",
|
||||
"notificationType_new-topic": "Wenn jemand dem du folgst einen Beitrag erstellt",
|
||||
"notificationType_new-reply": "Wenn es eine neue Antwort auf ein Thema das du beobachtest gibt",
|
||||
"notificationType_post-edit": "When a post is edited in a topic you are watching",
|
||||
"notificationType_follow": "Wenn dir jemand neues folgt",
|
||||
"notificationType_new-chat": "Wenn du eine Chat Nachricht erhältst",
|
||||
"notificationType_group-invite": "Wenn du eine Gruppeneinladung erhältst",
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
"user_posted_to_dual": "<strong>%1</strong> and <strong>%2</strong> have posted replies to: <strong>%3</strong>",
|
||||
"user_posted_to_multiple": "<strong>%1</strong> and %2 others have posted replies to: <strong>%3</strong>",
|
||||
"user_posted_topic": "<strong>%1</strong> has posted a new topic: <strong>%2</strong>",
|
||||
"user_edited_post": "<strong>%1</strong> has edited a post in <strong>%2</strong>",
|
||||
"user_started_following_you": "<strong>%1</strong> started following you.",
|
||||
"user_started_following_you_dual": "<strong>%1</strong> and <strong>%2</strong> started following you.",
|
||||
"user_started_following_you_multiple": "<strong>%1</strong> and %2 others started following you.",
|
||||
@@ -53,6 +54,7 @@
|
||||
"notificationType_upvote": "When someone upvotes your post",
|
||||
"notificationType_new-topic": "When someone you follow posts a topic",
|
||||
"notificationType_new-reply": "When a new reply is posted in a topic you are watching",
|
||||
"notificationType_post-edit": "When a post is edited in a topic you are watching",
|
||||
"notificationType_follow": "When someone starts following you",
|
||||
"notificationType_new-chat": "When you receive a chat message",
|
||||
"notificationType_group-invite": "When you receive a group invite",
|
||||
|
||||
@@ -39,6 +39,7 @@
|
||||
"user_posted_to_dual" : "<strong>%1</strong> and <strong>%2</strong> have posted replies to: <strong>%3</strong>",
|
||||
"user_posted_to_multiple" : "<strong>%1</strong> and %2 others have posted replies to: <strong>%3</strong>",
|
||||
"user_posted_topic": "<strong>%1</strong> has posted a new topic: <strong>%2</strong>",
|
||||
"user_edited_post" : "<strong>%1</strong> has edited a post in <strong>%2</strong>",
|
||||
"user_started_following_you": "<strong>%1</strong> started following you.",
|
||||
"user_started_following_you_dual": "<strong>%1</strong> and <strong>%2</strong> started following you.",
|
||||
"user_started_following_you_multiple": "<strong>%1</strong> and %2 others started following you.",
|
||||
@@ -59,6 +60,7 @@
|
||||
"notificationType_upvote": "When someone upvotes your post",
|
||||
"notificationType_new-topic": "When someone you follow posts a topic",
|
||||
"notificationType_new-reply": "When a new reply is posted in a topic you are watching",
|
||||
"notificationType_post-edit": "When a post is edited in a topic you are watching",
|
||||
"notificationType_follow": "When someone starts following you",
|
||||
"notificationType_new-chat": "When you receive a chat message",
|
||||
"notificationType_group-invite": "When you receive a group invite",
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
"user_posted_to_dual": "<strong>%1</strong> and <strong>%2</strong> have posted replies to: <strong>%3</strong>",
|
||||
"user_posted_to_multiple": "<strong>%1</strong> and %2 others have posted replies to: <strong>%3</strong>",
|
||||
"user_posted_topic": "<strong>%1</strong> has posted a new topic: <strong>%2</strong>",
|
||||
"user_edited_post": "<strong>%1</strong> has edited a post in <strong>%2</strong>",
|
||||
"user_started_following_you": "<strong>%1</strong> started following you.",
|
||||
"user_started_following_you_dual": "<strong>%1</strong> and <strong>%2</strong> started following you.",
|
||||
"user_started_following_you_multiple": "<strong>%1</strong> and %2 others started following you.",
|
||||
@@ -53,6 +54,7 @@
|
||||
"notificationType_upvote": "When someone upvotes your post",
|
||||
"notificationType_new-topic": "When someone you follow posts a topic",
|
||||
"notificationType_new-reply": "When a new reply is posted in a topic you are watching",
|
||||
"notificationType_post-edit": "When a post is edited in a topic you are watching",
|
||||
"notificationType_follow": "When someone starts following you",
|
||||
"notificationType_new-chat": "When you receive a chat message",
|
||||
"notificationType_group-invite": "When you receive a group invite",
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
"user_posted_to_dual": "<strong>%1</strong> and <strong>%2</strong> have posted replies to: <strong>%3</strong>",
|
||||
"user_posted_to_multiple": "<strong>%1</strong> and %2 others have posted replies to: <strong>%3</strong>",
|
||||
"user_posted_topic": "<strong>%1</strong> has posted a new topic: <strong>%2</strong>",
|
||||
"user_edited_post": "<strong>%1</strong> has edited a post in <strong>%2</strong>",
|
||||
"user_started_following_you": "<strong>%1</strong> started following you.",
|
||||
"user_started_following_you_dual": "<strong>%1</strong> and <strong>%2</strong> started following you.",
|
||||
"user_started_following_you_multiple": "<strong>%1</strong> and %2 others started following you.",
|
||||
@@ -53,6 +54,7 @@
|
||||
"notificationType_upvote": "When someone upvotes your post",
|
||||
"notificationType_new-topic": "When someone you follow posts a topic",
|
||||
"notificationType_new-reply": "When a new reply is posted in a topic you are watching",
|
||||
"notificationType_post-edit": "When a post is edited in a topic you are watching",
|
||||
"notificationType_follow": "When someone starts following you",
|
||||
"notificationType_new-chat": "When you receive a chat message",
|
||||
"notificationType_group-invite": "When you receive a group invite",
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
"user_posted_to_dual": "<strong>%1</strong> y <strong>%2</strong> han respondido a <strong>%3</strong>",
|
||||
"user_posted_to_multiple": "<strong>%1</strong> y otras %2 personas han respondido a: <strong>%3</strong>",
|
||||
"user_posted_topic": "<strong>%1</strong> ha publicado un nuevo tema: <strong>%2</strong>",
|
||||
"user_edited_post": "<strong>%1</strong> has edited a post in <strong>%2</strong>",
|
||||
"user_started_following_you": "<strong>%1</strong> comenzó a seguirte.",
|
||||
"user_started_following_you_dual": "<strong>%1</strong> y <strong>%2</strong> comenzaron a seguirte.",
|
||||
"user_started_following_you_multiple": "<strong>%1</strong> y otras %2 personas comenzaron a seguirte.",
|
||||
@@ -53,6 +54,7 @@
|
||||
"notificationType_upvote": "Cuando alguien vota positivamente en tu entrada",
|
||||
"notificationType_new-topic": "Cuando alguien a quien sigues comenta en un tema",
|
||||
"notificationType_new-reply": "Cuando hay una respuesta nueva en un tema que estás viendo",
|
||||
"notificationType_post-edit": "When a post is edited in a topic you are watching",
|
||||
"notificationType_follow": "Cuando alguien comienza a seguirte",
|
||||
"notificationType_new-chat": "Cuando recibes un mensaje de chat",
|
||||
"notificationType_group-invite": "Cuando recibes una invitación a un grupo",
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
"user_posted_to_dual": "<strong>%1</strong> ja <strong>%2</strong> on postitanud vastused: <strong>%3</strong>",
|
||||
"user_posted_to_multiple": "<strong>%1</strong> ja %2 teist on postitanud vastused: <strong>%3</strong>",
|
||||
"user_posted_topic": "<strong>%1</strong> on postitanud uue teema: <strong>%2</strong>",
|
||||
"user_edited_post": "<strong>%1</strong> has edited a post in <strong>%2</strong>",
|
||||
"user_started_following_you": "<strong>%1</strong> hakkas sind jälgima.",
|
||||
"user_started_following_you_dual": "<strong>%1</strong> ja <strong>%2</strong> hakkasid sind jälgima.",
|
||||
"user_started_following_you_multiple": "<strong>%1</strong> ja %2 hakkasid sind jälgima.",
|
||||
@@ -53,6 +54,7 @@
|
||||
"notificationType_upvote": "When someone upvotes your post",
|
||||
"notificationType_new-topic": "When someone you follow posts a topic",
|
||||
"notificationType_new-reply": "When a new reply is posted in a topic you are watching",
|
||||
"notificationType_post-edit": "When a post is edited in a topic you are watching",
|
||||
"notificationType_follow": "When someone starts following you",
|
||||
"notificationType_new-chat": "When you receive a chat message",
|
||||
"notificationType_group-invite": "When you receive a group invite",
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
"user_posted_to_dual": "<strong>%1</strong> و <strong>%2</strong> پاسخ به پست دادند در: <strong>%3</strong>",
|
||||
"user_posted_to_multiple": "<strong>%1</strong> و %2 نفر دیگر به پست شما پاسخ ارسال کردهاند در: <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> و <strong>%2</strong> شروع به دنبال کردن شما کرده.",
|
||||
"user_started_following_you_multiple": "<strong>%1</strong> و %2 نفر دیگر شروع به دنبال کردن شما کرده.",
|
||||
@@ -53,6 +54,7 @@
|
||||
"notificationType_upvote": "هنگامی که شخصی به پست شما رای مثبت می دهد",
|
||||
"notificationType_new-topic": "هنگامی که شخصی که شما دنبال می کنید موضوعی ایجاد نماید",
|
||||
"notificationType_new-reply": "هنگامی که پاسخ جدید در تاپیکی که شما پیگیری می کنید فرستاده می شود",
|
||||
"notificationType_post-edit": "When a post is edited in a topic you are watching",
|
||||
"notificationType_follow": "هنگامی که کسی شما را دنبال می کند",
|
||||
"notificationType_new-chat": "هنگامی که شما پیام چتی دریافت می کنید",
|
||||
"notificationType_group-invite": "هنگامی که شما دعوتنامه گروه دریافت می کنید",
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
"user_posted_to_dual": "<strong>%1</strong> ja <strong>%2</strong> ovat vastanneet viestiin: <strong>%3</strong>",
|
||||
"user_posted_to_multiple": "<strong>%1</strong> ja %2 muuta ovat vastanneet viestiin: <strong>%3 </strong>",
|
||||
"user_posted_topic": "<strong>%1</strong> on kirjoittanut uuden aiheen: <strong>%2</strong>",
|
||||
"user_edited_post": "<strong>%1</strong> has edited a post in <strong>%2</strong>",
|
||||
"user_started_following_you": "<strong>%1</strong> alkoi seurata sinua.",
|
||||
"user_started_following_you_dual": "<strong>%1</strong> ja <strong>%2</strong> alkoivat seurata sinua",
|
||||
"user_started_following_you_multiple": "<strong>%1</strong> ja %2 muuta alkoivat seurata sinua",
|
||||
@@ -53,6 +54,7 @@
|
||||
"notificationType_upvote": "Kun joku tykkää viestistäsi",
|
||||
"notificationType_new-topic": "Kun joku seuraa viestejäsi aiheessa",
|
||||
"notificationType_new-reply": "Kun uusi vastaus on lähetetty aiheeseen, jota seuraat",
|
||||
"notificationType_post-edit": "When a post is edited in a topic you are watching",
|
||||
"notificationType_follow": "Kun joku alkaa seurata sinua",
|
||||
"notificationType_new-chat": "Kun saat viestin keskusteluun",
|
||||
"notificationType_group-invite": "Kun saat kutsun ryhmään",
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
"user_posted_to_dual": "<strong>%1</strong> et <strong>%2</strong> ont posté une réponse à : <strong>%3</strong>",
|
||||
"user_posted_to_multiple": "<strong>%1</strong> et %2 autres ont posté une réponse à : <strong>%3</strong>",
|
||||
"user_posted_topic": "<strong>%1</strong> a posté un nouveau sujet: <strong>%2</strong>.",
|
||||
"user_edited_post": "<strong>%1</strong> has edited a post in <strong>%2</strong>",
|
||||
"user_started_following_you": "<strong>%1</strong> vous suit.",
|
||||
"user_started_following_you_dual": "<strong>%1</strong> et <strong>%2</strong> se sont abonnés à votre compte.",
|
||||
"user_started_following_you_multiple": "<strong>%1</strong> et %2 autres se sont abonnés à votre compte.",
|
||||
@@ -53,6 +54,7 @@
|
||||
"notificationType_upvote": "Lorsque quelqu'un a voté pour un de vos messages",
|
||||
"notificationType_new-topic": "Lorsque quelqu'un que vous suivez publie un sujet",
|
||||
"notificationType_new-reply": "Lorsqu'une nouvelle réponse est ajoutée dans un sujet que vous suivez",
|
||||
"notificationType_post-edit": "When a post is edited in a topic you are watching",
|
||||
"notificationType_follow": "Lorsque quelqu'un commence à vous suivre",
|
||||
"notificationType_new-chat": "Lorsque vous recevez un message du chat ",
|
||||
"notificationType_group-invite": "Lorsque vous recevez une invitation d'un groupe",
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
"user_posted_to_dual": "<strong>%1</strong> e <strong>%2</strong> responderon a <strong>%3</strong>",
|
||||
"user_posted_to_multiple": "<strong>%1</strong> e outras %2 persoas responderon a: <strong>%3</strong>",
|
||||
"user_posted_topic": "<strong>%1</strong> publicou un novo tema: <strong>%2</strong>",
|
||||
"user_edited_post": "<strong>%1</strong> has edited a post in <strong>%2</strong>",
|
||||
"user_started_following_you": "<strong>%1</strong> comezou a seguirte.",
|
||||
"user_started_following_you_dual": "<strong>%1</strong> e <strong>%2</strong> comezaron a seguirte.",
|
||||
"user_started_following_you_multiple": "<strong>%1</strong> e %2 máis comezaron a seguirte.",
|
||||
@@ -53,6 +54,7 @@
|
||||
"notificationType_upvote": "When someone upvotes your post",
|
||||
"notificationType_new-topic": "When someone you follow posts a topic",
|
||||
"notificationType_new-reply": "When a new reply is posted in a topic you are watching",
|
||||
"notificationType_post-edit": "When a post is edited in a topic you are watching",
|
||||
"notificationType_follow": "When someone starts following you",
|
||||
"notificationType_new-chat": "When you receive a chat message",
|
||||
"notificationType_group-invite": "When you receive a group invite",
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
"user_posted_to_dual": "<strong>%1</strong> ו<strong>%2</strong> הגיבו ל: <strong>%3</strong>",
|
||||
"user_posted_to_multiple": "<strong>%1</strong> ו%2 אחרים הגיבו ל: <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> ו<strong>%1</strong> התחילו לעקוב אחריך.",
|
||||
"user_started_following_you_multiple": "<strong>%1</strong> ו%2 התחילו לעקוב אחריך.",
|
||||
@@ -53,6 +54,7 @@
|
||||
"notificationType_upvote": "כאשר מישהו מצביע בעד הפוסט שלך",
|
||||
"notificationType_new-topic": "כשמישהו שאתה עוקב אחריו פרסם נושא",
|
||||
"notificationType_new-reply": "כשתגובה חדשה מפורסמת בנושא שאתה צופה בו",
|
||||
"notificationType_post-edit": "When a post is edited in a topic you are watching",
|
||||
"notificationType_follow": "כשמישהו מתחיל לעקוב אחריך",
|
||||
"notificationType_new-chat": "כשאתה מקבל הודעת צאט",
|
||||
"notificationType_group-invite": "כשאתה מקבל הזמנה מקבוצה",
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
"user_posted_to_dual": "<strong>%1</strong> i %2 ostalih su odgovorili na objavu u: <strong>%3</strong>",
|
||||
"user_posted_to_multiple": "<strong>%1</strong> i %2 drugih su odgovorili na: <strong>%3</strong>",
|
||||
"user_posted_topic": "<strong>%1</strong> je otvorio novu temu: <strong>%2</strong>",
|
||||
"user_edited_post": "<strong>%1</strong> has edited a post in <strong>%2</strong>",
|
||||
"user_started_following_you": "<strong>%1</strong> Vas sada prati.",
|
||||
"user_started_following_you_dual": "<strong>%1</strong> i <strong>%2</strong> vas sada prate.",
|
||||
"user_started_following_you_multiple": "<strong>%1</strong> i %2 ostalih vas sada prate.",
|
||||
@@ -53,6 +54,7 @@
|
||||
"notificationType_upvote": "When someone upvotes your post",
|
||||
"notificationType_new-topic": "When someone you follow posts a topic",
|
||||
"notificationType_new-reply": "When a new reply is posted in a topic you are watching",
|
||||
"notificationType_post-edit": "When a post is edited in a topic you are watching",
|
||||
"notificationType_follow": "When someone starts following you",
|
||||
"notificationType_new-chat": "When you receive a chat message",
|
||||
"notificationType_group-invite": "When you receive a group invite",
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
"user_posted_to_dual": "<strong>%1</strong> és<strong>%2</strong> választ írt neki: <strong>%3</strong>",
|
||||
"user_posted_to_multiple": "<strong>%1</strong> és %2 másik választ írt neki: <strong>%3</strong>",
|
||||
"user_posted_topic": "<strong>%1</strong> új témakört hozott létre: <strong>%2</strong>",
|
||||
"user_edited_post": "<strong>%1</strong> has edited a post in <strong>%2</strong>",
|
||||
"user_started_following_you": "<strong>%1</strong> elkezdett követni téged.",
|
||||
"user_started_following_you_dual": "<strong>%1</strong> és<strong>%2</strong> elkezdett követni téged.",
|
||||
"user_started_following_you_multiple": "<strong>%1</strong> és %2 másik elkezdett követni téged.",
|
||||
@@ -53,6 +54,7 @@
|
||||
"notificationType_upvote": "Mikor valaki kedveli a hozzászólásod",
|
||||
"notificationType_new-topic": "Mikor egy követett felhasználód hozzászól",
|
||||
"notificationType_new-reply": "Mikor egy általad figyelt témakörre válasz érkezik",
|
||||
"notificationType_post-edit": "When a post is edited in a topic you are watching",
|
||||
"notificationType_follow": "Mikor valaki elkezd követni téged",
|
||||
"notificationType_new-chat": "Mikor chat üzenetet kapsz",
|
||||
"notificationType_group-invite": "Mikor csoportmeghívást kapsz",
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
"user_posted_to_dual": "<strong>%1</strong> and <strong>%2</strong> have posted replies to: <strong>%3</strong>",
|
||||
"user_posted_to_multiple": "<strong>%1</strong> and %2 others have posted replies to: <strong>%3</strong>",
|
||||
"user_posted_topic": "<strong>%1</strong> telah membuat topik baru: <strong>%2</strong>",
|
||||
"user_edited_post": "<strong>%1</strong> has edited a post in <strong>%2</strong>",
|
||||
"user_started_following_you": "<strong>%1</strong> mulai mengikutimu.",
|
||||
"user_started_following_you_dual": "<strong>%1</strong> and <strong>%2</strong> started following you.",
|
||||
"user_started_following_you_multiple": "<strong>%1</strong> and %2 others started following you.",
|
||||
@@ -53,6 +54,7 @@
|
||||
"notificationType_upvote": "When someone upvotes your post",
|
||||
"notificationType_new-topic": "When someone you follow posts a topic",
|
||||
"notificationType_new-reply": "When a new reply is posted in a topic you are watching",
|
||||
"notificationType_post-edit": "When a post is edited in a topic you are watching",
|
||||
"notificationType_follow": "When someone starts following you",
|
||||
"notificationType_new-chat": "When you receive a chat message",
|
||||
"notificationType_group-invite": "When you receive a group invite",
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
"user_posted_to_dual": "<strong>%1</strong> e <strong>%2</strong> hanno postato una risposta su: <strong>%3</strong>",
|
||||
"user_posted_to_multiple": "<strong>%1</strong> ed altri %2 hanno postato una risposta su: <strong>%3</strong>",
|
||||
"user_posted_topic": "<strong>%1</strong> ha postato una nuova discussione: <strong>%2</strong>",
|
||||
"user_edited_post": "<strong>%1</strong> has edited a post in <strong>%2</strong>",
|
||||
"user_started_following_you": "<strong>%1</strong> ha iniziato a seguirti.",
|
||||
"user_started_following_you_dual": "<strong>%1</strong> e <strong>%2</strong> hanno iniziato a seguirti.",
|
||||
"user_started_following_you_multiple": "<strong>%1</strong> ed altri %2 hanno iniziato a seguirti.",
|
||||
@@ -53,6 +54,7 @@
|
||||
"notificationType_upvote": "Quando il tuo post riceve un Mi Piace",
|
||||
"notificationType_new-topic": "Quando qualcuno che segui pubblica un argomento",
|
||||
"notificationType_new-reply": "Quando viene pubblicata una nuova risposta in un argomento che stai seguendo",
|
||||
"notificationType_post-edit": "When a post is edited in a topic you are watching",
|
||||
"notificationType_follow": "Quando qualcuno inizia a seguirti",
|
||||
"notificationType_new-chat": "Quando ricevi un messaggio in chat",
|
||||
"notificationType_group-invite": "Quando ricevi un invito ad un gruppo",
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
"user_posted_to_dual": "<strong>%1</strong> と <strong>%2</strong> は、返信しました: <strong>%3</strong>",
|
||||
"user_posted_to_multiple": "<strong>%1</strong> と %2 または他のユーザーが返信しました: <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> と <strong>%2</strong> があなたをフォローしました。",
|
||||
"user_started_following_you_multiple": "<strong>%1</strong> と %2 または他のユーザーがあなたをフォローしました。",
|
||||
@@ -53,6 +54,7 @@
|
||||
"notificationType_upvote": "誰かがあなたの投稿を評価したとき",
|
||||
"notificationType_new-topic": "フォロワーがスレッドを投稿したとき",
|
||||
"notificationType_new-reply": "あなたが見ているトピックに新しい返信が投稿されたとき",
|
||||
"notificationType_post-edit": "When a post is edited in a topic you are watching",
|
||||
"notificationType_follow": "誰かがあなたをフォローしたとき",
|
||||
"notificationType_new-chat": "チャットメッセージを受信したとき",
|
||||
"notificationType_group-invite": "グループ招待を受けたとき",
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
"user_posted_to_dual": "<strong>%1</strong> 님과 <strong>%2</strong> 님이 <strong>%3</strong> 에 답글을 달았습니다.",
|
||||
"user_posted_to_multiple": "<strong>%1</strong> 님과 %2 명의 다른 유저들이 <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>님과 <strong>%2</strong>님이 나를 팔로우 합니다.",
|
||||
"user_started_following_you_multiple": "<strong>%1</strong>님외 %2명이 나를 팔로우 합니다.",
|
||||
@@ -53,6 +54,7 @@
|
||||
"notificationType_upvote": "누군가 사용자님의 글을 추천해 줄 때",
|
||||
"notificationType_new-topic": "When someone you follow posts a topic",
|
||||
"notificationType_new-reply": "주시중인 글에 새로운 답글이 게시되면",
|
||||
"notificationType_post-edit": "When a post is edited in a topic you are watching",
|
||||
"notificationType_follow": "누군가 사용자님을 팔로우 하면",
|
||||
"notificationType_new-chat": "채팅 메시지를 받으면",
|
||||
"notificationType_group-invite": "그룹 초대를 받으면",
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
"user_posted_to_dual": "<strong>%1</strong> and <strong>%2</strong> have posted replies to: <strong>%3</strong>",
|
||||
"user_posted_to_multiple": "<strong>%1</strong> and %2 others have posted replies to: <strong>%3</strong>",
|
||||
"user_posted_topic": "<strong>%1</strong> paskelbė naują temą: <strong>%2</strong>",
|
||||
"user_edited_post": "<strong>%1</strong> has edited a post in <strong>%2</strong>",
|
||||
"user_started_following_you": "<strong>%1</strong> pradėjo sekti tave",
|
||||
"user_started_following_you_dual": "<strong>%1</strong> and <strong>%2</strong> started following you.",
|
||||
"user_started_following_you_multiple": "<strong>%1</strong> and %2 others started following you.",
|
||||
@@ -53,6 +54,7 @@
|
||||
"notificationType_upvote": "When someone upvotes your post",
|
||||
"notificationType_new-topic": "When someone you follow posts a topic",
|
||||
"notificationType_new-reply": "When a new reply is posted in a topic you are watching",
|
||||
"notificationType_post-edit": "When a post is edited in a topic you are watching",
|
||||
"notificationType_follow": "When someone starts following you",
|
||||
"notificationType_new-chat": "When you receive a chat message",
|
||||
"notificationType_group-invite": "When you receive a group invite",
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
"user_posted_to_dual": "<strong>%1</strong> un <strong>%2</strong> ir atbildējuši <strong>%3</strong>",
|
||||
"user_posted_to_multiple": "<strong>%1</strong> un %2 citi ir atbildējuši <strong>%3</strong>",
|
||||
"user_posted_topic": "<strong>%1</strong> ir ievietojis jaunu tematu: <strong>%2</strong>",
|
||||
"user_edited_post": "<strong>%1</strong> has edited a post in <strong>%2</strong>",
|
||||
"user_started_following_you": "<strong>%1</strong> sāka Tev sekot.",
|
||||
"user_started_following_you_dual": "<strong>%1</strong> un <strong>%2</strong> sāka Tev sekot.",
|
||||
"user_started_following_you_multiple": "<strong>%1</strong> un %2 citi sāka Tev sekot.",
|
||||
@@ -53,6 +54,7 @@
|
||||
"notificationType_upvote": "Kad kāds balso \"par\" Tavu rakstu",
|
||||
"notificationType_new-topic": "Kad kāds, kuru Tu seko, publicē rakstu",
|
||||
"notificationType_new-reply": "Kad jauna atbilde tiek pievienota tematam, kuru novēro",
|
||||
"notificationType_post-edit": "When a post is edited in a topic you are watching",
|
||||
"notificationType_follow": "Kad kāds sāk Tev sekot",
|
||||
"notificationType_new-chat": "Kad saņemi sarunu",
|
||||
"notificationType_group-invite": "Kad saņemi ielūgumu pievienoties grupai",
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
"user_posted_to_dual": "<strong>%1</strong> dan <strong>%2</strong> membalas kiriman : <strong>%3</strong>",
|
||||
"user_posted_to_multiple": "<strong>%1</strong> dan %2 lagu membalas kiriman: <strong>%3</strong>",
|
||||
"user_posted_topic": "<strong>%1</strong> membuka topik baru : <strong>%2</strong>",
|
||||
"user_edited_post": "<strong>%1</strong> has edited a post in <strong>%2</strong>",
|
||||
"user_started_following_you": "<strong>%1</strong> mula mengikut anda.",
|
||||
"user_started_following_you_dual": "<strong>%1</strong> dan <strong>%2</strong> mula mengikuti anda.",
|
||||
"user_started_following_you_multiple": "<strong>%1</strong> dan %2 lagi mula mengikuti anda.",
|
||||
@@ -53,6 +54,7 @@
|
||||
"notificationType_upvote": "When someone upvotes your post",
|
||||
"notificationType_new-topic": "When someone you follow posts a topic",
|
||||
"notificationType_new-reply": "When a new reply is posted in a topic you are watching",
|
||||
"notificationType_post-edit": "When a post is edited in a topic you are watching",
|
||||
"notificationType_follow": "When someone starts following you",
|
||||
"notificationType_new-chat": "When you receive a chat message",
|
||||
"notificationType_group-invite": "When you receive a group invite",
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
"user_posted_to_dual": "<strong>%1</strong> and <strong>%2</strong> have posted replies to: <strong>%3</strong>",
|
||||
"user_posted_to_multiple": "<strong>%1</strong> and %2 others have posted replies to: <strong>%3</strong>",
|
||||
"user_posted_topic": "<strong>%1</strong> har skrevet et nytt emne: <strong>%2</strong>",
|
||||
"user_edited_post": "<strong>%1</strong> has edited a post in <strong>%2</strong>",
|
||||
"user_started_following_you": "<strong>%1</strong> begynte å følge deg.",
|
||||
"user_started_following_you_dual": "<strong>%1</strong> and <strong>%2</strong> started following you.",
|
||||
"user_started_following_you_multiple": "<strong>%1</strong> and %2 others started following you.",
|
||||
@@ -53,6 +54,7 @@
|
||||
"notificationType_upvote": "When someone upvotes your post",
|
||||
"notificationType_new-topic": "When someone you follow posts a topic",
|
||||
"notificationType_new-reply": "When a new reply is posted in a topic you are watching",
|
||||
"notificationType_post-edit": "When a post is edited in a topic you are watching",
|
||||
"notificationType_follow": "When someone starts following you",
|
||||
"notificationType_new-chat": "When you receive a chat message",
|
||||
"notificationType_group-invite": "When you receive a group invite",
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
"user_posted_to_dual": "<strong>%1</strong> en <strong>%2</strong> hebben een reactie geplaatst in: <strong>%3</strong>",
|
||||
"user_posted_to_multiple": "<strong>%1</strong> en %2 hebben een reactie geplaatst in: <strong>%3</strong>",
|
||||
"user_posted_topic": "<strong>%1</strong> heeft een nieuw onderwerp geplaatst: <strong>%2</strong>",
|
||||
"user_edited_post": "<strong>%1</strong> has edited a post in <strong>%2</strong>",
|
||||
"user_started_following_you": "<strong>%1</strong> volgt jou nu.",
|
||||
"user_started_following_you_dual": "<strong>%1</strong> en <strong>%2</strong> volgen jou nu.",
|
||||
"user_started_following_you_multiple": "<strong>%1</strong> en %2 anderen volgen jou nu.",
|
||||
@@ -53,6 +54,7 @@
|
||||
"notificationType_upvote": "Als iemand positief stemt voor je bericht",
|
||||
"notificationType_new-topic": "Wanneer iemand die jij volgt een onderwerp post",
|
||||
"notificationType_new-reply": "Als een nieuwe reactie komt op een onderwerp dat je volgt",
|
||||
"notificationType_post-edit": "When a post is edited in a topic you are watching",
|
||||
"notificationType_follow": "Als iemand begint met jou te volgen",
|
||||
"notificationType_new-chat": "Als je een chat-bericht ontvangt",
|
||||
"notificationType_group-invite": "Als je een uitnodiging voor een groep ontvangt",
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
"user_posted_to_dual": "<strong>%1</strong> oraz <strong>%2</strong> dodali odpowiedzi do <strong>%3</strong>",
|
||||
"user_posted_to_multiple": "<strong>%1</strong> oraz %2 innych dodali odpowiedzi do <strong>%3</strong>",
|
||||
"user_posted_topic": "<strong>%1</strong> stworzył nowy temat: <strong>%2</strong>",
|
||||
"user_edited_post": "<strong>%1</strong> has edited a post in <strong>%2</strong>",
|
||||
"user_started_following_you": "<strong>%1</strong> zaczął Cię obserwować.",
|
||||
"user_started_following_you_dual": "<strong>%1</strong> oraz <strong>%2</strong> zaczęli Cię obserwować.",
|
||||
"user_started_following_you_multiple": "<strong>%1</strong> oraz %2 innych obserwują Cię.",
|
||||
@@ -53,6 +54,7 @@
|
||||
"notificationType_upvote": "Kiedy ktoś zagłosuje na Twój post",
|
||||
"notificationType_new-topic": "Kiedy ktoś, kogo obserwujesz, utworzy temat",
|
||||
"notificationType_new-reply": "Kiedy ktoś doda nową odpowiedź w temacie, który obserwujesz",
|
||||
"notificationType_post-edit": "When a post is edited in a topic you are watching",
|
||||
"notificationType_follow": "Kiedy ktoś zacznie Cię obserwować",
|
||||
"notificationType_new-chat": "Kiedy otrzymasz wiadomość na czacie",
|
||||
"notificationType_group-invite": "Kiedy otrzymasz grupowe zaproszenie",
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
"user_posted_to_dual": "<strong>%1</strong> e <strong>%2</strong> postaram respostas para: <strong>%3</strong>",
|
||||
"user_posted_to_multiple": "<strong>%1</strong> e %2 outros postaram respostas para: <strong>%3</strong>",
|
||||
"user_posted_topic": "<strong>%1</strong> postou um novo tópico: <strong>%2</strong>",
|
||||
"user_edited_post": "<strong>%1</strong> has edited a post in <strong>%2</strong>",
|
||||
"user_started_following_you": "<strong>%1</strong> começou a seguir você.",
|
||||
"user_started_following_you_dual": "<strong>%1</strong> e <strong>%2</strong> começaram a lhe acompanhar.",
|
||||
"user_started_following_you_multiple": "<strong>%1</strong> e %2 outros começaram a lhe acompanhar.",
|
||||
@@ -53,6 +54,7 @@
|
||||
"notificationType_upvote": "Quando alguém dá um voto positivo em seu post",
|
||||
"notificationType_new-topic": "Quando alguém que você segue posta um tópico",
|
||||
"notificationType_new-reply": "Quando uma nova resposta é postada em um tópico que você está acompanhando",
|
||||
"notificationType_post-edit": "When a post is edited in a topic you are watching",
|
||||
"notificationType_follow": "Quando alguém começar a seguir você",
|
||||
"notificationType_new-chat": "Quando você receber uma mensagem de chat",
|
||||
"notificationType_group-invite": "Quando você receber um convite para um grupo",
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
"user_posted_to_dual": "<strong>%1</strong> e <strong>%2</strong> publicaram respostas a: <strong>%3</strong>",
|
||||
"user_posted_to_multiple": "<strong>%1</strong> e %2 outros utilizadores publicaram respostas a: <strong>%3</strong>",
|
||||
"user_posted_topic": "<strong>%1</strong> publicou um novo tópico: <strong>%2</strong>",
|
||||
"user_edited_post": "<strong>%1</strong> has edited a post in <strong>%2</strong>",
|
||||
"user_started_following_you": "<strong>%1</strong> começou a seguir-te.",
|
||||
"user_started_following_you_dual": "<strong>%1</strong> e <strong>%2</strong> começaram a seguir-te.",
|
||||
"user_started_following_you_multiple": "<strong>%1</strong> e %2 outros utilizadores começaram a seguir-te.",
|
||||
@@ -53,6 +54,7 @@
|
||||
"notificationType_upvote": "Quando alguém vota positivamente numa publicação tua",
|
||||
"notificationType_new-topic": "Quando alguém que tu segues publica um tópico",
|
||||
"notificationType_new-reply": "Quando uma nova resposta é publicada num tópico que tu estás a seguir",
|
||||
"notificationType_post-edit": "When a post is edited in a topic you are watching",
|
||||
"notificationType_follow": "Quando alguém começa a seguir-te",
|
||||
"notificationType_new-chat": "Quando recebes uma mensagem numa conversa",
|
||||
"notificationType_group-invite": "Quando recebes um convite para um grupo",
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
"user_posted_to_dual": "<strong>%1</strong> and <strong>%2</strong> have posted replies to: <strong>%3</strong>",
|
||||
"user_posted_to_multiple": "<strong>%1</strong> and %2 others have posted replies to: <strong>%3</strong>",
|
||||
"user_posted_topic": "<strong>%1</strong> has posted a new topic: <strong>%2</strong>",
|
||||
"user_edited_post": "<strong>%1</strong> has edited a post in <strong>%2</strong>",
|
||||
"user_started_following_you": "<strong>%1</strong> a început să te urmărească.",
|
||||
"user_started_following_you_dual": "<strong>%1</strong> and <strong>%2</strong> started following you.",
|
||||
"user_started_following_you_multiple": "<strong>%1</strong> and %2 others started following you.",
|
||||
@@ -53,6 +54,7 @@
|
||||
"notificationType_upvote": "When someone upvotes your post",
|
||||
"notificationType_new-topic": "When someone you follow posts a topic",
|
||||
"notificationType_new-reply": "When a new reply is posted in a topic you are watching",
|
||||
"notificationType_post-edit": "When a post is edited in a topic you are watching",
|
||||
"notificationType_follow": "When someone starts following you",
|
||||
"notificationType_new-chat": "When you receive a chat message",
|
||||
"notificationType_group-invite": "When you receive a group invite",
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
"user_posted_to_dual": "Пользователи <strong>%1</strong> и <strong>%2</strong> ответили на сообщение в <strong>%3</strong>",
|
||||
"user_posted_to_multiple": "<strong>%1</strong> и %2 других пользователя ответили на сообщение в <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> и <strong>%2</strong> подписались на вас.",
|
||||
"user_started_following_you_multiple": "<strong>%1</strong> и %2 других пользователя подписались на вас.",
|
||||
@@ -53,6 +54,7 @@
|
||||
"notificationType_upvote": "Когда кто-то проголосовал за ваше сообщение",
|
||||
"notificationType_new-topic": "Когда кто-то, на кого вы подписаны, создаёт новую тему",
|
||||
"notificationType_new-reply": "Когда в теме, за которой вы следите, появляется новое сообщение",
|
||||
"notificationType_post-edit": "When a post is edited in a topic you are watching",
|
||||
"notificationType_follow": "Когда кто-то подписался на вас",
|
||||
"notificationType_new-chat": "Когда вы получаете сообщение в чат",
|
||||
"notificationType_group-invite": "Когда вы получаете приглашение в группу",
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
"user_posted_to_dual": "<strong>%1</strong> and <strong>%2</strong> have posted replies to: <strong>%3</strong>",
|
||||
"user_posted_to_multiple": "<strong>%1</strong> and %2 others have posted replies to: <strong>%3</strong>",
|
||||
"user_posted_topic": "<strong>%1</strong> yatangije ikiganiro gishya: <strong>%2</strong>",
|
||||
"user_edited_post": "<strong>%1</strong> has edited a post in <strong>%2</strong>",
|
||||
"user_started_following_you": "<strong>%1</strong> yatangiye kugukurikira.",
|
||||
"user_started_following_you_dual": "<strong>%1</strong> and <strong>%2</strong> started following you.",
|
||||
"user_started_following_you_multiple": "<strong>%1</strong> and %2 others started following you.",
|
||||
@@ -53,6 +54,7 @@
|
||||
"notificationType_upvote": "When someone upvotes your post",
|
||||
"notificationType_new-topic": "When someone you follow posts a topic",
|
||||
"notificationType_new-reply": "When a new reply is posted in a topic you are watching",
|
||||
"notificationType_post-edit": "When a post is edited in a topic you are watching",
|
||||
"notificationType_follow": "When someone starts following you",
|
||||
"notificationType_new-chat": "When you receive a chat message",
|
||||
"notificationType_group-invite": "When you receive a group invite",
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
"user_posted_to_dual": "<strong>%1</strong> and <strong>%2</strong> have posted replies to: <strong>%3</strong>",
|
||||
"user_posted_to_multiple": "<strong>%1</strong> and %2 others have posted replies to: <strong>%3</strong>",
|
||||
"user_posted_topic": "<strong>%1</strong> has posted a new topic: <strong>%2</strong>",
|
||||
"user_edited_post": "<strong>%1</strong> has edited a post in <strong>%2</strong>",
|
||||
"user_started_following_you": "<strong>%1</strong> started following you.",
|
||||
"user_started_following_you_dual": "<strong>%1</strong> and <strong>%2</strong> started following you.",
|
||||
"user_started_following_you_multiple": "<strong>%1</strong> and %2 others started following you.",
|
||||
@@ -53,6 +54,7 @@
|
||||
"notificationType_upvote": "When someone upvotes your post",
|
||||
"notificationType_new-topic": "When someone you follow posts a topic",
|
||||
"notificationType_new-reply": "When a new reply is posted in a topic you are watching",
|
||||
"notificationType_post-edit": "When a post is edited in a topic you are watching",
|
||||
"notificationType_follow": "When someone starts following you",
|
||||
"notificationType_new-chat": "When you receive a chat message",
|
||||
"notificationType_group-invite": "When you receive a group invite",
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
"user_posted_to_dual": "<strong>%1</strong> a <strong>%2</strong> uverejnili odpoveď na:<strong>%3</strong>",
|
||||
"user_posted_to_multiple": "<strong>%1</strong> a %2 ďalší uverejnili odpovede na:<strong>%3</strong>",
|
||||
"user_posted_topic": "<strong>%1</strong> pridal novú tému: <strong>%2</strong>",
|
||||
"user_edited_post": "<strong>%1</strong> has edited a post in <strong>%2</strong>",
|
||||
"user_started_following_you": "<strong>%1</strong> Vás začal sledovať.",
|
||||
"user_started_following_you_dual": "<strong>%1</strong> a <strong>%2</strong> Vás začali sledovať.",
|
||||
"user_started_following_you_multiple": "<strong>%1</strong> a %2 ďalší Vás začali sledovať.",
|
||||
@@ -53,6 +54,7 @@
|
||||
"notificationType_upvote": "Ak niekto vyjadri súhlas s vaším príspevkom",
|
||||
"notificationType_new-topic": "Ak začne niekto sledovať príspevky a témy",
|
||||
"notificationType_new-reply": "Ak bude pridaný nový príspevok v téme, ktorú sledujete",
|
||||
"notificationType_post-edit": "When a post is edited in a topic you are watching",
|
||||
"notificationType_follow": "Ak Vás začne niekto sledovať",
|
||||
"notificationType_new-chat": "Ak obdržíte novú správu konverzácie",
|
||||
"notificationType_group-invite": "Ak obdržíte pozvanie do skupiny",
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
"user_posted_to_dual": "<strong>%1</strong> in <strong>%2</strong> sta objavila/-i odgovor na: <strong>%3</strong>.",
|
||||
"user_posted_to_multiple": "<strong>%1</strong> in %2 drugih je objavilo odgovor na: <strong>%3</strong>.",
|
||||
"user_posted_topic": "<strong>%1</strong> je odprl/-a novo temo: <strong>%2</strong>.",
|
||||
"user_edited_post": "<strong>%1</strong> has edited a post in <strong>%2</strong>",
|
||||
"user_started_following_you": "<strong>%1</strong> te je začel/-a spremljati.",
|
||||
"user_started_following_you_dual": "<strong>%1</strong> in <strong>%2</strong> sta te začela/-i spremljati.",
|
||||
"user_started_following_you_multiple": "<strong>%1</strong> in %2 drugih te je začelo spremljati.",
|
||||
@@ -53,6 +54,7 @@
|
||||
"notificationType_upvote": "When someone upvotes your post",
|
||||
"notificationType_new-topic": "When someone you follow posts a topic",
|
||||
"notificationType_new-reply": "When a new reply is posted in a topic you are watching",
|
||||
"notificationType_post-edit": "When a post is edited in a topic you are watching",
|
||||
"notificationType_follow": "When someone starts following you",
|
||||
"notificationType_new-chat": "When you receive a chat message",
|
||||
"notificationType_group-invite": "When you receive a group invite",
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
"user_posted_to_dual": "<strong>%1</strong> и <strong>%2</strong> су одговорили на: <strong>%3</strong>",
|
||||
"user_posted_to_multiple": "<strong>%1</strong> и %2 других су одговорили на: <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> и <strong>%2</strong> су почели да вас прате.",
|
||||
"user_started_following_you_multiple": "<strong>%1</strong> и %2 других су почели да вас прате.",
|
||||
@@ -53,6 +54,7 @@
|
||||
"notificationType_upvote": "Када неко гласа за вашу поруку",
|
||||
"notificationType_new-topic": "Када неко кога пратите постави тему",
|
||||
"notificationType_new-reply": "Када је постављен нови одговор у теми коју надгледате",
|
||||
"notificationType_post-edit": "When a post is edited in a topic you are watching",
|
||||
"notificationType_follow": "Када неко почне да вас прати",
|
||||
"notificationType_new-chat": "Када примите поруку за ћаскање",
|
||||
"notificationType_group-invite": "Када примите позивницу за групу",
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
"user_posted_to_dual": "<strong>%1</strong> och <strong>%2</strong> har svarat på: <strong>%3</strong>",
|
||||
"user_posted_to_multiple": "<strong>%1</strong> och %2 andra har svarat på: <strong>%3</strong>",
|
||||
"user_posted_topic": "<strong>%1</strong> har skapat ett nytt ämne: <strong>%2</strong>",
|
||||
"user_edited_post": "<strong>%1</strong> has edited a post in <strong>%2</strong>",
|
||||
"user_started_following_you": "<strong>%1</strong> började följa dig.",
|
||||
"user_started_following_you_dual": "<strong>%1</strong> och <strong>%2</strong> började följa dig.",
|
||||
"user_started_following_you_multiple": "<strong>%1</strong> och %2 andra började följa dig.",
|
||||
@@ -53,6 +54,7 @@
|
||||
"notificationType_upvote": "När någon röstar upp ditt inlägg",
|
||||
"notificationType_new-topic": "När någon du följer skapar ett ämne",
|
||||
"notificationType_new-reply": "När ett nytt svar skrivs inom ett ämne du följer",
|
||||
"notificationType_post-edit": "When a post is edited in a topic you are watching",
|
||||
"notificationType_follow": "När någon börjar följa dig",
|
||||
"notificationType_new-chat": "När du får ett chattmeddelande",
|
||||
"notificationType_group-invite": "När du får en gruppinbjudan",
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
"user_posted_to_dual": "<strong>%1</strong>และ <strong>%2</strong>ได้โพสต์คำตอบไปยัง : <strong>%3</strong> ",
|
||||
"user_posted_to_multiple": "<strong>%1</strong>และคนอื่นๆอีก %2 ได้โพสต์คำตอบไปยัง : <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>และ<strong>%2</strong>ได้เริ่มติดตามคุณ",
|
||||
"user_started_following_you_multiple": "<strong>%1</strong>และคืนอื่นๆอีก %2 คนได้เริ่มติดตามคุณ",
|
||||
@@ -53,6 +54,7 @@
|
||||
"notificationType_upvote": "เมื่อมีคนโหวตอัพให้โพสต์คุณ",
|
||||
"notificationType_new-topic": "เมื่อมีคนติดตามโพสต์คุณ",
|
||||
"notificationType_new-reply": "เมื่อมีการตอบกลับในโพสต์ที่คุณกำลังติดตาม",
|
||||
"notificationType_post-edit": "When a post is edited in a topic you are watching",
|
||||
"notificationType_follow": "เมื่อมีคนติดตามคุณ",
|
||||
"notificationType_new-chat": "เมื่อคุณได้รับข้อความใหม่",
|
||||
"notificationType_group-invite": "เมื่อคุณได้รับเชิญเข้ากลุ่ม",
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
"user_posted_to_dual": "<strong>%1</strong> ve <strong>%2</strong> şu başlıktaki gönderinize cevap verdi: <strong>%3</strong>",
|
||||
"user_posted_to_multiple": "<strong>%1</strong> ve %2 kişi daha şu başlıktaki gönderinize cevap verdi: <strong>%3</strong>",
|
||||
"user_posted_topic": "<strong>%1</strong> şu yeni konuyu yarattı: <strong>%2</strong>",
|
||||
"user_edited_post": "<strong>%1</strong> has edited a post in <strong>%2</strong>",
|
||||
"user_started_following_you": "<strong>%1</strong> sizi takip etmeye başladı.",
|
||||
"user_started_following_you_dual": "<strong>%1</strong> ve <strong>%2</strong> sizi takip etmeye başladı.",
|
||||
"user_started_following_you_multiple": "<strong>%1</strong> ve %2 kişi daha sizi takip etmeye başladı.",
|
||||
@@ -53,6 +54,7 @@
|
||||
"notificationType_upvote": "Birisi senin iletine artı oy verdiğinde",
|
||||
"notificationType_new-topic": "Takip ettiğiniz birisi bir başlık gönderdiğinde",
|
||||
"notificationType_new-reply": "İzlediğiniz bir başlığa yeni bir ileti gönderildiğinde",
|
||||
"notificationType_post-edit": "When a post is edited in a topic you are watching",
|
||||
"notificationType_follow": "Birisi seni takip etmeye başlayınca",
|
||||
"notificationType_new-chat": "Bir sohbet mesajı aldığınızda",
|
||||
"notificationType_group-invite": "Bir grup davetiyesi aldığınızda",
|
||||
|
||||
@@ -135,5 +135,5 @@
|
||||
"diffs.current-revision": "mevcut revizyon",
|
||||
"diffs.original-revision": "orijinal revizyon",
|
||||
"timeago_later": "%1 sonra",
|
||||
"timeago_earlier": "%1 daha öncesi"
|
||||
"timeago_earlier": "%1 önce"
|
||||
}
|
||||
@@ -35,6 +35,7 @@
|
||||
"user_posted_to_dual": "<strong>%1</strong> та <strong>%2</strong> запостили відповіді до: <strong>%3</strong>",
|
||||
"user_posted_to_multiple": "<strong>%1</strong> та %2 інших запостили відповіді до: <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> та <strong>%2</strong> почали стежити за вами.",
|
||||
"user_started_following_you_multiple": "<strong>%1</strong> та %2 інших почали стежити за вами.",
|
||||
@@ -53,6 +54,7 @@
|
||||
"notificationType_upvote": "Коли хтось голосує за ваш пост",
|
||||
"notificationType_new-topic": "Коли хтось, кого ви читаєте, публікує тему",
|
||||
"notificationType_new-reply": "Коли з'являється нова відповідь у темі, за якою ви слідкуєте",
|
||||
"notificationType_post-edit": "When a post is edited in a topic you are watching",
|
||||
"notificationType_follow": "Коли хтось починає слідкувати за вами",
|
||||
"notificationType_new-chat": "Коли ви отримуєте повідомлення чату",
|
||||
"notificationType_group-invite": "Коли ви отримуєте запрошення до групи",
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
"user_posted_to_dual": "<strong>%1</strong> và <strong>%2</strong> đã trả lời: <strong>%3</strong>",
|
||||
"user_posted_to_multiple": "<strong>%1</strong> và %2 người khác đã trả lời: <strong>%3</strong>",
|
||||
"user_posted_topic": "<strong>%1</strong> đã gởi chủ đề mới ở <strong>%2</strong>",
|
||||
"user_edited_post": "<strong>%1</strong> has edited a post in <strong>%2</strong>",
|
||||
"user_started_following_you": "<strong>%1</strong> đã theo dõi bạn.",
|
||||
"user_started_following_you_dual": "<strong>%1</strong> và <strong>%2</strong> đã bắt đầu theo dõi bạn.",
|
||||
"user_started_following_you_multiple": "<strong>%1</strong> và %2 người khác đã bắt đầu theo dõi bạn.",
|
||||
@@ -53,6 +54,7 @@
|
||||
"notificationType_upvote": "Khi ai đó thích bài đăng của bạn",
|
||||
"notificationType_new-topic": "Khi người bạn theo dõi đăng một chủ đề",
|
||||
"notificationType_new-reply": "Khi phản hồi được đăng trong chủ đề bạn đang quan tâm",
|
||||
"notificationType_post-edit": "When a post is edited in a topic you are watching",
|
||||
"notificationType_follow": "Khi ai đó theo dõi bạn",
|
||||
"notificationType_new-chat": "Khi bạn nhận được thông điệp chat",
|
||||
"notificationType_group-invite": "Khi bạn nhận được lời mời gia nhập nhóm",
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
"user_posted_to_dual": "<strong>%1</strong> 和 <strong>%2</strong> 回复了: <strong>%3</strong>",
|
||||
"user_posted_to_multiple": "<strong>%1</strong> 和 %2 个其他人回复了: <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> 和 <strong>%2</strong> 关注了您。",
|
||||
"user_started_following_you_multiple": "<strong>%1</strong> 和 %2 个其他人关注了您。",
|
||||
@@ -53,6 +54,7 @@
|
||||
"notificationType_upvote": "当有人顶了我的帖子时",
|
||||
"notificationType_new-topic": "当有人回复我的帖子时",
|
||||
"notificationType_new-reply": "当您正在查看的主题中有新回复时",
|
||||
"notificationType_post-edit": "When a post is edited in a topic you are watching",
|
||||
"notificationType_follow": "当有人关注您时",
|
||||
"notificationType_new-chat": "当您收到聊天消息时",
|
||||
"notificationType_group-invite": "当您收到群组邀请时",
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
"user_posted_to_dual": "<strong>%1</strong> 和 <strong>%2</strong> 回覆了: <strong>%3</strong>",
|
||||
"user_posted_to_multiple": "<strong>%1</strong> 和 %2 個其他人回覆了: <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> 和 <strong>%2</strong> 追隨了您。",
|
||||
"user_started_following_you_multiple": "<strong>%1</strong> 和 %2 個其他人追隨了您。",
|
||||
@@ -53,6 +54,7 @@
|
||||
"notificationType_upvote": "當有人點贊了我的貼文時",
|
||||
"notificationType_new-topic": "當有人回覆我的貼文時",
|
||||
"notificationType_new-reply": "當您正在查看的主題中有新回覆時",
|
||||
"notificationType_post-edit": "When a post is edited in a topic you are watching",
|
||||
"notificationType_follow": "當有人追隨您時",
|
||||
"notificationType_new-chat": "當您收到聊天訊息時",
|
||||
"notificationType_group-invite": "當您收到群組邀請時",
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -199,7 +199,11 @@ define('topicList', [
|
||||
});
|
||||
}
|
||||
var categoryEl = $(this);
|
||||
var cid = $(this).attr('data-cid');
|
||||
var link = categoryEl.find('a').attr('href');
|
||||
if (link && link !== '#' && link.length) {
|
||||
return;
|
||||
}
|
||||
var cid = categoryEl.attr('data-cid');
|
||||
if (ev.ctrlKey) {
|
||||
selectChildren(cid, !categoryEl.find('[component="category/select/icon"]').hasClass('fa-check'));
|
||||
}
|
||||
|
||||
@@ -175,20 +175,16 @@ function calculateTopicPostCount(category) {
|
||||
return;
|
||||
}
|
||||
|
||||
var postCount = category.post_count;
|
||||
var topicCount = category.topic_count;
|
||||
if (!Array.isArray(category.children) || !category.children.length) {
|
||||
category.totalPostCount = postCount;
|
||||
category.totalTopicCount = topicCount;
|
||||
return;
|
||||
let postCount = category.post_count;
|
||||
let topicCount = category.topic_count;
|
||||
if (Array.isArray(category.children)) {
|
||||
category.children.forEach(function (child) {
|
||||
calculateTopicPostCount(child);
|
||||
postCount += parseInt(child.totalPostCount, 10) || 0;
|
||||
topicCount += parseInt(child.totalTopicCount, 10) || 0;
|
||||
});
|
||||
}
|
||||
|
||||
category.children.forEach(function (child) {
|
||||
calculateTopicPostCount(child);
|
||||
postCount += parseInt(child.totalPostCount, 10) || 0;
|
||||
topicCount += parseInt(child.totalTopicCount, 10) || 0;
|
||||
});
|
||||
|
||||
category.totalPostCount = postCount;
|
||||
category.totalTopicCount = topicCount;
|
||||
}
|
||||
@@ -240,7 +236,7 @@ Categories.getChildrenCids = async function (rootCid) {
|
||||
}
|
||||
keys = childrenCids.map(cid => 'cid:' + cid + ':children');
|
||||
childrenCids.forEach(cid => allCids.push(parseInt(cid, 10)));
|
||||
recursive(keys);
|
||||
await recursive(keys);
|
||||
}
|
||||
const key = 'cid:' + rootCid + ':children';
|
||||
const childrenCids = cache.get(key);
|
||||
|
||||
@@ -62,12 +62,24 @@ module.exports = function (Categories) {
|
||||
}
|
||||
};
|
||||
|
||||
Categories.getRecentTopicReplies = async function (categoryData, uid) {
|
||||
Categories.getRecentTopicReplies = async function (categoryData, uid, query) {
|
||||
if (!Array.isArray(categoryData) || !categoryData.length) {
|
||||
return;
|
||||
}
|
||||
const categoriesToLoad = categoryData.filter(category => category && category.numRecentReplies && parseInt(category.numRecentReplies, 10) > 0);
|
||||
const keys = categoriesToLoad.map(category => 'cid:' + category.cid + ':recent_tids');
|
||||
const categoriesToLoad = categoryData.filter(c => c && c.numRecentReplies && parseInt(c.numRecentReplies, 10) > 0);
|
||||
let keys = [];
|
||||
if (plugins.hasListeners('filter:categories.getRecentTopicReplies')) {
|
||||
const result = await plugins.fireHook('filter:categories.getRecentTopicReplies', {
|
||||
categories: categoriesToLoad,
|
||||
uid: uid,
|
||||
query: query,
|
||||
keys: [],
|
||||
});
|
||||
keys = result.keys;
|
||||
} else {
|
||||
keys = categoriesToLoad.map(c => 'cid:' + c.cid + ':recent_tids');
|
||||
}
|
||||
|
||||
const results = await db.getSortedSetsMembers(keys);
|
||||
let tids = _.uniq(_.flatten(results).filter(Boolean));
|
||||
|
||||
|
||||
@@ -108,7 +108,7 @@ settingsController.get = async function (req, res, next) {
|
||||
|
||||
userData.disableCustomUserSkins = meta.config.disableCustomUserSkins || 0;
|
||||
|
||||
userData.allowUserHomePage = meta.config.allowUserHomePage || 1;
|
||||
userData.allowUserHomePage = meta.config.allowUserHomePage === 1 ? 1 : 0;
|
||||
|
||||
userData.hideFullname = meta.config.hideFullname || 0;
|
||||
userData.hideEmail = meta.config.hideEmail || 0;
|
||||
|
||||
@@ -19,7 +19,7 @@ categoriesController.list = async function (req, res) {
|
||||
|
||||
const categoryData = await categories.getCategoriesByPrivilege('categories:cid', req.uid, 'find');
|
||||
const tree = categories.getTree(categoryData, 0);
|
||||
await categories.getRecentTopicReplies(categoryData, req.uid);
|
||||
await categories.getRecentTopicReplies(categoryData, req.uid, req.query);
|
||||
|
||||
const data = {
|
||||
title: meta.config.homePageTitle || '[[pages:home]]',
|
||||
|
||||
@@ -88,7 +88,7 @@ categoryController.get = async function (req, res, next) {
|
||||
if (categoryData.children.length) {
|
||||
const allCategories = [];
|
||||
categories.flattenCategories(allCategories, categoryData.children);
|
||||
await categories.getRecentTopicReplies(allCategories, req.uid);
|
||||
await categories.getRecentTopicReplies(allCategories, req.uid, req.query);
|
||||
}
|
||||
|
||||
categoryData.title = translator.escape(categoryData.name);
|
||||
|
||||
@@ -222,7 +222,7 @@ async function getCategoryData(cids, uid, selectedCid, states) {
|
||||
if (selectedCid && !Array.isArray(selectedCid)) {
|
||||
selectedCid = [selectedCid];
|
||||
}
|
||||
|
||||
selectedCid = selectedCid && selectedCid.map(String);
|
||||
states = states || [categories.watchStates.watching, categories.watchStates.notwatching];
|
||||
|
||||
const [allowed, watchState, categoryData, isAdmin] = await Promise.all([
|
||||
@@ -286,7 +286,7 @@ function checkVisibleChildren(c, cidToAllowed, cidToWatchState, states) {
|
||||
if (!c || !Array.isArray(c.children)) {
|
||||
return false;
|
||||
}
|
||||
return c.children.some(c => c && (
|
||||
return c.children.some(c => c && !c.disabled && (
|
||||
(cidToAllowed[c.cid] && states.includes(cidToWatchState[c.cid])) || checkVisibleChildren(c, cidToAllowed, cidToWatchState, states)
|
||||
));
|
||||
}
|
||||
|
||||
@@ -52,7 +52,8 @@ module.exports = function (module) {
|
||||
return;
|
||||
}
|
||||
const isArrayOfScores = Array.isArray(scores);
|
||||
if (!isArrayOfScores && !utils.isNumber(scores)) {
|
||||
if ((!isArrayOfScores && !utils.isNumber(scores)) ||
|
||||
(isArrayOfScores && scores.map(s => utils.isNumber(s)).includes(false))) {
|
||||
throw new Error('[[error:invalid-score, ' + scores + ']]');
|
||||
}
|
||||
|
||||
@@ -75,6 +76,9 @@ module.exports = function (module) {
|
||||
}
|
||||
var bulk = module.client.collection('objects').initializeUnorderedBulkOp();
|
||||
data.forEach(function (item) {
|
||||
if (!utils.isNumber(item[1])) {
|
||||
throw new Error('[[error:invalid-score, ' + item[1] + ']]');
|
||||
}
|
||||
bulk.find({ _key: item[0], value: String(item[2]) }).upsert().updateOne({ $set: { score: parseFloat(item[1]) } });
|
||||
});
|
||||
await bulk.execute();
|
||||
|
||||
@@ -69,7 +69,8 @@ DO UPDATE SET "score" = EXCLUDED."score"`,
|
||||
return;
|
||||
}
|
||||
const isArrayOfScores = Array.isArray(scores);
|
||||
if (!isArrayOfScores && !utils.isNumber(scores)) {
|
||||
if ((!isArrayOfScores && !utils.isNumber(scores)) ||
|
||||
(isArrayOfScores && scores.map(s => utils.isNumber(s)).includes(false))) {
|
||||
throw new Error('[[error:invalid-score, ' + scores + ']]');
|
||||
}
|
||||
|
||||
@@ -108,6 +109,9 @@ INSERT INTO "legacy_zset" ("_key", "value", "score")
|
||||
const values = [];
|
||||
const scores = [];
|
||||
data.forEach(function (item) {
|
||||
if (!utils.isNumber(item[1])) {
|
||||
throw new Error('[[error:invalid-score, ' + item[1] + ']]');
|
||||
}
|
||||
keys.push(item[0]);
|
||||
scores.push(item[1]);
|
||||
values.push(item[2]);
|
||||
|
||||
@@ -42,7 +42,8 @@ module.exports = function (module) {
|
||||
return;
|
||||
}
|
||||
const isArrayOfScores = Array.isArray(scores);
|
||||
if (!isArrayOfScores && !utils.isNumber(scores)) {
|
||||
if ((!isArrayOfScores && !utils.isNumber(scores)) ||
|
||||
(isArrayOfScores && scores.map(s => utils.isNumber(s)).includes(false))) {
|
||||
throw new Error('[[error:invalid-score, ' + scores + ']]');
|
||||
}
|
||||
|
||||
@@ -65,6 +66,9 @@ module.exports = function (module) {
|
||||
}
|
||||
var batch = module.client.batch();
|
||||
data.forEach(function (item) {
|
||||
if (!utils.isNumber(item[1])) {
|
||||
throw new Error('[[error:invalid-score, ' + item[1] + ']]');
|
||||
}
|
||||
batch.zadd(item[0], item[1], item[2]);
|
||||
});
|
||||
await helpers.execBatch(batch);
|
||||
|
||||
@@ -21,6 +21,7 @@ Notifications.baseTypes = [
|
||||
'notificationType_upvote',
|
||||
'notificationType_new-topic',
|
||||
'notificationType_new-reply',
|
||||
'notificationType_post-edit',
|
||||
'notificationType_follow',
|
||||
'notificationType_new-chat',
|
||||
'notificationType_group-invite',
|
||||
|
||||
@@ -52,6 +52,13 @@ module.exports = function (Posts) {
|
||||
|
||||
postData.cid = topic.cid;
|
||||
postData.topic = topic;
|
||||
|
||||
await topics.notifyFollowers(postData, data.uid, {
|
||||
type: 'post-edit',
|
||||
bodyShort: translator.compile('notifications:user_edited_post', editor.username, postData.topic.title),
|
||||
nid: 'edit_post:' + postData.pid + ':uid:' + data.uid,
|
||||
});
|
||||
|
||||
plugins.fireHook('action:post.edit', { post: _.clone(postData), data: data, uid: data.uid });
|
||||
|
||||
require('./cache').del(String(postData.pid));
|
||||
@@ -79,6 +86,7 @@ module.exports = function (Posts) {
|
||||
return {
|
||||
tid: tid,
|
||||
cid: topicData.cid,
|
||||
title: validator.escape(String(topicData.title)),
|
||||
isMainPost: false,
|
||||
renamed: false,
|
||||
};
|
||||
|
||||
@@ -13,6 +13,7 @@ var meta = require('../meta');
|
||||
var posts = require('../posts');
|
||||
var privileges = require('../privileges');
|
||||
var categories = require('../categories');
|
||||
const translator = require('../translator');
|
||||
|
||||
module.exports = function (Topics) {
|
||||
Topics.create = async function (data) {
|
||||
@@ -180,7 +181,13 @@ module.exports = function (Topics) {
|
||||
user.setUserField(uid, 'lastonline', Date.now());
|
||||
}
|
||||
|
||||
Topics.notifyFollowers(postData, uid);
|
||||
Topics.notifyFollowers(postData, uid, {
|
||||
type: 'new-reply',
|
||||
bodyShort: translator.compile('notifications:user_posted_to', postData.user.username, postData.topic.title),
|
||||
nid: 'new_post:tid:' + postData.topic.tid + ':pid:' + postData.pid + ':uid:' + uid,
|
||||
mergeId: 'notifications:user_posted_to|' + postData.topic.tid,
|
||||
});
|
||||
|
||||
analytics.increment(['posts', 'posts:byCid:' + data.cid]);
|
||||
plugins.fireHook('action:topic.reply', { post: _.clone(postData), data: data });
|
||||
|
||||
|
||||
@@ -145,47 +145,37 @@ module.exports = function (Topics) {
|
||||
return tids.filter((tid, index) => tid && !scores[index]);
|
||||
};
|
||||
|
||||
Topics.notifyFollowers = async function (postData, exceptUid) {
|
||||
var title;
|
||||
var titleEscaped;
|
||||
|
||||
Topics.notifyFollowers = async function (postData, exceptUid, notifData) {
|
||||
notifData = notifData || {};
|
||||
let followers = await Topics.getFollowers(postData.topic.tid);
|
||||
|
||||
var index = followers.indexOf(exceptUid.toString());
|
||||
const index = followers.indexOf(String(exceptUid));
|
||||
if (index !== -1) {
|
||||
followers.splice(index, 1);
|
||||
}
|
||||
|
||||
followers = await privileges.topics.filterUids('topics:read', postData.topic.tid, followers);
|
||||
|
||||
if (!followers.length) {
|
||||
return;
|
||||
}
|
||||
title = postData.topic.title;
|
||||
|
||||
let title = postData.topic.title;
|
||||
if (title) {
|
||||
title = utils.decodeHTMLEntities(title);
|
||||
titleEscaped = title.replace(/%/g, '%').replace(/,/g, ',');
|
||||
}
|
||||
|
||||
postData.content = posts.relativeToAbsolute(postData.content, posts.urlRegex);
|
||||
postData.content = posts.relativeToAbsolute(postData.content, posts.imgRegex);
|
||||
|
||||
const notification = await notifications.create({
|
||||
type: 'new-reply',
|
||||
subject: title,
|
||||
bodyShort: '[[notifications:user_posted_to, ' + postData.user.username + ', ' + titleEscaped + ']]',
|
||||
bodyLong: postData.content,
|
||||
pid: postData.pid,
|
||||
path: '/post/' + postData.pid,
|
||||
nid: 'new_post:tid:' + postData.topic.tid + ':pid:' + postData.pid + ':uid:' + exceptUid,
|
||||
tid: postData.topic.tid,
|
||||
from: exceptUid,
|
||||
mergeId: 'notifications:user_posted_to|' + postData.topic.tid,
|
||||
topicTitle: title,
|
||||
...notifData,
|
||||
});
|
||||
if (notification) {
|
||||
notifications.push(notification, followers);
|
||||
}
|
||||
notifications.push(notification, followers);
|
||||
};
|
||||
};
|
||||
|
||||
@@ -67,7 +67,7 @@ Topics.getTopicsByTids = async function (tids, options) {
|
||||
const uids = _.uniq(topics.map(t => t && t.uid && t.uid.toString()).filter(v => utils.isNumber(v)));
|
||||
const cids = _.uniq(topics.map(t => t && t.cid && t.cid.toString()).filter(v => utils.isNumber(v)));
|
||||
|
||||
const guestTopics = topics.filter(t => t.uid === 0);
|
||||
const guestTopics = topics.filter(t => t && t.uid === 0);
|
||||
async function loadGuestHandles() {
|
||||
return await Promise.all(guestTopics.map(topic => posts.getPostField(topic.mainPid, 'handle')));
|
||||
}
|
||||
|
||||
@@ -152,12 +152,15 @@ module.exports = function (Topics) {
|
||||
};
|
||||
|
||||
Topics.getTopicTags = async function (tid) {
|
||||
return await db.getSetMembers('topic:' + tid + ':tags');
|
||||
const tags = await db.getSetMembers('topic:' + tid + ':tags');
|
||||
return tags.sort();
|
||||
};
|
||||
|
||||
Topics.getTopicsTags = async function (tids) {
|
||||
const keys = tids.map(tid => 'topic:' + tid + ':tags');
|
||||
return await db.getSetsMembers(keys);
|
||||
const tags = await db.getSetsMembers(keys);
|
||||
tags.forEach(tags => tags.sort());
|
||||
return tags;
|
||||
};
|
||||
|
||||
Topics.getTopicTagsObjects = async function (tid) {
|
||||
@@ -192,6 +195,31 @@ module.exports = function (Topics) {
|
||||
return topicTags;
|
||||
};
|
||||
|
||||
Topics.addTags = async function (tags, tids) {
|
||||
const topicData = await Topics.getTopicsFields(tids, ['timestamp']);
|
||||
const sets = tids.map(tid => 'topic:' + tid + ':tags');
|
||||
for (let i = 0; i < tags.length; i++) {
|
||||
/* eslint-disable no-await-in-loop */
|
||||
await Promise.all([
|
||||
db.setsAdd(sets, tags[i]),
|
||||
db.sortedSetAdd('tag:' + tags[i] + ':topics', topicData.map(t => t.timestamp), tids),
|
||||
]);
|
||||
await updateTagCount(tags[i]);
|
||||
}
|
||||
};
|
||||
|
||||
Topics.removeTags = async function (tags, tids) {
|
||||
const sets = tids.map(tid => 'topic:' + tid + ':tags');
|
||||
for (let i = 0; i < tags.length; i++) {
|
||||
/* eslint-disable no-await-in-loop */
|
||||
await Promise.all([
|
||||
db.setsRemove(sets, tags[i]),
|
||||
db.sortedSetRemove('tag:' + tags[i] + ':topics', tids),
|
||||
]);
|
||||
await updateTagCount(tags[i]);
|
||||
}
|
||||
};
|
||||
|
||||
Topics.updateTopicTags = async function (tid, tags) {
|
||||
await Topics.deleteTopicTags(tid);
|
||||
const timestamp = await Topics.getTopicField(tid, 'timestamp');
|
||||
|
||||
@@ -93,7 +93,8 @@ module.exports = function (Topics) {
|
||||
throw new Error('[[error:no-privileges]]');
|
||||
}
|
||||
await Topics.setTopicField(tid, 'locked', lock ? 1 : 0);
|
||||
topicData.isLocked = lock;
|
||||
topicData.isLocked = lock; // deprecate in v2.0
|
||||
topicData.locked = lock;
|
||||
|
||||
plugins.fireHook('action:topic.lock', { topic: _.clone(topicData), uid: uid });
|
||||
return topicData;
|
||||
|
||||
@@ -44,9 +44,9 @@ module.exports = {
|
||||
}
|
||||
totalUserCount += 1;
|
||||
await db.sortedSetAddBulk([
|
||||
['users:joindate', userData.joindate, uids[index]],
|
||||
['users:reputation', userData.reputation, uids[index]],
|
||||
['users:postcount', userData.postcount, uids[index]],
|
||||
['users:joindate', userData.joindate || Date.now(), uids[index]],
|
||||
['users:reputation', userData.reputation || 0, uids[index]],
|
||||
['users:postcount', userData.postcount || 0, uids[index]],
|
||||
]);
|
||||
if (userData.hasOwnProperty('flags') && parseInt(userData.flags, 10) > 0) {
|
||||
await db.sortedSetAdd('users:flags', userData.flags, uids[index]);
|
||||
|
||||
@@ -5,6 +5,7 @@ const LRU = require('lru-cache');
|
||||
|
||||
const db = require('../database');
|
||||
const pubsub = require('../pubsub');
|
||||
const plugins = require('../plugins');
|
||||
|
||||
module.exports = function (User) {
|
||||
User.blocks = {
|
||||
@@ -63,6 +64,7 @@ module.exports = function (User) {
|
||||
await User.incrementUserFieldBy(uid, 'blocksCount', 1);
|
||||
User.blocks._cache.del(parseInt(uid, 10));
|
||||
pubsub.publish('user:blocks:cache:del', parseInt(uid, 10));
|
||||
plugins.fireHook('action:user.blocks.add', { uid: uid, targetUid: targetUid });
|
||||
};
|
||||
|
||||
User.blocks.remove = async function (targetUid, uid) {
|
||||
@@ -71,6 +73,7 @@ module.exports = function (User) {
|
||||
await User.decrementUserFieldBy(uid, 'blocksCount', 1);
|
||||
User.blocks._cache.del(parseInt(uid, 10));
|
||||
pubsub.publish('user:blocks:cache:del', parseInt(uid, 10));
|
||||
plugins.fireHook('action:user.blocks.remove', { uid: uid, targetUid: targetUid });
|
||||
};
|
||||
|
||||
User.blocks.applyChecks = async function (type, targetUid, uid) {
|
||||
@@ -115,7 +118,8 @@ module.exports = function (User) {
|
||||
set = set.filter(function (item) {
|
||||
return !blockedSet.has(parseInt(isPlain ? item : item[property], 10));
|
||||
});
|
||||
const data = await plugins.fireHook('filter:user.blocks.filter', { set: set, property: property, uid: uid, blockedSet: blockedSet });
|
||||
|
||||
return set;
|
||||
return data.set;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -109,7 +109,7 @@ describe('Categories', function () {
|
||||
uid: 0,
|
||||
}, function (err, categoryData) {
|
||||
assert.ifError(err);
|
||||
Categories.getRecentTopicReplies(categoryData, 0, function (err) {
|
||||
Categories.getRecentTopicReplies(categoryData, 0, {}, function (err) {
|
||||
assert.ifError(err);
|
||||
done();
|
||||
});
|
||||
@@ -910,4 +910,18 @@ describe('Categories', function () {
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
it('should return nested children categories', async function () {
|
||||
const rootCategory = await Categories.create({ name: 'root' });
|
||||
const child1 = await Categories.create({ name: 'child1', parentCid: rootCategory.cid });
|
||||
const child2 = await Categories.create({ name: 'child2', parentCid: child1.cid });
|
||||
const data = await Categories.getCategoryById({
|
||||
uid: 1,
|
||||
cid: rootCategory.cid,
|
||||
start: 0,
|
||||
stop: 19,
|
||||
});
|
||||
assert.strictEqual(child1.cid, data.children[0].cid);
|
||||
assert.strictEqual(child2.cid, data.children[0].children[0].cid);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -118,6 +118,18 @@ describe('Sorted Set methods', function () {
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it('should error if scores has null', async function () {
|
||||
let err;
|
||||
try {
|
||||
await db.sortedSetsAdd(['sorted1', 'sorted2'], [1, null], 'dontadd');
|
||||
} catch (_err) {
|
||||
err = _err;
|
||||
}
|
||||
assert.equal(err.message, '[[error:invalid-score, 1,]]');
|
||||
assert.strictEqual(await db.isSortedSetMember('sorted1', 'dontadd'), false);
|
||||
assert.strictEqual(await db.isSortedSetMember('sorted2', 'dontadd'), false);
|
||||
});
|
||||
});
|
||||
|
||||
describe('sortedSetAddMulti()', function () {
|
||||
@@ -146,6 +158,21 @@ describe('Sorted Set methods', function () {
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it('should error if score is null', async function () {
|
||||
let err;
|
||||
try {
|
||||
await db.sortedSetAddBulk([
|
||||
['bulk4', 0, 'dontadd'],
|
||||
['bulk5', null, 'dontadd'],
|
||||
]);
|
||||
} catch (_err) {
|
||||
err = _err;
|
||||
}
|
||||
assert.equal(err.message, '[[error:invalid-score, null]]');
|
||||
assert.strictEqual(await db.isSortedSetMember('bulk4', 'dontadd'), false);
|
||||
assert.strictEqual(await db.isSortedSetMember('bulk5', 'dontadd'), false);
|
||||
});
|
||||
});
|
||||
|
||||
describe('getSortedSetRange()', function () {
|
||||
|
||||
@@ -1753,6 +1753,19 @@ describe('Topic\'s', function () {
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
it('should add and remove tags from topics properly', async () => {
|
||||
const result = await topics.post({ uid: adminUid, tags: ['tag4', 'tag2', 'tag1', 'tag3'], title: 'tag topic', content: 'topic 1 content', cid: topic.categoryId });
|
||||
const tid = result.topicData.tid;
|
||||
let tags = await topics.getTopicTags(tid);
|
||||
assert.deepStrictEqual(tags, ['tag1', 'tag2', 'tag3', 'tag4']);
|
||||
await topics.addTags(['tag7', 'tag6', 'tag5'], [tid]);
|
||||
tags = await topics.getTopicTags(tid);
|
||||
assert.deepStrictEqual(tags, ['tag1', 'tag2', 'tag3', 'tag4', 'tag5', 'tag6', 'tag7']);
|
||||
await topics.removeTags(['tag1', 'tag3', 'tag5', 'tag7'], [tid]);
|
||||
tags = await topics.getTopicTags(tid);
|
||||
assert.deepStrictEqual(tags, ['tag2', 'tag4', 'tag6']);
|
||||
});
|
||||
});
|
||||
|
||||
describe('follow/unfollow', function () {
|
||||
|
||||
Reference in New Issue
Block a user