From aa797f23c14f094333c02c18977eef189adbcc2a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Wed, 6 Sep 2023 11:00:34 -0400 Subject: [PATCH 001/275] fix: #11981, post immediately when canceling scheduling --- src/posts/edit.js | 2 +- src/topics/scheduled.js | 46 ++++++++++++++++++++++++----------------- 2 files changed, 28 insertions(+), 20 deletions(-) diff --git a/src/posts/edit.js b/src/posts/edit.js index c75f7f2379..fed05baa63 100644 --- a/src/posts/edit.js +++ b/src/posts/edit.js @@ -186,7 +186,7 @@ module.exports = function (Posts) { throw new Error('[[error:no-privileges]]'); } const isMain = parseInt(data.pid, 10) === parseInt(topicData.mainPid, 10); - if (isMain && (isNaN(data.timestamp) || data.timestamp < Date.now())) { + if (isMain && isNaN(data.timestamp)) { throw new Error('[[error:invalid-data]]'); } } diff --git a/src/topics/scheduled.js b/src/topics/scheduled.js index bd79e1b07c..52d70366dc 100644 --- a/src/topics/scheduled.js +++ b/src/topics/scheduled.js @@ -26,6 +26,11 @@ Scheduled.handleExpired = async function () { return; } + await postTids(tids); + await db.sortedSetsRemoveRangeByScore([`topics:scheduled`], '-inf', now); +}; + +async function postTids(tids) { let topicsData = await topics.getTopicsData(tids); // Filter deleted topicsData = topicsData.filter(topicData => Boolean(topicData)); @@ -43,9 +48,8 @@ Scheduled.handleExpired = async function () { updateUserLastposttimes(uids, topicsData), updateGroupPosts(uids, topicsData), ...topicsData.map(topicData => unpin(topicData.tid, topicData)), - db.sortedSetsRemoveRangeByScore([`topics:scheduled`], '-inf', now) )); -}; +} // topics/tools.js#pin/unpin would block non-admins/mods, thus the local versions Scheduled.pin = async function (tid, topicData) { @@ -62,23 +66,27 @@ Scheduled.pin = async function (tid, topicData) { }; Scheduled.reschedule = async function ({ cid, tid, timestamp, uid }) { - const mainPid = await topics.getTopicField(tid, 'mainPid'); - await Promise.all([ - db.sortedSetsAdd([ - 'topics:scheduled', - `uid:${uid}:topics`, - 'topics:tid', - `cid:${cid}:uid:${uid}:tids`, - ], timestamp, tid), - posts.setPostField(mainPid, 'timestamp', timestamp), - db.sortedSetsAdd([ - 'posts:pid', - `uid:${uid}:posts`, - `cid:${cid}:uid:${uid}:pids`, - ], timestamp, mainPid), - shiftPostTimes(tid, timestamp), - ]); - return topics.updateLastPostTimeFromLastPid(tid); + if (timestamp < Date.now()) { + await postTids([tid]); + } else { + const mainPid = await topics.getTopicField(tid, 'mainPid'); + await Promise.all([ + db.sortedSetsAdd([ + 'topics:scheduled', + `uid:${uid}:topics`, + 'topics:tid', + `cid:${cid}:uid:${uid}:tids`, + ], timestamp, tid), + posts.setPostField(mainPid, 'timestamp', timestamp), + db.sortedSetsAdd([ + 'posts:pid', + `uid:${uid}:posts`, + `cid:${cid}:uid:${uid}:pids`, + ], timestamp, mainPid), + shiftPostTimes(tid, timestamp), + ]); + await topics.updateLastPostTimeFromLastPid(tid); + } }; function unpin(tid, topicData) { From b4775b18fee6f74634d65137422bceb4b3964f41 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Wed, 6 Sep 2023 11:33:53 -0400 Subject: [PATCH 002/275] chore: up dbsearch --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index 141a2dea79..8d712e4b65 100644 --- a/install/package.json +++ b/install/package.json @@ -94,7 +94,7 @@ "nconf": "0.12.0", "nodebb-plugin-2factor": "7.2.1", "nodebb-plugin-composer-default": "10.2.18", - "nodebb-plugin-dbsearch": "6.2.1", + "nodebb-plugin-dbsearch": "6.2.2", "nodebb-plugin-emoji": "5.1.5", "nodebb-plugin-emoji-android": "4.0.0", "nodebb-plugin-markdown": "12.2.3", From 9b0b33cc20a2266377832a8cd0c1c286a0d265b0 Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Wed, 6 Sep 2023 15:12:14 -0400 Subject: [PATCH 003/275] fix: bump chat message delay by 10x to 2000ms, re: #11983 --- install/data/defaults.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/data/defaults.json b/install/data/defaults.json index e32f98fd27..eeec153f1b 100644 --- a/install/data/defaults.json +++ b/install/data/defaults.json @@ -20,7 +20,7 @@ "disableChat": 0, "chatEditDuration": 0, "chatDeleteDuration": 0, - "chatMessageDelay": 200, + "chatMessageDelay": 2000, "notificationSendDelay": 60, "newbiePostDelayThreshold": 3, "postQueue": 0, From 88dd21e26fa08ce46efdad4726ff12b04b379266 Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Wed, 6 Sep 2023 15:21:40 -0400 Subject: [PATCH 004/275] fix: better labels in ACP chat settings, #11983 --- public/language/en-GB/admin/settings/chat.json | 8 +++++--- src/views/admin/settings/chat.tpl | 4 ++++ 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/public/language/en-GB/admin/settings/chat.json b/public/language/en-GB/admin/settings/chat.json index e4946458bd..102dd5aa3b 100644 --- a/public/language/en-GB/admin/settings/chat.json +++ b/public/language/en-GB/admin/settings/chat.json @@ -1,4 +1,5 @@ { + "zero-is-disabled": "Enter 0 to disable this restriction", "chat-settings": "Chat Settings", "disable": "Disable chat", "disable-editing": "Disable chat message editing/deletion", @@ -7,7 +8,8 @@ "max-chat-room-name-length": "Maximum length of chat room names", "max-room-size": "Maximum number of users in chat rooms", "delay": "Time between chat messages in milliseconds", - "notification-delay": "Notification delay for chat messages. (0 for no delay)", - "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable. (0 disabled)", - "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable. (0 disabled)" + "notification-delay": "Notification delay for chat messages", + "notification-delay-help": "Additional messages sent between this time are collated, and the user is notified once per delay period. Set this to 0 to disable the delay.", + "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable.", + "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable." } \ No newline at end of file diff --git a/src/views/admin/settings/chat.tpl b/src/views/admin/settings/chat.tpl index 62fbd3c199..852a039597 100644 --- a/src/views/admin/settings/chat.tpl +++ b/src/views/admin/settings/chat.tpl @@ -24,16 +24,19 @@
+

[[admin/settings/chat:zero-is-disabled]]

+

[[admin/settings/chat:zero-is-disabled]]

+

[[admin/settings/chat:zero-is-disabled]]

@@ -55,6 +58,7 @@
+

[[admin/settings/chat:notification-delay-help]]

From 4d1b8e76b3ed090a6e3422898780a95dbb3c63fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Wed, 6 Sep 2023 17:01:09 -0400 Subject: [PATCH 005/275] refactor: reduce socket.emits for typing if textarea changess between empty/full emit right away --- public/src/client/chats.js | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/public/src/client/chats.js b/public/src/client/chats.js index 20e81eb854..53a2835e9a 100644 --- a/public/src/client/chats.js +++ b/public/src/client/chats.js @@ -331,9 +331,22 @@ define('forum/chats', [ textarea.on('focus', () => textarea.val() && emitTyping(true)); textarea.on('blur', () => emitTyping(false)); - textarea.on('input', utils.throttle(function () { - emitTyping(!!textarea.val()); - }, 2500, true)); + let timeoutid = 0; + let hasText = !!textarea.val(); + textarea.on('input', function () { + const _hasText = !!textarea.val(); + if (_hasText !== hasText) { + clearTimeout(timeoutid); + timeoutid = 0; + hasText = _hasText; + emitTyping(hasText); + } else if (!timeoutid) { + timeoutid = setTimeout(() => { + emitTyping(!!textarea.val()); + timeoutid = 0; + }, 5000); + } + }); }; Chats.addActionHandlers = function (element, roomId) { From 0f9f875b944b70887975917198c63a7575f0142c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Wed, 6 Sep 2023 20:21:47 -0400 Subject: [PATCH 006/275] chore: up engines --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index f670975bb3..69a7ff625a 100644 --- a/install/package.json +++ b/install/package.json @@ -180,7 +180,7 @@ "url": "https://github.com/NodeBB/NodeBB/issues" }, "engines": { - "node": ">=12" + "node": ">=16" }, "maintainers": [ { From 13ea14f18dd4a4802e68772eda0fe84b25be3e79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Wed, 6 Sep 2023 23:29:18 -0400 Subject: [PATCH 007/275] chore: up harmony --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index 69a7ff625a..bd259661c7 100644 --- a/install/package.json +++ b/install/package.json @@ -102,7 +102,7 @@ "nodebb-plugin-ntfy": "1.6.1", "nodebb-plugin-spam-be-gone": "2.1.1", "nodebb-rewards-essentials": "0.2.3", - "nodebb-theme-harmony": "1.1.54", + "nodebb-theme-harmony": "1.1.55", "nodebb-theme-lavender": "7.1.3", "nodebb-theme-peace": "2.1.18", "nodebb-theme-persona": "13.2.28", From 1d0d3ad76be81f3562438da7d1515ba501e91a0c Mon Sep 17 00:00:00 2001 From: Misty Release Bot Date: Thu, 7 Sep 2023 09:19:46 +0000 Subject: [PATCH 008/275] Latest translations and fallbacks --- public/language/fr/modules.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/language/fr/modules.json b/public/language/fr/modules.json index 154f2556c2..be2670d67d 100644 --- a/public/language/fr/modules.json +++ b/public/language/fr/modules.json @@ -30,7 +30,7 @@ "chat.delete_message_confirm": "Êtes-vous sûr de vouloir supprimer ce message ?", "chat.retrieving-users": "Ajouter des utilisateurs ...", "chat.view-users-list": "Afficher la liste de utilisateurs", - "chat.public-rooms": "Salon Publique (ù1)", + "chat.public-rooms": "Salon Publique (%1)", "chat.private-rooms": "Salon Privé (%1)", "chat.create-room": "Créer une salon de discussion", "chat.private.option": "Privé (uniquement visible pour les utilisateurs ajoutés au salon)", From 9b384b986bb46b435917be812fe8ee5bf1553921 Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Thu, 7 Sep 2023 11:30:06 -0400 Subject: [PATCH 009/275] fix(i18n): push fallbacks for modules resource --- public/language/ar/modules.json | 10 +++++++++- public/language/bg/modules.json | 10 +++++++++- public/language/bn/modules.json | 10 +++++++++- public/language/cs/modules.json | 10 +++++++++- public/language/da/modules.json | 10 +++++++++- public/language/de/modules.json | 10 +++++++++- public/language/en-US/modules.json | 10 +++++++++- public/language/es/modules.json | 10 +++++++++- public/language/et/modules.json | 10 +++++++++- public/language/fa-IR/modules.json | 10 +++++++++- public/language/fi/modules.json | 10 +++++++++- public/language/fr/modules.json | 10 +++++++++- public/language/gl/modules.json | 10 +++++++++- public/language/he/modules.json | 10 +++++++++- public/language/hr/modules.json | 10 +++++++++- public/language/hu/modules.json | 10 +++++++++- public/language/hy/modules.json | 10 +++++++++- public/language/id/modules.json | 10 +++++++++- public/language/it/modules.json | 10 +++++++++- public/language/ja/modules.json | 10 +++++++++- public/language/ko/modules.json | 10 +++++++++- public/language/lt/modules.json | 10 +++++++++- public/language/lv/modules.json | 10 +++++++++- public/language/ms/modules.json | 10 +++++++++- public/language/nb/modules.json | 10 +++++++++- public/language/nl/modules.json | 10 +++++++++- public/language/pl/modules.json | 10 +++++++++- public/language/pt-BR/modules.json | 10 +++++++++- public/language/pt-PT/modules.json | 10 +++++++++- public/language/ro/modules.json | 10 +++++++++- public/language/ru/modules.json | 10 +++++++++- public/language/rw/modules.json | 10 +++++++++- public/language/sk/modules.json | 10 +++++++++- public/language/sl/modules.json | 10 +++++++++- public/language/sq-AL/modules.json | 10 +++++++++- public/language/sr/modules.json | 10 +++++++++- public/language/sv/modules.json | 10 +++++++++- public/language/th/modules.json | 10 +++++++++- public/language/tr/modules.json | 10 +++++++++- public/language/uk/modules.json | 10 +++++++++- public/language/vi/modules.json | 10 +++++++++- public/language/zh-CN/modules.json | 10 +++++++++- public/language/zh-TW/modules.json | 10 +++++++++- 43 files changed, 387 insertions(+), 43 deletions(-) diff --git a/public/language/ar/modules.json b/public/language/ar/modules.json index 4eb3cf0089..7fa958e6b6 100644 --- a/public/language/ar/modules.json +++ b/public/language/ar/modules.json @@ -9,7 +9,10 @@ "chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others", "chat.send": "أرسل", "chat.no_active": "لا يوجد لديك دردشات نشطة.", - "chat.user_typing": "%1 يكتب رسالة...", + "chat.user_typing_1": "%1 is typing ...", + "chat.user_typing_2": "%1 and %2 are typing ...", + "chat.user_typing_3": "%1, %2 and %3 are typing ...", + "chat.user_typing_n": "%1, %2 and %3 others are typing ...", "chat.user_has_messaged_you": "%1 أرسل لك رسالة.", "chat.replying-to": "Replying to %1", "chat.see_all": "All chats", @@ -30,6 +33,10 @@ "chat.delete_message_confirm": "هل أنت متأكد من أنك تريد حذف هذه الرسالة؟", "chat.retrieving-users": "Retrieving users...", "chat.view-users-list": "View users list", + "chat.pinned-messages": "Pinned Messages", + "chat.no-pinned-messages": "There are no pinned messages", + "chat.pin-message": "Pin Message", + "chat.unpin-message": "Unpin Message", "chat.public-rooms": "Public Rooms (%1)", "chat.private-rooms": "Private Rooms (%1)", "chat.create-room": "Create Chat Room", @@ -88,6 +95,7 @@ "composer.zen_mode": "Zen Mode", "composer.select_category": "Select a category", "composer.textarea.placeholder": "Enter your post content here, drag and drop images", + "composer.post-queue-alert": "Hello👋!
This forum uses a post queue system, since you are a new user your post will be hidden until it is approved by our moderation team.", "composer.schedule-for": "Schedule topic for", "composer.schedule-date": "Date", "composer.schedule-time": "Time", diff --git a/public/language/bg/modules.json b/public/language/bg/modules.json index 2efe1733da..be6a76bfa2 100644 --- a/public/language/bg/modules.json +++ b/public/language/bg/modules.json @@ -9,7 +9,10 @@ "chat.chat-with-usernames-and-x-others": "Разговор с %1 и %2 други", "chat.send": "Изпращане", "chat.no_active": "Нямате текущи разговори.", - "chat.user_typing": "%1 пише...", + "chat.user_typing_1": "%1 is typing ...", + "chat.user_typing_2": "%1 and %2 are typing ...", + "chat.user_typing_3": "%1, %2 and %3 are typing ...", + "chat.user_typing_n": "%1, %2 and %3 others are typing ...", "chat.user_has_messaged_you": "%1 Ви написа съобщение.", "chat.replying-to": "Отговор до %1", "chat.see_all": "Всички разговори", @@ -30,6 +33,10 @@ "chat.delete_message_confirm": "Наистина ли искате да изтриете това съобщение?", "chat.retrieving-users": "Получаване на потребителите…", "chat.view-users-list": "Преглед на списъка с потребители", + "chat.pinned-messages": "Pinned Messages", + "chat.no-pinned-messages": "There are no pinned messages", + "chat.pin-message": "Pin Message", + "chat.unpin-message": "Unpin Message", "chat.public-rooms": "Публични стаи (%1)", "chat.private-rooms": "Частни стаи (%1)", "chat.create-room": "Създаване на стая за разговор", @@ -88,6 +95,7 @@ "composer.zen_mode": "Режим Дзен", "composer.select_category": "Изберете категория", "composer.textarea.placeholder": "Въведете съдържанието на публикацията си тук. Можете също да влачите и пускате снимки.", + "composer.post-queue-alert": "Hello👋!
This forum uses a post queue system, since you are a new user your post will be hidden until it is approved by our moderation team.", "composer.schedule-for": "Насрочване на тема за", "composer.schedule-date": "Дата", "composer.schedule-time": "Час", diff --git a/public/language/bn/modules.json b/public/language/bn/modules.json index 228f7dc89b..5a319c7b1e 100644 --- a/public/language/bn/modules.json +++ b/public/language/bn/modules.json @@ -9,7 +9,10 @@ "chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others", "chat.send": "প্রেরন করুন", "chat.no_active": "আপনার কোন সচল কথোপকথন নেই", - "chat.user_typing": "%1 লিখছেন", + "chat.user_typing_1": "%1 is typing ...", + "chat.user_typing_2": "%1 and %2 are typing ...", + "chat.user_typing_3": "%1, %2 and %3 are typing ...", + "chat.user_typing_n": "%1, %2 and %3 others are typing ...", "chat.user_has_messaged_you": "%1 আপনাকে বার্তা পাঠিয়েছেন", "chat.replying-to": "Replying to %1", "chat.see_all": "All chats", @@ -30,6 +33,10 @@ "chat.delete_message_confirm": "Are you sure you wish to delete this message?", "chat.retrieving-users": "Retrieving users...", "chat.view-users-list": "View users list", + "chat.pinned-messages": "Pinned Messages", + "chat.no-pinned-messages": "There are no pinned messages", + "chat.pin-message": "Pin Message", + "chat.unpin-message": "Unpin Message", "chat.public-rooms": "Public Rooms (%1)", "chat.private-rooms": "Private Rooms (%1)", "chat.create-room": "Create Chat Room", @@ -88,6 +95,7 @@ "composer.zen_mode": "Zen Mode", "composer.select_category": "Select a category", "composer.textarea.placeholder": "Enter your post content here, drag and drop images", + "composer.post-queue-alert": "Hello👋!
This forum uses a post queue system, since you are a new user your post will be hidden until it is approved by our moderation team.", "composer.schedule-for": "Schedule topic for", "composer.schedule-date": "Date", "composer.schedule-time": "Time", diff --git a/public/language/cs/modules.json b/public/language/cs/modules.json index 18fa01ea6f..0ca9b9b388 100644 --- a/public/language/cs/modules.json +++ b/public/language/cs/modules.json @@ -9,7 +9,10 @@ "chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others", "chat.send": "Odeslat", "chat.no_active": "Nemáte žádné aktivní konverzace.", - "chat.user_typing": "%1 píše…", + "chat.user_typing_1": "%1 is typing ...", + "chat.user_typing_2": "%1 and %2 are typing ...", + "chat.user_typing_3": "%1, %2 and %3 are typing ...", + "chat.user_typing_n": "%1, %2 and %3 others are typing ...", "chat.user_has_messaged_you": "%1 Vám napsal.", "chat.replying-to": "Replying to %1", "chat.see_all": "All chats", @@ -30,6 +33,10 @@ "chat.delete_message_confirm": "Jste si jist/a, že chcete odstranit tuto zprávu?", "chat.retrieving-users": "Získávání seznamu uživatelů...", "chat.view-users-list": "View users list", + "chat.pinned-messages": "Pinned Messages", + "chat.no-pinned-messages": "There are no pinned messages", + "chat.pin-message": "Pin Message", + "chat.unpin-message": "Unpin Message", "chat.public-rooms": "Public Rooms (%1)", "chat.private-rooms": "Private Rooms (%1)", "chat.create-room": "Create Chat Room", @@ -88,6 +95,7 @@ "composer.zen_mode": "Režim Zem", "composer.select_category": "Vyberte kategorii", "composer.textarea.placeholder": "Enter your post content here, drag and drop images", + "composer.post-queue-alert": "Hello👋!
This forum uses a post queue system, since you are a new user your post will be hidden until it is approved by our moderation team.", "composer.schedule-for": "Schedule topic for", "composer.schedule-date": "Date", "composer.schedule-time": "Time", diff --git a/public/language/da/modules.json b/public/language/da/modules.json index 0951dc43a5..71ebc48e6a 100644 --- a/public/language/da/modules.json +++ b/public/language/da/modules.json @@ -9,7 +9,10 @@ "chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others", "chat.send": "Send", "chat.no_active": "Du har ingen aktive chats.", - "chat.user_typing": "%1 skriver ...", + "chat.user_typing_1": "%1 is typing ...", + "chat.user_typing_2": "%1 and %2 are typing ...", + "chat.user_typing_3": "%1, %2 and %3 are typing ...", + "chat.user_typing_n": "%1, %2 and %3 others are typing ...", "chat.user_has_messaged_you": "%1 har skrevet til dig.", "chat.replying-to": "Replying to %1", "chat.see_all": "All chats", @@ -30,6 +33,10 @@ "chat.delete_message_confirm": "Er du sikker på at du vil slette denne besked?", "chat.retrieving-users": "Retrieving users...", "chat.view-users-list": "View users list", + "chat.pinned-messages": "Pinned Messages", + "chat.no-pinned-messages": "There are no pinned messages", + "chat.pin-message": "Pin Message", + "chat.unpin-message": "Unpin Message", "chat.public-rooms": "Public Rooms (%1)", "chat.private-rooms": "Private Rooms (%1)", "chat.create-room": "Create Chat Room", @@ -88,6 +95,7 @@ "composer.zen_mode": "Zen Mode", "composer.select_category": "Select a category", "composer.textarea.placeholder": "Enter your post content here, drag and drop images", + "composer.post-queue-alert": "Hello👋!
This forum uses a post queue system, since you are a new user your post will be hidden until it is approved by our moderation team.", "composer.schedule-for": "Schedule topic for", "composer.schedule-date": "Date", "composer.schedule-time": "Time", diff --git a/public/language/de/modules.json b/public/language/de/modules.json index 7a1ee2f416..9b955e8134 100644 --- a/public/language/de/modules.json +++ b/public/language/de/modules.json @@ -9,7 +9,10 @@ "chat.chat-with-usernames-and-x-others": "Chatte mit %1 & %2 anderen", "chat.send": "Senden", "chat.no_active": "Du hast keine aktiven Chats.", - "chat.user_typing": "%1 tippt gerade ...", + "chat.user_typing_1": "%1 is typing ...", + "chat.user_typing_2": "%1 and %2 are typing ...", + "chat.user_typing_3": "%1, %2 and %3 are typing ...", + "chat.user_typing_n": "%1, %2 and %3 others are typing ...", "chat.user_has_messaged_you": "%1 hat dir geschrieben.", "chat.replying-to": "Replying to %1", "chat.see_all": "Alle Chats", @@ -30,6 +33,10 @@ "chat.delete_message_confirm": "Bist du sicher, dass du diese Nachricht löschen möchtest?", "chat.retrieving-users": "Rufe Benutzer ab", "chat.view-users-list": "View users list", + "chat.pinned-messages": "Pinned Messages", + "chat.no-pinned-messages": "There are no pinned messages", + "chat.pin-message": "Pin Message", + "chat.unpin-message": "Unpin Message", "chat.public-rooms": "Public Rooms (%1)", "chat.private-rooms": "Private Rooms (%1)", "chat.create-room": "Create Chat Room", @@ -88,6 +95,7 @@ "composer.zen_mode": "Zen Modus", "composer.select_category": "Wähle eine Kategorie", "composer.textarea.placeholder": "Schreibe hier deinen Beitrag, füge Bilder mit Drag and Drop hinzu", + "composer.post-queue-alert": "Hello👋!
This forum uses a post queue system, since you are a new user your post will be hidden until it is approved by our moderation team.", "composer.schedule-for": "Thema einplanen für", "composer.schedule-date": "Datum", "composer.schedule-time": "Zeit", diff --git a/public/language/en-US/modules.json b/public/language/en-US/modules.json index 0069418878..17dcb79bb7 100644 --- a/public/language/en-US/modules.json +++ b/public/language/en-US/modules.json @@ -9,7 +9,10 @@ "chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others", "chat.send": "Send", "chat.no_active": "You have no active chats.", - "chat.user_typing": "%1 is typing ...", + "chat.user_typing_1": "%1 is typing ...", + "chat.user_typing_2": "%1 and %2 are typing ...", + "chat.user_typing_3": "%1, %2 and %3 are typing ...", + "chat.user_typing_n": "%1, %2 and %3 others are typing ...", "chat.user_has_messaged_you": "%1 has messaged you.", "chat.replying-to": "Replying to %1", "chat.see_all": "All chats", @@ -30,6 +33,10 @@ "chat.delete_message_confirm": "Are you sure you wish to delete this message?", "chat.retrieving-users": "Retrieving users...", "chat.view-users-list": "View users list", + "chat.pinned-messages": "Pinned Messages", + "chat.no-pinned-messages": "There are no pinned messages", + "chat.pin-message": "Pin Message", + "chat.unpin-message": "Unpin Message", "chat.public-rooms": "Public Rooms (%1)", "chat.private-rooms": "Private Rooms (%1)", "chat.create-room": "Create Chat Room", @@ -88,6 +95,7 @@ "composer.zen_mode": "Zen Mode", "composer.select_category": "Select a category", "composer.textarea.placeholder": "Enter your post content here, drag and drop images", + "composer.post-queue-alert": "Hello👋!
This forum uses a post queue system, since you are a new user your post will be hidden until it is approved by our moderation team.", "composer.schedule-for": "Schedule topic for", "composer.schedule-date": "Date", "composer.schedule-time": "Time", diff --git a/public/language/es/modules.json b/public/language/es/modules.json index 2126720b1d..750149cf31 100644 --- a/public/language/es/modules.json +++ b/public/language/es/modules.json @@ -9,7 +9,10 @@ "chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others", "chat.send": "Enviar", "chat.no_active": "No tiene conversaciones activas.", - "chat.user_typing": "%1 está escribiendo...", + "chat.user_typing_1": "%1 is typing ...", + "chat.user_typing_2": "%1 and %2 are typing ...", + "chat.user_typing_3": "%1, %2 and %3 are typing ...", + "chat.user_typing_n": "%1, %2 and %3 others are typing ...", "chat.user_has_messaged_you": "%1 te ha enviado un mensaje.", "chat.replying-to": "Replying to %1", "chat.see_all": "All chats", @@ -30,6 +33,10 @@ "chat.delete_message_confirm": "¿Estás seguro de que deseas eliminar este mensaje?", "chat.retrieving-users": "Cargando usuarios...", "chat.view-users-list": "View users list", + "chat.pinned-messages": "Pinned Messages", + "chat.no-pinned-messages": "There are no pinned messages", + "chat.pin-message": "Pin Message", + "chat.unpin-message": "Unpin Message", "chat.public-rooms": "Public Rooms (%1)", "chat.private-rooms": "Private Rooms (%1)", "chat.create-room": "Create Chat Room", @@ -88,6 +95,7 @@ "composer.zen_mode": "Modo Zen", "composer.select_category": "Selecciona una categoría", "composer.textarea.placeholder": "Enter your post content here, drag and drop images", + "composer.post-queue-alert": "Hello👋!
This forum uses a post queue system, since you are a new user your post will be hidden until it is approved by our moderation team.", "composer.schedule-for": "Schedule topic for", "composer.schedule-date": "Date", "composer.schedule-time": "Time", diff --git a/public/language/et/modules.json b/public/language/et/modules.json index a3c2db24bc..1ed87293bd 100644 --- a/public/language/et/modules.json +++ b/public/language/et/modules.json @@ -9,7 +9,10 @@ "chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others", "chat.send": "Saada", "chat.no_active": "Sul ei ole hetkel aktiivseid vestlusi.", - "chat.user_typing": "%1 kirjutab sõnumit...", + "chat.user_typing_1": "%1 is typing ...", + "chat.user_typing_2": "%1 and %2 are typing ...", + "chat.user_typing_3": "%1, %2 and %3 are typing ...", + "chat.user_typing_n": "%1, %2 and %3 others are typing ...", "chat.user_has_messaged_you": "%1 saatis sulle sõnumi.", "chat.replying-to": "Replying to %1", "chat.see_all": "All chats", @@ -30,6 +33,10 @@ "chat.delete_message_confirm": "Oled kindel, et soovid selle sõnumi kustutada?", "chat.retrieving-users": "Retrieving users...", "chat.view-users-list": "View users list", + "chat.pinned-messages": "Pinned Messages", + "chat.no-pinned-messages": "There are no pinned messages", + "chat.pin-message": "Pin Message", + "chat.unpin-message": "Unpin Message", "chat.public-rooms": "Public Rooms (%1)", "chat.private-rooms": "Private Rooms (%1)", "chat.create-room": "Create Chat Room", @@ -88,6 +95,7 @@ "composer.zen_mode": "Zen Mode", "composer.select_category": "Select a category", "composer.textarea.placeholder": "Enter your post content here, drag and drop images", + "composer.post-queue-alert": "Hello👋!
This forum uses a post queue system, since you are a new user your post will be hidden until it is approved by our moderation team.", "composer.schedule-for": "Schedule topic for", "composer.schedule-date": "Date", "composer.schedule-time": "Time", diff --git a/public/language/fa-IR/modules.json b/public/language/fa-IR/modules.json index 40735545a6..d94b7baae6 100644 --- a/public/language/fa-IR/modules.json +++ b/public/language/fa-IR/modules.json @@ -9,7 +9,10 @@ "chat.chat-with-usernames-and-x-others": "چت با %1 و %2 دیگر ", "chat.send": "ارسال", "chat.no_active": "شما هیچ گفتگوی فعالی ندارید.", - "chat.user_typing": "%1 در حال نوشتن است...", + "chat.user_typing_1": "%1 is typing ...", + "chat.user_typing_2": "%1 and %2 are typing ...", + "chat.user_typing_3": "%1, %2 and %3 are typing ...", + "chat.user_typing_n": "%1, %2 and %3 others are typing ...", "chat.user_has_messaged_you": "%1 به شما پیام داده است.", "chat.replying-to": "Replying to %1", "chat.see_all": "همه‌ی چت‌ها", @@ -30,6 +33,10 @@ "chat.delete_message_confirm": "آیا مطمئن هستید که می خواهید این پیام را حذف کنید؟", "chat.retrieving-users": "Retrieving users...", "chat.view-users-list": "View users list", + "chat.pinned-messages": "Pinned Messages", + "chat.no-pinned-messages": "There are no pinned messages", + "chat.pin-message": "Pin Message", + "chat.unpin-message": "Unpin Message", "chat.public-rooms": "Public Rooms (%1)", "chat.private-rooms": "Private Rooms (%1)", "chat.create-room": "Create Chat Room", @@ -88,6 +95,7 @@ "composer.zen_mode": "حالت ذن", "composer.select_category": "یک دسته‌بندی انتخاب کنید", "composer.textarea.placeholder": "محتوای پست خود را اینجا وارد کنید یا تصاویر را به اینجا بکشید و رها کنید", + "composer.post-queue-alert": "Hello👋!
This forum uses a post queue system, since you are a new user your post will be hidden until it is approved by our moderation team.", "composer.schedule-for": "Schedule topic for", "composer.schedule-date": "Date", "composer.schedule-time": "Time", diff --git a/public/language/fi/modules.json b/public/language/fi/modules.json index 8bdf711dae..55710bf7bd 100644 --- a/public/language/fi/modules.json +++ b/public/language/fi/modules.json @@ -9,7 +9,10 @@ "chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others", "chat.send": "Lähetä", "chat.no_active": "Sinulla ei ole aktiivisia keskusteluita.", - "chat.user_typing": "%1 kirjoittaa ...", + "chat.user_typing_1": "%1 is typing ...", + "chat.user_typing_2": "%1 and %2 are typing ...", + "chat.user_typing_3": "%1, %2 and %3 are typing ...", + "chat.user_typing_n": "%1, %2 and %3 others are typing ...", "chat.user_has_messaged_you": "%1 lähetti sinulle viestin.", "chat.replying-to": "Replying to %1", "chat.see_all": "All chats", @@ -30,6 +33,10 @@ "chat.delete_message_confirm": "Are you sure you wish to delete this message?", "chat.retrieving-users": "Retrieving users...", "chat.view-users-list": "View users list", + "chat.pinned-messages": "Pinned Messages", + "chat.no-pinned-messages": "There are no pinned messages", + "chat.pin-message": "Pin Message", + "chat.unpin-message": "Unpin Message", "chat.public-rooms": "Public Rooms (%1)", "chat.private-rooms": "Private Rooms (%1)", "chat.create-room": "Create Chat Room", @@ -88,6 +95,7 @@ "composer.zen_mode": "Zen Mode", "composer.select_category": "Select a category", "composer.textarea.placeholder": "Enter your post content here, drag and drop images", + "composer.post-queue-alert": "Hello👋!
This forum uses a post queue system, since you are a new user your post will be hidden until it is approved by our moderation team.", "composer.schedule-for": "Schedule topic for", "composer.schedule-date": "Date", "composer.schedule-time": "Time", diff --git a/public/language/fr/modules.json b/public/language/fr/modules.json index be2670d67d..c954038e47 100644 --- a/public/language/fr/modules.json +++ b/public/language/fr/modules.json @@ -9,7 +9,10 @@ "chat.chat-with-usernames-and-x-others": "Discuter avec %1 & %2 autres", "chat.send": "Envoyer", "chat.no_active": "Vous n'avez aucune discussion en cours.", - "chat.user_typing": "%1 est en train d'écrire ...", + "chat.user_typing_1": "%1 is typing ...", + "chat.user_typing_2": "%1 and %2 are typing ...", + "chat.user_typing_3": "%1, %2 and %3 are typing ...", + "chat.user_typing_n": "%1, %2 and %3 others are typing ...", "chat.user_has_messaged_you": "%1 vous a envoyé un message.", "chat.replying-to": "En réponse à %1", "chat.see_all": "Tous les chats", @@ -30,6 +33,10 @@ "chat.delete_message_confirm": "Êtes-vous sûr de vouloir supprimer ce message ?", "chat.retrieving-users": "Ajouter des utilisateurs ...", "chat.view-users-list": "Afficher la liste de utilisateurs", + "chat.pinned-messages": "Pinned Messages", + "chat.no-pinned-messages": "There are no pinned messages", + "chat.pin-message": "Pin Message", + "chat.unpin-message": "Unpin Message", "chat.public-rooms": "Salon Publique (%1)", "chat.private-rooms": "Salon Privé (%1)", "chat.create-room": "Créer une salon de discussion", @@ -88,6 +95,7 @@ "composer.zen_mode": "Mode Zen", "composer.select_category": "Sélectionnez une catégorie", "composer.textarea.placeholder": "Saisissez le contenu de votre message ici, faites glisser et déposez les images", + "composer.post-queue-alert": "Hello👋!
This forum uses a post queue system, since you are a new user your post will be hidden until it is approved by our moderation team.", "composer.schedule-for": "Planifier le sujet pour", "composer.schedule-date": "Date", "composer.schedule-time": "Heure", diff --git a/public/language/gl/modules.json b/public/language/gl/modules.json index 5f029bf2d6..c6e9fe49ba 100644 --- a/public/language/gl/modules.json +++ b/public/language/gl/modules.json @@ -9,7 +9,10 @@ "chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others", "chat.send": "Enviar", "chat.no_active": "Non tes charlas activas.", - "chat.user_typing": "%1 está a escribir...", + "chat.user_typing_1": "%1 is typing ...", + "chat.user_typing_2": "%1 and %2 are typing ...", + "chat.user_typing_3": "%1, %2 and %3 are typing ...", + "chat.user_typing_n": "%1, %2 and %3 others are typing ...", "chat.user_has_messaged_you": "%1 enviouche unha mensaxe.", "chat.replying-to": "Replying to %1", "chat.see_all": "All chats", @@ -30,6 +33,10 @@ "chat.delete_message_confirm": "Estás seguro de que desexas eliminar esta mensaxe?", "chat.retrieving-users": "Retrieving users...", "chat.view-users-list": "View users list", + "chat.pinned-messages": "Pinned Messages", + "chat.no-pinned-messages": "There are no pinned messages", + "chat.pin-message": "Pin Message", + "chat.unpin-message": "Unpin Message", "chat.public-rooms": "Public Rooms (%1)", "chat.private-rooms": "Private Rooms (%1)", "chat.create-room": "Create Chat Room", @@ -88,6 +95,7 @@ "composer.zen_mode": "Modo Zen", "composer.select_category": "Selecciona unha categoría", "composer.textarea.placeholder": "Enter your post content here, drag and drop images", + "composer.post-queue-alert": "Hello👋!
This forum uses a post queue system, since you are a new user your post will be hidden until it is approved by our moderation team.", "composer.schedule-for": "Schedule topic for", "composer.schedule-date": "Date", "composer.schedule-time": "Time", diff --git a/public/language/he/modules.json b/public/language/he/modules.json index 02a60be83d..280ad995c2 100644 --- a/public/language/he/modules.json +++ b/public/language/he/modules.json @@ -9,7 +9,10 @@ "chat.chat-with-usernames-and-x-others": "צ'אט עם %1 ו-%2 אחרים", "chat.send": "שליחה", "chat.no_active": "אין לכם צ'אטים פעילים.", - "chat.user_typing": "%1 מקליד...", + "chat.user_typing_1": "%1 is typing ...", + "chat.user_typing_2": "%1 and %2 are typing ...", + "chat.user_typing_3": "%1, %2 and %3 are typing ...", + "chat.user_typing_n": "%1, %2 and %3 others are typing ...", "chat.user_has_messaged_you": "ל%1 יש הודעה עבורכם.", "chat.replying-to": "מגיב ל%1", "chat.see_all": "צפו בכל הצ'אטים", @@ -30,6 +33,10 @@ "chat.delete_message_confirm": "האם למחוק הודעה זו?", "chat.retrieving-users": "מאחזר משתמשים...", "chat.view-users-list": "הצג רשימת משתמשים", + "chat.pinned-messages": "Pinned Messages", + "chat.no-pinned-messages": "There are no pinned messages", + "chat.pin-message": "Pin Message", + "chat.unpin-message": "Unpin Message", "chat.public-rooms": "חדרים ציבוריים (%1)", "chat.private-rooms": "חדרים פרטיים (%1)", "chat.create-room": "צור חדר צ'אט", @@ -88,6 +95,7 @@ "composer.zen_mode": "מסך מלא", "composer.select_category": "בחירת קטגוריה", "composer.textarea.placeholder": "כתבו את תוכן הפוסט כאן. ניתן גם לגרור ולשחרר כאן תמונות.", + "composer.post-queue-alert": "Hello👋!
This forum uses a post queue system, since you are a new user your post will be hidden until it is approved by our moderation team.", "composer.schedule-for": "תזמון נושא ל", "composer.schedule-date": "תאריך", "composer.schedule-time": "שעה", diff --git a/public/language/hr/modules.json b/public/language/hr/modules.json index 6a2ce294a5..4d7fc00b59 100644 --- a/public/language/hr/modules.json +++ b/public/language/hr/modules.json @@ -9,7 +9,10 @@ "chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others", "chat.send": "Pošalji", "chat.no_active": "Nemate aktivnih razgovora.", - "chat.user_typing": "%1 piše poruku ...", + "chat.user_typing_1": "%1 is typing ...", + "chat.user_typing_2": "%1 and %2 are typing ...", + "chat.user_typing_3": "%1, %2 and %3 are typing ...", + "chat.user_typing_n": "%1, %2 and %3 others are typing ...", "chat.user_has_messaged_you": "%1 vam je poslao poruku.", "chat.replying-to": "Replying to %1", "chat.see_all": "All chats", @@ -30,6 +33,10 @@ "chat.delete_message_confirm": "Sigurni ste da želite izbrisati ovu poruku?", "chat.retrieving-users": "Retrieving users...", "chat.view-users-list": "View users list", + "chat.pinned-messages": "Pinned Messages", + "chat.no-pinned-messages": "There are no pinned messages", + "chat.pin-message": "Pin Message", + "chat.unpin-message": "Unpin Message", "chat.public-rooms": "Public Rooms (%1)", "chat.private-rooms": "Private Rooms (%1)", "chat.create-room": "Create Chat Room", @@ -88,6 +95,7 @@ "composer.zen_mode": "Zen", "composer.select_category": "Odaberi kategoriju", "composer.textarea.placeholder": "Enter your post content here, drag and drop images", + "composer.post-queue-alert": "Hello👋!
This forum uses a post queue system, since you are a new user your post will be hidden until it is approved by our moderation team.", "composer.schedule-for": "Schedule topic for", "composer.schedule-date": "Date", "composer.schedule-time": "Time", diff --git a/public/language/hu/modules.json b/public/language/hu/modules.json index 2e31addbaf..9fb4407a20 100644 --- a/public/language/hu/modules.json +++ b/public/language/hu/modules.json @@ -9,7 +9,10 @@ "chat.chat-with-usernames-and-x-others": "Csevegés %1 és %2 másik személyekkel", "chat.send": "Küldés", "chat.no_active": "Nincs aktív csevegésed.", - "chat.user_typing": "%1 éppen ír ...", + "chat.user_typing_1": "%1 is typing ...", + "chat.user_typing_2": "%1 and %2 are typing ...", + "chat.user_typing_3": "%1, %2 and %3 are typing ...", + "chat.user_typing_n": "%1, %2 and %3 others are typing ...", "chat.user_has_messaged_you": "%1 üzenetet küldött.", "chat.replying-to": "Replying to %1", "chat.see_all": "Összes csevegés", @@ -30,6 +33,10 @@ "chat.delete_message_confirm": "Biztos törölni akarod az üzenetet?", "chat.retrieving-users": "Felhasználók lekérése...", "chat.view-users-list": "View users list", + "chat.pinned-messages": "Pinned Messages", + "chat.no-pinned-messages": "There are no pinned messages", + "chat.pin-message": "Pin Message", + "chat.unpin-message": "Unpin Message", "chat.public-rooms": "Public Rooms (%1)", "chat.private-rooms": "Private Rooms (%1)", "chat.create-room": "Create Chat Room", @@ -88,6 +95,7 @@ "composer.zen_mode": "Zen mód", "composer.select_category": "Kategória választása", "composer.textarea.placeholder": "Add meg a bejegyzés tartalmát, húzd be ide a képet", + "composer.post-queue-alert": "Hello👋!
This forum uses a post queue system, since you are a new user your post will be hidden until it is approved by our moderation team.", "composer.schedule-for": "Témakör időzítése", "composer.schedule-date": "Dátum", "composer.schedule-time": "Idő", diff --git a/public/language/hy/modules.json b/public/language/hy/modules.json index 417b53f0b5..4b0028f01e 100644 --- a/public/language/hy/modules.json +++ b/public/language/hy/modules.json @@ -9,7 +9,10 @@ "chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others", "chat.send": "Ուղարկել", "chat.no_active": "Դուք չունեք որևէ ակտիվ չաթ", - "chat.user_typing": "%1-ը գրում է...", + "chat.user_typing_1": "%1 is typing ...", + "chat.user_typing_2": "%1 and %2 are typing ...", + "chat.user_typing_3": "%1, %2 and %3 are typing ...", + "chat.user_typing_n": "%1, %2 and %3 others are typing ...", "chat.user_has_messaged_you": "%1-ը ձեզ հաղորդագրություն է ուղարկել:", "chat.replying-to": "Replying to %1", "chat.see_all": "Բոլոր չաթերը", @@ -30,6 +33,10 @@ "chat.delete_message_confirm": "Վստա՞հ եք, որ ցանկանում եք ջնջել այս հաղորդագրությունը:", "chat.retrieving-users": "Օգտատերերի վերականգնում ", "chat.view-users-list": "View users list", + "chat.pinned-messages": "Pinned Messages", + "chat.no-pinned-messages": "There are no pinned messages", + "chat.pin-message": "Pin Message", + "chat.unpin-message": "Unpin Message", "chat.public-rooms": "Public Rooms (%1)", "chat.private-rooms": "Private Rooms (%1)", "chat.create-room": "Create Chat Room", @@ -88,6 +95,7 @@ "composer.zen_mode": "Զեն ռեժիմ", "composer.select_category": "Ընտրեք կատեգորիա", "composer.textarea.placeholder": "Մուտքագրեք ձեր գրառման կոնտենտը այստեղ, քաշեք և թողեք նկարները", + "composer.post-queue-alert": "Hello👋!
This forum uses a post queue system, since you are a new user your post will be hidden until it is approved by our moderation team.", "composer.schedule-for": "Պլանավորեք թեման", "composer.schedule-date": "Ամսաթիվ", "composer.schedule-time": "Ժամանակ", diff --git a/public/language/id/modules.json b/public/language/id/modules.json index 54822b0200..4f556f8040 100644 --- a/public/language/id/modules.json +++ b/public/language/id/modules.json @@ -9,7 +9,10 @@ "chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others", "chat.send": "Kirim", "chat.no_active": "Kamu tidak memiliki percakapan yang aktif.", - "chat.user_typing": "%1 sedang menulis ...", + "chat.user_typing_1": "%1 is typing ...", + "chat.user_typing_2": "%1 and %2 are typing ...", + "chat.user_typing_3": "%1, %2 and %3 are typing ...", + "chat.user_typing_n": "%1, %2 and %3 others are typing ...", "chat.user_has_messaged_you": "%1 telah mengirimkan pesan untukmu.", "chat.replying-to": "Replying to %1", "chat.see_all": "All chats", @@ -30,6 +33,10 @@ "chat.delete_message_confirm": "Are you sure you wish to delete this message?", "chat.retrieving-users": "Retrieving users...", "chat.view-users-list": "View users list", + "chat.pinned-messages": "Pinned Messages", + "chat.no-pinned-messages": "There are no pinned messages", + "chat.pin-message": "Pin Message", + "chat.unpin-message": "Unpin Message", "chat.public-rooms": "Public Rooms (%1)", "chat.private-rooms": "Private Rooms (%1)", "chat.create-room": "Create Chat Room", @@ -88,6 +95,7 @@ "composer.zen_mode": "Zen Mode", "composer.select_category": "Select a category", "composer.textarea.placeholder": "Enter your post content here, drag and drop images", + "composer.post-queue-alert": "Hello👋!
This forum uses a post queue system, since you are a new user your post will be hidden until it is approved by our moderation team.", "composer.schedule-for": "Schedule topic for", "composer.schedule-date": "Date", "composer.schedule-time": "Time", diff --git a/public/language/it/modules.json b/public/language/it/modules.json index fa7fccf586..7d6db35ffb 100644 --- a/public/language/it/modules.json +++ b/public/language/it/modules.json @@ -9,7 +9,10 @@ "chat.chat-with-usernames-and-x-others": "Chatta con %1 e altri %2", "chat.send": "Invia", "chat.no_active": "Non hai chat attive.", - "chat.user_typing": "%1 sta scrivendo...", + "chat.user_typing_1": "%1 is typing ...", + "chat.user_typing_2": "%1 and %2 are typing ...", + "chat.user_typing_3": "%1, %2 and %3 are typing ...", + "chat.user_typing_n": "%1, %2 and %3 others are typing ...", "chat.user_has_messaged_you": "%1 ti ha scritto.", "chat.replying-to": "Risposta a %1", "chat.see_all": "Tutte le chat", @@ -30,6 +33,10 @@ "chat.delete_message_confirm": "Sei sicuro di voler eliminare questo messaggio?", "chat.retrieving-users": "Estrapolando gli utenti...", "chat.view-users-list": "Visualizza elenco utenti", + "chat.pinned-messages": "Pinned Messages", + "chat.no-pinned-messages": "There are no pinned messages", + "chat.pin-message": "Pin Message", + "chat.unpin-message": "Unpin Message", "chat.public-rooms": "Stanze pubbliche (%1)", "chat.private-rooms": "Stanze private (%1)", "chat.create-room": "Crea stanza chat ", @@ -88,6 +95,7 @@ "composer.zen_mode": "Zen Mode", "composer.select_category": "Seleziona una categoria", "composer.textarea.placeholder": "Inserisci qui il contenuto del tuo post, trascina e rilascia le immagini", + "composer.post-queue-alert": "Hello👋!
This forum uses a post queue system, since you are a new user your post will be hidden until it is approved by our moderation team.", "composer.schedule-for": "Discussione pianificata per", "composer.schedule-date": "Data", "composer.schedule-time": "Orario", diff --git a/public/language/ja/modules.json b/public/language/ja/modules.json index 57cbe3dc63..c9c0146565 100644 --- a/public/language/ja/modules.json +++ b/public/language/ja/modules.json @@ -9,7 +9,10 @@ "chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others", "chat.send": "送信", "chat.no_active": "チャットはありません。", - "chat.user_typing": "%1 が入力中 ...", + "chat.user_typing_1": "%1 is typing ...", + "chat.user_typing_2": "%1 and %2 are typing ...", + "chat.user_typing_3": "%1, %2 and %3 are typing ...", + "chat.user_typing_n": "%1, %2 and %3 others are typing ...", "chat.user_has_messaged_you": "%1さんからメッセージが届いています。", "chat.replying-to": "Replying to %1", "chat.see_all": "All chats", @@ -30,6 +33,10 @@ "chat.delete_message_confirm": "本当にこのメッセージを削除しますか?", "chat.retrieving-users": "ユーザーを所得しています…", "chat.view-users-list": "View users list", + "chat.pinned-messages": "Pinned Messages", + "chat.no-pinned-messages": "There are no pinned messages", + "chat.pin-message": "Pin Message", + "chat.unpin-message": "Unpin Message", "chat.public-rooms": "Public Rooms (%1)", "chat.private-rooms": "Private Rooms (%1)", "chat.create-room": "Create Chat Room", @@ -88,6 +95,7 @@ "composer.zen_mode": "Zen モード", "composer.select_category": "カテゴリを選択", "composer.textarea.placeholder": "Enter your post content here, drag and drop images", + "composer.post-queue-alert": "Hello👋!
This forum uses a post queue system, since you are a new user your post will be hidden until it is approved by our moderation team.", "composer.schedule-for": "Schedule topic for", "composer.schedule-date": "Date", "composer.schedule-time": "Time", diff --git a/public/language/ko/modules.json b/public/language/ko/modules.json index 0623eaf39d..a35099d24e 100644 --- a/public/language/ko/modules.json +++ b/public/language/ko/modules.json @@ -9,7 +9,10 @@ "chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others", "chat.send": "전송", "chat.no_active": "활성화된 채팅이 없습니다.", - "chat.user_typing": "%1님이 입력 중...", + "chat.user_typing_1": "%1 is typing ...", + "chat.user_typing_2": "%1 and %2 are typing ...", + "chat.user_typing_3": "%1, %2 and %3 are typing ...", + "chat.user_typing_n": "%1, %2 and %3 others are typing ...", "chat.user_has_messaged_you": "%1님이 메시지를 보냈습니다.", "chat.replying-to": "Replying to %1", "chat.see_all": "모든 채팅", @@ -30,6 +33,10 @@ "chat.delete_message_confirm": "이 메세지를 삭제하시겠습니까?", "chat.retrieving-users": "사용자 불러오는 중...", "chat.view-users-list": "View users list", + "chat.pinned-messages": "Pinned Messages", + "chat.no-pinned-messages": "There are no pinned messages", + "chat.pin-message": "Pin Message", + "chat.unpin-message": "Unpin Message", "chat.public-rooms": "Public Rooms (%1)", "chat.private-rooms": "Private Rooms (%1)", "chat.create-room": "Create Chat Room", @@ -88,6 +95,7 @@ "composer.zen_mode": "전체화면", "composer.select_category": "카테고리 선택", "composer.textarea.placeholder": "포스트의 내용을 입력하세요. 드래그&드롭으로 이미지를 추가할 수 있습니다.", + "composer.post-queue-alert": "Hello👋!
This forum uses a post queue system, since you are a new user your post will be hidden until it is approved by our moderation team.", "composer.schedule-for": "화제 예약", "composer.schedule-date": "날짜", "composer.schedule-time": "시간", diff --git a/public/language/lt/modules.json b/public/language/lt/modules.json index 9a74bc0fbe..b4db0a3e17 100644 --- a/public/language/lt/modules.json +++ b/public/language/lt/modules.json @@ -9,7 +9,10 @@ "chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others", "chat.send": "Siųsti", "chat.no_active": "Jūs neturite aktyvių susirašinėjimų.", - "chat.user_typing": "%1 dabar rašo...", + "chat.user_typing_1": "%1 is typing ...", + "chat.user_typing_2": "%1 and %2 are typing ...", + "chat.user_typing_3": "%1, %2 and %3 are typing ...", + "chat.user_typing_n": "%1, %2 and %3 others are typing ...", "chat.user_has_messaged_you": "%1 parašė jums.", "chat.replying-to": "Replying to %1", "chat.see_all": "All chats", @@ -30,6 +33,10 @@ "chat.delete_message_confirm": "Are you sure you wish to delete this message?", "chat.retrieving-users": "Retrieving users...", "chat.view-users-list": "View users list", + "chat.pinned-messages": "Pinned Messages", + "chat.no-pinned-messages": "There are no pinned messages", + "chat.pin-message": "Pin Message", + "chat.unpin-message": "Unpin Message", "chat.public-rooms": "Public Rooms (%1)", "chat.private-rooms": "Private Rooms (%1)", "chat.create-room": "Create Chat Room", @@ -88,6 +95,7 @@ "composer.zen_mode": "Zen Mode", "composer.select_category": "Select a category", "composer.textarea.placeholder": "Enter your post content here, drag and drop images", + "composer.post-queue-alert": "Hello👋!
This forum uses a post queue system, since you are a new user your post will be hidden until it is approved by our moderation team.", "composer.schedule-for": "Schedule topic for", "composer.schedule-date": "Date", "composer.schedule-time": "Time", diff --git a/public/language/lv/modules.json b/public/language/lv/modules.json index 7c41031328..7cd09aed70 100644 --- a/public/language/lv/modules.json +++ b/public/language/lv/modules.json @@ -9,7 +9,10 @@ "chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others", "chat.send": "Nosūtīt", "chat.no_active": "Nav aktīvo sarunu.", - "chat.user_typing": "%1 raksta...", + "chat.user_typing_1": "%1 is typing ...", + "chat.user_typing_2": "%1 and %2 are typing ...", + "chat.user_typing_3": "%1, %2 and %3 are typing ...", + "chat.user_typing_n": "%1, %2 and %3 others are typing ...", "chat.user_has_messaged_you": "%1 ir sācis ar Tevi sarunāties", "chat.replying-to": "Replying to %1", "chat.see_all": "All chats", @@ -30,6 +33,10 @@ "chat.delete_message_confirm": "Vai tiešām vēlies izdzēst šo sarunu?", "chat.retrieving-users": "Ielādē lietotājus...", "chat.view-users-list": "View users list", + "chat.pinned-messages": "Pinned Messages", + "chat.no-pinned-messages": "There are no pinned messages", + "chat.pin-message": "Pin Message", + "chat.unpin-message": "Unpin Message", "chat.public-rooms": "Public Rooms (%1)", "chat.private-rooms": "Private Rooms (%1)", "chat.create-room": "Create Chat Room", @@ -88,6 +95,7 @@ "composer.zen_mode": "Zen režīms", "composer.select_category": "Izvēlēties kategoriju", "composer.textarea.placeholder": "Enter your post content here, drag and drop images", + "composer.post-queue-alert": "Hello👋!
This forum uses a post queue system, since you are a new user your post will be hidden until it is approved by our moderation team.", "composer.schedule-for": "Schedule topic for", "composer.schedule-date": "Date", "composer.schedule-time": "Time", diff --git a/public/language/ms/modules.json b/public/language/ms/modules.json index 4badbd8e28..f1b6cbc745 100644 --- a/public/language/ms/modules.json +++ b/public/language/ms/modules.json @@ -9,7 +9,10 @@ "chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others", "chat.send": "hantar", "chat.no_active": "Anda tiada pesanan yang aktif", - "chat.user_typing": "%1 menaip", + "chat.user_typing_1": "%1 is typing ...", + "chat.user_typing_2": "%1 and %2 are typing ...", + "chat.user_typing_3": "%1, %2 and %3 are typing ...", + "chat.user_typing_n": "%1, %2 and %3 others are typing ...", "chat.user_has_messaged_you": "%1 mesej anda.", "chat.replying-to": "Replying to %1", "chat.see_all": "All chats", @@ -30,6 +33,10 @@ "chat.delete_message_confirm": "Are you sure you wish to delete this message?", "chat.retrieving-users": "Retrieving users...", "chat.view-users-list": "View users list", + "chat.pinned-messages": "Pinned Messages", + "chat.no-pinned-messages": "There are no pinned messages", + "chat.pin-message": "Pin Message", + "chat.unpin-message": "Unpin Message", "chat.public-rooms": "Public Rooms (%1)", "chat.private-rooms": "Private Rooms (%1)", "chat.create-room": "Create Chat Room", @@ -88,6 +95,7 @@ "composer.zen_mode": "Zen Mode", "composer.select_category": "Select a category", "composer.textarea.placeholder": "Enter your post content here, drag and drop images", + "composer.post-queue-alert": "Hello👋!
This forum uses a post queue system, since you are a new user your post will be hidden until it is approved by our moderation team.", "composer.schedule-for": "Schedule topic for", "composer.schedule-date": "Date", "composer.schedule-time": "Time", diff --git a/public/language/nb/modules.json b/public/language/nb/modules.json index cb7b9714af..ef2d435062 100644 --- a/public/language/nb/modules.json +++ b/public/language/nb/modules.json @@ -9,7 +9,10 @@ "chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others", "chat.send": "Send", "chat.no_active": "Du har ingen aktive chatter.", - "chat.user_typing": "%1 skriver ...", + "chat.user_typing_1": "%1 is typing ...", + "chat.user_typing_2": "%1 and %2 are typing ...", + "chat.user_typing_3": "%1, %2 and %3 are typing ...", + "chat.user_typing_n": "%1, %2 and %3 others are typing ...", "chat.user_has_messaged_you": "%1 har sendt deg en melding", "chat.replying-to": "Replying to %1", "chat.see_all": "Alle chatter", @@ -30,6 +33,10 @@ "chat.delete_message_confirm": "Er du sikker på at du vil slette denne meldingen?", "chat.retrieving-users": "Henter brukere ...", "chat.view-users-list": "View users list", + "chat.pinned-messages": "Pinned Messages", + "chat.no-pinned-messages": "There are no pinned messages", + "chat.pin-message": "Pin Message", + "chat.unpin-message": "Unpin Message", "chat.public-rooms": "Public Rooms (%1)", "chat.private-rooms": "Private Rooms (%1)", "chat.create-room": "Create Chat Room", @@ -88,6 +95,7 @@ "composer.zen_mode": "Zenmodus", "composer.select_category": "Velg en kategori", "composer.textarea.placeholder": "Enter your post content here, drag and drop images", + "composer.post-queue-alert": "Hello👋!
This forum uses a post queue system, since you are a new user your post will be hidden until it is approved by our moderation team.", "composer.schedule-for": "Schedule topic for", "composer.schedule-date": "Date", "composer.schedule-time": "Time", diff --git a/public/language/nl/modules.json b/public/language/nl/modules.json index 2e338a84aa..6f4c72f59b 100644 --- a/public/language/nl/modules.json +++ b/public/language/nl/modules.json @@ -9,7 +9,10 @@ "chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others", "chat.send": "Verzenden", "chat.no_active": "Er zijn geen actieve chats.", - "chat.user_typing": "%1 is aan het typen ...", + "chat.user_typing_1": "%1 is typing ...", + "chat.user_typing_2": "%1 and %2 are typing ...", + "chat.user_typing_3": "%1, %2 and %3 are typing ...", + "chat.user_typing_n": "%1, %2 and %3 others are typing ...", "chat.user_has_messaged_you": "%1 heeft een bericht gestuurd", "chat.replying-to": "Replying to %1", "chat.see_all": "Alle chats", @@ -30,6 +33,10 @@ "chat.delete_message_confirm": "Weet je zeker dat je dit bericht wilt verwijderen?", "chat.retrieving-users": "Gebruikers ophalen...", "chat.view-users-list": "View users list", + "chat.pinned-messages": "Pinned Messages", + "chat.no-pinned-messages": "There are no pinned messages", + "chat.pin-message": "Pin Message", + "chat.unpin-message": "Unpin Message", "chat.public-rooms": "Public Rooms (%1)", "chat.private-rooms": "Private Rooms (%1)", "chat.create-room": "Create Chat Room", @@ -88,6 +95,7 @@ "composer.zen_mode": "Zen-modus", "composer.select_category": "Selecteer een categorie", "composer.textarea.placeholder": "Voer de berichtinhoud hier in, of sleep afbeeldingen hier naartoe", + "composer.post-queue-alert": "Hello👋!
This forum uses a post queue system, since you are a new user your post will be hidden until it is approved by our moderation team.", "composer.schedule-for": "Schedule topic for", "composer.schedule-date": "Date", "composer.schedule-time": "Time", diff --git a/public/language/pl/modules.json b/public/language/pl/modules.json index df978274d2..c6339c7314 100644 --- a/public/language/pl/modules.json +++ b/public/language/pl/modules.json @@ -9,7 +9,10 @@ "chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others", "chat.send": "Wyślij", "chat.no_active": "Brak aktywnych czatów", - "chat.user_typing": "%1 pisze...", + "chat.user_typing_1": "%1 is typing ...", + "chat.user_typing_2": "%1 and %2 are typing ...", + "chat.user_typing_3": "%1, %2 and %3 are typing ...", + "chat.user_typing_n": "%1, %2 and %3 others are typing ...", "chat.user_has_messaged_you": "%1 napisał do Ciebie", "chat.replying-to": "Replying to %1", "chat.see_all": "Wszystkie rozmowy", @@ -30,6 +33,10 @@ "chat.delete_message_confirm": "Czy na pewno chcesz usunąć tę wiadomość?", "chat.retrieving-users": "Pobieram użytkowników...", "chat.view-users-list": "View users list", + "chat.pinned-messages": "Pinned Messages", + "chat.no-pinned-messages": "There are no pinned messages", + "chat.pin-message": "Pin Message", + "chat.unpin-message": "Unpin Message", "chat.public-rooms": "Public Rooms (%1)", "chat.private-rooms": "Private Rooms (%1)", "chat.create-room": "Create Chat Room", @@ -88,6 +95,7 @@ "composer.zen_mode": "Tryb Zen", "composer.select_category": "Wybierz kategorię", "composer.textarea.placeholder": "Wprowadź tutaj zawartość swojego posta, możesz przeciągnąć i upuścić obrazki", + "composer.post-queue-alert": "Hello👋!
This forum uses a post queue system, since you are a new user your post will be hidden until it is approved by our moderation team.", "composer.schedule-for": "Zaplanuj temat na", "composer.schedule-date": "Data", "composer.schedule-time": "Czas", diff --git a/public/language/pt-BR/modules.json b/public/language/pt-BR/modules.json index b46522d21b..59529df687 100644 --- a/public/language/pt-BR/modules.json +++ b/public/language/pt-BR/modules.json @@ -9,7 +9,10 @@ "chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others", "chat.send": "Enviar", "chat.no_active": "Você não tem chats ativos.", - "chat.user_typing": "%1 está digitando ...", + "chat.user_typing_1": "%1 is typing ...", + "chat.user_typing_2": "%1 and %2 are typing ...", + "chat.user_typing_3": "%1, %2 and %3 are typing ...", + "chat.user_typing_n": "%1, %2 and %3 others are typing ...", "chat.user_has_messaged_you": "%1 te enviou uma mensagem.", "chat.replying-to": "Replying to %1", "chat.see_all": "All chats", @@ -30,6 +33,10 @@ "chat.delete_message_confirm": "Tem certeza que deseja excluir esta mensagem?", "chat.retrieving-users": "Carregando usuários", "chat.view-users-list": "View users list", + "chat.pinned-messages": "Pinned Messages", + "chat.no-pinned-messages": "There are no pinned messages", + "chat.pin-message": "Pin Message", + "chat.unpin-message": "Unpin Message", "chat.public-rooms": "Public Rooms (%1)", "chat.private-rooms": "Private Rooms (%1)", "chat.create-room": "Create Chat Room", @@ -88,6 +95,7 @@ "composer.zen_mode": "Modo Zen", "composer.select_category": "Escolha uma categoria", "composer.textarea.placeholder": "Insira o conteúdo da sua postagem aqui, arraste e solte as imagens", + "composer.post-queue-alert": "Hello👋!
This forum uses a post queue system, since you are a new user your post will be hidden until it is approved by our moderation team.", "composer.schedule-for": "Agendar tópico para", "composer.schedule-date": "Data", "composer.schedule-time": "Hora", diff --git a/public/language/pt-PT/modules.json b/public/language/pt-PT/modules.json index d08d9de684..b67772fabf 100644 --- a/public/language/pt-PT/modules.json +++ b/public/language/pt-PT/modules.json @@ -9,7 +9,10 @@ "chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others", "chat.send": "Enviar", "chat.no_active": "Não tens conversas ativas.", - "chat.user_typing": "%1 está a escrever ...", + "chat.user_typing_1": "%1 is typing ...", + "chat.user_typing_2": "%1 and %2 are typing ...", + "chat.user_typing_3": "%1, %2 and %3 are typing ...", + "chat.user_typing_n": "%1, %2 and %3 others are typing ...", "chat.user_has_messaged_you": "%1 enviou-te uma mensagem.", "chat.replying-to": "Replying to %1", "chat.see_all": "All chats", @@ -30,6 +33,10 @@ "chat.delete_message_confirm": "Tens a certeza que desejas apagar esta mensagem?", "chat.retrieving-users": "A recuperar utilizadores...", "chat.view-users-list": "View users list", + "chat.pinned-messages": "Pinned Messages", + "chat.no-pinned-messages": "There are no pinned messages", + "chat.pin-message": "Pin Message", + "chat.unpin-message": "Unpin Message", "chat.public-rooms": "Public Rooms (%1)", "chat.private-rooms": "Private Rooms (%1)", "chat.create-room": "Create Chat Room", @@ -88,6 +95,7 @@ "composer.zen_mode": "Modo Zen", "composer.select_category": "Selecionar uma categoria", "composer.textarea.placeholder": "Escreve aqui o conteúdo da tua publicação, arrasta e solta imagens", + "composer.post-queue-alert": "Hello👋!
This forum uses a post queue system, since you are a new user your post will be hidden until it is approved by our moderation team.", "composer.schedule-for": "Schedule topic for", "composer.schedule-date": "Date", "composer.schedule-time": "Time", diff --git a/public/language/ro/modules.json b/public/language/ro/modules.json index 9877bfae4e..07cef72037 100644 --- a/public/language/ro/modules.json +++ b/public/language/ro/modules.json @@ -9,7 +9,10 @@ "chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others", "chat.send": "Trimite", "chat.no_active": "Nu ai nici o conversație activă", - "chat.user_typing": "%1 scrie ...", + "chat.user_typing_1": "%1 is typing ...", + "chat.user_typing_2": "%1 and %2 are typing ...", + "chat.user_typing_3": "%1, %2 and %3 are typing ...", + "chat.user_typing_n": "%1, %2 and %3 others are typing ...", "chat.user_has_messaged_you": "%1 ți-a trimis un mesaj.", "chat.replying-to": "Replying to %1", "chat.see_all": "All chats", @@ -30,6 +33,10 @@ "chat.delete_message_confirm": "Are you sure you wish to delete this message?", "chat.retrieving-users": "Retrieving users...", "chat.view-users-list": "View users list", + "chat.pinned-messages": "Pinned Messages", + "chat.no-pinned-messages": "There are no pinned messages", + "chat.pin-message": "Pin Message", + "chat.unpin-message": "Unpin Message", "chat.public-rooms": "Public Rooms (%1)", "chat.private-rooms": "Private Rooms (%1)", "chat.create-room": "Create Chat Room", @@ -88,6 +95,7 @@ "composer.zen_mode": "Zen Mode", "composer.select_category": "Select a category", "composer.textarea.placeholder": "Enter your post content here, drag and drop images", + "composer.post-queue-alert": "Hello👋!
This forum uses a post queue system, since you are a new user your post will be hidden until it is approved by our moderation team.", "composer.schedule-for": "Schedule topic for", "composer.schedule-date": "Date", "composer.schedule-time": "Time", diff --git a/public/language/ru/modules.json b/public/language/ru/modules.json index d1bbea801e..0ef8f3c45a 100644 --- a/public/language/ru/modules.json +++ b/public/language/ru/modules.json @@ -9,7 +9,10 @@ "chat.chat-with-usernames-and-x-others": "Чат с %1 и %2 других", "chat.send": "Отправить", "chat.no_active": "У вас нет активных чатов.", - "chat.user_typing": "%1 пишет...", + "chat.user_typing_1": "%1 is typing ...", + "chat.user_typing_2": "%1 and %2 are typing ...", + "chat.user_typing_3": "%1, %2 and %3 are typing ...", + "chat.user_typing_n": "%1, %2 and %3 others are typing ...", "chat.user_has_messaged_you": "Пользователь %1 отправил вам сообщение.", "chat.replying-to": "Replying to %1", "chat.see_all": "Все чаты", @@ -30,6 +33,10 @@ "chat.delete_message_confirm": "Вы уверены, что хотите удалить это сообщение?", "chat.retrieving-users": "Получение списка пользователей...", "chat.view-users-list": "View users list", + "chat.pinned-messages": "Pinned Messages", + "chat.no-pinned-messages": "There are no pinned messages", + "chat.pin-message": "Pin Message", + "chat.unpin-message": "Unpin Message", "chat.public-rooms": "Public Rooms (%1)", "chat.private-rooms": "Private Rooms (%1)", "chat.create-room": "Create Chat Room", @@ -88,6 +95,7 @@ "composer.zen_mode": "Полноэкранный режим", "composer.select_category": "Выберите категорию", "composer.textarea.placeholder": "Введите содержание вашего сообщения здесь, перетащите изображения", + "composer.post-queue-alert": "Hello👋!
This forum uses a post queue system, since you are a new user your post will be hidden until it is approved by our moderation team.", "composer.schedule-for": "Установить дату публикации", "composer.schedule-date": "Дата", "composer.schedule-time": "Время", diff --git a/public/language/rw/modules.json b/public/language/rw/modules.json index db5e5d57eb..e0a733ec7d 100644 --- a/public/language/rw/modules.json +++ b/public/language/rw/modules.json @@ -9,7 +9,10 @@ "chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others", "chat.send": "Ohereza", "chat.no_active": "Nta biganiro byo mu gikari ufite. ", - "chat.user_typing": "%1 ari kwandika ...", + "chat.user_typing_1": "%1 is typing ...", + "chat.user_typing_2": "%1 and %2 are typing ...", + "chat.user_typing_3": "%1, %2 and %3 are typing ...", + "chat.user_typing_n": "%1, %2 and %3 others are typing ...", "chat.user_has_messaged_you": "%1 yagusigiye ubutumwa.", "chat.replying-to": "Replying to %1", "chat.see_all": "All chats", @@ -30,6 +33,10 @@ "chat.delete_message_confirm": "Wiringiye neza ko ushaka gusiba ubu butumwa?", "chat.retrieving-users": "Retrieving users...", "chat.view-users-list": "View users list", + "chat.pinned-messages": "Pinned Messages", + "chat.no-pinned-messages": "There are no pinned messages", + "chat.pin-message": "Pin Message", + "chat.unpin-message": "Unpin Message", "chat.public-rooms": "Public Rooms (%1)", "chat.private-rooms": "Private Rooms (%1)", "chat.create-room": "Create Chat Room", @@ -88,6 +95,7 @@ "composer.zen_mode": "Zen Mode", "composer.select_category": "Select a category", "composer.textarea.placeholder": "Enter your post content here, drag and drop images", + "composer.post-queue-alert": "Hello👋!
This forum uses a post queue system, since you are a new user your post will be hidden until it is approved by our moderation team.", "composer.schedule-for": "Schedule topic for", "composer.schedule-date": "Date", "composer.schedule-time": "Time", diff --git a/public/language/sk/modules.json b/public/language/sk/modules.json index 9dd4aec22b..dc6f97824f 100644 --- a/public/language/sk/modules.json +++ b/public/language/sk/modules.json @@ -9,7 +9,10 @@ "chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others", "chat.send": "Odoslať", "chat.no_active": "Nemáte žiadne aktívne konverzácie.", - "chat.user_typing": "%1 práve píše...", + "chat.user_typing_1": "%1 is typing ...", + "chat.user_typing_2": "%1 and %2 are typing ...", + "chat.user_typing_3": "%1, %2 and %3 are typing ...", + "chat.user_typing_n": "%1, %2 and %3 others are typing ...", "chat.user_has_messaged_you": "%1 Vám poslal správu.", "chat.replying-to": "Replying to %1", "chat.see_all": "All chats", @@ -30,6 +33,10 @@ "chat.delete_message_confirm": "Ste si istý, že chcete odstrániť túto správu?", "chat.retrieving-users": "Získavanie zoznamu používateľov...", "chat.view-users-list": "View users list", + "chat.pinned-messages": "Pinned Messages", + "chat.no-pinned-messages": "There are no pinned messages", + "chat.pin-message": "Pin Message", + "chat.unpin-message": "Unpin Message", "chat.public-rooms": "Public Rooms (%1)", "chat.private-rooms": "Private Rooms (%1)", "chat.create-room": "Create Chat Room", @@ -88,6 +95,7 @@ "composer.zen_mode": "Režim Zen", "composer.select_category": "Vyberte kategóriu", "composer.textarea.placeholder": "Enter your post content here, drag and drop images", + "composer.post-queue-alert": "Hello👋!
This forum uses a post queue system, since you are a new user your post will be hidden until it is approved by our moderation team.", "composer.schedule-for": "Schedule topic for", "composer.schedule-date": "Date", "composer.schedule-time": "Time", diff --git a/public/language/sl/modules.json b/public/language/sl/modules.json index ad2b2a303e..43622668f5 100644 --- a/public/language/sl/modules.json +++ b/public/language/sl/modules.json @@ -9,7 +9,10 @@ "chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others", "chat.send": "Pošlji", "chat.no_active": "Ni aktivnih klepetov.", - "chat.user_typing": "%1 piše sporočilo ...", + "chat.user_typing_1": "%1 is typing ...", + "chat.user_typing_2": "%1 and %2 are typing ...", + "chat.user_typing_3": "%1, %2 and %3 are typing ...", + "chat.user_typing_n": "%1, %2 and %3 others are typing ...", "chat.user_has_messaged_you": "%1 ti je poslal/-a sporočilo.", "chat.replying-to": "Replying to %1", "chat.see_all": "All chats", @@ -30,6 +33,10 @@ "chat.delete_message_confirm": "Ali ste prepričani, da želite izbrisati to sporočilo?", "chat.retrieving-users": "Pridobivanje uporabnikov...", "chat.view-users-list": "View users list", + "chat.pinned-messages": "Pinned Messages", + "chat.no-pinned-messages": "There are no pinned messages", + "chat.pin-message": "Pin Message", + "chat.unpin-message": "Unpin Message", "chat.public-rooms": "Public Rooms (%1)", "chat.private-rooms": "Private Rooms (%1)", "chat.create-room": "Create Chat Room", @@ -88,6 +95,7 @@ "composer.zen_mode": "Zen način", "composer.select_category": "Izberi kategorijo", "composer.textarea.placeholder": "Tukaj vnesite vsebino objave, povlecite in spustite slike", + "composer.post-queue-alert": "Hello👋!
This forum uses a post queue system, since you are a new user your post will be hidden until it is approved by our moderation team.", "composer.schedule-for": "Schedule topic for", "composer.schedule-date": "Datum", "composer.schedule-time": "Čas", diff --git a/public/language/sq-AL/modules.json b/public/language/sq-AL/modules.json index 1080b2c706..bda868049f 100644 --- a/public/language/sq-AL/modules.json +++ b/public/language/sq-AL/modules.json @@ -9,7 +9,10 @@ "chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others", "chat.send": "Dërgo", "chat.no_active": "Ju nuk keni biseda aktive.", - "chat.user_typing": "%1 është duke shkruajtur...", + "chat.user_typing_1": "%1 is typing ...", + "chat.user_typing_2": "%1 and %2 are typing ...", + "chat.user_typing_3": "%1, %2 and %3 are typing ...", + "chat.user_typing_n": "%1, %2 and %3 others are typing ...", "chat.user_has_messaged_you": "%1 ju ka dërguar mesazh.", "chat.replying-to": "Replying to %1", "chat.see_all": "All chats", @@ -30,6 +33,10 @@ "chat.delete_message_confirm": "A je i sigurt që dëshiron ta fshihni këtë mesazh?", "chat.retrieving-users": "Duke marrë përdoruesit...", "chat.view-users-list": "View users list", + "chat.pinned-messages": "Pinned Messages", + "chat.no-pinned-messages": "There are no pinned messages", + "chat.pin-message": "Pin Message", + "chat.unpin-message": "Unpin Message", "chat.public-rooms": "Public Rooms (%1)", "chat.private-rooms": "Private Rooms (%1)", "chat.create-room": "Create Chat Room", @@ -88,6 +95,7 @@ "composer.zen_mode": "Modeli Zen ", "composer.select_category": "Zgjidh nje kategori", "composer.textarea.placeholder": "Futni përmbajtjen tuaj të postimit këtu, tërhiqni dhe lëshoni imazhet", + "composer.post-queue-alert": "Hello👋!
This forum uses a post queue system, since you are a new user your post will be hidden until it is approved by our moderation team.", "composer.schedule-for": "Programoni temën për", "composer.schedule-date": "Data", "composer.schedule-time": "Koha", diff --git a/public/language/sr/modules.json b/public/language/sr/modules.json index 72d5d24ca8..e95cdb3b5e 100644 --- a/public/language/sr/modules.json +++ b/public/language/sr/modules.json @@ -9,7 +9,10 @@ "chat.chat-with-usernames-and-x-others": "Ћаскај са %1 & %2 осталих", "chat.send": "Пошаљи", "chat.no_active": "Нема активних ћаскања.", - "chat.user_typing": "%1 куца ...", + "chat.user_typing_1": "%1 is typing ...", + "chat.user_typing_2": "%1 and %2 are typing ...", + "chat.user_typing_3": "%1, %2 and %3 are typing ...", + "chat.user_typing_n": "%1, %2 and %3 others are typing ...", "chat.user_has_messaged_you": "%1 вам је послао поруку.", "chat.replying-to": "Одговарање кориснику %1", "chat.see_all": "Сва ћаскања", @@ -30,6 +33,10 @@ "chat.delete_message_confirm": "Да ли сте сигурни да желите да избришете ову поруку?", "chat.retrieving-users": "Преузимање корисника...", "chat.view-users-list": "Погледај листу корисника", + "chat.pinned-messages": "Pinned Messages", + "chat.no-pinned-messages": "There are no pinned messages", + "chat.pin-message": "Pin Message", + "chat.unpin-message": "Unpin Message", "chat.public-rooms": "Јавне собе (%1)", "chat.private-rooms": "Приватне собе (%1)", "chat.create-room": "Креирај собу за ћаскање", @@ -88,6 +95,7 @@ "composer.zen_mode": "Цео екран", "composer.select_category": "Изаберите категорију", "composer.textarea.placeholder": "Овде унесите садржај поруке, превуците и отпустите слике", + "composer.post-queue-alert": "Hello👋!
This forum uses a post queue system, since you are a new user your post will be hidden until it is approved by our moderation team.", "composer.schedule-for": "Испланирајте тему за", "composer.schedule-date": "Датум", "composer.schedule-time": "Време", diff --git a/public/language/sv/modules.json b/public/language/sv/modules.json index c15ec5b6b1..64f5fe8c11 100644 --- a/public/language/sv/modules.json +++ b/public/language/sv/modules.json @@ -9,7 +9,10 @@ "chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others", "chat.send": "Skicka", "chat.no_active": "Du har inte några aktiva chattar.", - "chat.user_typing": "%1 skriver ...", + "chat.user_typing_1": "%1 is typing ...", + "chat.user_typing_2": "%1 and %2 are typing ...", + "chat.user_typing_3": "%1, %2 and %3 are typing ...", + "chat.user_typing_n": "%1, %2 and %3 others are typing ...", "chat.user_has_messaged_you": "%1 har skickat ett medelande till dig.", "chat.replying-to": "Replying to %1", "chat.see_all": "Alla chattar", @@ -30,6 +33,10 @@ "chat.delete_message_confirm": "Är du säker på att du vill radera det här meddelandet?", "chat.retrieving-users": "Hämtar användare...", "chat.view-users-list": "View users list", + "chat.pinned-messages": "Pinned Messages", + "chat.no-pinned-messages": "There are no pinned messages", + "chat.pin-message": "Pin Message", + "chat.unpin-message": "Unpin Message", "chat.public-rooms": "Public Rooms (%1)", "chat.private-rooms": "Private Rooms (%1)", "chat.create-room": "Create Chat Room", @@ -88,6 +95,7 @@ "composer.zen_mode": "Zen Mode", "composer.select_category": "Välj en kategori", "composer.textarea.placeholder": "Enter your post content here, drag and drop images", + "composer.post-queue-alert": "Hello👋!
This forum uses a post queue system, since you are a new user your post will be hidden until it is approved by our moderation team.", "composer.schedule-for": "Schedule topic for", "composer.schedule-date": "Date", "composer.schedule-time": "Time", diff --git a/public/language/th/modules.json b/public/language/th/modules.json index 5874791d58..511cda28d6 100644 --- a/public/language/th/modules.json +++ b/public/language/th/modules.json @@ -9,7 +9,10 @@ "chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others", "chat.send": "ส่ง", "chat.no_active": "คุณไม่มีแชทที่คุยอยู่", - "chat.user_typing": "%1 กำลังพิมพ์อยู่ ...", + "chat.user_typing_1": "%1 is typing ...", + "chat.user_typing_2": "%1 and %2 are typing ...", + "chat.user_typing_3": "%1, %2 and %3 are typing ...", + "chat.user_typing_n": "%1, %2 and %3 others are typing ...", "chat.user_has_messaged_you": "%1 ได้ส่งข้อความถึงคุณ", "chat.replying-to": "Replying to %1", "chat.see_all": "All chats", @@ -30,6 +33,10 @@ "chat.delete_message_confirm": "คุณแน่ใจแล้วใช่ไหมว่าต้องการจะลบข้อความนี้?", "chat.retrieving-users": "กำลังเรียกข้อมูลผู้ใช้", "chat.view-users-list": "View users list", + "chat.pinned-messages": "Pinned Messages", + "chat.no-pinned-messages": "There are no pinned messages", + "chat.pin-message": "Pin Message", + "chat.unpin-message": "Unpin Message", "chat.public-rooms": "Public Rooms (%1)", "chat.private-rooms": "Private Rooms (%1)", "chat.create-room": "Create Chat Room", @@ -88,6 +95,7 @@ "composer.zen_mode": "เซ็นโหมด", "composer.select_category": "เลือกหมวดหมู่", "composer.textarea.placeholder": "Enter your post content here, drag and drop images", + "composer.post-queue-alert": "Hello👋!
This forum uses a post queue system, since you are a new user your post will be hidden until it is approved by our moderation team.", "composer.schedule-for": "Schedule topic for", "composer.schedule-date": "Date", "composer.schedule-time": "Time", diff --git a/public/language/tr/modules.json b/public/language/tr/modules.json index 0cc525688c..fed7bd0e63 100644 --- a/public/language/tr/modules.json +++ b/public/language/tr/modules.json @@ -9,7 +9,10 @@ "chat.chat-with-usernames-and-x-others": "%1 & %2 diğer kişi ile sohbet edin", "chat.send": "Gönder", "chat.no_active": "Aktif sohbet mevcut değil", - "chat.user_typing": "%1 yazıyor ...", + "chat.user_typing_1": "%1 is typing ...", + "chat.user_typing_2": "%1 and %2 are typing ...", + "chat.user_typing_3": "%1, %2 and %3 are typing ...", + "chat.user_typing_n": "%1, %2 and %3 others are typing ...", "chat.user_has_messaged_you": "%1 size bir mesaj gönderdi.", "chat.replying-to": "Replying to %1", "chat.see_all": "Bütün Sohbetler", @@ -30,6 +33,10 @@ "chat.delete_message_confirm": "Bu mesajı silmek istediğinizden emin misiniz?", "chat.retrieving-users": "Kullanıcılar alınıyor ...", "chat.view-users-list": "View users list", + "chat.pinned-messages": "Pinned Messages", + "chat.no-pinned-messages": "There are no pinned messages", + "chat.pin-message": "Pin Message", + "chat.unpin-message": "Unpin Message", "chat.public-rooms": "Public Rooms (%1)", "chat.private-rooms": "Private Rooms (%1)", "chat.create-room": "Create Chat Room", @@ -88,6 +95,7 @@ "composer.zen_mode": "Tam ekran modu", "composer.select_category": "Bir kategori seç", "composer.textarea.placeholder": "iletinizi buraya giriniz, görselleri sürükleyip bırakabilirsiniz...", + "composer.post-queue-alert": "Hello👋!
This forum uses a post queue system, since you are a new user your post will be hidden until it is approved by our moderation team.", "composer.schedule-for": "Konuyu Zamanla", "composer.schedule-date": "Tarih", "composer.schedule-time": "Zaman", diff --git a/public/language/uk/modules.json b/public/language/uk/modules.json index 0f85afee28..b874136886 100644 --- a/public/language/uk/modules.json +++ b/public/language/uk/modules.json @@ -9,7 +9,10 @@ "chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others", "chat.send": "Надіслати", "chat.no_active": "У вас немає активних чатів.", - "chat.user_typing": "%1 друкує...", + "chat.user_typing_1": "%1 is typing ...", + "chat.user_typing_2": "%1 and %2 are typing ...", + "chat.user_typing_3": "%1, %2 and %3 are typing ...", + "chat.user_typing_n": "%1, %2 and %3 others are typing ...", "chat.user_has_messaged_you": "%1 написав вам.", "chat.replying-to": "Replying to %1", "chat.see_all": "All chats", @@ -30,6 +33,10 @@ "chat.delete_message_confirm": "Ви впевнені, що хочете видалити це повідомлення?", "chat.retrieving-users": "Отримання користувачів...", "chat.view-users-list": "View users list", + "chat.pinned-messages": "Pinned Messages", + "chat.no-pinned-messages": "There are no pinned messages", + "chat.pin-message": "Pin Message", + "chat.unpin-message": "Unpin Message", "chat.public-rooms": "Public Rooms (%1)", "chat.private-rooms": "Private Rooms (%1)", "chat.create-room": "Create Chat Room", @@ -88,6 +95,7 @@ "composer.zen_mode": "Режим Дзен", "composer.select_category": "Обрати категорію", "composer.textarea.placeholder": "Enter your post content here, drag and drop images", + "composer.post-queue-alert": "Hello👋!
This forum uses a post queue system, since you are a new user your post will be hidden until it is approved by our moderation team.", "composer.schedule-for": "Schedule topic for", "composer.schedule-date": "Date", "composer.schedule-time": "Time", diff --git a/public/language/vi/modules.json b/public/language/vi/modules.json index 634e64a1b2..f1e7202c0e 100644 --- a/public/language/vi/modules.json +++ b/public/language/vi/modules.json @@ -9,7 +9,10 @@ "chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others", "chat.send": "Gửi", "chat.no_active": "Bạn không có cuộc trò chuyện đang hoạt động nào.", - "chat.user_typing": "%1 đang nhập...", + "chat.user_typing_1": "%1 is typing ...", + "chat.user_typing_2": "%1 and %2 are typing ...", + "chat.user_typing_3": "%1, %2 and %3 are typing ...", + "chat.user_typing_n": "%1, %2 and %3 others are typing ...", "chat.user_has_messaged_you": "%1 đã nhắn tin cho bạn.", "chat.replying-to": "Replying to %1", "chat.see_all": "Tất cả trò chuyện", @@ -30,6 +33,10 @@ "chat.delete_message_confirm": "Bạn có chắc muốn xoá tin nhắn này không?", "chat.retrieving-users": "Đang truy xuất người dùng...", "chat.view-users-list": "View users list", + "chat.pinned-messages": "Pinned Messages", + "chat.no-pinned-messages": "There are no pinned messages", + "chat.pin-message": "Pin Message", + "chat.unpin-message": "Unpin Message", "chat.public-rooms": "Public Rooms (%1)", "chat.private-rooms": "Private Rooms (%1)", "chat.create-room": "Create Chat Room", @@ -88,6 +95,7 @@ "composer.zen_mode": "Chế Độ Zen", "composer.select_category": "Chọn một chuyên mục", "composer.textarea.placeholder": "Nhập nội dung bài đăng của bạn vào đây, kéo và thả hình ảnh", + "composer.post-queue-alert": "Hello👋!
This forum uses a post queue system, since you are a new user your post will be hidden until it is approved by our moderation team.", "composer.schedule-for": "Lên lịch chủ đề cho", "composer.schedule-date": "Ngày", "composer.schedule-time": "Thời gian", diff --git a/public/language/zh-CN/modules.json b/public/language/zh-CN/modules.json index 2147897c22..d4a66cf9c2 100644 --- a/public/language/zh-CN/modules.json +++ b/public/language/zh-CN/modules.json @@ -9,7 +9,10 @@ "chat.chat-with-usernames-and-x-others": "与%1 & %2 和其他人聊天", "chat.send": "发送", "chat.no_active": "暂无聊天", - "chat.user_typing": "%1 正在输入……", + "chat.user_typing_1": "%1 is typing ...", + "chat.user_typing_2": "%1 and %2 are typing ...", + "chat.user_typing_3": "%1, %2 and %3 are typing ...", + "chat.user_typing_n": "%1, %2 and %3 others are typing ...", "chat.user_has_messaged_you": "%1 向您发送了消息。", "chat.replying-to": "回复 %1", "chat.see_all": "全部对话", @@ -30,6 +33,10 @@ "chat.delete_message_confirm": "您确定您要删除此消息吗?", "chat.retrieving-users": "查找用户", "chat.view-users-list": "查看用户列表", + "chat.pinned-messages": "Pinned Messages", + "chat.no-pinned-messages": "There are no pinned messages", + "chat.pin-message": "Pin Message", + "chat.unpin-message": "Unpin Message", "chat.public-rooms": "公开房间(1%)", "chat.private-rooms": "私有房间(1%)", "chat.create-room": "创建聊天室", @@ -88,6 +95,7 @@ "composer.zen_mode": "无干扰模式", "composer.select_category": "选择一个版块", "composer.textarea.placeholder": "在此处输入您的帖子内容,拖放图像", + "composer.post-queue-alert": "Hello👋!
This forum uses a post queue system, since you are a new user your post will be hidden until it is approved by our moderation team.", "composer.schedule-for": "定时主题到", "composer.schedule-date": "日期", "composer.schedule-time": "时间", diff --git a/public/language/zh-TW/modules.json b/public/language/zh-TW/modules.json index 3ed8cfdaa9..62a1f39afe 100644 --- a/public/language/zh-TW/modules.json +++ b/public/language/zh-TW/modules.json @@ -9,7 +9,10 @@ "chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others", "chat.send": "發送", "chat.no_active": "暫無聊天", - "chat.user_typing": "%1 正在輸入……", + "chat.user_typing_1": "%1 is typing ...", + "chat.user_typing_2": "%1 and %2 are typing ...", + "chat.user_typing_3": "%1, %2 and %3 are typing ...", + "chat.user_typing_n": "%1, %2 and %3 others are typing ...", "chat.user_has_messaged_you": "%1 向您發送了訊息。", "chat.replying-to": "Replying to %1", "chat.see_all": "All chats", @@ -30,6 +33,10 @@ "chat.delete_message_confirm": "您確定刪除此訊息嗎?", "chat.retrieving-users": "搜尋使用者", "chat.view-users-list": "View users list", + "chat.pinned-messages": "Pinned Messages", + "chat.no-pinned-messages": "There are no pinned messages", + "chat.pin-message": "Pin Message", + "chat.unpin-message": "Unpin Message", "chat.public-rooms": "Public Rooms (%1)", "chat.private-rooms": "Private Rooms (%1)", "chat.create-room": "Create Chat Room", @@ -88,6 +95,7 @@ "composer.zen_mode": "無干擾模式", "composer.select_category": "選擇一個版面", "composer.textarea.placeholder": "Enter your post content here, drag and drop images", + "composer.post-queue-alert": "Hello👋!
This forum uses a post queue system, since you are a new user your post will be hidden until it is approved by our moderation team.", "composer.schedule-for": "Schedule topic for", "composer.schedule-date": "Date", "composer.schedule-time": "Time", From 223e76569bcd5ec4efcf09cee9718ff5dfe27cb1 Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Wed, 6 Sep 2023 15:37:51 -0400 Subject: [PATCH 010/275] feat: introduce new ACP setting for newbie chat message delay, defaults to 2 minutes --- install/data/defaults.json | 1 + public/language/en-GB/admin/settings/chat.json | 3 ++- src/api/chats.js | 14 ++++++++++---- src/views/admin/settings/chat.tpl | 15 ++++++++++----- 4 files changed, 23 insertions(+), 10 deletions(-) diff --git a/install/data/defaults.json b/install/data/defaults.json index eeec153f1b..92bac0b2b7 100644 --- a/install/data/defaults.json +++ b/install/data/defaults.json @@ -21,6 +21,7 @@ "chatEditDuration": 0, "chatDeleteDuration": 0, "chatMessageDelay": 2000, + "newbieChatMessageDelay": 120000, "notificationSendDelay": 60, "newbiePostDelayThreshold": 3, "postQueue": 0, diff --git a/public/language/en-GB/admin/settings/chat.json b/public/language/en-GB/admin/settings/chat.json index 102dd5aa3b..86360a34ee 100644 --- a/public/language/en-GB/admin/settings/chat.json +++ b/public/language/en-GB/admin/settings/chat.json @@ -7,7 +7,8 @@ "max-length": "Maximum length of chat messages", "max-chat-room-name-length": "Maximum length of chat room names", "max-room-size": "Maximum number of users in chat rooms", - "delay": "Time between chat messages in milliseconds", + "delay": "Time between chat messages (ms)", + "newbieDelay": "... for new users (ms)", "notification-delay": "Notification delay for chat messages", "notification-delay-help": "Additional messages sent between this time are collated, and the user is notified once per delay period. Set this to 0 to disable the delay.", "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable.", diff --git a/src/api/chats.js b/src/api/chats.js index 281109f514..bf8d01df9c 100644 --- a/src/api/chats.js +++ b/src/api/chats.js @@ -14,11 +14,17 @@ const socketHelpers = require('../socket.io/helpers'); const chatsAPI = module.exports; -function rateLimitExceeded(caller) { +async function rateLimitExceeded(caller) { const session = caller.request ? caller.request.session : caller.session; // socket vs req const now = Date.now(); + const [isAdmin, reputation] = await Promise.all([ + user.isAdministrator(caller.uid), + user.getUserField(caller.uid, 'reputation'), + ]); + const newbie = !isAdmin && meta.config.newbiePostDelayThreshold > reputation; + const delay = newbie ? meta.config.newbieChatMessageDelay : meta.config.chatMessageDelay; session.lastChatMessageTime = session.lastChatMessageTime || 0; - if (now - session.lastChatMessageTime < meta.config.chatMessageDelay) { + if (now - session.lastChatMessageTime < delay) { return true; } session.lastChatMessageTime = now; @@ -34,7 +40,7 @@ chatsAPI.list = async (caller, { page, perPage }) => { }; chatsAPI.create = async function (caller, data) { - if (rateLimitExceeded(caller)) { + if (await rateLimitExceeded(caller)) { throw new Error('[[error:too-many-messages]]'); } if (!data) { @@ -71,7 +77,7 @@ chatsAPI.create = async function (caller, data) { chatsAPI.get = async (caller, { uid, roomId }) => await messaging.loadRoom(caller.uid, { uid, roomId }); chatsAPI.post = async (caller, data) => { - if (rateLimitExceeded(caller)) { + if (await rateLimitExceeded(caller)) { throw new Error('[[error:too-many-messages]]'); } if (!data || !data.roomId || !caller.uid) { diff --git a/src/views/admin/settings/chat.tpl b/src/views/admin/settings/chat.tpl index 852a039597..cbd138d0c8 100644 --- a/src/views/admin/settings/chat.tpl +++ b/src/views/admin/settings/chat.tpl @@ -49,11 +49,16 @@ - -
- - -
+
+
+ + +
+
+ + +
+
From ff07fc44e218cd1559bbd99a0ad82430ed052376 Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Thu, 7 Sep 2023 11:03:37 -0400 Subject: [PATCH 011/275] fix: failing test due to increased chat message delay --- test/messaging.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/test/messaging.js b/test/messaging.js index 395d0f8764..9ebd832ddf 100644 --- a/test/messaging.js +++ b/test/messaging.js @@ -138,6 +138,18 @@ describe('Messaging Library', () => { }); describe('rooms', () => { + const _delay1 = meta.config.chatMessageDelay; + const _delay2 = meta.config.newbieChatMessageDelay; + before(async () => { + meta.config.chatMessageDelay = 0; + meta.config.newbieChatMessageDelay = 0; + }); + + after(async () => { + meta.config.chatMessageDelay = _delay1; + meta.config.newbieChatMessageDelay = _delay2; + }); + it('should fail to create a new chat room with invalid data', async () => { const { body } = await callv3API('post', '/chats', {}, 'foo'); assert.equal(body.status.message, await translator.translate('[[error:required-parameters-missing, uids]]')); From b9c3cdb679c489bc4969da15e479965465fe2da7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Thu, 7 Sep 2023 11:04:01 -0400 Subject: [PATCH 012/275] fix: use isPrivileged instead of isAdmin --- src/api/chats.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/api/chats.js b/src/api/chats.js index bf8d01df9c..3d8581509b 100644 --- a/src/api/chats.js +++ b/src/api/chats.js @@ -17,16 +17,18 @@ const chatsAPI = module.exports; async function rateLimitExceeded(caller) { const session = caller.request ? caller.request.session : caller.session; // socket vs req const now = Date.now(); - const [isAdmin, reputation] = await Promise.all([ - user.isAdministrator(caller.uid), + const [isPrivileged, reputation] = await Promise.all([ + user.isPrivileged(caller.uid), user.getUserField(caller.uid, 'reputation'), ]); - const newbie = !isAdmin && meta.config.newbiePostDelayThreshold > reputation; + const newbie = !isPrivileged && meta.config.newbiePostDelayThreshold > reputation; const delay = newbie ? meta.config.newbieChatMessageDelay : meta.config.chatMessageDelay; session.lastChatMessageTime = session.lastChatMessageTime || 0; + if (now - session.lastChatMessageTime < delay) { return true; } + session.lastChatMessageTime = now; return false; } From 968ee0c71d4e146e59dc234503c61e8a745f121e Mon Sep 17 00:00:00 2001 From: Misty Release Bot Date: Thu, 7 Sep 2023 15:39:46 +0000 Subject: [PATCH 013/275] chore(i18n): fallback strings for new resources: nodebb.admin-settings-chat --- public/language/ar/admin/settings/chat.json | 11 +++++++---- public/language/bg/admin/settings/chat.json | 11 +++++++---- public/language/bn/admin/settings/chat.json | 11 +++++++---- public/language/cs/admin/settings/chat.json | 11 +++++++---- public/language/da/admin/settings/chat.json | 11 +++++++---- public/language/de/admin/settings/chat.json | 11 +++++++---- public/language/el/admin/settings/chat.json | 11 +++++++---- public/language/en-US/admin/settings/chat.json | 11 +++++++---- public/language/en-x-pirate/admin/settings/chat.json | 11 +++++++---- public/language/es/admin/settings/chat.json | 11 +++++++---- public/language/et/admin/settings/chat.json | 11 +++++++---- public/language/fa-IR/admin/settings/chat.json | 11 +++++++---- public/language/fi/admin/settings/chat.json | 11 +++++++---- public/language/fr/admin/settings/chat.json | 11 +++++++---- public/language/gl/admin/settings/chat.json | 11 +++++++---- public/language/he/admin/settings/chat.json | 11 +++++++---- public/language/hr/admin/settings/chat.json | 11 +++++++---- public/language/hu/admin/settings/chat.json | 11 +++++++---- public/language/hy/admin/settings/chat.json | 11 +++++++---- public/language/id/admin/settings/chat.json | 11 +++++++---- public/language/it/admin/settings/chat.json | 11 +++++++---- public/language/ja/admin/settings/chat.json | 11 +++++++---- public/language/ko/admin/settings/chat.json | 11 +++++++---- public/language/lt/admin/settings/chat.json | 11 +++++++---- public/language/lv/admin/settings/chat.json | 11 +++++++---- public/language/ms/admin/settings/chat.json | 11 +++++++---- public/language/nb/admin/settings/chat.json | 11 +++++++---- public/language/nl/admin/settings/chat.json | 11 +++++++---- public/language/pl/admin/settings/chat.json | 11 +++++++---- public/language/pt-BR/admin/settings/chat.json | 11 +++++++---- public/language/pt-PT/admin/settings/chat.json | 11 +++++++---- public/language/ro/admin/settings/chat.json | 11 +++++++---- public/language/ru/admin/settings/chat.json | 11 +++++++---- public/language/rw/admin/settings/chat.json | 11 +++++++---- public/language/sc/admin/settings/chat.json | 11 +++++++---- public/language/sk/admin/settings/chat.json | 11 +++++++---- public/language/sl/admin/settings/chat.json | 11 +++++++---- public/language/sq-AL/admin/settings/chat.json | 11 +++++++---- public/language/sr/admin/settings/chat.json | 11 +++++++---- public/language/sv/admin/settings/chat.json | 11 +++++++---- public/language/th/admin/settings/chat.json | 11 +++++++---- public/language/tr/admin/settings/chat.json | 11 +++++++---- public/language/uk/admin/settings/chat.json | 11 +++++++---- public/language/vi/admin/settings/chat.json | 11 +++++++---- public/language/zh-CN/admin/settings/chat.json | 11 +++++++---- public/language/zh-TW/admin/settings/chat.json | 11 +++++++---- 46 files changed, 322 insertions(+), 184 deletions(-) diff --git a/public/language/ar/admin/settings/chat.json b/public/language/ar/admin/settings/chat.json index e4946458bd..86360a34ee 100644 --- a/public/language/ar/admin/settings/chat.json +++ b/public/language/ar/admin/settings/chat.json @@ -1,4 +1,5 @@ { + "zero-is-disabled": "Enter 0 to disable this restriction", "chat-settings": "Chat Settings", "disable": "Disable chat", "disable-editing": "Disable chat message editing/deletion", @@ -6,8 +7,10 @@ "max-length": "Maximum length of chat messages", "max-chat-room-name-length": "Maximum length of chat room names", "max-room-size": "Maximum number of users in chat rooms", - "delay": "Time between chat messages in milliseconds", - "notification-delay": "Notification delay for chat messages. (0 for no delay)", - "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable. (0 disabled)", - "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable. (0 disabled)" + "delay": "Time between chat messages (ms)", + "newbieDelay": "... for new users (ms)", + "notification-delay": "Notification delay for chat messages", + "notification-delay-help": "Additional messages sent between this time are collated, and the user is notified once per delay period. Set this to 0 to disable the delay.", + "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable.", + "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable." } \ No newline at end of file diff --git a/public/language/bg/admin/settings/chat.json b/public/language/bg/admin/settings/chat.json index 0c87d9d35d..61a76faf9a 100644 --- a/public/language/bg/admin/settings/chat.json +++ b/public/language/bg/admin/settings/chat.json @@ -1,4 +1,5 @@ { + "zero-is-disabled": "Enter 0 to disable this restriction", "chat-settings": "Настройки на разговорите", "disable": "Изключване на разговорите", "disable-editing": "Изключване на редактирането и изтриването на съобщения в разговорите", @@ -6,8 +7,10 @@ "max-length": "Максимална дължина на съобщенията в разговорите", "max-chat-room-name-length": "Максимална дължина на имената на стаи за разговори", "max-room-size": "Максимален брой потребители в стая за разговор", - "delay": "Време между съобщенията в разговорите (в милисекунди)", - "notification-delay": "Забавяне преди известяване за съобщения в разговорите. (0 – без забавяне)", - "restrictions.seconds-edit-after": "Брой секунди, през които съобщенията в разговор могат да бъдат редактирани. (0 = изключено)", - "restrictions.seconds-delete-after": "Брой секунди, през които съобщенията в разговор могат да бъдат изтривани. (0 = изключено)" + "delay": "Time between chat messages (ms)", + "newbieDelay": "... for new users (ms)", + "notification-delay": "Notification delay for chat messages", + "notification-delay-help": "Additional messages sent between this time are collated, and the user is notified once per delay period. Set this to 0 to disable the delay.", + "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable.", + "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable." } \ No newline at end of file diff --git a/public/language/bn/admin/settings/chat.json b/public/language/bn/admin/settings/chat.json index e4946458bd..86360a34ee 100644 --- a/public/language/bn/admin/settings/chat.json +++ b/public/language/bn/admin/settings/chat.json @@ -1,4 +1,5 @@ { + "zero-is-disabled": "Enter 0 to disable this restriction", "chat-settings": "Chat Settings", "disable": "Disable chat", "disable-editing": "Disable chat message editing/deletion", @@ -6,8 +7,10 @@ "max-length": "Maximum length of chat messages", "max-chat-room-name-length": "Maximum length of chat room names", "max-room-size": "Maximum number of users in chat rooms", - "delay": "Time between chat messages in milliseconds", - "notification-delay": "Notification delay for chat messages. (0 for no delay)", - "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable. (0 disabled)", - "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable. (0 disabled)" + "delay": "Time between chat messages (ms)", + "newbieDelay": "... for new users (ms)", + "notification-delay": "Notification delay for chat messages", + "notification-delay-help": "Additional messages sent between this time are collated, and the user is notified once per delay period. Set this to 0 to disable the delay.", + "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable.", + "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable." } \ No newline at end of file diff --git a/public/language/cs/admin/settings/chat.json b/public/language/cs/admin/settings/chat.json index d2873a58db..7238e340ee 100644 --- a/public/language/cs/admin/settings/chat.json +++ b/public/language/cs/admin/settings/chat.json @@ -1,4 +1,5 @@ { + "zero-is-disabled": "Enter 0 to disable this restriction", "chat-settings": "Nastavení konverzace", "disable": "Zakázat konverzaci", "disable-editing": "Zakázat upravení/odstranění konverzační zprávy", @@ -6,8 +7,10 @@ "max-length": "Maximální délka konverzační zprávy", "max-chat-room-name-length": "Maximum length of chat room names", "max-room-size": "Maximální počet uživatelů v konverzační místnosti", - "delay": "Čas mezi konverzačními zprávami v milisekundách", - "notification-delay": "Notification delay for chat messages. (0 for no delay)", - "restrictions.seconds-edit-after": "Počet sekund, kdy může být ještě konverzační zpráva upravena (pro zakázání - 0)", - "restrictions.seconds-delete-after": "Počet sekund, kdy může být ještě konverzační zpráva odstraněna (pro zakázání - 0)" + "delay": "Time between chat messages (ms)", + "newbieDelay": "... for new users (ms)", + "notification-delay": "Notification delay for chat messages", + "notification-delay-help": "Additional messages sent between this time are collated, and the user is notified once per delay period. Set this to 0 to disable the delay.", + "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable.", + "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable." } \ No newline at end of file diff --git a/public/language/da/admin/settings/chat.json b/public/language/da/admin/settings/chat.json index e4946458bd..86360a34ee 100644 --- a/public/language/da/admin/settings/chat.json +++ b/public/language/da/admin/settings/chat.json @@ -1,4 +1,5 @@ { + "zero-is-disabled": "Enter 0 to disable this restriction", "chat-settings": "Chat Settings", "disable": "Disable chat", "disable-editing": "Disable chat message editing/deletion", @@ -6,8 +7,10 @@ "max-length": "Maximum length of chat messages", "max-chat-room-name-length": "Maximum length of chat room names", "max-room-size": "Maximum number of users in chat rooms", - "delay": "Time between chat messages in milliseconds", - "notification-delay": "Notification delay for chat messages. (0 for no delay)", - "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable. (0 disabled)", - "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable. (0 disabled)" + "delay": "Time between chat messages (ms)", + "newbieDelay": "... for new users (ms)", + "notification-delay": "Notification delay for chat messages", + "notification-delay-help": "Additional messages sent between this time are collated, and the user is notified once per delay period. Set this to 0 to disable the delay.", + "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable.", + "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable." } \ No newline at end of file diff --git a/public/language/de/admin/settings/chat.json b/public/language/de/admin/settings/chat.json index 17ae89bc7a..85591d797e 100644 --- a/public/language/de/admin/settings/chat.json +++ b/public/language/de/admin/settings/chat.json @@ -1,4 +1,5 @@ { + "zero-is-disabled": "Enter 0 to disable this restriction", "chat-settings": "Chateinstellungen", "disable": "Chat deaktivieren", "disable-editing": "Chatnachrichtenbearbeitung/löschung deaktivieren", @@ -6,8 +7,10 @@ "max-length": "Maximale Länge von Chatnachrichten", "max-chat-room-name-length": "Maximum length of chat room names", "max-room-size": "Maximale Anzahl von Benutzern in Chatrooms", - "delay": "Zeit zwischen Chatnachrichten in Millisekunden", - "notification-delay": "Benachrichtigungsverzögerung für Chatnachrichten. (0 für keine Verzögerung)", - "restrictions.seconds-edit-after": "Anzahl der Sekunden, die eine Chat-Nachricht bearbeitet werden kann. (0 deaktiviert)", - "restrictions.seconds-delete-after": "Anzahl der Sekunden, die eine Chat-Nachricht löschbar bleibt. (0 deaktiviert)" + "delay": "Time between chat messages (ms)", + "newbieDelay": "... for new users (ms)", + "notification-delay": "Notification delay for chat messages", + "notification-delay-help": "Additional messages sent between this time are collated, and the user is notified once per delay period. Set this to 0 to disable the delay.", + "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable.", + "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable." } \ No newline at end of file diff --git a/public/language/el/admin/settings/chat.json b/public/language/el/admin/settings/chat.json index e4946458bd..86360a34ee 100644 --- a/public/language/el/admin/settings/chat.json +++ b/public/language/el/admin/settings/chat.json @@ -1,4 +1,5 @@ { + "zero-is-disabled": "Enter 0 to disable this restriction", "chat-settings": "Chat Settings", "disable": "Disable chat", "disable-editing": "Disable chat message editing/deletion", @@ -6,8 +7,10 @@ "max-length": "Maximum length of chat messages", "max-chat-room-name-length": "Maximum length of chat room names", "max-room-size": "Maximum number of users in chat rooms", - "delay": "Time between chat messages in milliseconds", - "notification-delay": "Notification delay for chat messages. (0 for no delay)", - "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable. (0 disabled)", - "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable. (0 disabled)" + "delay": "Time between chat messages (ms)", + "newbieDelay": "... for new users (ms)", + "notification-delay": "Notification delay for chat messages", + "notification-delay-help": "Additional messages sent between this time are collated, and the user is notified once per delay period. Set this to 0 to disable the delay.", + "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable.", + "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable." } \ No newline at end of file diff --git a/public/language/en-US/admin/settings/chat.json b/public/language/en-US/admin/settings/chat.json index e4946458bd..86360a34ee 100644 --- a/public/language/en-US/admin/settings/chat.json +++ b/public/language/en-US/admin/settings/chat.json @@ -1,4 +1,5 @@ { + "zero-is-disabled": "Enter 0 to disable this restriction", "chat-settings": "Chat Settings", "disable": "Disable chat", "disable-editing": "Disable chat message editing/deletion", @@ -6,8 +7,10 @@ "max-length": "Maximum length of chat messages", "max-chat-room-name-length": "Maximum length of chat room names", "max-room-size": "Maximum number of users in chat rooms", - "delay": "Time between chat messages in milliseconds", - "notification-delay": "Notification delay for chat messages. (0 for no delay)", - "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable. (0 disabled)", - "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable. (0 disabled)" + "delay": "Time between chat messages (ms)", + "newbieDelay": "... for new users (ms)", + "notification-delay": "Notification delay for chat messages", + "notification-delay-help": "Additional messages sent between this time are collated, and the user is notified once per delay period. Set this to 0 to disable the delay.", + "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable.", + "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable." } \ No newline at end of file diff --git a/public/language/en-x-pirate/admin/settings/chat.json b/public/language/en-x-pirate/admin/settings/chat.json index e4946458bd..86360a34ee 100644 --- a/public/language/en-x-pirate/admin/settings/chat.json +++ b/public/language/en-x-pirate/admin/settings/chat.json @@ -1,4 +1,5 @@ { + "zero-is-disabled": "Enter 0 to disable this restriction", "chat-settings": "Chat Settings", "disable": "Disable chat", "disable-editing": "Disable chat message editing/deletion", @@ -6,8 +7,10 @@ "max-length": "Maximum length of chat messages", "max-chat-room-name-length": "Maximum length of chat room names", "max-room-size": "Maximum number of users in chat rooms", - "delay": "Time between chat messages in milliseconds", - "notification-delay": "Notification delay for chat messages. (0 for no delay)", - "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable. (0 disabled)", - "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable. (0 disabled)" + "delay": "Time between chat messages (ms)", + "newbieDelay": "... for new users (ms)", + "notification-delay": "Notification delay for chat messages", + "notification-delay-help": "Additional messages sent between this time are collated, and the user is notified once per delay period. Set this to 0 to disable the delay.", + "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable.", + "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable." } \ No newline at end of file diff --git a/public/language/es/admin/settings/chat.json b/public/language/es/admin/settings/chat.json index 7afc3f0342..048be4c445 100644 --- a/public/language/es/admin/settings/chat.json +++ b/public/language/es/admin/settings/chat.json @@ -1,4 +1,5 @@ { + "zero-is-disabled": "Enter 0 to disable this restriction", "chat-settings": "Ajustes de Chat", "disable": "Deshabilitar chat", "disable-editing": "Deshabilitar edición y borrado de mensajes de chat", @@ -6,8 +7,10 @@ "max-length": "Maxima longitud de mensajes de chat", "max-chat-room-name-length": "Maximum length of chat room names", "max-room-size": "Máximo numero de usuarios en las salas de chat", - "delay": "Tiempo entre envío de mensajes de chat en milisegundos", - "notification-delay": "Notification delay for chat messages. (0 for no delay)", - "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable. (0 disabled)", - "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable. (0 disabled)" + "delay": "Time between chat messages (ms)", + "newbieDelay": "... for new users (ms)", + "notification-delay": "Notification delay for chat messages", + "notification-delay-help": "Additional messages sent between this time are collated, and the user is notified once per delay period. Set this to 0 to disable the delay.", + "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable.", + "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable." } \ No newline at end of file diff --git a/public/language/et/admin/settings/chat.json b/public/language/et/admin/settings/chat.json index e4946458bd..86360a34ee 100644 --- a/public/language/et/admin/settings/chat.json +++ b/public/language/et/admin/settings/chat.json @@ -1,4 +1,5 @@ { + "zero-is-disabled": "Enter 0 to disable this restriction", "chat-settings": "Chat Settings", "disable": "Disable chat", "disable-editing": "Disable chat message editing/deletion", @@ -6,8 +7,10 @@ "max-length": "Maximum length of chat messages", "max-chat-room-name-length": "Maximum length of chat room names", "max-room-size": "Maximum number of users in chat rooms", - "delay": "Time between chat messages in milliseconds", - "notification-delay": "Notification delay for chat messages. (0 for no delay)", - "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable. (0 disabled)", - "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable. (0 disabled)" + "delay": "Time between chat messages (ms)", + "newbieDelay": "... for new users (ms)", + "notification-delay": "Notification delay for chat messages", + "notification-delay-help": "Additional messages sent between this time are collated, and the user is notified once per delay period. Set this to 0 to disable the delay.", + "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable.", + "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable." } \ No newline at end of file diff --git a/public/language/fa-IR/admin/settings/chat.json b/public/language/fa-IR/admin/settings/chat.json index a5544ca116..a150d404fe 100644 --- a/public/language/fa-IR/admin/settings/chat.json +++ b/public/language/fa-IR/admin/settings/chat.json @@ -1,4 +1,5 @@ { + "zero-is-disabled": "Enter 0 to disable this restriction", "chat-settings": "Chat Settings", "disable": "Disable chat", "disable-editing": "Disable chat message editing/deletion", @@ -6,8 +7,10 @@ "max-length": "بیشترین طول پیام‌های چت ", "max-chat-room-name-length": "Maximum length of chat room names", "max-room-size": "بیشترین تعداد کاربران در چت‌روم ", - "delay": "زمان بین پیام های چت به میلی ثانیه", - "notification-delay": "Notification delay for chat messages. (0 for no delay)", - "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable. (0 disabled)", - "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable. (0 disabled)" + "delay": "Time between chat messages (ms)", + "newbieDelay": "... for new users (ms)", + "notification-delay": "Notification delay for chat messages", + "notification-delay-help": "Additional messages sent between this time are collated, and the user is notified once per delay period. Set this to 0 to disable the delay.", + "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable.", + "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable." } \ No newline at end of file diff --git a/public/language/fi/admin/settings/chat.json b/public/language/fi/admin/settings/chat.json index e4946458bd..86360a34ee 100644 --- a/public/language/fi/admin/settings/chat.json +++ b/public/language/fi/admin/settings/chat.json @@ -1,4 +1,5 @@ { + "zero-is-disabled": "Enter 0 to disable this restriction", "chat-settings": "Chat Settings", "disable": "Disable chat", "disable-editing": "Disable chat message editing/deletion", @@ -6,8 +7,10 @@ "max-length": "Maximum length of chat messages", "max-chat-room-name-length": "Maximum length of chat room names", "max-room-size": "Maximum number of users in chat rooms", - "delay": "Time between chat messages in milliseconds", - "notification-delay": "Notification delay for chat messages. (0 for no delay)", - "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable. (0 disabled)", - "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable. (0 disabled)" + "delay": "Time between chat messages (ms)", + "newbieDelay": "... for new users (ms)", + "notification-delay": "Notification delay for chat messages", + "notification-delay-help": "Additional messages sent between this time are collated, and the user is notified once per delay period. Set this to 0 to disable the delay.", + "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable.", + "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable." } \ No newline at end of file diff --git a/public/language/fr/admin/settings/chat.json b/public/language/fr/admin/settings/chat.json index 0cd3d8201f..5eadb8b455 100644 --- a/public/language/fr/admin/settings/chat.json +++ b/public/language/fr/admin/settings/chat.json @@ -1,4 +1,5 @@ { + "zero-is-disabled": "Enter 0 to disable this restriction", "chat-settings": "Paramètres des discussions", "disable": "Désactiver les discussions", "disable-editing": "Désactiver l'édition/la suppression des messages des discussions", @@ -6,8 +7,10 @@ "max-length": "Longueur maximales des messages de discussion", "max-chat-room-name-length": "Longueur maximale des noms de salons", "max-room-size": "Nombre maximum d'utilisateurs dans une même discussion", - "delay": "Temps entre chaque message de discussion (en millisecondes)", - "notification-delay": "Délai de notification pour les messages de chat. (0 pour aucun délai)", - "restrictions.seconds-edit-after": "Nombre de secondes pendant lesquelles un message de discussion reste modifiable. (0 désactivé)", - "restrictions.seconds-delete-after": "Nombre de secondes pendant lesquelles un message de discussion reste supprimable. (0 désactivé)" + "delay": "Time between chat messages (ms)", + "newbieDelay": "... for new users (ms)", + "notification-delay": "Notification delay for chat messages", + "notification-delay-help": "Additional messages sent between this time are collated, and the user is notified once per delay period. Set this to 0 to disable the delay.", + "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable.", + "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable." } \ No newline at end of file diff --git a/public/language/gl/admin/settings/chat.json b/public/language/gl/admin/settings/chat.json index e4946458bd..86360a34ee 100644 --- a/public/language/gl/admin/settings/chat.json +++ b/public/language/gl/admin/settings/chat.json @@ -1,4 +1,5 @@ { + "zero-is-disabled": "Enter 0 to disable this restriction", "chat-settings": "Chat Settings", "disable": "Disable chat", "disable-editing": "Disable chat message editing/deletion", @@ -6,8 +7,10 @@ "max-length": "Maximum length of chat messages", "max-chat-room-name-length": "Maximum length of chat room names", "max-room-size": "Maximum number of users in chat rooms", - "delay": "Time between chat messages in milliseconds", - "notification-delay": "Notification delay for chat messages. (0 for no delay)", - "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable. (0 disabled)", - "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable. (0 disabled)" + "delay": "Time between chat messages (ms)", + "newbieDelay": "... for new users (ms)", + "notification-delay": "Notification delay for chat messages", + "notification-delay-help": "Additional messages sent between this time are collated, and the user is notified once per delay period. Set this to 0 to disable the delay.", + "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable.", + "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable." } \ No newline at end of file diff --git a/public/language/he/admin/settings/chat.json b/public/language/he/admin/settings/chat.json index 27a5f0e69d..08e278572f 100644 --- a/public/language/he/admin/settings/chat.json +++ b/public/language/he/admin/settings/chat.json @@ -1,4 +1,5 @@ { + "zero-is-disabled": "Enter 0 to disable this restriction", "chat-settings": "הגדרות צ'אט", "disable": "השבת צ'אט", "disable-editing": "השבת עריכה/מחיקה של הודעות צ'אט", @@ -6,8 +7,10 @@ "max-length": "אורך מקסימלי של הודעת צ'אט", "max-chat-room-name-length": "אורך מקסימלי של שם חדר צ'אט", "max-room-size": "מספר המשתמשים המרבי בחדרי צ'אט", - "delay": "זמן המתנה בין הודעות צ'אט - באלפיות שניה", - "notification-delay": "עיכוב התראות להודעות צ'אט. (0 ללא עיכוב)", - "restrictions.seconds-edit-after": "מספר השניות בה ניתן לערוך הודעת צ'אט מרגע פרסומו (כתבו 0 להפוך ללא זמין)", - "restrictions.seconds-delete-after": "מספר השניות בה ניתן למחוק הודעת צ'אט מרגע פרסומו (כתבו 0 להפוך ללא זמין)" + "delay": "Time between chat messages (ms)", + "newbieDelay": "... for new users (ms)", + "notification-delay": "Notification delay for chat messages", + "notification-delay-help": "Additional messages sent between this time are collated, and the user is notified once per delay period. Set this to 0 to disable the delay.", + "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable.", + "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable." } \ No newline at end of file diff --git a/public/language/hr/admin/settings/chat.json b/public/language/hr/admin/settings/chat.json index 225b829618..9a54a27c29 100644 --- a/public/language/hr/admin/settings/chat.json +++ b/public/language/hr/admin/settings/chat.json @@ -1,4 +1,5 @@ { + "zero-is-disabled": "Enter 0 to disable this restriction", "chat-settings": "Postavke razgovora", "disable": "Onemogući razgovor", "disable-editing": "Onemogući uređivanje/brisanje poruka razgovora", @@ -6,8 +7,10 @@ "max-length": "Maksimalna dužina poruka u razgovoru", "max-chat-room-name-length": "Maximum length of chat room names", "max-room-size": "Maksimalan broj korisnika u sobama za razgovor", - "delay": "Vrijeme između poruka razgovora u milisekundama", - "notification-delay": "Notification delay for chat messages. (0 for no delay)", - "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable. (0 disabled)", - "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable. (0 disabled)" + "delay": "Time between chat messages (ms)", + "newbieDelay": "... for new users (ms)", + "notification-delay": "Notification delay for chat messages", + "notification-delay-help": "Additional messages sent between this time are collated, and the user is notified once per delay period. Set this to 0 to disable the delay.", + "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable.", + "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable." } \ No newline at end of file diff --git a/public/language/hu/admin/settings/chat.json b/public/language/hu/admin/settings/chat.json index 445944237c..94e9fae5c8 100644 --- a/public/language/hu/admin/settings/chat.json +++ b/public/language/hu/admin/settings/chat.json @@ -1,4 +1,5 @@ { + "zero-is-disabled": "Enter 0 to disable this restriction", "chat-settings": "Csevegési beállítások", "disable": "Csevegés letiltása", "disable-editing": "Csevegési üzenetek szerkesztésének/törlésének letiltása", @@ -6,8 +7,10 @@ "max-length": "Csevegési üzenetek maximális hossza", "max-chat-room-name-length": "Maximum length of chat room names", "max-room-size": "A csevegési szobákban lévő felhasználók maximális száma", - "delay": "Csevegési üzenetek közötti idő ezredmásodpercben", - "notification-delay": "Értesítési késleltetés csevegési üzenetekhez. (0: nincs késleltetés)", - "restrictions.seconds-edit-after": "Hány másodpercig marad szerkeszthető egy üzenet az elküldése után. (0: nincs korlátozás)", - "restrictions.seconds-delete-after": "Hány másodpercig marad törölhető egy üzenet az elküldése után. (0: nincs korlátozás)" + "delay": "Time between chat messages (ms)", + "newbieDelay": "... for new users (ms)", + "notification-delay": "Notification delay for chat messages", + "notification-delay-help": "Additional messages sent between this time are collated, and the user is notified once per delay period. Set this to 0 to disable the delay.", + "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable.", + "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable." } \ No newline at end of file diff --git a/public/language/hy/admin/settings/chat.json b/public/language/hy/admin/settings/chat.json index 67178e5984..a3e41bb4c3 100644 --- a/public/language/hy/admin/settings/chat.json +++ b/public/language/hy/admin/settings/chat.json @@ -1,4 +1,5 @@ { + "zero-is-disabled": "Enter 0 to disable this restriction", "chat-settings": "Զրույցի կարգավորումներ", "disable": "Անջատել զրույցը", "disable-editing": "Անջատել զրույցի հաղորդագրությունների խմբագրումը/ջնջումը", @@ -6,8 +7,10 @@ "max-length": "Զրույցի հաղորդագրությունների առավելագույն երկարությունը", "max-chat-room-name-length": "Maximum length of chat room names", "max-room-size": "Զրուցարաններում օգտատերերի առավելագույն քանակը", - "delay": "Զրույցի հաղորդագրությունների միջև ընկած ժամանակը միլիվայրկյաններով", - "notification-delay": "Զրույցի հաղորդագրությունների ծանուցման հետաձգում: (0 առանց ուշացման)", - "restrictions.seconds-edit-after": "Վայրկյանների քանակը զրույցի հաղորդագրությունը կմնա խմբագրելի: (0 անջատված)", - "restrictions.seconds-delete-after": "Վայրկյանների քանակը զրույցի հաղորդագրությունը կմնա ջնջելի: (0 անջատված)" + "delay": "Time between chat messages (ms)", + "newbieDelay": "... for new users (ms)", + "notification-delay": "Notification delay for chat messages", + "notification-delay-help": "Additional messages sent between this time are collated, and the user is notified once per delay period. Set this to 0 to disable the delay.", + "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable.", + "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable." } \ No newline at end of file diff --git a/public/language/id/admin/settings/chat.json b/public/language/id/admin/settings/chat.json index e4946458bd..86360a34ee 100644 --- a/public/language/id/admin/settings/chat.json +++ b/public/language/id/admin/settings/chat.json @@ -1,4 +1,5 @@ { + "zero-is-disabled": "Enter 0 to disable this restriction", "chat-settings": "Chat Settings", "disable": "Disable chat", "disable-editing": "Disable chat message editing/deletion", @@ -6,8 +7,10 @@ "max-length": "Maximum length of chat messages", "max-chat-room-name-length": "Maximum length of chat room names", "max-room-size": "Maximum number of users in chat rooms", - "delay": "Time between chat messages in milliseconds", - "notification-delay": "Notification delay for chat messages. (0 for no delay)", - "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable. (0 disabled)", - "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable. (0 disabled)" + "delay": "Time between chat messages (ms)", + "newbieDelay": "... for new users (ms)", + "notification-delay": "Notification delay for chat messages", + "notification-delay-help": "Additional messages sent between this time are collated, and the user is notified once per delay period. Set this to 0 to disable the delay.", + "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable.", + "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable." } \ No newline at end of file diff --git a/public/language/it/admin/settings/chat.json b/public/language/it/admin/settings/chat.json index 0a38dbb9a9..234f7d7145 100644 --- a/public/language/it/admin/settings/chat.json +++ b/public/language/it/admin/settings/chat.json @@ -1,4 +1,5 @@ { + "zero-is-disabled": "Enter 0 to disable this restriction", "chat-settings": "Impostazioni chat", "disable": "Disabilita chat", "disable-editing": "Disabilita modifica/cancellazione messaggio chat", @@ -6,8 +7,10 @@ "max-length": "Lunghezza massima dei messaggi della chat", "max-chat-room-name-length": "Lunghezza massima dei nomi delle stanze chat", "max-room-size": "Numero massimo di utenti nelle stanza chat", - "delay": "Tempo tra i messaggi della chat in millisecondi", - "notification-delay": "Ritardo di notifica per i messaggi di chat. (0 per nessun ritardo)", - "restrictions.seconds-edit-after": "Numero di secondi in cui un messaggio di chat rimane modificabile. (0 disabilitato)", - "restrictions.seconds-delete-after": "Numero di secondi in cui un messaggio di chat rimane cancellabile. (0 disabilitato)" + "delay": "Time between chat messages (ms)", + "newbieDelay": "... for new users (ms)", + "notification-delay": "Notification delay for chat messages", + "notification-delay-help": "Additional messages sent between this time are collated, and the user is notified once per delay period. Set this to 0 to disable the delay.", + "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable.", + "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable." } \ No newline at end of file diff --git a/public/language/ja/admin/settings/chat.json b/public/language/ja/admin/settings/chat.json index fb7bb73e23..146c304185 100644 --- a/public/language/ja/admin/settings/chat.json +++ b/public/language/ja/admin/settings/chat.json @@ -1,4 +1,5 @@ { + "zero-is-disabled": "Enter 0 to disable this restriction", "chat-settings": "チャット設定", "disable": "チャットは無効です", "disable-editing": "チャットメッセージの編集/削除を無効にする", @@ -6,8 +7,10 @@ "max-length": "チャットメッセージの最大の長さ", "max-chat-room-name-length": "Maximum length of chat room names", "max-room-size": "チャットルームの最大ユーザー数", - "delay": "ミリ秒単位のチャットメッセージ間の時間", - "notification-delay": "Notification delay for chat messages. (0 for no delay)", - "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable. (0 disabled)", - "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable. (0 disabled)" + "delay": "Time between chat messages (ms)", + "newbieDelay": "... for new users (ms)", + "notification-delay": "Notification delay for chat messages", + "notification-delay-help": "Additional messages sent between this time are collated, and the user is notified once per delay period. Set this to 0 to disable the delay.", + "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable.", + "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable." } \ No newline at end of file diff --git a/public/language/ko/admin/settings/chat.json b/public/language/ko/admin/settings/chat.json index 169e6381a5..8c0e315af2 100644 --- a/public/language/ko/admin/settings/chat.json +++ b/public/language/ko/admin/settings/chat.json @@ -1,4 +1,5 @@ { + "zero-is-disabled": "Enter 0 to disable this restriction", "chat-settings": "채팅 설정", "disable": "채팅 비활성화", "disable-editing": "채팅 메시지 수정/삭제 비활성화", @@ -6,8 +7,10 @@ "max-length": "채팅 메시지의 최대 길이", "max-chat-room-name-length": "Maximum length of chat room names", "max-room-size": "채팅방 최대 인원", - "delay": "채팅 메시지 발송 지연 (단위: 1/1000초)", - "notification-delay": "채팅 메시지 알림 지연 (0으로 놔둘 경우 지연 없음)", - "restrictions.seconds-edit-after": "채팅 메시지 수정 허용 시간 (0일 경우 비활성화)", - "restrictions.seconds-delete-after": "채팅 메시지 삭제 허용 시간 (0일 경우 비활성화)" + "delay": "Time between chat messages (ms)", + "newbieDelay": "... for new users (ms)", + "notification-delay": "Notification delay for chat messages", + "notification-delay-help": "Additional messages sent between this time are collated, and the user is notified once per delay period. Set this to 0 to disable the delay.", + "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable.", + "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable." } \ No newline at end of file diff --git a/public/language/lt/admin/settings/chat.json b/public/language/lt/admin/settings/chat.json index e4946458bd..86360a34ee 100644 --- a/public/language/lt/admin/settings/chat.json +++ b/public/language/lt/admin/settings/chat.json @@ -1,4 +1,5 @@ { + "zero-is-disabled": "Enter 0 to disable this restriction", "chat-settings": "Chat Settings", "disable": "Disable chat", "disable-editing": "Disable chat message editing/deletion", @@ -6,8 +7,10 @@ "max-length": "Maximum length of chat messages", "max-chat-room-name-length": "Maximum length of chat room names", "max-room-size": "Maximum number of users in chat rooms", - "delay": "Time between chat messages in milliseconds", - "notification-delay": "Notification delay for chat messages. (0 for no delay)", - "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable. (0 disabled)", - "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable. (0 disabled)" + "delay": "Time between chat messages (ms)", + "newbieDelay": "... for new users (ms)", + "notification-delay": "Notification delay for chat messages", + "notification-delay-help": "Additional messages sent between this time are collated, and the user is notified once per delay period. Set this to 0 to disable the delay.", + "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable.", + "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable." } \ No newline at end of file diff --git a/public/language/lv/admin/settings/chat.json b/public/language/lv/admin/settings/chat.json index 7b3e7969ae..3fb3ef434c 100644 --- a/public/language/lv/admin/settings/chat.json +++ b/public/language/lv/admin/settings/chat.json @@ -1,4 +1,5 @@ { + "zero-is-disabled": "Enter 0 to disable this restriction", "chat-settings": "Sarunu iestatījumi", "disable": "Atspējot sarunāšanos", "disable-editing": "Atspējot sarunu rediģēšanu/izdzēšanu", @@ -6,8 +7,10 @@ "max-length": "Sarunu lielākais garums", "max-chat-room-name-length": "Maximum length of chat room names", "max-room-size": "Maksimālais lietotāju skaits tērzētavā", - "delay": "Laiks starp sarunām milisekundēs", - "notification-delay": "Notification delay for chat messages. (0 for no delay)", - "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable. (0 disabled)", - "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable. (0 disabled)" + "delay": "Time between chat messages (ms)", + "newbieDelay": "... for new users (ms)", + "notification-delay": "Notification delay for chat messages", + "notification-delay-help": "Additional messages sent between this time are collated, and the user is notified once per delay period. Set this to 0 to disable the delay.", + "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable.", + "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable." } \ No newline at end of file diff --git a/public/language/ms/admin/settings/chat.json b/public/language/ms/admin/settings/chat.json index e4946458bd..86360a34ee 100644 --- a/public/language/ms/admin/settings/chat.json +++ b/public/language/ms/admin/settings/chat.json @@ -1,4 +1,5 @@ { + "zero-is-disabled": "Enter 0 to disable this restriction", "chat-settings": "Chat Settings", "disable": "Disable chat", "disable-editing": "Disable chat message editing/deletion", @@ -6,8 +7,10 @@ "max-length": "Maximum length of chat messages", "max-chat-room-name-length": "Maximum length of chat room names", "max-room-size": "Maximum number of users in chat rooms", - "delay": "Time between chat messages in milliseconds", - "notification-delay": "Notification delay for chat messages. (0 for no delay)", - "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable. (0 disabled)", - "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable. (0 disabled)" + "delay": "Time between chat messages (ms)", + "newbieDelay": "... for new users (ms)", + "notification-delay": "Notification delay for chat messages", + "notification-delay-help": "Additional messages sent between this time are collated, and the user is notified once per delay period. Set this to 0 to disable the delay.", + "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable.", + "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable." } \ No newline at end of file diff --git a/public/language/nb/admin/settings/chat.json b/public/language/nb/admin/settings/chat.json index e4946458bd..86360a34ee 100644 --- a/public/language/nb/admin/settings/chat.json +++ b/public/language/nb/admin/settings/chat.json @@ -1,4 +1,5 @@ { + "zero-is-disabled": "Enter 0 to disable this restriction", "chat-settings": "Chat Settings", "disable": "Disable chat", "disable-editing": "Disable chat message editing/deletion", @@ -6,8 +7,10 @@ "max-length": "Maximum length of chat messages", "max-chat-room-name-length": "Maximum length of chat room names", "max-room-size": "Maximum number of users in chat rooms", - "delay": "Time between chat messages in milliseconds", - "notification-delay": "Notification delay for chat messages. (0 for no delay)", - "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable. (0 disabled)", - "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable. (0 disabled)" + "delay": "Time between chat messages (ms)", + "newbieDelay": "... for new users (ms)", + "notification-delay": "Notification delay for chat messages", + "notification-delay-help": "Additional messages sent between this time are collated, and the user is notified once per delay period. Set this to 0 to disable the delay.", + "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable.", + "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable." } \ No newline at end of file diff --git a/public/language/nl/admin/settings/chat.json b/public/language/nl/admin/settings/chat.json index e4946458bd..86360a34ee 100644 --- a/public/language/nl/admin/settings/chat.json +++ b/public/language/nl/admin/settings/chat.json @@ -1,4 +1,5 @@ { + "zero-is-disabled": "Enter 0 to disable this restriction", "chat-settings": "Chat Settings", "disable": "Disable chat", "disable-editing": "Disable chat message editing/deletion", @@ -6,8 +7,10 @@ "max-length": "Maximum length of chat messages", "max-chat-room-name-length": "Maximum length of chat room names", "max-room-size": "Maximum number of users in chat rooms", - "delay": "Time between chat messages in milliseconds", - "notification-delay": "Notification delay for chat messages. (0 for no delay)", - "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable. (0 disabled)", - "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable. (0 disabled)" + "delay": "Time between chat messages (ms)", + "newbieDelay": "... for new users (ms)", + "notification-delay": "Notification delay for chat messages", + "notification-delay-help": "Additional messages sent between this time are collated, and the user is notified once per delay period. Set this to 0 to disable the delay.", + "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable.", + "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable." } \ No newline at end of file diff --git a/public/language/pl/admin/settings/chat.json b/public/language/pl/admin/settings/chat.json index a1223eca38..8b2c7bb20b 100644 --- a/public/language/pl/admin/settings/chat.json +++ b/public/language/pl/admin/settings/chat.json @@ -1,4 +1,5 @@ { + "zero-is-disabled": "Enter 0 to disable this restriction", "chat-settings": "Ustawienia czatu", "disable": "Wyłącz czat", "disable-editing": "Wyłącz edycję/usuwanie wiadomości czat", @@ -6,8 +7,10 @@ "max-length": "Maksymalna długość wiadomości czat", "max-chat-room-name-length": "Maximum length of chat room names", "max-room-size": "Maksymalna liczba użytkowników w pokojach czatu", - "delay": "Czas pomiędzy wiadomościami czat (w milisekundach)", - "notification-delay": "Opóźnienie powiadomienia o wiadomościach na czacie. (0 bez opóźnienia)", - "restrictions.seconds-edit-after": "Liczba sekund, przez które wiadomość czatu pozostanie edytowalna. (0 wyłączony)", - "restrictions.seconds-delete-after": "Liczba sekund, przez które wiadomość czatu pozostanie do usunięcia. (0 wyłączony)" + "delay": "Time between chat messages (ms)", + "newbieDelay": "... for new users (ms)", + "notification-delay": "Notification delay for chat messages", + "notification-delay-help": "Additional messages sent between this time are collated, and the user is notified once per delay period. Set this to 0 to disable the delay.", + "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable.", + "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable." } \ No newline at end of file diff --git a/public/language/pt-BR/admin/settings/chat.json b/public/language/pt-BR/admin/settings/chat.json index 29029d74ea..596d8a4216 100644 --- a/public/language/pt-BR/admin/settings/chat.json +++ b/public/language/pt-BR/admin/settings/chat.json @@ -1,4 +1,5 @@ { + "zero-is-disabled": "Enter 0 to disable this restriction", "chat-settings": "Configurações de Chat", "disable": "Desativar o chat", "disable-editing": "Desabilitar editar/apagar mensagem ", @@ -6,8 +7,10 @@ "max-length": "Tamanho máximo das mensagens de chat", "max-chat-room-name-length": "Maximum length of chat room names", "max-room-size": "Número máximo de usuários nas salas de chat", - "delay": "Tempo entre mensagens de chat em milisegundos", - "notification-delay": "Tempo de espera para notificação de mensagens de bate-papo. (0 para não esperar)", - "restrictions.seconds-edit-after": "Número de segundos que uma mensagem de chat permanecerá editável. (0 desligado)", - "restrictions.seconds-delete-after": "Número de segundos que uma mensagem de chat permanecerá deletável. (0 desligado)" + "delay": "Time between chat messages (ms)", + "newbieDelay": "... for new users (ms)", + "notification-delay": "Notification delay for chat messages", + "notification-delay-help": "Additional messages sent between this time are collated, and the user is notified once per delay period. Set this to 0 to disable the delay.", + "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable.", + "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable." } \ No newline at end of file diff --git a/public/language/pt-PT/admin/settings/chat.json b/public/language/pt-PT/admin/settings/chat.json index e49504694e..200ce2ce17 100644 --- a/public/language/pt-PT/admin/settings/chat.json +++ b/public/language/pt-PT/admin/settings/chat.json @@ -1,4 +1,5 @@ { + "zero-is-disabled": "Enter 0 to disable this restriction", "chat-settings": "Definições da conversa", "disable": "Desativar conversas", "disable-editing": "Desativar edtitar/apagar mensagens das conversas", @@ -6,8 +7,10 @@ "max-length": "Comprimento máximo das mensagens nas conversas", "max-chat-room-name-length": "Maximum length of chat room names", "max-room-size": "Número máximo de utilizadores nas salas de conversa", - "delay": "Time between chat messages in milliseconds", - "notification-delay": "Notification delay for chat messages. (0 for no delay)", - "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable. (0 disabled)", - "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable. (0 disabled)" + "delay": "Time between chat messages (ms)", + "newbieDelay": "... for new users (ms)", + "notification-delay": "Notification delay for chat messages", + "notification-delay-help": "Additional messages sent between this time are collated, and the user is notified once per delay period. Set this to 0 to disable the delay.", + "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable.", + "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable." } \ No newline at end of file diff --git a/public/language/ro/admin/settings/chat.json b/public/language/ro/admin/settings/chat.json index e4946458bd..86360a34ee 100644 --- a/public/language/ro/admin/settings/chat.json +++ b/public/language/ro/admin/settings/chat.json @@ -1,4 +1,5 @@ { + "zero-is-disabled": "Enter 0 to disable this restriction", "chat-settings": "Chat Settings", "disable": "Disable chat", "disable-editing": "Disable chat message editing/deletion", @@ -6,8 +7,10 @@ "max-length": "Maximum length of chat messages", "max-chat-room-name-length": "Maximum length of chat room names", "max-room-size": "Maximum number of users in chat rooms", - "delay": "Time between chat messages in milliseconds", - "notification-delay": "Notification delay for chat messages. (0 for no delay)", - "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable. (0 disabled)", - "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable. (0 disabled)" + "delay": "Time between chat messages (ms)", + "newbieDelay": "... for new users (ms)", + "notification-delay": "Notification delay for chat messages", + "notification-delay-help": "Additional messages sent between this time are collated, and the user is notified once per delay period. Set this to 0 to disable the delay.", + "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable.", + "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable." } \ No newline at end of file diff --git a/public/language/ru/admin/settings/chat.json b/public/language/ru/admin/settings/chat.json index 5e9f017bb3..b7b4ba2270 100644 --- a/public/language/ru/admin/settings/chat.json +++ b/public/language/ru/admin/settings/chat.json @@ -1,4 +1,5 @@ { + "zero-is-disabled": "Enter 0 to disable this restriction", "chat-settings": "Настройки чата", "disable": "Отключить чат", "disable-editing": "Отключить редактирование и удаление сообщений чата", @@ -6,8 +7,10 @@ "max-length": "Максимальная длина сообщений в чате", "max-chat-room-name-length": "Maximum length of chat room names", "max-room-size": "Максимальное кол-во пользователей в чат-комнатах", - "delay": "Пауза между сообщениями (в миллисекундах)", - "notification-delay": "Задержка уведомления для сообщений чата. (0 без задержки)", - "restrictions.seconds-edit-after": "Через сколько секунд после отправки сообщение будет нельзя отредактировать (0 — время не ограничено)", - "restrictions.seconds-delete-after": "Через сколько секунд после отправки сообщение будет нельзя удалить (0 — время не ограничено)" + "delay": "Time between chat messages (ms)", + "newbieDelay": "... for new users (ms)", + "notification-delay": "Notification delay for chat messages", + "notification-delay-help": "Additional messages sent between this time are collated, and the user is notified once per delay period. Set this to 0 to disable the delay.", + "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable.", + "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable." } \ No newline at end of file diff --git a/public/language/rw/admin/settings/chat.json b/public/language/rw/admin/settings/chat.json index e4946458bd..86360a34ee 100644 --- a/public/language/rw/admin/settings/chat.json +++ b/public/language/rw/admin/settings/chat.json @@ -1,4 +1,5 @@ { + "zero-is-disabled": "Enter 0 to disable this restriction", "chat-settings": "Chat Settings", "disable": "Disable chat", "disable-editing": "Disable chat message editing/deletion", @@ -6,8 +7,10 @@ "max-length": "Maximum length of chat messages", "max-chat-room-name-length": "Maximum length of chat room names", "max-room-size": "Maximum number of users in chat rooms", - "delay": "Time between chat messages in milliseconds", - "notification-delay": "Notification delay for chat messages. (0 for no delay)", - "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable. (0 disabled)", - "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable. (0 disabled)" + "delay": "Time between chat messages (ms)", + "newbieDelay": "... for new users (ms)", + "notification-delay": "Notification delay for chat messages", + "notification-delay-help": "Additional messages sent between this time are collated, and the user is notified once per delay period. Set this to 0 to disable the delay.", + "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable.", + "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable." } \ No newline at end of file diff --git a/public/language/sc/admin/settings/chat.json b/public/language/sc/admin/settings/chat.json index e4946458bd..86360a34ee 100644 --- a/public/language/sc/admin/settings/chat.json +++ b/public/language/sc/admin/settings/chat.json @@ -1,4 +1,5 @@ { + "zero-is-disabled": "Enter 0 to disable this restriction", "chat-settings": "Chat Settings", "disable": "Disable chat", "disable-editing": "Disable chat message editing/deletion", @@ -6,8 +7,10 @@ "max-length": "Maximum length of chat messages", "max-chat-room-name-length": "Maximum length of chat room names", "max-room-size": "Maximum number of users in chat rooms", - "delay": "Time between chat messages in milliseconds", - "notification-delay": "Notification delay for chat messages. (0 for no delay)", - "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable. (0 disabled)", - "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable. (0 disabled)" + "delay": "Time between chat messages (ms)", + "newbieDelay": "... for new users (ms)", + "notification-delay": "Notification delay for chat messages", + "notification-delay-help": "Additional messages sent between this time are collated, and the user is notified once per delay period. Set this to 0 to disable the delay.", + "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable.", + "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable." } \ No newline at end of file diff --git a/public/language/sk/admin/settings/chat.json b/public/language/sk/admin/settings/chat.json index 4ba4b96ed5..6dbe11a643 100644 --- a/public/language/sk/admin/settings/chat.json +++ b/public/language/sk/admin/settings/chat.json @@ -1,4 +1,5 @@ { + "zero-is-disabled": "Enter 0 to disable this restriction", "chat-settings": "Nastavenia konverzácie", "disable": "Zakázať konverzáciu", "disable-editing": "Zakázať upravenie/odstránenie konverzačnej správy", @@ -6,8 +7,10 @@ "max-length": "Maximálna dĺžka konverzačnej správy", "max-chat-room-name-length": "Maximum length of chat room names", "max-room-size": "Maximálny počet používateľov v konverzačnej miestnosti", - "delay": "Čas medzi konverzačnými správami v milisekundách", - "notification-delay": "Notification delay for chat messages. (0 for no delay)", - "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable. (0 disabled)", - "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable. (0 disabled)" + "delay": "Time between chat messages (ms)", + "newbieDelay": "... for new users (ms)", + "notification-delay": "Notification delay for chat messages", + "notification-delay-help": "Additional messages sent between this time are collated, and the user is notified once per delay period. Set this to 0 to disable the delay.", + "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable.", + "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable." } \ No newline at end of file diff --git a/public/language/sl/admin/settings/chat.json b/public/language/sl/admin/settings/chat.json index 1cf30fe6bd..d58183cfdb 100644 --- a/public/language/sl/admin/settings/chat.json +++ b/public/language/sl/admin/settings/chat.json @@ -1,4 +1,5 @@ { + "zero-is-disabled": "Enter 0 to disable this restriction", "chat-settings": "Nastavitve klepeta", "disable": "Onemogoči klepet", "disable-editing": "Onemogoči urejanje/brisanje sporočila klepeta", @@ -6,8 +7,10 @@ "max-length": "Največja dolžina sporočila klepeta", "max-chat-room-name-length": "Maximum length of chat room names", "max-room-size": "Maximum number of users in chat rooms", - "delay": "Time between chat messages in milliseconds", - "notification-delay": "Notification delay for chat messages. (0 for no delay)", - "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable. (0 disabled)", - "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable. (0 disabled)" + "delay": "Time between chat messages (ms)", + "newbieDelay": "... for new users (ms)", + "notification-delay": "Notification delay for chat messages", + "notification-delay-help": "Additional messages sent between this time are collated, and the user is notified once per delay period. Set this to 0 to disable the delay.", + "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable.", + "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable." } \ No newline at end of file diff --git a/public/language/sq-AL/admin/settings/chat.json b/public/language/sq-AL/admin/settings/chat.json index e4946458bd..86360a34ee 100644 --- a/public/language/sq-AL/admin/settings/chat.json +++ b/public/language/sq-AL/admin/settings/chat.json @@ -1,4 +1,5 @@ { + "zero-is-disabled": "Enter 0 to disable this restriction", "chat-settings": "Chat Settings", "disable": "Disable chat", "disable-editing": "Disable chat message editing/deletion", @@ -6,8 +7,10 @@ "max-length": "Maximum length of chat messages", "max-chat-room-name-length": "Maximum length of chat room names", "max-room-size": "Maximum number of users in chat rooms", - "delay": "Time between chat messages in milliseconds", - "notification-delay": "Notification delay for chat messages. (0 for no delay)", - "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable. (0 disabled)", - "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable. (0 disabled)" + "delay": "Time between chat messages (ms)", + "newbieDelay": "... for new users (ms)", + "notification-delay": "Notification delay for chat messages", + "notification-delay-help": "Additional messages sent between this time are collated, and the user is notified once per delay period. Set this to 0 to disable the delay.", + "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable.", + "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable." } \ No newline at end of file diff --git a/public/language/sr/admin/settings/chat.json b/public/language/sr/admin/settings/chat.json index e4946458bd..86360a34ee 100644 --- a/public/language/sr/admin/settings/chat.json +++ b/public/language/sr/admin/settings/chat.json @@ -1,4 +1,5 @@ { + "zero-is-disabled": "Enter 0 to disable this restriction", "chat-settings": "Chat Settings", "disable": "Disable chat", "disable-editing": "Disable chat message editing/deletion", @@ -6,8 +7,10 @@ "max-length": "Maximum length of chat messages", "max-chat-room-name-length": "Maximum length of chat room names", "max-room-size": "Maximum number of users in chat rooms", - "delay": "Time between chat messages in milliseconds", - "notification-delay": "Notification delay for chat messages. (0 for no delay)", - "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable. (0 disabled)", - "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable. (0 disabled)" + "delay": "Time between chat messages (ms)", + "newbieDelay": "... for new users (ms)", + "notification-delay": "Notification delay for chat messages", + "notification-delay-help": "Additional messages sent between this time are collated, and the user is notified once per delay period. Set this to 0 to disable the delay.", + "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable.", + "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable." } \ No newline at end of file diff --git a/public/language/sv/admin/settings/chat.json b/public/language/sv/admin/settings/chat.json index e4946458bd..86360a34ee 100644 --- a/public/language/sv/admin/settings/chat.json +++ b/public/language/sv/admin/settings/chat.json @@ -1,4 +1,5 @@ { + "zero-is-disabled": "Enter 0 to disable this restriction", "chat-settings": "Chat Settings", "disable": "Disable chat", "disable-editing": "Disable chat message editing/deletion", @@ -6,8 +7,10 @@ "max-length": "Maximum length of chat messages", "max-chat-room-name-length": "Maximum length of chat room names", "max-room-size": "Maximum number of users in chat rooms", - "delay": "Time between chat messages in milliseconds", - "notification-delay": "Notification delay for chat messages. (0 for no delay)", - "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable. (0 disabled)", - "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable. (0 disabled)" + "delay": "Time between chat messages (ms)", + "newbieDelay": "... for new users (ms)", + "notification-delay": "Notification delay for chat messages", + "notification-delay-help": "Additional messages sent between this time are collated, and the user is notified once per delay period. Set this to 0 to disable the delay.", + "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable.", + "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable." } \ No newline at end of file diff --git a/public/language/th/admin/settings/chat.json b/public/language/th/admin/settings/chat.json index 21e4c4c0a1..5b989f012c 100644 --- a/public/language/th/admin/settings/chat.json +++ b/public/language/th/admin/settings/chat.json @@ -1,4 +1,5 @@ { + "zero-is-disabled": "Enter 0 to disable this restriction", "chat-settings": "ตั้งค่าแชท", "disable": "ปิดการใช้งานแชท", "disable-editing": "ปิดการแก้ไข และการลบแชท", @@ -6,8 +7,10 @@ "max-length": "จำนวนอักขระมากที่มากที่สุดต่อแชท", "max-chat-room-name-length": "Maximum length of chat room names", "max-room-size": "จำนวนผู้ใช้ในห้องแชทมากที่สุด", - "delay": "Time between chat messages in milliseconds", - "notification-delay": "Notification delay for chat messages. (0 for no delay)", - "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable. (0 disabled)", - "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable. (0 disabled)" + "delay": "Time between chat messages (ms)", + "newbieDelay": "... for new users (ms)", + "notification-delay": "Notification delay for chat messages", + "notification-delay-help": "Additional messages sent between this time are collated, and the user is notified once per delay period. Set this to 0 to disable the delay.", + "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable.", + "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable." } \ No newline at end of file diff --git a/public/language/tr/admin/settings/chat.json b/public/language/tr/admin/settings/chat.json index 09719c318a..2eb6649660 100644 --- a/public/language/tr/admin/settings/chat.json +++ b/public/language/tr/admin/settings/chat.json @@ -1,4 +1,5 @@ { + "zero-is-disabled": "Enter 0 to disable this restriction", "chat-settings": "Sohbet Ayarları", "disable": "Sohbeti kapat", "disable-editing": "Sohbet mesajlarını düzenlemeyi/silmeyi kapat", @@ -6,8 +7,10 @@ "max-length": "Maksimum sohbet mesajı uzunluğu", "max-chat-room-name-length": "Maximum length of chat room names", "max-room-size": "Sohbet odalarındaki maksimum kullanıcı sayısı", - "delay": "Sohbet mesajları arasındaki süre (milisaniye)", - "notification-delay": "Sohbet mesajları için bildirim gecikme süresi (gecikme olmaması için 0 yazın)", - "restrictions.seconds-edit-after": "Sohbet mesajları kaç saniye boyunca düzenlenebilir olacak (0 - özellik aktif değil)", - "restrictions.seconds-delete-after": "Sohbet mesajları kaç saniye boyunca silinebilir olacak (0 - özellik aktif değil)" + "delay": "Time between chat messages (ms)", + "newbieDelay": "... for new users (ms)", + "notification-delay": "Notification delay for chat messages", + "notification-delay-help": "Additional messages sent between this time are collated, and the user is notified once per delay period. Set this to 0 to disable the delay.", + "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable.", + "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable." } \ No newline at end of file diff --git a/public/language/uk/admin/settings/chat.json b/public/language/uk/admin/settings/chat.json index 45d3d9af6a..7dc74d468b 100644 --- a/public/language/uk/admin/settings/chat.json +++ b/public/language/uk/admin/settings/chat.json @@ -1,4 +1,5 @@ { + "zero-is-disabled": "Enter 0 to disable this restriction", "chat-settings": "Налаштування чату", "disable": "Вимкнути чат", "disable-editing": "Вимкнути редагування/видалення повідомлень чату", @@ -6,8 +7,10 @@ "max-length": "Максимальна довжина повідомлення", "max-chat-room-name-length": "Maximum length of chat room names", "max-room-size": "Максимальна кількість людей у кімнаті", - "delay": "Час між повідомленнями в мілісекундах", - "notification-delay": "Notification delay for chat messages. (0 for no delay)", - "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable. (0 disabled)", - "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable. (0 disabled)" + "delay": "Time between chat messages (ms)", + "newbieDelay": "... for new users (ms)", + "notification-delay": "Notification delay for chat messages", + "notification-delay-help": "Additional messages sent between this time are collated, and the user is notified once per delay period. Set this to 0 to disable the delay.", + "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable.", + "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable." } \ No newline at end of file diff --git a/public/language/vi/admin/settings/chat.json b/public/language/vi/admin/settings/chat.json index bb5cefc672..e50274c97a 100644 --- a/public/language/vi/admin/settings/chat.json +++ b/public/language/vi/admin/settings/chat.json @@ -1,4 +1,5 @@ { + "zero-is-disabled": "Enter 0 to disable this restriction", "chat-settings": "Cài Đặt Trò Chuyện", "disable": "Tắt trò chuyện", "disable-editing": "Tắt chỉnh sửa / xóa tin nhắn trò chuyện", @@ -6,8 +7,10 @@ "max-length": "Độ dài tối đa của tin nhắn trò chuyện", "max-chat-room-name-length": "Maximum length of chat room names", "max-room-size": "Số lượng người dùng tối đa trong phòng trò chuyện", - "delay": "Thời gian giữa các tin nhắn trò chuyện tính bằng mili giây", - "notification-delay": "Độ trễ thông báo cho tin nhắn trò chuyện. (0 để không bị chậm trễ)", - "restrictions.seconds-edit-after": "Số giây một tin nhắn trò chuyện sẽ vẫn có thể chỉnh sửa. (0 bị vô hiệu hóa)", - "restrictions.seconds-delete-after": "Số giây một tin nhắn trò chuyện vẫn có thể xóa được. (0 bị vô hiệu hóa)" + "delay": "Time between chat messages (ms)", + "newbieDelay": "... for new users (ms)", + "notification-delay": "Notification delay for chat messages", + "notification-delay-help": "Additional messages sent between this time are collated, and the user is notified once per delay period. Set this to 0 to disable the delay.", + "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable.", + "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable." } \ No newline at end of file diff --git a/public/language/zh-CN/admin/settings/chat.json b/public/language/zh-CN/admin/settings/chat.json index acfcdf8cae..bd36981d98 100644 --- a/public/language/zh-CN/admin/settings/chat.json +++ b/public/language/zh-CN/admin/settings/chat.json @@ -1,4 +1,5 @@ { + "zero-is-disabled": "Enter 0 to disable this restriction", "chat-settings": "聊天设置", "disable": "禁用聊天", "disable-editing": "禁止编辑/删除聊天消息", @@ -6,8 +7,10 @@ "max-length": "聊天信息的最大长度", "max-chat-room-name-length": "聊天室名称最大长度", "max-room-size": "聊天室的最多用户数", - "delay": "聊天信息间的毫秒数", - "notification-delay": "聊天信息的通知延迟(0 为即时)", - "restrictions.seconds-edit-after": "用户在发布聊天消息后允许编辑帖子的秒数(0为禁用)", - "restrictions.seconds-delete-after": "用户在发布聊天消息后允许删除帖子的秒数(0为禁用)" + "delay": "Time between chat messages (ms)", + "newbieDelay": "... for new users (ms)", + "notification-delay": "Notification delay for chat messages", + "notification-delay-help": "Additional messages sent between this time are collated, and the user is notified once per delay period. Set this to 0 to disable the delay.", + "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable.", + "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable." } \ No newline at end of file diff --git a/public/language/zh-TW/admin/settings/chat.json b/public/language/zh-TW/admin/settings/chat.json index b6b7b88f63..550078c36f 100644 --- a/public/language/zh-TW/admin/settings/chat.json +++ b/public/language/zh-TW/admin/settings/chat.json @@ -1,4 +1,5 @@ { + "zero-is-disabled": "Enter 0 to disable this restriction", "chat-settings": "聊天設定", "disable": "禁用聊天", "disable-editing": "禁止編輯/刪除聊天消息", @@ -6,8 +7,10 @@ "max-length": "聊天訊息的最大長度", "max-chat-room-name-length": "Maximum length of chat room names", "max-room-size": "聊天室的最多使用者數", - "delay": "聊天訊息間的毫秒數", - "notification-delay": "Notification delay for chat messages. (0 for no delay)", - "restrictions.seconds-edit-after": "使用者在發佈聊天訊息後允許編輯貼文的秒數(0為禁用)", - "restrictions.seconds-delete-after": "使用者在發佈聊天訊息後允許刪除貼文的秒數(0為禁用)" + "delay": "Time between chat messages (ms)", + "newbieDelay": "... for new users (ms)", + "notification-delay": "Notification delay for chat messages", + "notification-delay-help": "Additional messages sent between this time are collated, and the user is notified once per delay period. Set this to 0 to disable the delay.", + "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable.", + "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable." } \ No newline at end of file From 8202c5555d55bd27af119f7cbb19c439341f6beb Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Thu, 7 Sep 2023 11:49:35 -0400 Subject: [PATCH 014/275] =?UTF-8?q?test:=20=F0=9F=92=A5=20i18n=20tests?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- test/i18n.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/i18n.js b/test/i18n.js index 1dda34f68f..916fa595bb 100644 --- a/test/i18n.js +++ b/test/i18n.js @@ -14,7 +14,7 @@ describe('i18n', () => { let folders; before(async function () { - if ((process.env.GITHUB_REF && process.env.GITHUB_REF !== 'develop') || process.env.GITHUB_EVENT_NAME === 'pull_request') { + if ((process.env.GITHUB_REF && process.env.GITHUB_REF !== 'refs/heads/develop') || process.env.GITHUB_EVENT_NAME === 'pull_request') { this.skip(); } From 2b3d2055327946c351575e59382fb568ce313ee5 Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Thu, 7 Sep 2023 12:08:20 -0400 Subject: [PATCH 015/275] fix(i18n): fallbacks for new language keys --- public/language/ar/admin/manage/users.json | 17 ++++++++++++++--- public/language/ar/user.json | 1 + public/language/bg/admin/manage/users.json | 17 ++++++++++++++--- public/language/bg/user.json | 1 + public/language/bn/admin/manage/users.json | 17 ++++++++++++++--- public/language/bn/user.json | 1 + public/language/cs/admin/manage/users.json | 17 ++++++++++++++--- public/language/cs/user.json | 1 + public/language/da/admin/manage/users.json | 17 ++++++++++++++--- public/language/da/user.json | 1 + public/language/de/admin/manage/users.json | 17 ++++++++++++++--- public/language/de/user.json | 1 + public/language/el/admin/manage/users.json | 17 ++++++++++++++--- public/language/el/modules.json | 10 +++++++++- public/language/el/user.json | 1 + public/language/en-US/admin/manage/users.json | 17 ++++++++++++++--- public/language/en-US/user.json | 1 + .../en-x-pirate/admin/manage/users.json | 17 ++++++++++++++--- public/language/en-x-pirate/modules.json | 10 +++++++++- public/language/en-x-pirate/user.json | 1 + public/language/es/admin/manage/users.json | 17 ++++++++++++++--- public/language/es/user.json | 1 + public/language/et/admin/manage/users.json | 17 ++++++++++++++--- public/language/et/user.json | 1 + public/language/fa-IR/admin/manage/users.json | 17 ++++++++++++++--- public/language/fa-IR/user.json | 1 + public/language/fi/admin/manage/users.json | 17 ++++++++++++++--- public/language/fi/user.json | 1 + public/language/fr/admin/manage/users.json | 17 ++++++++++++++--- public/language/fr/user.json | 1 + public/language/gl/admin/manage/users.json | 17 ++++++++++++++--- public/language/gl/user.json | 1 + public/language/he/admin/manage/users.json | 17 ++++++++++++++--- public/language/he/user.json | 1 + public/language/hr/admin/manage/users.json | 17 ++++++++++++++--- public/language/hr/user.json | 1 + public/language/hu/admin/manage/users.json | 17 ++++++++++++++--- public/language/hu/user.json | 1 + public/language/hy/admin/manage/users.json | 17 ++++++++++++++--- public/language/hy/user.json | 1 + public/language/id/admin/manage/users.json | 17 ++++++++++++++--- public/language/id/user.json | 1 + public/language/it/admin/manage/users.json | 17 ++++++++++++++--- public/language/it/user.json | 1 + public/language/ja/admin/manage/users.json | 17 ++++++++++++++--- public/language/ja/user.json | 1 + public/language/ko/admin/manage/users.json | 17 ++++++++++++++--- public/language/ko/user.json | 1 + public/language/lt/admin/manage/users.json | 17 ++++++++++++++--- public/language/lt/user.json | 1 + public/language/lv/admin/manage/users.json | 17 ++++++++++++++--- public/language/lv/user.json | 1 + public/language/ms/admin/manage/users.json | 17 ++++++++++++++--- public/language/ms/user.json | 1 + public/language/nb/admin/manage/users.json | 17 ++++++++++++++--- public/language/nb/user.json | 1 + public/language/nl/admin/manage/users.json | 17 ++++++++++++++--- public/language/nl/user.json | 1 + public/language/pl/admin/manage/users.json | 17 ++++++++++++++--- public/language/pl/user.json | 1 + public/language/pt-BR/admin/manage/users.json | 17 ++++++++++++++--- public/language/pt-BR/user.json | 1 + public/language/pt-PT/admin/manage/users.json | 17 ++++++++++++++--- public/language/pt-PT/user.json | 1 + public/language/ro/admin/manage/users.json | 17 ++++++++++++++--- public/language/ro/user.json | 1 + public/language/ru/admin/manage/users.json | 17 ++++++++++++++--- public/language/ru/user.json | 1 + public/language/rw/admin/manage/users.json | 17 ++++++++++++++--- public/language/rw/user.json | 1 + public/language/sc/admin/manage/users.json | 17 ++++++++++++++--- public/language/sc/modules.json | 10 +++++++++- public/language/sc/user.json | 1 + public/language/sk/admin/manage/users.json | 17 ++++++++++++++--- public/language/sk/user.json | 1 + public/language/sl/admin/manage/users.json | 17 ++++++++++++++--- public/language/sl/user.json | 1 + public/language/sq-AL/admin/manage/users.json | 17 ++++++++++++++--- public/language/sq-AL/user.json | 1 + public/language/sr/admin/manage/users.json | 17 ++++++++++++++--- public/language/sr/user.json | 1 + public/language/sv/admin/manage/users.json | 17 ++++++++++++++--- public/language/sv/user.json | 1 + public/language/th/admin/manage/users.json | 17 ++++++++++++++--- public/language/th/user.json | 1 + public/language/tr/admin/manage/users.json | 17 ++++++++++++++--- public/language/tr/user.json | 1 + public/language/uk/admin/manage/users.json | 17 ++++++++++++++--- public/language/uk/user.json | 1 + public/language/vi/admin/manage/users.json | 17 ++++++++++++++--- public/language/vi/user.json | 1 + public/language/zh-CN/admin/manage/users.json | 17 ++++++++++++++--- public/language/zh-CN/user.json | 1 + public/language/zh-TW/admin/manage/users.json | 17 ++++++++++++++--- public/language/zh-TW/user.json | 1 + 95 files changed, 717 insertions(+), 141 deletions(-) diff --git a/public/language/ar/admin/manage/users.json b/public/language/ar/admin/manage/users.json index 58ec6cb0d4..73d5632016 100644 --- a/public/language/ar/admin/manage/users.json +++ b/public/language/ar/admin/manage/users.json @@ -4,16 +4,21 @@ "edit": "Actions", "make-admin": "Make Admin", "remove-admin": "Remove Admin", + "change-email": "Change Email", + "new-email": "New Email", "validate-email": "Validate Email", "send-validation-email": "Send Validation Email", + "change-password": "Change Password", "password-reset-email": "Send Password Reset Email", "force-password-reset": "Force Password Reset & Log User Out", - "ban": "Ban User(s)", + "ban": "Ban", + "ban-users": "Ban User(s)", "temp-ban": "Ban User(s) Temporarily", "unban": "Unban User(s)", "reset-lockout": "Reset Lockout", "reset-flags": "Reset Flags", - "delete": "Delete User(s)", + "delete": "Delete", + "delete-users": "Delete User(s)", "delete-content": "Delete User(s) Content", "purge": "Delete User(s) and Content", "download-csv": "Download CSV", @@ -81,6 +86,7 @@ "alerts.button-ban-x": "Ban %1 user(s)", "alerts.unban-success": "User(s) unbanned!", "alerts.lockout-reset-success": "Lockout(s) reset!", + "alerts.password-change-success": "Password(s) changed!", "alerts.flag-reset-success": "Flags(s) reset!", "alerts.no-remove-yourself-admin": "You can't remove yourself as Administrator!", "alerts.make-admin-success": "User is now administrator.", @@ -106,6 +112,7 @@ "alerts.create": "Create User", "alerts.button-create": "Create", "alerts.button-cancel": "Cancel", + "alerts.button-change": "Change", "alerts.error-passwords-different": "Passwords must match!", "alerts.error-x": "Error

%1

", "alerts.create-success": "User created!", @@ -113,6 +120,10 @@ "alerts.prompt-email": "Emails: ", "alerts.email-sent-to": "An invitation email has been sent to %1", "alerts.x-users-found": "%1 user(s) found, (%2 seconds)", + "alerts.select-a-single-user-to-change-email": "Select a single user to change email", "export-users-started": "Exporting users as csv, this might take a while. You will receive a notification when it is complete.", - "export-users-completed": "Users exported as csv, click here to download." + "export-users-completed": "Users exported as csv, click here to download.", + "email": "Email", + "password": "Password", + "manage": "Manage" } \ No newline at end of file diff --git a/public/language/ar/user.json b/public/language/ar/user.json index 946dff3958..88a1c4f632 100644 --- a/public/language/ar/user.json +++ b/public/language/ar/user.json @@ -61,6 +61,7 @@ "change_picture": "تغيير الصورة", "change_username": "تغيير اسم المستخدم", "change_email": "تغيير البريد اﻹلكتروني", + "email-updated": "Email Updated", "email_same_as_password": "Please enter your current password to continue – you've entered your new email again", "edit": "تعديل", "edit-profile": "تعديل الملف الشخصي", diff --git a/public/language/bg/admin/manage/users.json b/public/language/bg/admin/manage/users.json index 03bc24b017..b08d45c51a 100644 --- a/public/language/bg/admin/manage/users.json +++ b/public/language/bg/admin/manage/users.json @@ -4,16 +4,21 @@ "edit": "Действия", "make-admin": "Даване на администраторски права", "remove-admin": "Отнемане на администраторски права", + "change-email": "Change Email", + "new-email": "New Email", "validate-email": "Проверка на е-пощата", "send-validation-email": "Изпращане на е-писмо за потвърждение", + "change-password": "Change Password", "password-reset-email": "Изпращане на е-писмо за възстановяване на паролата", "force-password-reset": "Принудително подновяване на паролата и отписване на потребителя", - "ban": "Блокиране на потребителя/ите", + "ban": "Ban", + "ban-users": "Ban User(s)", "temp-ban": "Блокиране на потребителя/ите временно", "unban": "Деблокиране на потребителя/ите", "reset-lockout": "Нулиране на заключването", "reset-flags": "Анулиране на докладите", - "delete": "Изтриване на потребителя/ите", + "delete": "Delete", + "delete-users": "Delete User(s)", "delete-content": "Изтриване на съдържанието на потребителя/ите", "purge": "Изтриване на потребителя/ите и съдържанието", "download-csv": "Сваляне във формат „CSV“", @@ -81,6 +86,7 @@ "alerts.button-ban-x": "Блокиране на %1 потребител(и)", "alerts.unban-success": "Потребителят/ите е/са деблокиран(и)!", "alerts.lockout-reset-success": "Заключването/ията е/са нулирано/и!", + "alerts.password-change-success": "Password(s) changed!", "alerts.flag-reset-success": "Докладът/ите е/са анулиран(и)!", "alerts.no-remove-yourself-admin": "Не можете да отнемете собствените си права на администратор!", "alerts.make-admin-success": "Потребителят вече ще бъде администратор.", @@ -106,6 +112,7 @@ "alerts.create": "Създаване на потребител", "alerts.button-create": "Създаване", "alerts.button-cancel": "Отказ", + "alerts.button-change": "Change", "alerts.error-passwords-different": "Паролите са различни!", "alerts.error-x": "Грешка

%1

", "alerts.create-success": "Потребителят е създаден!", @@ -113,6 +120,10 @@ "alerts.prompt-email": "Е-пощи: ", "alerts.email-sent-to": "Беше изпратено е-писмо за потвърждение до %1", "alerts.x-users-found": "Намерени потребители: %1 (%2 секунди)", + "alerts.select-a-single-user-to-change-email": "Select a single user to change email", "export-users-started": "Изнасяне на потребителите във формат „csv“… Това може да отнеме известно време. Ще получите известие, когато е готово.", - "export-users-completed": "Потребителите са изнесени във формат „csv“, щракнете за сваляне." + "export-users-completed": "Потребителите са изнесени във формат „csv“, щракнете за сваляне.", + "email": "Email", + "password": "Password", + "manage": "Manage" } \ No newline at end of file diff --git a/public/language/bg/user.json b/public/language/bg/user.json index b17ec5cf02..a5d3637076 100644 --- a/public/language/bg/user.json +++ b/public/language/bg/user.json @@ -61,6 +61,7 @@ "change_picture": "Промяна на снимката", "change_username": "Промяна на потребителското име", "change_email": "Промяна на е-пощата", + "email-updated": "Email Updated", "email_same_as_password": "Моля, въведете текущата си парола, за да продължите – Вие въведохте новата си е-поща отново", "edit": "Редактиране", "edit-profile": "Редактиране на профила", diff --git a/public/language/bn/admin/manage/users.json b/public/language/bn/admin/manage/users.json index 1fef96f56d..08e5701f40 100644 --- a/public/language/bn/admin/manage/users.json +++ b/public/language/bn/admin/manage/users.json @@ -4,16 +4,21 @@ "edit": "Actions", "make-admin": "Make Admin", "remove-admin": "Remove Admin", + "change-email": "Change Email", + "new-email": "New Email", "validate-email": "Validate Email", "send-validation-email": "Send Validation Email", + "change-password": "Change Password", "password-reset-email": "Send Password Reset Email", "force-password-reset": "Force Password Reset & Log User Out", - "ban": "Ban User(s)", + "ban": "Ban", + "ban-users": "Ban User(s)", "temp-ban": "Ban User(s) Temporarily", "unban": "Unban User(s)", "reset-lockout": "Reset Lockout", "reset-flags": "Reset Flags", - "delete": "Delete User(s)", + "delete": "Delete", + "delete-users": "Delete User(s)", "delete-content": "Delete User(s) Content", "purge": "Delete User(s) and Content", "download-csv": "Download CSV", @@ -81,6 +86,7 @@ "alerts.button-ban-x": "Ban %1 user(s)", "alerts.unban-success": "User(s) unbanned!", "alerts.lockout-reset-success": "Lockout(s) reset!", + "alerts.password-change-success": "Password(s) changed!", "alerts.flag-reset-success": "Flags(s) reset!", "alerts.no-remove-yourself-admin": "You can't remove yourself as Administrator!", "alerts.make-admin-success": "User is now administrator.", @@ -106,6 +112,7 @@ "alerts.create": "Create User", "alerts.button-create": "Create", "alerts.button-cancel": "Cancel", + "alerts.button-change": "Change", "alerts.error-passwords-different": "Passwords must match!", "alerts.error-x": "Error

%1

", "alerts.create-success": "User created!", @@ -113,6 +120,10 @@ "alerts.prompt-email": "Emails: ", "alerts.email-sent-to": "An invitation email has been sent to %1", "alerts.x-users-found": "%1 user(s) found, (%2 seconds)", + "alerts.select-a-single-user-to-change-email": "Select a single user to change email", "export-users-started": "Exporting users as csv, this might take a while. You will receive a notification when it is complete.", - "export-users-completed": "Users exported as csv, click here to download." + "export-users-completed": "Users exported as csv, click here to download.", + "email": "Email", + "password": "Password", + "manage": "Manage" } \ No newline at end of file diff --git a/public/language/bn/user.json b/public/language/bn/user.json index 8a44310913..82cf041f46 100644 --- a/public/language/bn/user.json +++ b/public/language/bn/user.json @@ -61,6 +61,7 @@ "change_picture": "ছবি পরিবর্তন", "change_username": "ইউজারনেম পরিবর্তন করুন", "change_email": "ইমেইল পরিবর্তন করুন", + "email-updated": "Email Updated", "email_same_as_password": "Please enter your current password to continue – you've entered your new email again", "edit": "সম্পাদনা", "edit-profile": "Edit Profile", diff --git a/public/language/cs/admin/manage/users.json b/public/language/cs/admin/manage/users.json index 4fbf8835ea..1a3676012e 100644 --- a/public/language/cs/admin/manage/users.json +++ b/public/language/cs/admin/manage/users.json @@ -4,16 +4,21 @@ "edit": "Actions", "make-admin": "Učinit správcem", "remove-admin": "Odebrat správce", + "change-email": "Change Email", + "new-email": "New Email", "validate-email": "Ověřit e-mail", "send-validation-email": "Poslat ověřovací e-mail", + "change-password": "Change Password", "password-reset-email": "Poslat e-mail pro resetování hesla", "force-password-reset": "Vynutit reset hesla a odhlášení uživatele", - "ban": "Zakázat uživatele", + "ban": "Ban", + "ban-users": "Ban User(s)", "temp-ban": "Dočasně zakázat uživatele", "unban": "Zrušit zákaz uživatele", "reset-lockout": "Obnovit uzamčení", "reset-flags": "Obnovit označení", - "delete": "Odstranit Uživatele", + "delete": "Delete", + "delete-users": "Delete User(s)", "delete-content": "Odstranit Obsah uživatele", "purge": "Odstranit uživatele a obsah", "download-csv": "Stáhnout jako CSV", @@ -81,6 +86,7 @@ "alerts.button-ban-x": "Zakázat %1 uživatele.", "alerts.unban-success": "Zákaz uživatele byl zrušen.", "alerts.lockout-reset-success": "Uzamčení bylo obnoveno.", + "alerts.password-change-success": "Password(s) changed!", "alerts.flag-reset-success": "Označení bylo obnoveno.", "alerts.no-remove-yourself-admin": "Sebe jako správce nemůžete vyjmout.", "alerts.make-admin-success": "Uživatel je nyní správcem", @@ -106,6 +112,7 @@ "alerts.create": "Vytvořit uživatele", "alerts.button-create": "Vytvořit", "alerts.button-cancel": "Zrušit", + "alerts.button-change": "Change", "alerts.error-passwords-different": "Hesla musí souhlasit.", "alerts.error-x": "Chyba

%1

", "alerts.create-success": "Uživatel byl vytvořen.", @@ -113,6 +120,10 @@ "alerts.prompt-email": "E-maily:", "alerts.email-sent-to": "E-mail s pozvánkou byl odeslán na %1", "alerts.x-users-found": "%1 user(s) found, (%2 seconds)", + "alerts.select-a-single-user-to-change-email": "Select a single user to change email", "export-users-started": "Exporting users as csv, this might take a while. You will receive a notification when it is complete.", - "export-users-completed": "Users exported as csv, click here to download." + "export-users-completed": "Users exported as csv, click here to download.", + "email": "Email", + "password": "Password", + "manage": "Manage" } \ No newline at end of file diff --git a/public/language/cs/user.json b/public/language/cs/user.json index a819de178f..8e13670021 100644 --- a/public/language/cs/user.json +++ b/public/language/cs/user.json @@ -61,6 +61,7 @@ "change_picture": "Změnit obrázek", "change_username": "Změnit uživatelské jméno", "change_email": "Změnit e-mail", + "email-updated": "Email Updated", "email_same_as_password": "Chcete-li pokračovat, zadejte své aktuální heslo. – znovu jste zadal/a vaši novou e-mailovou adresu", "edit": "Upravit", "edit-profile": "Upravit profil", diff --git a/public/language/da/admin/manage/users.json b/public/language/da/admin/manage/users.json index 1fef96f56d..08e5701f40 100644 --- a/public/language/da/admin/manage/users.json +++ b/public/language/da/admin/manage/users.json @@ -4,16 +4,21 @@ "edit": "Actions", "make-admin": "Make Admin", "remove-admin": "Remove Admin", + "change-email": "Change Email", + "new-email": "New Email", "validate-email": "Validate Email", "send-validation-email": "Send Validation Email", + "change-password": "Change Password", "password-reset-email": "Send Password Reset Email", "force-password-reset": "Force Password Reset & Log User Out", - "ban": "Ban User(s)", + "ban": "Ban", + "ban-users": "Ban User(s)", "temp-ban": "Ban User(s) Temporarily", "unban": "Unban User(s)", "reset-lockout": "Reset Lockout", "reset-flags": "Reset Flags", - "delete": "Delete User(s)", + "delete": "Delete", + "delete-users": "Delete User(s)", "delete-content": "Delete User(s) Content", "purge": "Delete User(s) and Content", "download-csv": "Download CSV", @@ -81,6 +86,7 @@ "alerts.button-ban-x": "Ban %1 user(s)", "alerts.unban-success": "User(s) unbanned!", "alerts.lockout-reset-success": "Lockout(s) reset!", + "alerts.password-change-success": "Password(s) changed!", "alerts.flag-reset-success": "Flags(s) reset!", "alerts.no-remove-yourself-admin": "You can't remove yourself as Administrator!", "alerts.make-admin-success": "User is now administrator.", @@ -106,6 +112,7 @@ "alerts.create": "Create User", "alerts.button-create": "Create", "alerts.button-cancel": "Cancel", + "alerts.button-change": "Change", "alerts.error-passwords-different": "Passwords must match!", "alerts.error-x": "Error

%1

", "alerts.create-success": "User created!", @@ -113,6 +120,10 @@ "alerts.prompt-email": "Emails: ", "alerts.email-sent-to": "An invitation email has been sent to %1", "alerts.x-users-found": "%1 user(s) found, (%2 seconds)", + "alerts.select-a-single-user-to-change-email": "Select a single user to change email", "export-users-started": "Exporting users as csv, this might take a while. You will receive a notification when it is complete.", - "export-users-completed": "Users exported as csv, click here to download." + "export-users-completed": "Users exported as csv, click here to download.", + "email": "Email", + "password": "Password", + "manage": "Manage" } \ No newline at end of file diff --git a/public/language/da/user.json b/public/language/da/user.json index 20a72b1dfd..ae67c9911e 100644 --- a/public/language/da/user.json +++ b/public/language/da/user.json @@ -61,6 +61,7 @@ "change_picture": "Skift billede", "change_username": "Ændre brugernavn", "change_email": "Ændre email", + "email-updated": "Email Updated", "email_same_as_password": "Please enter your current password to continue – you've entered your new email again", "edit": "Rediger", "edit-profile": "Rediger Profil", diff --git a/public/language/de/admin/manage/users.json b/public/language/de/admin/manage/users.json index 5a990efdf7..94fabba335 100644 --- a/public/language/de/admin/manage/users.json +++ b/public/language/de/admin/manage/users.json @@ -4,16 +4,21 @@ "edit": "Aktionen", "make-admin": "Zum Administrator befördern", "remove-admin": "Adminstatus entfernen", + "change-email": "Change Email", + "new-email": "New Email", "validate-email": "E-Mail bestätigen", "send-validation-email": "Bestätigungs E-Mail senden", + "change-password": "Change Password", "password-reset-email": "Passwort-Reset E-Mail senden", "force-password-reset": "Zurücksetzen des Passworts erzwingen und Benutzer abmelden", - "ban": "Benutzer verbannen", + "ban": "Ban", + "ban-users": "Ban User(s)", "temp-ban": "Benutzer temporär verbannen", "unban": "Benutzer entbannen", "reset-lockout": "Ausschließungen zurücksetzen", "reset-flags": "Meldungen zurücksetzen", - "delete": "Benutzer löschen", + "delete": "Delete", + "delete-users": "Delete User(s)", "delete-content": "Benutzer-Inhalte löschen", "purge": "Benutzer und Benutzer-Inhalte löschen", "download-csv": "CSV herunterladen", @@ -81,6 +86,7 @@ "alerts.button-ban-x": "%1 Nutzer bannen", "alerts.unban-success": "Benutzer entbannt!", "alerts.lockout-reset-success": "Ausschlüsse zurückgesetzt", + "alerts.password-change-success": "Password(s) changed!", "alerts.flag-reset-success": "Meldung(en) zurückgesetzt!", "alerts.no-remove-yourself-admin": "Du kannst dich nicht selbst als Administrator degradieren!", "alerts.make-admin-success": "Der Benutzer ist nun ein Administrator", @@ -106,6 +112,7 @@ "alerts.create": "Benutzer erstellen", "alerts.button-create": "Erstellen", "alerts.button-cancel": "Abbrechen", + "alerts.button-change": "Change", "alerts.error-passwords-different": "Die Passwörter müssen übereinstimmen", "alerts.error-x": "Fehler

%1

", "alerts.create-success": "Benutzer erstellt!", @@ -113,6 +120,10 @@ "alerts.prompt-email": "E-Mails:", "alerts.email-sent-to": "Eine Einladungsemail wurde an %1 gesendet", "alerts.x-users-found": "%1 Benutzer gefunden, (%2 Sekunden)", + "alerts.select-a-single-user-to-change-email": "Select a single user to change email", "export-users-started": "Der Export von Benutzern als CSV kann eine Weile dauern. Sie erhalten eine Benachrichtigung, wenn es abgeschlossen ist.", - "export-users-completed": "Benutzer wurden als CSV exportiert, klicke hier, um sie herunterzuladen." + "export-users-completed": "Benutzer wurden als CSV exportiert, klicke hier, um sie herunterzuladen.", + "email": "Email", + "password": "Password", + "manage": "Manage" } \ No newline at end of file diff --git a/public/language/de/user.json b/public/language/de/user.json index a570dded91..13f88ddcf9 100644 --- a/public/language/de/user.json +++ b/public/language/de/user.json @@ -61,6 +61,7 @@ "change_picture": "Profilbild ändern", "change_username": "Benutzernamen ändern", "change_email": "E-Mail ändern", + "email-updated": "Email Updated", "email_same_as_password": "Gebe bitte dein aktuelles Passwort ein um fortzufahren – Du hast deine neue E-Mail erneut eingegeben", "edit": "Ändern", "edit-profile": "Profil ändern", diff --git a/public/language/el/admin/manage/users.json b/public/language/el/admin/manage/users.json index 1fef96f56d..08e5701f40 100644 --- a/public/language/el/admin/manage/users.json +++ b/public/language/el/admin/manage/users.json @@ -4,16 +4,21 @@ "edit": "Actions", "make-admin": "Make Admin", "remove-admin": "Remove Admin", + "change-email": "Change Email", + "new-email": "New Email", "validate-email": "Validate Email", "send-validation-email": "Send Validation Email", + "change-password": "Change Password", "password-reset-email": "Send Password Reset Email", "force-password-reset": "Force Password Reset & Log User Out", - "ban": "Ban User(s)", + "ban": "Ban", + "ban-users": "Ban User(s)", "temp-ban": "Ban User(s) Temporarily", "unban": "Unban User(s)", "reset-lockout": "Reset Lockout", "reset-flags": "Reset Flags", - "delete": "Delete User(s)", + "delete": "Delete", + "delete-users": "Delete User(s)", "delete-content": "Delete User(s) Content", "purge": "Delete User(s) and Content", "download-csv": "Download CSV", @@ -81,6 +86,7 @@ "alerts.button-ban-x": "Ban %1 user(s)", "alerts.unban-success": "User(s) unbanned!", "alerts.lockout-reset-success": "Lockout(s) reset!", + "alerts.password-change-success": "Password(s) changed!", "alerts.flag-reset-success": "Flags(s) reset!", "alerts.no-remove-yourself-admin": "You can't remove yourself as Administrator!", "alerts.make-admin-success": "User is now administrator.", @@ -106,6 +112,7 @@ "alerts.create": "Create User", "alerts.button-create": "Create", "alerts.button-cancel": "Cancel", + "alerts.button-change": "Change", "alerts.error-passwords-different": "Passwords must match!", "alerts.error-x": "Error

%1

", "alerts.create-success": "User created!", @@ -113,6 +120,10 @@ "alerts.prompt-email": "Emails: ", "alerts.email-sent-to": "An invitation email has been sent to %1", "alerts.x-users-found": "%1 user(s) found, (%2 seconds)", + "alerts.select-a-single-user-to-change-email": "Select a single user to change email", "export-users-started": "Exporting users as csv, this might take a while. You will receive a notification when it is complete.", - "export-users-completed": "Users exported as csv, click here to download." + "export-users-completed": "Users exported as csv, click here to download.", + "email": "Email", + "password": "Password", + "manage": "Manage" } \ No newline at end of file diff --git a/public/language/el/modules.json b/public/language/el/modules.json index 0069418878..17dcb79bb7 100644 --- a/public/language/el/modules.json +++ b/public/language/el/modules.json @@ -9,7 +9,10 @@ "chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others", "chat.send": "Send", "chat.no_active": "You have no active chats.", - "chat.user_typing": "%1 is typing ...", + "chat.user_typing_1": "%1 is typing ...", + "chat.user_typing_2": "%1 and %2 are typing ...", + "chat.user_typing_3": "%1, %2 and %3 are typing ...", + "chat.user_typing_n": "%1, %2 and %3 others are typing ...", "chat.user_has_messaged_you": "%1 has messaged you.", "chat.replying-to": "Replying to %1", "chat.see_all": "All chats", @@ -30,6 +33,10 @@ "chat.delete_message_confirm": "Are you sure you wish to delete this message?", "chat.retrieving-users": "Retrieving users...", "chat.view-users-list": "View users list", + "chat.pinned-messages": "Pinned Messages", + "chat.no-pinned-messages": "There are no pinned messages", + "chat.pin-message": "Pin Message", + "chat.unpin-message": "Unpin Message", "chat.public-rooms": "Public Rooms (%1)", "chat.private-rooms": "Private Rooms (%1)", "chat.create-room": "Create Chat Room", @@ -88,6 +95,7 @@ "composer.zen_mode": "Zen Mode", "composer.select_category": "Select a category", "composer.textarea.placeholder": "Enter your post content here, drag and drop images", + "composer.post-queue-alert": "Hello👋!
This forum uses a post queue system, since you are a new user your post will be hidden until it is approved by our moderation team.", "composer.schedule-for": "Schedule topic for", "composer.schedule-date": "Date", "composer.schedule-time": "Time", diff --git a/public/language/el/user.json b/public/language/el/user.json index 0a77de8cfe..cac2610157 100644 --- a/public/language/el/user.json +++ b/public/language/el/user.json @@ -61,6 +61,7 @@ "change_picture": "Αλλαγή Φωτογραφίας", "change_username": "Change Username", "change_email": "Change Email", + "email-updated": "Email Updated", "email_same_as_password": "Please enter your current password to continue – you've entered your new email again", "edit": "Επεξεργασία", "edit-profile": "Edit Profile", diff --git a/public/language/en-US/admin/manage/users.json b/public/language/en-US/admin/manage/users.json index 1fef96f56d..08e5701f40 100644 --- a/public/language/en-US/admin/manage/users.json +++ b/public/language/en-US/admin/manage/users.json @@ -4,16 +4,21 @@ "edit": "Actions", "make-admin": "Make Admin", "remove-admin": "Remove Admin", + "change-email": "Change Email", + "new-email": "New Email", "validate-email": "Validate Email", "send-validation-email": "Send Validation Email", + "change-password": "Change Password", "password-reset-email": "Send Password Reset Email", "force-password-reset": "Force Password Reset & Log User Out", - "ban": "Ban User(s)", + "ban": "Ban", + "ban-users": "Ban User(s)", "temp-ban": "Ban User(s) Temporarily", "unban": "Unban User(s)", "reset-lockout": "Reset Lockout", "reset-flags": "Reset Flags", - "delete": "Delete User(s)", + "delete": "Delete", + "delete-users": "Delete User(s)", "delete-content": "Delete User(s) Content", "purge": "Delete User(s) and Content", "download-csv": "Download CSV", @@ -81,6 +86,7 @@ "alerts.button-ban-x": "Ban %1 user(s)", "alerts.unban-success": "User(s) unbanned!", "alerts.lockout-reset-success": "Lockout(s) reset!", + "alerts.password-change-success": "Password(s) changed!", "alerts.flag-reset-success": "Flags(s) reset!", "alerts.no-remove-yourself-admin": "You can't remove yourself as Administrator!", "alerts.make-admin-success": "User is now administrator.", @@ -106,6 +112,7 @@ "alerts.create": "Create User", "alerts.button-create": "Create", "alerts.button-cancel": "Cancel", + "alerts.button-change": "Change", "alerts.error-passwords-different": "Passwords must match!", "alerts.error-x": "Error

%1

", "alerts.create-success": "User created!", @@ -113,6 +120,10 @@ "alerts.prompt-email": "Emails: ", "alerts.email-sent-to": "An invitation email has been sent to %1", "alerts.x-users-found": "%1 user(s) found, (%2 seconds)", + "alerts.select-a-single-user-to-change-email": "Select a single user to change email", "export-users-started": "Exporting users as csv, this might take a while. You will receive a notification when it is complete.", - "export-users-completed": "Users exported as csv, click here to download." + "export-users-completed": "Users exported as csv, click here to download.", + "email": "Email", + "password": "Password", + "manage": "Manage" } \ No newline at end of file diff --git a/public/language/en-US/user.json b/public/language/en-US/user.json index 95c660f170..a400152e73 100644 --- a/public/language/en-US/user.json +++ b/public/language/en-US/user.json @@ -61,6 +61,7 @@ "change_picture": "Change Picture", "change_username": "Change Username", "change_email": "Change Email", + "email-updated": "Email Updated", "email_same_as_password": "Please enter your current password to continue – you've entered your new email again", "edit": "Edit", "edit-profile": "Edit Profile", diff --git a/public/language/en-x-pirate/admin/manage/users.json b/public/language/en-x-pirate/admin/manage/users.json index 1fef96f56d..08e5701f40 100644 --- a/public/language/en-x-pirate/admin/manage/users.json +++ b/public/language/en-x-pirate/admin/manage/users.json @@ -4,16 +4,21 @@ "edit": "Actions", "make-admin": "Make Admin", "remove-admin": "Remove Admin", + "change-email": "Change Email", + "new-email": "New Email", "validate-email": "Validate Email", "send-validation-email": "Send Validation Email", + "change-password": "Change Password", "password-reset-email": "Send Password Reset Email", "force-password-reset": "Force Password Reset & Log User Out", - "ban": "Ban User(s)", + "ban": "Ban", + "ban-users": "Ban User(s)", "temp-ban": "Ban User(s) Temporarily", "unban": "Unban User(s)", "reset-lockout": "Reset Lockout", "reset-flags": "Reset Flags", - "delete": "Delete User(s)", + "delete": "Delete", + "delete-users": "Delete User(s)", "delete-content": "Delete User(s) Content", "purge": "Delete User(s) and Content", "download-csv": "Download CSV", @@ -81,6 +86,7 @@ "alerts.button-ban-x": "Ban %1 user(s)", "alerts.unban-success": "User(s) unbanned!", "alerts.lockout-reset-success": "Lockout(s) reset!", + "alerts.password-change-success": "Password(s) changed!", "alerts.flag-reset-success": "Flags(s) reset!", "alerts.no-remove-yourself-admin": "You can't remove yourself as Administrator!", "alerts.make-admin-success": "User is now administrator.", @@ -106,6 +112,7 @@ "alerts.create": "Create User", "alerts.button-create": "Create", "alerts.button-cancel": "Cancel", + "alerts.button-change": "Change", "alerts.error-passwords-different": "Passwords must match!", "alerts.error-x": "Error

%1

", "alerts.create-success": "User created!", @@ -113,6 +120,10 @@ "alerts.prompt-email": "Emails: ", "alerts.email-sent-to": "An invitation email has been sent to %1", "alerts.x-users-found": "%1 user(s) found, (%2 seconds)", + "alerts.select-a-single-user-to-change-email": "Select a single user to change email", "export-users-started": "Exporting users as csv, this might take a while. You will receive a notification when it is complete.", - "export-users-completed": "Users exported as csv, click here to download." + "export-users-completed": "Users exported as csv, click here to download.", + "email": "Email", + "password": "Password", + "manage": "Manage" } \ No newline at end of file diff --git a/public/language/en-x-pirate/modules.json b/public/language/en-x-pirate/modules.json index d59feeb295..55dd75845f 100644 --- a/public/language/en-x-pirate/modules.json +++ b/public/language/en-x-pirate/modules.json @@ -9,7 +9,10 @@ "chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others", "chat.send": "Send Parrot", "chat.no_active": "Ye be a lonely sailor.", - "chat.user_typing": "%1 is typing ...", + "chat.user_typing_1": "%1 is typing ...", + "chat.user_typing_2": "%1 and %2 are typing ...", + "chat.user_typing_3": "%1, %2 and %3 are typing ...", + "chat.user_typing_n": "%1, %2 and %3 others are typing ...", "chat.user_has_messaged_you": "%1 has messaged you.", "chat.replying-to": "Replying to %1", "chat.see_all": "All chats", @@ -30,6 +33,10 @@ "chat.delete_message_confirm": "Are you sure you wish to delete this message?", "chat.retrieving-users": "Retrieving users...", "chat.view-users-list": "View users list", + "chat.pinned-messages": "Pinned Messages", + "chat.no-pinned-messages": "There are no pinned messages", + "chat.pin-message": "Pin Message", + "chat.unpin-message": "Unpin Message", "chat.public-rooms": "Public Rooms (%1)", "chat.private-rooms": "Private Rooms (%1)", "chat.create-room": "Create Chat Room", @@ -88,6 +95,7 @@ "composer.zen_mode": "Zen Mode", "composer.select_category": "Select a category", "composer.textarea.placeholder": "Enter your post content here, drag and drop images", + "composer.post-queue-alert": "Hello👋!
This forum uses a post queue system, since you are a new user your post will be hidden until it is approved by our moderation team.", "composer.schedule-for": "Schedule topic for", "composer.schedule-date": "Date", "composer.schedule-time": "Time", diff --git a/public/language/en-x-pirate/user.json b/public/language/en-x-pirate/user.json index 8736927dcd..dac4c8d676 100644 --- a/public/language/en-x-pirate/user.json +++ b/public/language/en-x-pirate/user.json @@ -61,6 +61,7 @@ "change_picture": "Change Picture", "change_username": "Change Username", "change_email": "Change Email", + "email-updated": "Email Updated", "email_same_as_password": "Please enter your current password to continue – you've entered your new email again", "edit": "Edit", "edit-profile": "Edit Profile", diff --git a/public/language/es/admin/manage/users.json b/public/language/es/admin/manage/users.json index 8c138a43ed..786cb6113b 100644 --- a/public/language/es/admin/manage/users.json +++ b/public/language/es/admin/manage/users.json @@ -4,16 +4,21 @@ "edit": "Actions", "make-admin": "Hacer Administrador", "remove-admin": "Eliminar Administrador", + "change-email": "Change Email", + "new-email": "New Email", "validate-email": "Validar Email", "send-validation-email": "Enviar Email de Validación", + "change-password": "Change Password", "password-reset-email": "Enviar Email para Recuperar la Contraseña", "force-password-reset": "Force Password Reset & Log User Out", - "ban": "Expulsar Usuario(s)", + "ban": "Ban", + "ban-users": "Ban User(s)", "temp-ban": "Expulsar Usuario(s) Temporalmente", "unban": "Eliminar Expulsión del Usuario(s)", "reset-lockout": "Reiniciar Bloqueo", "reset-flags": "Reiniciar Reportes", - "delete": "Delete User(s)", + "delete": "Delete", + "delete-users": "Delete User(s)", "delete-content": "Delete User(s) Content", "purge": "Delete User(s) and Content", "download-csv": "Descargar CSV", @@ -81,6 +86,7 @@ "alerts.button-ban-x": "Expulsar %1 usuario(s)", "alerts.unban-success": "¡Usuario(s) desbaneados!", "alerts.lockout-reset-success": "¡Bloqueo(s) reseteado(s)!", + "alerts.password-change-success": "Password(s) changed!", "alerts.flag-reset-success": "¡Reporte(s) reseteado(s)!", "alerts.no-remove-yourself-admin": "¡No puedes eliminarte a ti mismo como Administrador!", "alerts.make-admin-success": "El usuario es ahora administrador.", @@ -106,6 +112,7 @@ "alerts.create": "Crear Usuario", "alerts.button-create": "Crear", "alerts.button-cancel": "Cancelar", + "alerts.button-change": "Change", "alerts.error-passwords-different": "¡Las contraseñas deben coincidir!", "alerts.error-x": "Error

%1

", "alerts.create-success": "¡Usuario creado!", @@ -113,6 +120,10 @@ "alerts.prompt-email": "Correos electrónico:", "alerts.email-sent-to": "Un email de invitación ha sido enviado a %1", "alerts.x-users-found": "%1 user(s) found, (%2 seconds)", + "alerts.select-a-single-user-to-change-email": "Select a single user to change email", "export-users-started": "Exporting users as csv, this might take a while. You will receive a notification when it is complete.", - "export-users-completed": "Users exported as csv, click here to download." + "export-users-completed": "Users exported as csv, click here to download.", + "email": "Email", + "password": "Password", + "manage": "Manage" } \ No newline at end of file diff --git a/public/language/es/user.json b/public/language/es/user.json index ac3977c5a0..c3ce6928a8 100644 --- a/public/language/es/user.json +++ b/public/language/es/user.json @@ -61,6 +61,7 @@ "change_picture": "Cambiar imagen", "change_username": "Cambiar nombre de usuario", "change_email": "Cambiar email", + "email-updated": "Email Updated", "email_same_as_password": "Por favor ingrese su contraseña actual para continuar – tú has introducido tu nuevo correo electrónico de nuevo", "edit": "Editar", "edit-profile": "Editar Perfil", diff --git a/public/language/et/admin/manage/users.json b/public/language/et/admin/manage/users.json index 8e2d9da587..ffe0a8c960 100644 --- a/public/language/et/admin/manage/users.json +++ b/public/language/et/admin/manage/users.json @@ -4,16 +4,21 @@ "edit": "Actions", "make-admin": "Ülenda administraatoriks", "remove-admin": "Eemalda administraator", + "change-email": "Change Email", + "new-email": "New Email", "validate-email": "Kinnita email", "send-validation-email": "Saada kinnituskiri", + "change-password": "Change Password", "password-reset-email": "Saada parooli taastamise email", "force-password-reset": "Force Password Reset & Log User Out", - "ban": "Keelusta Kasutaja(d)", + "ban": "Ban", + "ban-users": "Ban User(s)", "temp-ban": "Keelusta Kasutaja(d) ajutiselt", "unban": "Tühista keeld Kasutaja(tel)", "reset-lockout": "Taaslae blokeering", "reset-flags": "Taasta raporteerimised", - "delete": "Delete User(s)", + "delete": "Delete", + "delete-users": "Delete User(s)", "delete-content": "Delete User(s) Content", "purge": "Delete User(s) and Content", "download-csv": "Lae alla CSV", @@ -81,6 +86,7 @@ "alerts.button-ban-x": "Keelusta %1 kasutaja(d)", "alerts.unban-success": "Kasutaja(te) keelustus eemaldatud", "alerts.lockout-reset-success": "Lockout(s) reset!", + "alerts.password-change-success": "Password(s) changed!", "alerts.flag-reset-success": "Märgistuse(te) taaslaadimine", "alerts.no-remove-yourself-admin": "Te ei saa ennast Administraatorina eemaldada", "alerts.make-admin-success": "User is now administrator.", @@ -106,6 +112,7 @@ "alerts.create": "Loo Kasutaja", "alerts.button-create": "Loo", "alerts.button-cancel": "Tühista", + "alerts.button-change": "Change", "alerts.error-passwords-different": "Paroolid peavad kattuma!", "alerts.error-x": "Viga

%1

", "alerts.create-success": "Kasutaja tehtud!", @@ -113,6 +120,10 @@ "alerts.prompt-email": "Emails: ", "alerts.email-sent-to": "Kutse on saadetud %1", "alerts.x-users-found": "%1 user(s) found, (%2 seconds)", + "alerts.select-a-single-user-to-change-email": "Select a single user to change email", "export-users-started": "Exporting users as csv, this might take a while. You will receive a notification when it is complete.", - "export-users-completed": "Users exported as csv, click here to download." + "export-users-completed": "Users exported as csv, click here to download.", + "email": "Email", + "password": "Password", + "manage": "Manage" } \ No newline at end of file diff --git a/public/language/et/user.json b/public/language/et/user.json index 8c2e13adc3..68c81d8ed4 100644 --- a/public/language/et/user.json +++ b/public/language/et/user.json @@ -61,6 +61,7 @@ "change_picture": "Vaheta pilti", "change_username": "Vaheta kasutajanime", "change_email": "Vaheta emaili", + "email-updated": "Email Updated", "email_same_as_password": "Please enter your current password to continue – you've entered your new email again", "edit": "Muuda", "edit-profile": "Redigeeri profiili", diff --git a/public/language/fa-IR/admin/manage/users.json b/public/language/fa-IR/admin/manage/users.json index e7ad339098..f5f3218558 100644 --- a/public/language/fa-IR/admin/manage/users.json +++ b/public/language/fa-IR/admin/manage/users.json @@ -4,16 +4,21 @@ "edit": "Actions", "make-admin": "Make Admin", "remove-admin": "Remove Admin", + "change-email": "Change Email", + "new-email": "New Email", "validate-email": "Validate Email", "send-validation-email": "Send Validation Email", + "change-password": "Change Password", "password-reset-email": "Send Password Reset Email", "force-password-reset": "Force Password Reset & Log User Out", - "ban": "Ban User(s)", + "ban": "Ban", + "ban-users": "Ban User(s)", "temp-ban": "Ban User(s) Temporarily", "unban": "Unban User(s)", "reset-lockout": "Reset Lockout", "reset-flags": "Reset Flags", - "delete": "Delete User(s)", + "delete": "Delete", + "delete-users": "Delete User(s)", "delete-content": "Delete User(s) Content", "purge": "Delete User(s) and Content", "download-csv": "Download CSV", @@ -81,6 +86,7 @@ "alerts.button-ban-x": "Ban %1 user(s)", "alerts.unban-success": "User(s) unbanned!", "alerts.lockout-reset-success": "Lockout(s) reset!", + "alerts.password-change-success": "Password(s) changed!", "alerts.flag-reset-success": "Flags(s) reset!", "alerts.no-remove-yourself-admin": "You can't remove yourself as Administrator!", "alerts.make-admin-success": "User is now administrator.", @@ -106,6 +112,7 @@ "alerts.create": "Create User", "alerts.button-create": "Create", "alerts.button-cancel": "Cancel", + "alerts.button-change": "Change", "alerts.error-passwords-different": "Passwords must match!", "alerts.error-x": "Error

%1

", "alerts.create-success": "User created!", @@ -113,6 +120,10 @@ "alerts.prompt-email": "Emails: ", "alerts.email-sent-to": "An invitation email has been sent to %1", "alerts.x-users-found": "%1 user(s) found, (%2 seconds)", + "alerts.select-a-single-user-to-change-email": "Select a single user to change email", "export-users-started": "Exporting users as csv, this might take a while. You will receive a notification when it is complete.", - "export-users-completed": "Users exported as csv, click here to download." + "export-users-completed": "Users exported as csv, click here to download.", + "email": "Email", + "password": "Password", + "manage": "Manage" } \ No newline at end of file diff --git a/public/language/fa-IR/user.json b/public/language/fa-IR/user.json index b63f4bfb88..34f7f02327 100644 --- a/public/language/fa-IR/user.json +++ b/public/language/fa-IR/user.json @@ -61,6 +61,7 @@ "change_picture": "تغییر تصویر", "change_username": "تغییر نام کاربری", "change_email": "تغییر ایمیل", + "email-updated": "Email Updated", "email_same_as_password": "Please enter your current password to continue – you've entered your new email again", "edit": "ویرایش", "edit-profile": "ویرایش پروفایل", diff --git a/public/language/fi/admin/manage/users.json b/public/language/fi/admin/manage/users.json index 1fef96f56d..08e5701f40 100644 --- a/public/language/fi/admin/manage/users.json +++ b/public/language/fi/admin/manage/users.json @@ -4,16 +4,21 @@ "edit": "Actions", "make-admin": "Make Admin", "remove-admin": "Remove Admin", + "change-email": "Change Email", + "new-email": "New Email", "validate-email": "Validate Email", "send-validation-email": "Send Validation Email", + "change-password": "Change Password", "password-reset-email": "Send Password Reset Email", "force-password-reset": "Force Password Reset & Log User Out", - "ban": "Ban User(s)", + "ban": "Ban", + "ban-users": "Ban User(s)", "temp-ban": "Ban User(s) Temporarily", "unban": "Unban User(s)", "reset-lockout": "Reset Lockout", "reset-flags": "Reset Flags", - "delete": "Delete User(s)", + "delete": "Delete", + "delete-users": "Delete User(s)", "delete-content": "Delete User(s) Content", "purge": "Delete User(s) and Content", "download-csv": "Download CSV", @@ -81,6 +86,7 @@ "alerts.button-ban-x": "Ban %1 user(s)", "alerts.unban-success": "User(s) unbanned!", "alerts.lockout-reset-success": "Lockout(s) reset!", + "alerts.password-change-success": "Password(s) changed!", "alerts.flag-reset-success": "Flags(s) reset!", "alerts.no-remove-yourself-admin": "You can't remove yourself as Administrator!", "alerts.make-admin-success": "User is now administrator.", @@ -106,6 +112,7 @@ "alerts.create": "Create User", "alerts.button-create": "Create", "alerts.button-cancel": "Cancel", + "alerts.button-change": "Change", "alerts.error-passwords-different": "Passwords must match!", "alerts.error-x": "Error

%1

", "alerts.create-success": "User created!", @@ -113,6 +120,10 @@ "alerts.prompt-email": "Emails: ", "alerts.email-sent-to": "An invitation email has been sent to %1", "alerts.x-users-found": "%1 user(s) found, (%2 seconds)", + "alerts.select-a-single-user-to-change-email": "Select a single user to change email", "export-users-started": "Exporting users as csv, this might take a while. You will receive a notification when it is complete.", - "export-users-completed": "Users exported as csv, click here to download." + "export-users-completed": "Users exported as csv, click here to download.", + "email": "Email", + "password": "Password", + "manage": "Manage" } \ No newline at end of file diff --git a/public/language/fi/user.json b/public/language/fi/user.json index f714020dde..458b8d8cd1 100644 --- a/public/language/fi/user.json +++ b/public/language/fi/user.json @@ -61,6 +61,7 @@ "change_picture": "Vaihda kuva", "change_username": "Vaihda käyttäjänimi", "change_email": "Vaihda sähköpostiosoite", + "email-updated": "Email Updated", "email_same_as_password": "Please enter your current password to continue – you've entered your new email again", "edit": "Muokkaa", "edit-profile": "Muokkaa profiiliasi", diff --git a/public/language/fr/admin/manage/users.json b/public/language/fr/admin/manage/users.json index 3d55eb623a..f721a5f9ea 100644 --- a/public/language/fr/admin/manage/users.json +++ b/public/language/fr/admin/manage/users.json @@ -4,16 +4,21 @@ "edit": "Actions", "make-admin": "Promouvoir Admin", "remove-admin": "Retirer des Admins", + "change-email": "Change Email", + "new-email": "New Email", "validate-email": "Vérifier l'adresse e-mail", "send-validation-email": "Envoyer un e-mail de vérification", + "change-password": "Change Password", "password-reset-email": "Envoyer un e-mail de réinitialisation du mot de passe", "force-password-reset": "Forcer la réinitialisation du mot de passe et déconnecter l'utilisateur", - "ban": "Utilisateur(s) banni(s)", + "ban": "Ban", + "ban-users": "Ban User(s)", "temp-ban": "Utilisateur(s) temporairement banni(s)", "unban": "Dé-bannir le(s) utilisateur(s)", "reset-lockout": "Supprimer le blocage", "reset-flags": "Supprimer les signalements", - "delete": "Supprimer le(s) utilisateur(s)", + "delete": "Delete", + "delete-users": "Delete User(s)", "delete-content": "Supprimer le contenu du compte", "purge": "Supprimer le(s) compte(s) et le contenu", "download-csv": "Exporter en CSV", @@ -81,6 +86,7 @@ "alerts.button-ban-x": "Bannir %1 utilisateur(s)", "alerts.unban-success": "Utilisateur(s) dé-banni(s) !", "alerts.lockout-reset-success": "Blocage supprimé", + "alerts.password-change-success": "Password(s) changed!", "alerts.flag-reset-success": "Signalement(s) réinitialisé(s) !", "alerts.no-remove-yourself-admin": "Vous ne pouvez pas vous retirer vous-même des administrateurs !", "alerts.make-admin-success": "L'utilisateur est maintenant administrateur.", @@ -106,6 +112,7 @@ "alerts.create": "Créer un utilisateur", "alerts.button-create": "Créer", "alerts.button-cancel": "Annuler", + "alerts.button-change": "Change", "alerts.error-passwords-different": "Les mots de passe doivent correspondre !", "alerts.error-x": "Erreur

%1

", "alerts.create-success": "Utilisateur créé !", @@ -113,6 +120,10 @@ "alerts.prompt-email": "Emails: ", "alerts.email-sent-to": "Un e-mail d'invitation a été envoyé à %1", "alerts.x-users-found": "%1 utilisateur(s) trouvé(s), (%2 secondes)", + "alerts.select-a-single-user-to-change-email": "Select a single user to change email", "export-users-started": "L'exportation d'utilisateurs au format CSV peut prendre un certain temps. Vous recevrez une notification lorsqu'elle sera terminée.", - "export-users-completed": "Utilisateurs exportés au format CSV, cliquez ici pour télécharger." + "export-users-completed": "Utilisateurs exportés au format CSV, cliquez ici pour télécharger.", + "email": "Email", + "password": "Password", + "manage": "Manage" } \ No newline at end of file diff --git a/public/language/fr/user.json b/public/language/fr/user.json index e532394189..2b327376e3 100644 --- a/public/language/fr/user.json +++ b/public/language/fr/user.json @@ -61,6 +61,7 @@ "change_picture": "Changer l'image", "change_username": "Changer le nom d'utilisateur", "change_email": "Changer l'e-mail", + "email-updated": "Email Updated", "email_same_as_password": "Veuillez entrer votre mot de passe actuel pour continuer – vous devez saisir à nouveau votre email", "edit": "Éditer", "edit-profile": "Éditer le profil", diff --git a/public/language/gl/admin/manage/users.json b/public/language/gl/admin/manage/users.json index 1fef96f56d..08e5701f40 100644 --- a/public/language/gl/admin/manage/users.json +++ b/public/language/gl/admin/manage/users.json @@ -4,16 +4,21 @@ "edit": "Actions", "make-admin": "Make Admin", "remove-admin": "Remove Admin", + "change-email": "Change Email", + "new-email": "New Email", "validate-email": "Validate Email", "send-validation-email": "Send Validation Email", + "change-password": "Change Password", "password-reset-email": "Send Password Reset Email", "force-password-reset": "Force Password Reset & Log User Out", - "ban": "Ban User(s)", + "ban": "Ban", + "ban-users": "Ban User(s)", "temp-ban": "Ban User(s) Temporarily", "unban": "Unban User(s)", "reset-lockout": "Reset Lockout", "reset-flags": "Reset Flags", - "delete": "Delete User(s)", + "delete": "Delete", + "delete-users": "Delete User(s)", "delete-content": "Delete User(s) Content", "purge": "Delete User(s) and Content", "download-csv": "Download CSV", @@ -81,6 +86,7 @@ "alerts.button-ban-x": "Ban %1 user(s)", "alerts.unban-success": "User(s) unbanned!", "alerts.lockout-reset-success": "Lockout(s) reset!", + "alerts.password-change-success": "Password(s) changed!", "alerts.flag-reset-success": "Flags(s) reset!", "alerts.no-remove-yourself-admin": "You can't remove yourself as Administrator!", "alerts.make-admin-success": "User is now administrator.", @@ -106,6 +112,7 @@ "alerts.create": "Create User", "alerts.button-create": "Create", "alerts.button-cancel": "Cancel", + "alerts.button-change": "Change", "alerts.error-passwords-different": "Passwords must match!", "alerts.error-x": "Error

%1

", "alerts.create-success": "User created!", @@ -113,6 +120,10 @@ "alerts.prompt-email": "Emails: ", "alerts.email-sent-to": "An invitation email has been sent to %1", "alerts.x-users-found": "%1 user(s) found, (%2 seconds)", + "alerts.select-a-single-user-to-change-email": "Select a single user to change email", "export-users-started": "Exporting users as csv, this might take a while. You will receive a notification when it is complete.", - "export-users-completed": "Users exported as csv, click here to download." + "export-users-completed": "Users exported as csv, click here to download.", + "email": "Email", + "password": "Password", + "manage": "Manage" } \ No newline at end of file diff --git a/public/language/gl/user.json b/public/language/gl/user.json index 040fa36f3d..94642f50cd 100644 --- a/public/language/gl/user.json +++ b/public/language/gl/user.json @@ -61,6 +61,7 @@ "change_picture": "Cambia-la foto", "change_username": "Cambia-lo nome de usuario", "change_email": "Cambia-lo correo", + "email-updated": "Email Updated", "email_same_as_password": "Please enter your current password to continue – you've entered your new email again", "edit": "Editar", "edit-profile": "Editar Perfil", diff --git a/public/language/he/admin/manage/users.json b/public/language/he/admin/manage/users.json index 847a9b871b..de9c41a993 100644 --- a/public/language/he/admin/manage/users.json +++ b/public/language/he/admin/manage/users.json @@ -4,16 +4,21 @@ "edit": "פעולות", "make-admin": "הפוך למנהל", "remove-admin": "הסר הרשאת מנהל", + "change-email": "Change Email", + "new-email": "New Email", "validate-email": "סמן את דוא\"ל המשתמש/ים כמאומת", "send-validation-email": "שלח בקשת אימות דוא\"ל למשתמש/ים", + "change-password": "Change Password", "password-reset-email": "שלח דוא\"ל לאיפוס סיסמה", "force-password-reset": "כפה איפוס סיסמה ונתק את המשתמש", - "ban": "הרחק משתמש(ים)", + "ban": "Ban", + "ban-users": "Ban User(s)", "temp-ban": "הרחק משתמש(ים) באופן זמני", "unban": "בטל הרחקת משתמש(ים)", "reset-lockout": "שחרר נעילת חשבון", "reset-flags": "אפס דגלים", - "delete": "מחק משתמש(ים)", + "delete": "Delete", + "delete-users": "Delete User(s)", "delete-content": "מחק תוכן משתמש(ים)", "purge": "מחק משתמש(ים) ותוכן", "download-csv": "ייצא משתמשים כ-CSV", @@ -81,6 +86,7 @@ "alerts.button-ban-x": "הרחק %1 משתמש(ים)", "alerts.unban-success": "משתמש(ים) הוחזר/ו!", "alerts.lockout-reset-success": "נעילת חשבון שוחרר!", + "alerts.password-change-success": "Password(s) changed!", "alerts.flag-reset-success": "דגלים אופסו!", "alerts.no-remove-yourself-admin": "אינך יכול להסיר את עצמך כמנהל!", "alerts.make-admin-success": "המשתמש הינו מנהל עכשיו.", @@ -106,6 +112,7 @@ "alerts.create": "צור משתמש", "alerts.button-create": "צור", "alerts.button-cancel": "בטל", + "alerts.button-change": "Change", "alerts.error-passwords-different": "הסיסמאות אינן תואמות!", "alerts.error-x": "שגיאה

%1

", "alerts.create-success": "משתמש נוצר!", @@ -113,6 +120,10 @@ "alerts.prompt-email": "מיילים: ", "alerts.email-sent-to": "מייל הזמנה נשלח ל-%1", "alerts.x-users-found": "%1 משתמש(ים) נמצאו, (%2 שניות)", + "alerts.select-a-single-user-to-change-email": "Select a single user to change email", "export-users-started": "מייצא משתמשים כ-csv, הדבר עשוי להימשך זמן מה. תקבל הודעה עם השלמתה.", - "export-users-completed": "משתמשים יוצאו כ-csv, לחץ כאן להורדה." + "export-users-completed": "משתמשים יוצאו כ-csv, לחץ כאן להורדה.", + "email": "Email", + "password": "Password", + "manage": "Manage" } \ No newline at end of file diff --git a/public/language/he/user.json b/public/language/he/user.json index fde17c1370..426e7afed0 100644 --- a/public/language/he/user.json +++ b/public/language/he/user.json @@ -61,6 +61,7 @@ "change_picture": "שנה תמונה", "change_username": "שנה שם משתמש", "change_email": "שנה מייל", + "email-updated": "Email Updated", "email_same_as_password": "הכנס את הסיסמא הנוכחית שלך על מנת להמשיך – כתבת את כתובת המייל החדשה במקום.", "edit": "ערוך", "edit-profile": "ערוך פרופיל", diff --git a/public/language/hr/admin/manage/users.json b/public/language/hr/admin/manage/users.json index 93f1e680df..e6ed69a613 100644 --- a/public/language/hr/admin/manage/users.json +++ b/public/language/hr/admin/manage/users.json @@ -4,16 +4,21 @@ "edit": "Actions", "make-admin": "Dodaj administratora", "remove-admin": "Makni administratora", + "change-email": "Change Email", + "new-email": "New Email", "validate-email": "Potvrdite email", "send-validation-email": "Pošalji email potvrde", + "change-password": "Change Password", "password-reset-email": "Poslan email zahtjev za resetiranje lozinke", "force-password-reset": "Force Password Reset & Log User Out", - "ban": "Blokiraj korisnika", + "ban": "Ban", + "ban-users": "Ban User(s)", "temp-ban": "Blokiraj korisnika privremeno", "unban": "Odblokiraj korisnika", "reset-lockout": "Resetiraj zaključavanje", "reset-flags": "Resetiraj zastave", - "delete": "Delete User(s)", + "delete": "Delete", + "delete-users": "Delete User(s)", "delete-content": "Delete User(s) Content", "purge": "Delete User(s) and Content", "download-csv": "Preuzmi CSV", @@ -81,6 +86,7 @@ "alerts.button-ban-x": "Blokiraj %1 korisnika", "alerts.unban-success": "Korisnik odblokiran!", "alerts.lockout-reset-success": "Zaključavanje resetirano!", + "alerts.password-change-success": "Password(s) changed!", "alerts.flag-reset-success": "Flags(s) reset!", "alerts.no-remove-yourself-admin": "Nemoguće je maknuti samog sebe iz administracije!", "alerts.make-admin-success": "User is now administrator.", @@ -106,6 +112,7 @@ "alerts.create": "Napravi korisnika", "alerts.button-create": "Napravi", "alerts.button-cancel": "Odustani", + "alerts.button-change": "Change", "alerts.error-passwords-different": "Lozinke se moraju podudarati!", "alerts.error-x": "Greška

%1

", "alerts.create-success": "Korisnik kreiran!", @@ -113,6 +120,10 @@ "alerts.prompt-email": "Emails: ", "alerts.email-sent-to": "Email pozivnica je poslana %1", "alerts.x-users-found": "%1 user(s) found, (%2 seconds)", + "alerts.select-a-single-user-to-change-email": "Select a single user to change email", "export-users-started": "Exporting users as csv, this might take a while. You will receive a notification when it is complete.", - "export-users-completed": "Users exported as csv, click here to download." + "export-users-completed": "Users exported as csv, click here to download.", + "email": "Email", + "password": "Password", + "manage": "Manage" } \ No newline at end of file diff --git a/public/language/hr/user.json b/public/language/hr/user.json index 0bf0120375..552dc7556d 100644 --- a/public/language/hr/user.json +++ b/public/language/hr/user.json @@ -61,6 +61,7 @@ "change_picture": "Promjeni sliku", "change_username": "Promjeni korisničko ime", "change_email": "Promjeni email", + "email-updated": "Email Updated", "email_same_as_password": "Please enter your current password to continue – you've entered your new email again", "edit": "Uredi", "edit-profile": "Uredi profil", diff --git a/public/language/hu/admin/manage/users.json b/public/language/hu/admin/manage/users.json index a36403740f..9a564d8d7d 100644 --- a/public/language/hu/admin/manage/users.json +++ b/public/language/hu/admin/manage/users.json @@ -4,16 +4,21 @@ "edit": "Akciók", "make-admin": "Adminná léptetés", "remove-admin": "Admin törlése", + "change-email": "Change Email", + "new-email": "New Email", "validate-email": "Email érvényesítése", "send-validation-email": "Érvényesítő email küldése", + "change-password": "Change Password", "password-reset-email": "Jelszó helyreállító email küldése", "force-password-reset": "Felhasználó jelszavának helyreállítása és kijelentkeztetése", - "ban": "Felhasználó(k) kitiltása", + "ban": "Ban", + "ban-users": "Ban User(s)", "temp-ban": "Felhasználó(k) kitiltása átmenetileg", "unban": "Felhasználó(k) kitiltásának feloldása", "reset-lockout": "Kizárás visszaállítása", "reset-flags": "Megjelölések visszaállíátsa", - "delete": "Felhasználó(k) törlése", + "delete": "Delete", + "delete-users": "Delete User(s)", "delete-content": "Felhasználó(k) minden tartalmának törlése", "purge": "Felhasználó(k) és minden tartalmának törlése", "download-csv": "CSV letöltése", @@ -81,6 +86,7 @@ "alerts.button-ban-x": "%1 felhasználó kitiltása", "alerts.unban-success": "Felhasználó(k) kitiltása feloldva!", "alerts.lockout-reset-success": "Kizárás(ok) visszaállítva!", + "alerts.password-change-success": "Password(s) changed!", "alerts.flag-reset-success": "Megjelölés(ek) visszaállítva!", "alerts.no-remove-yourself-admin": "Adminisztrátorként nem távolíthatod el saját magad!", "alerts.make-admin-success": "A felhasználó mostmár adminisztrátor.", @@ -106,6 +112,7 @@ "alerts.create": "Felhasználó létrehozása", "alerts.button-create": "Létrehozás", "alerts.button-cancel": "Mégse", + "alerts.button-change": "Change", "alerts.error-passwords-different": "A jelszavaknak egyezniük kell!", "alerts.error-x": "Hiba

%1

", "alerts.create-success": "Felhasználó létrehozva!", @@ -113,6 +120,10 @@ "alerts.prompt-email": "Emailek: ", "alerts.email-sent-to": "Meghívó email elküldve %1 részére", "alerts.x-users-found": "%1 talált felhasználó (%2 másodperc)", + "alerts.select-a-single-user-to-change-email": "Select a single user to change email", "export-users-started": "Felhasználók exportálása CSV formátumban. Ez eltarthat egy darabig. Értesítést fogsz kapni, ha elkészült.", - "export-users-completed": "Felhasználók exportálva CSV formátumban, kattints ide a letöltéshez." + "export-users-completed": "Felhasználók exportálva CSV formátumban, kattints ide a letöltéshez.", + "email": "Email", + "password": "Password", + "manage": "Manage" } \ No newline at end of file diff --git a/public/language/hu/user.json b/public/language/hu/user.json index 9b4bfa6640..f2a4144672 100644 --- a/public/language/hu/user.json +++ b/public/language/hu/user.json @@ -61,6 +61,7 @@ "change_picture": "Kép módosítása", "change_username": "Felhasználónév módosítása", "change_email": "E-mail módosítása", + "email-updated": "Email Updated", "email_same_as_password": "Kérlek add meg a jelenlegi jelszavadat a folytatáshoz – újra megadtad az új email címed", "edit": "Szerkesztés", "edit-profile": "Profil szerkesztése", diff --git a/public/language/hy/admin/manage/users.json b/public/language/hy/admin/manage/users.json index 207214d588..495375e226 100644 --- a/public/language/hy/admin/manage/users.json +++ b/public/language/hy/admin/manage/users.json @@ -4,16 +4,21 @@ "edit": "Գործողություններ", "make-admin": "Դարձնել Ադմին", "remove-admin": "Հեռացնել ադմինիստրատորին", + "change-email": "Change Email", + "new-email": "New Email", "validate-email": "Վավերացնել էլ. փոստը", "send-validation-email": "Ուղարկել վավերացման էլ. փոստ", + "change-password": "Change Password", "password-reset-email": "Ուղարկել գաղտնաբառը վերականգնելու էլ. փոստ", "force-password-reset": "Ստիպել գաղտնաբառի վերակայում և օգտատերից դուրս գալ", - "ban": "Արգելել օգտատիրոջը(ին)", + "ban": "Ban", + "ban-users": "Ban User(s)", "temp-ban": "Ժամանակավորապես արգելել օգտատեր(ներին):", "unban": "Արգելահանել օգտատեր(ներ)ին", "reset-lockout": "Վերականգնել Lockout", "reset-flags": "Վերականգնել դրոշները", - "delete": "Ջնջել օգտատիրոջը", + "delete": "Delete", + "delete-users": "Delete User(s)", "delete-content": "Ջնջել օգտատեր(ների) կոնտենտը", "purge": "Ջնջել օգտատերին(ներ) և բովանդակությունը", "download-csv": "Ներբեռնեք CSV", @@ -81,6 +86,7 @@ "alerts.button-ban-x": "Արգելել %1 օգտվող(ներ)", "alerts.unban-success": "Օգտատեր(ներ)ն արգելված չէ:", "alerts.lockout-reset-success": "Արգելափակում(ներ)ը վերակայվել է:", + "alerts.password-change-success": "Password(s) changed!", "alerts.flag-reset-success": "Դրոշ(ներ)ը վերակայվել են:", "alerts.no-remove-yourself-admin": "Դուք չեք կարող ձեզ հեռացնել որպես Ադմինիստրատոր:", "alerts.make-admin-success": "Օգտատերը այժմ ադմինիստրատոր է:", @@ -106,6 +112,7 @@ "alerts.create": "Ստեղծել Օգտատեր ", "alerts.button-create": "Ստեղծել ", "alerts.button-cancel": "չեղարկել", + "alerts.button-change": "Change", "alerts.error-passwords-different": "Գաղտնաբառերը պետք է համընկնեն!", "alerts.error-x": "Սխալ% 1", "alerts.create-success": "Օգտատերը ստեղծված է", @@ -113,6 +120,10 @@ "alerts.prompt-email": "Էլ. փոստեր", "alerts.email-sent-to": "Հրավերի նամակ է ուղարկվել %1-ին", "alerts.x-users-found": "Գտնվել է %1 օգտատեր, (%2 վայրկյան)", + "alerts.select-a-single-user-to-change-email": "Select a single user to change email", "export-users-started": "Օգտագործողների արտահանում որպես csv, դա կարող է որոշ ժամանակ տևել: Դուք ծանուցում կստանաք, երբ այն ավարտվի:", - "export-users-completed": "Օգտատերերը արտահանվել են որպես csv, ներբեռնելու համար սեղմեք այստեղ:" + "export-users-completed": "Օգտատերերը արտահանվել են որպես csv, ներբեռնելու համար սեղմեք այստեղ:", + "email": "Email", + "password": "Password", + "manage": "Manage" } \ No newline at end of file diff --git a/public/language/hy/user.json b/public/language/hy/user.json index a8d9d0e3e5..fb446feeae 100644 --- a/public/language/hy/user.json +++ b/public/language/hy/user.json @@ -61,6 +61,7 @@ "change_picture": "Փոխել նկարը", "change_username": "Փոխել օգտատիրոջ անունը", "change_email": "Փոխել էլ. փոստը", + "email-updated": "Email Updated", "email_same_as_password": "Խնդրում ենք մուտքագրել ձեր ընթացիկ գաղտնաբառը՝ շարունակելու համար – դուք կրկին մուտքագրել եք ձեր նոր էլ.փոստը", "edit": "Խմբագրել", "edit-profile": "Խմբագրել պրոֆիլը", diff --git a/public/language/id/admin/manage/users.json b/public/language/id/admin/manage/users.json index 1fef96f56d..08e5701f40 100644 --- a/public/language/id/admin/manage/users.json +++ b/public/language/id/admin/manage/users.json @@ -4,16 +4,21 @@ "edit": "Actions", "make-admin": "Make Admin", "remove-admin": "Remove Admin", + "change-email": "Change Email", + "new-email": "New Email", "validate-email": "Validate Email", "send-validation-email": "Send Validation Email", + "change-password": "Change Password", "password-reset-email": "Send Password Reset Email", "force-password-reset": "Force Password Reset & Log User Out", - "ban": "Ban User(s)", + "ban": "Ban", + "ban-users": "Ban User(s)", "temp-ban": "Ban User(s) Temporarily", "unban": "Unban User(s)", "reset-lockout": "Reset Lockout", "reset-flags": "Reset Flags", - "delete": "Delete User(s)", + "delete": "Delete", + "delete-users": "Delete User(s)", "delete-content": "Delete User(s) Content", "purge": "Delete User(s) and Content", "download-csv": "Download CSV", @@ -81,6 +86,7 @@ "alerts.button-ban-x": "Ban %1 user(s)", "alerts.unban-success": "User(s) unbanned!", "alerts.lockout-reset-success": "Lockout(s) reset!", + "alerts.password-change-success": "Password(s) changed!", "alerts.flag-reset-success": "Flags(s) reset!", "alerts.no-remove-yourself-admin": "You can't remove yourself as Administrator!", "alerts.make-admin-success": "User is now administrator.", @@ -106,6 +112,7 @@ "alerts.create": "Create User", "alerts.button-create": "Create", "alerts.button-cancel": "Cancel", + "alerts.button-change": "Change", "alerts.error-passwords-different": "Passwords must match!", "alerts.error-x": "Error

%1

", "alerts.create-success": "User created!", @@ -113,6 +120,10 @@ "alerts.prompt-email": "Emails: ", "alerts.email-sent-to": "An invitation email has been sent to %1", "alerts.x-users-found": "%1 user(s) found, (%2 seconds)", + "alerts.select-a-single-user-to-change-email": "Select a single user to change email", "export-users-started": "Exporting users as csv, this might take a while. You will receive a notification when it is complete.", - "export-users-completed": "Users exported as csv, click here to download." + "export-users-completed": "Users exported as csv, click here to download.", + "email": "Email", + "password": "Password", + "manage": "Manage" } \ No newline at end of file diff --git a/public/language/id/user.json b/public/language/id/user.json index 5a759613f4..59672763dc 100644 --- a/public/language/id/user.json +++ b/public/language/id/user.json @@ -61,6 +61,7 @@ "change_picture": "Ganti Gambar/Foto", "change_username": "Change Username", "change_email": "Change Email", + "email-updated": "Email Updated", "email_same_as_password": "Please enter your current password to continue – you've entered your new email again", "edit": "Perbarui", "edit-profile": "Edit Profile", diff --git a/public/language/it/admin/manage/users.json b/public/language/it/admin/manage/users.json index f06ec1f32c..4bd4790544 100644 --- a/public/language/it/admin/manage/users.json +++ b/public/language/it/admin/manage/users.json @@ -4,16 +4,21 @@ "edit": "Azioni", "make-admin": "Crea Amministratore", "remove-admin": "Rimuovi Amministratore", + "change-email": "Change Email", + "new-email": "New Email", "validate-email": "Valida Email", "send-validation-email": "Invia Email di Validazione", + "change-password": "Change Password", "password-reset-email": "Invia Email per resettare la password", "force-password-reset": "Forzare il reset della password e Logout dell'utente", - "ban": "Ban Utente(i)", + "ban": "Ban", + "ban-users": "Ban User(s)", "temp-ban": "Ban Utente(i) Temporaneamente", "unban": "Togli Ban Utente(i)", "reset-lockout": "Reset Blocco", "reset-flags": "Reset segnalazioni", - "delete": "EliminaUtente(i)", + "delete": "Delete", + "delete-users": "Delete User(s)", "delete-content": "Elimina contenuto utente/i", "purge": "Elimina Utenti e Contenuto", "download-csv": "Scarica CSV", @@ -81,6 +86,7 @@ "alerts.button-ban-x": "Ban %1 utente(i)", "alerts.unban-success": "Utente(i) a cui è stato tolto il ban!", "alerts.lockout-reset-success": "Reset Blocchi(o)", + "alerts.password-change-success": "Password(s) changed!", "alerts.flag-reset-success": "Segnalazione(i) resettate!", "alerts.no-remove-yourself-admin": "Tu non puoi rimuovere te stesso da Amministratore!", "alerts.make-admin-success": "L'utente adesso è amministratore.", @@ -106,6 +112,7 @@ "alerts.create": "Utente creato", "alerts.button-create": "Crea", "alerts.button-cancel": "Cancella", + "alerts.button-change": "Change", "alerts.error-passwords-different": "Le Password devono coincidere!", "alerts.error-x": "Errore

%1

", "alerts.create-success": "Utente creato!", @@ -113,6 +120,10 @@ "alerts.prompt-email": "Emails:", "alerts.email-sent-to": "Un invito è stato inviato tramite mail a %1", "alerts.x-users-found": "%1 utente(i) trovato(i), (%2 secondi)", + "alerts.select-a-single-user-to-change-email": "Select a single user to change email", "export-users-started": "L'esportazione di utenti come csv potrebbe richiedere del tempo. Riceverai una notifica al termine.", - "export-users-completed": "Utenti esportati come csv, clicca qui per scaricare." + "export-users-completed": "Utenti esportati come csv, clicca qui per scaricare.", + "email": "Email", + "password": "Password", + "manage": "Manage" } \ No newline at end of file diff --git a/public/language/it/user.json b/public/language/it/user.json index 6c4a4a64ca..f87e8c7782 100644 --- a/public/language/it/user.json +++ b/public/language/it/user.json @@ -61,6 +61,7 @@ "change_picture": "Cambia Foto", "change_username": "Modifica il nome utente", "change_email": "Modifica Email", + "email-updated": "Email Updated", "email_same_as_password": "Inserisci la tua password attuale per continuare – hai inserito di nuovo la tua nuova email", "edit": "Modifica", "edit-profile": "Modifica Profilo", diff --git a/public/language/ja/admin/manage/users.json b/public/language/ja/admin/manage/users.json index 82381bab7d..af9f98a27a 100644 --- a/public/language/ja/admin/manage/users.json +++ b/public/language/ja/admin/manage/users.json @@ -4,16 +4,21 @@ "edit": "Actions", "make-admin": "管理者にする", "remove-admin": "管理者を削除", + "change-email": "Change Email", + "new-email": "New Email", "validate-email": "電子メールの", "send-validation-email": "確認メールを送信", + "change-password": "Change Password", "password-reset-email": "パスワードリセットメールを送信する", "force-password-reset": "パスワードのリセットとユーザーのログアウトを強制する", - "ban": "BANされたユーザー(s)", + "ban": "Ban", + "ban-users": "Ban User(s)", "temp-ban": "一時的にユーザー(s)を禁止する", "unban": "BANを解除されたユーザー(s)", "reset-lockout": "ロックアウトのリセット", "reset-flags": "最近のフラグ", - "delete": "Delete User(s)", + "delete": "Delete", + "delete-users": "Delete User(s)", "delete-content": "Delete User(s) Content", "purge": "Delete User(s) and Content", "download-csv": "CSVでダウンロード", @@ -81,6 +86,7 @@ "alerts.button-ban-x": "Banされた %1 ユーザー(s)", "alerts.unban-success": "ユーザー(s)は禁止されています!", "alerts.lockout-reset-success": "ロックアウト(s)がリセットされました!", + "alerts.password-change-success": "Password(s) changed!", "alerts.flag-reset-success": "フラグ(s)をリセット!", "alerts.no-remove-yourself-admin": "あなたは管理者なので自分自身を削除することはできません!", "alerts.make-admin-success": "ユーザーは管理者です", @@ -106,6 +112,7 @@ "alerts.create": "ユーザーを作成", "alerts.button-create": "作成", "alerts.button-cancel": "キャンセル", + "alerts.button-change": "Change", "alerts.error-passwords-different": "パスワードが一致する必要があります!", "alerts.error-x": "エラー

%1

", "alerts.create-success": "ユーザーが作成されました!", @@ -113,6 +120,10 @@ "alerts.prompt-email": "メール:", "alerts.email-sent-to": "招待メールが%1に送られました。", "alerts.x-users-found": "%1 user(s) found, (%2 seconds)", + "alerts.select-a-single-user-to-change-email": "Select a single user to change email", "export-users-started": "Exporting users as csv, this might take a while. You will receive a notification when it is complete.", - "export-users-completed": "Users exported as csv, click here to download." + "export-users-completed": "Users exported as csv, click here to download.", + "email": "Email", + "password": "Password", + "manage": "Manage" } \ No newline at end of file diff --git a/public/language/ja/user.json b/public/language/ja/user.json index 2eccff9c40..930f7330bd 100644 --- a/public/language/ja/user.json +++ b/public/language/ja/user.json @@ -61,6 +61,7 @@ "change_picture": "画像を変更", "change_username": "ユーザー名の変更", "change_email": "メール変更", + "email-updated": "Email Updated", "email_same_as_password": "現在のパスワードを入力して続行してください – 新しいメールアドレスをもう一度入力しました", "edit": "編集", "edit-profile": "プロフィールを編集", diff --git a/public/language/ko/admin/manage/users.json b/public/language/ko/admin/manage/users.json index 49e78ebe3e..144f1e4ad1 100644 --- a/public/language/ko/admin/manage/users.json +++ b/public/language/ko/admin/manage/users.json @@ -4,16 +4,21 @@ "edit": "작업", "make-admin": "관리자 등록", "remove-admin": "관리자 해제", + "change-email": "Change Email", + "new-email": "New Email", "validate-email": "이메일 인증", "send-validation-email": "인증 이메일 발송", + "change-password": "Change Password", "password-reset-email": "비밀번호 초기화 이메일 발송", "force-password-reset": "비밀번호 강제 초기화 & 사용자 로그아웃", - "ban": "사용자 차단", + "ban": "Ban", + "ban-users": "Ban User(s)", "temp-ban": "일시적으로 사용자 차단", "unban": "사용자 차단 해제", "reset-lockout": "잠금 초기화", "reset-flags": "신고 초기화", - "delete": "선택한 계정(들) 삭제", + "delete": "Delete", + "delete-users": "Delete User(s)", "delete-content": "선택한 계정(들)의 컨텐츠 삭제", "purge": "선택한 계정(들)컨텐츠 삭제", "download-csv": "CSV 다운로드", @@ -81,6 +86,7 @@ "alerts.button-ban-x": "%1명의 사용자를 차단", "alerts.unban-success": "사용자의 차단이 해제됐습니다!", "alerts.lockout-reset-success": "잠금이 초기화됐습니다!", + "alerts.password-change-success": "Password(s) changed!", "alerts.flag-reset-success": "신고가 초기화됐습니다!", "alerts.no-remove-yourself-admin": "관리자이기 때문에 본인을 삭제할 수 없습니다!", "alerts.make-admin-success": "사용자는 이제 관리자입니다.", @@ -106,6 +112,7 @@ "alerts.create": "사용자 생성", "alerts.button-create": "생성", "alerts.button-cancel": "취소", + "alerts.button-change": "Change", "alerts.error-passwords-different": "비밀번호가 일치하지 않습니다!", "alerts.error-x": "오류

%1

", "alerts.create-success": "사용자 생성 완료!", @@ -113,6 +120,10 @@ "alerts.prompt-email": "이메일:", "alerts.email-sent-to": "%1에게 초대 이메일이 발송됐습니다.", "alerts.x-users-found": "%1 사용자 해당, (%2초)", + "alerts.select-a-single-user-to-change-email": "Select a single user to change email", "export-users-started": "사용자 리스트를 csv 파일로 내보내기합니다. 이 과정은 약간의 시간이 소요되며 완료되면 알림을 수신합니다.", - "export-users-completed": "사용자 리스트 내보내기 완료, 여기를 눌러 다운로드" + "export-users-completed": "사용자 리스트 내보내기 완료, 여기를 눌러 다운로드", + "email": "Email", + "password": "Password", + "manage": "Manage" } \ No newline at end of file diff --git a/public/language/ko/user.json b/public/language/ko/user.json index 068c0f90d6..55938c93b7 100644 --- a/public/language/ko/user.json +++ b/public/language/ko/user.json @@ -61,6 +61,7 @@ "change_picture": "사진 변경", "change_username": "사용자명 변경", "change_email": "이메일 변경", + "email-updated": "Email Updated", "email_same_as_password": "비밀번호를 입력해서 진행하세요. – 새로운 이메일 주소를 다시 입력했습니다.", "edit": "수정", "edit-profile": "프로필 수정", diff --git a/public/language/lt/admin/manage/users.json b/public/language/lt/admin/manage/users.json index 1fef96f56d..08e5701f40 100644 --- a/public/language/lt/admin/manage/users.json +++ b/public/language/lt/admin/manage/users.json @@ -4,16 +4,21 @@ "edit": "Actions", "make-admin": "Make Admin", "remove-admin": "Remove Admin", + "change-email": "Change Email", + "new-email": "New Email", "validate-email": "Validate Email", "send-validation-email": "Send Validation Email", + "change-password": "Change Password", "password-reset-email": "Send Password Reset Email", "force-password-reset": "Force Password Reset & Log User Out", - "ban": "Ban User(s)", + "ban": "Ban", + "ban-users": "Ban User(s)", "temp-ban": "Ban User(s) Temporarily", "unban": "Unban User(s)", "reset-lockout": "Reset Lockout", "reset-flags": "Reset Flags", - "delete": "Delete User(s)", + "delete": "Delete", + "delete-users": "Delete User(s)", "delete-content": "Delete User(s) Content", "purge": "Delete User(s) and Content", "download-csv": "Download CSV", @@ -81,6 +86,7 @@ "alerts.button-ban-x": "Ban %1 user(s)", "alerts.unban-success": "User(s) unbanned!", "alerts.lockout-reset-success": "Lockout(s) reset!", + "alerts.password-change-success": "Password(s) changed!", "alerts.flag-reset-success": "Flags(s) reset!", "alerts.no-remove-yourself-admin": "You can't remove yourself as Administrator!", "alerts.make-admin-success": "User is now administrator.", @@ -106,6 +112,7 @@ "alerts.create": "Create User", "alerts.button-create": "Create", "alerts.button-cancel": "Cancel", + "alerts.button-change": "Change", "alerts.error-passwords-different": "Passwords must match!", "alerts.error-x": "Error

%1

", "alerts.create-success": "User created!", @@ -113,6 +120,10 @@ "alerts.prompt-email": "Emails: ", "alerts.email-sent-to": "An invitation email has been sent to %1", "alerts.x-users-found": "%1 user(s) found, (%2 seconds)", + "alerts.select-a-single-user-to-change-email": "Select a single user to change email", "export-users-started": "Exporting users as csv, this might take a while. You will receive a notification when it is complete.", - "export-users-completed": "Users exported as csv, click here to download." + "export-users-completed": "Users exported as csv, click here to download.", + "email": "Email", + "password": "Password", + "manage": "Manage" } \ No newline at end of file diff --git a/public/language/lt/user.json b/public/language/lt/user.json index 614df40a30..fd34bca157 100644 --- a/public/language/lt/user.json +++ b/public/language/lt/user.json @@ -61,6 +61,7 @@ "change_picture": "Pakeisti paveikslėlį", "change_username": "Keisti vartotojo vardą", "change_email": "Keisti el. pašto adresą", + "email-updated": "Email Updated", "email_same_as_password": "Please enter your current password to continue – you've entered your new email again", "edit": "Redaguoti", "edit-profile": "Redaguoti profilį", diff --git a/public/language/lv/admin/manage/users.json b/public/language/lv/admin/manage/users.json index 37b84c7515..2be6eb54b3 100644 --- a/public/language/lv/admin/manage/users.json +++ b/public/language/lv/admin/manage/users.json @@ -4,16 +4,21 @@ "edit": "Actions", "make-admin": "Apstiprināt kā administratoru", "remove-admin": "Noņemt administratora tiesības", + "change-email": "Change Email", + "new-email": "New Email", "validate-email": "Apstiprināt e-pasta adresi", "send-validation-email": "Sūtīt apstiprināšanas e-pastu", + "change-password": "Change Password", "password-reset-email": "Sūtīt paroles atiestatīšanas e-pastu", "force-password-reset": "Force Password Reset & Log User Out", - "ban": "Bloķēt lietotāju(-s)", + "ban": "Ban", + "ban-users": "Ban User(s)", "temp-ban": "Bloķēt lietotāju(-s) uz laiku", "unban": "Atbloķēt lietotāju(-s)", "reset-lockout": "Atiestatīt bloķēšanu", "reset-flags": "Atiestatīt atzīmes", - "delete": "Delete User(s)", + "delete": "Delete", + "delete-users": "Delete User(s)", "delete-content": "Delete User(s) Content", "purge": "Delete User(s) and Content", "download-csv": "Lejupielādēt .csv", @@ -81,6 +86,7 @@ "alerts.button-ban-x": "Bloķēt %1 lietotāju(-s)", "alerts.unban-success": "Lietotājs(-i) atbloķēts(-i)", "alerts.lockout-reset-success": "Bloķēšana atiestatīta!", + "alerts.password-change-success": "Password(s) changed!", "alerts.flag-reset-success": "Atzīme(-s) atiestīta(-s)!", "alerts.no-remove-yourself-admin": "Nevar sev noņemt administratora tiesības!", "alerts.make-admin-success": "Lietotājs tagad ir administrators.", @@ -106,6 +112,7 @@ "alerts.create": "Izveidot lietotāju", "alerts.button-create": "Izveidot", "alerts.button-cancel": "Atcelt", + "alerts.button-change": "Change", "alerts.error-passwords-different": "Parolēm jāsakrīt!", "alerts.error-x": "Kļūda

%1

", "alerts.create-success": "Lietotājs izveidots!", @@ -113,6 +120,10 @@ "alerts.prompt-email": "E-pasta adreses:", "alerts.email-sent-to": "Ielūguma e-pasts ir nosūtīts %1", "alerts.x-users-found": "%1 user(s) found, (%2 seconds)", + "alerts.select-a-single-user-to-change-email": "Select a single user to change email", "export-users-started": "Exporting users as csv, this might take a while. You will receive a notification when it is complete.", - "export-users-completed": "Users exported as csv, click here to download." + "export-users-completed": "Users exported as csv, click here to download.", + "email": "Email", + "password": "Password", + "manage": "Manage" } \ No newline at end of file diff --git a/public/language/lv/user.json b/public/language/lv/user.json index 0de8a9e3c5..dd587479f7 100644 --- a/public/language/lv/user.json +++ b/public/language/lv/user.json @@ -61,6 +61,7 @@ "change_picture": "Mainīt bildi", "change_username": "Mainīt lietotājvārdu", "change_email": "Mainīt e-pasta adresi", + "email-updated": "Email Updated", "email_same_as_password": "Please enter your current password to continue – you've entered your new email again", "edit": "Rediģēt", "edit-profile": "Rediģēt profilu", diff --git a/public/language/ms/admin/manage/users.json b/public/language/ms/admin/manage/users.json index 1fef96f56d..08e5701f40 100644 --- a/public/language/ms/admin/manage/users.json +++ b/public/language/ms/admin/manage/users.json @@ -4,16 +4,21 @@ "edit": "Actions", "make-admin": "Make Admin", "remove-admin": "Remove Admin", + "change-email": "Change Email", + "new-email": "New Email", "validate-email": "Validate Email", "send-validation-email": "Send Validation Email", + "change-password": "Change Password", "password-reset-email": "Send Password Reset Email", "force-password-reset": "Force Password Reset & Log User Out", - "ban": "Ban User(s)", + "ban": "Ban", + "ban-users": "Ban User(s)", "temp-ban": "Ban User(s) Temporarily", "unban": "Unban User(s)", "reset-lockout": "Reset Lockout", "reset-flags": "Reset Flags", - "delete": "Delete User(s)", + "delete": "Delete", + "delete-users": "Delete User(s)", "delete-content": "Delete User(s) Content", "purge": "Delete User(s) and Content", "download-csv": "Download CSV", @@ -81,6 +86,7 @@ "alerts.button-ban-x": "Ban %1 user(s)", "alerts.unban-success": "User(s) unbanned!", "alerts.lockout-reset-success": "Lockout(s) reset!", + "alerts.password-change-success": "Password(s) changed!", "alerts.flag-reset-success": "Flags(s) reset!", "alerts.no-remove-yourself-admin": "You can't remove yourself as Administrator!", "alerts.make-admin-success": "User is now administrator.", @@ -106,6 +112,7 @@ "alerts.create": "Create User", "alerts.button-create": "Create", "alerts.button-cancel": "Cancel", + "alerts.button-change": "Change", "alerts.error-passwords-different": "Passwords must match!", "alerts.error-x": "Error

%1

", "alerts.create-success": "User created!", @@ -113,6 +120,10 @@ "alerts.prompt-email": "Emails: ", "alerts.email-sent-to": "An invitation email has been sent to %1", "alerts.x-users-found": "%1 user(s) found, (%2 seconds)", + "alerts.select-a-single-user-to-change-email": "Select a single user to change email", "export-users-started": "Exporting users as csv, this might take a while. You will receive a notification when it is complete.", - "export-users-completed": "Users exported as csv, click here to download." + "export-users-completed": "Users exported as csv, click here to download.", + "email": "Email", + "password": "Password", + "manage": "Manage" } \ No newline at end of file diff --git a/public/language/ms/user.json b/public/language/ms/user.json index b1aeba4977..b72a5c724a 100644 --- a/public/language/ms/user.json +++ b/public/language/ms/user.json @@ -61,6 +61,7 @@ "change_picture": "Tukar gambar", "change_username": "Tukar Nama Pengguna", "change_email": "Tukar Email", + "email-updated": "Email Updated", "email_same_as_password": "Please enter your current password to continue – you've entered your new email again", "edit": "Kemaskini", "edit-profile": "Edit Profile", diff --git a/public/language/nb/admin/manage/users.json b/public/language/nb/admin/manage/users.json index 65f1fd05a5..c415eaccaa 100644 --- a/public/language/nb/admin/manage/users.json +++ b/public/language/nb/admin/manage/users.json @@ -4,16 +4,21 @@ "edit": "Actions", "make-admin": "Make Admin", "remove-admin": "Remove Admin", + "change-email": "Change Email", + "new-email": "New Email", "validate-email": "Validate Email", "send-validation-email": "Send Validation Email", + "change-password": "Change Password", "password-reset-email": "Send Password Reset Email", "force-password-reset": "Force Password Reset & Log User Out", - "ban": "Ban User(s)", + "ban": "Ban", + "ban-users": "Ban User(s)", "temp-ban": "Ban User(s) Temporarily", "unban": "Unban User(s)", "reset-lockout": "Reset Lockout", "reset-flags": "Reset Flags", - "delete": "Delete User(s)", + "delete": "Delete", + "delete-users": "Delete User(s)", "delete-content": "Delete User(s) Content", "purge": "Delete User(s) and Content", "download-csv": "Download CSV", @@ -81,6 +86,7 @@ "alerts.button-ban-x": "Ban %1 user(s)", "alerts.unban-success": "User(s) unbanned!", "alerts.lockout-reset-success": "Lockout(s) reset!", + "alerts.password-change-success": "Password(s) changed!", "alerts.flag-reset-success": "Flags(s) reset!", "alerts.no-remove-yourself-admin": "You can't remove yourself as Administrator!", "alerts.make-admin-success": "User is now administrator.", @@ -106,6 +112,7 @@ "alerts.create": "Create User", "alerts.button-create": "Create", "alerts.button-cancel": "Cancel", + "alerts.button-change": "Change", "alerts.error-passwords-different": "Passwords must match!", "alerts.error-x": "Error

%1

", "alerts.create-success": "User created!", @@ -113,6 +120,10 @@ "alerts.prompt-email": "Emails: ", "alerts.email-sent-to": "En invitasjonse-post har blitt sendt til %1", "alerts.x-users-found": "%1 user(s) found, (%2 seconds)", + "alerts.select-a-single-user-to-change-email": "Select a single user to change email", "export-users-started": "Exporting users as csv, this might take a while. You will receive a notification when it is complete.", - "export-users-completed": "Users exported as csv, click here to download." + "export-users-completed": "Users exported as csv, click here to download.", + "email": "Email", + "password": "Password", + "manage": "Manage" } \ No newline at end of file diff --git a/public/language/nb/user.json b/public/language/nb/user.json index 83ca7881be..9b028e4a73 100644 --- a/public/language/nb/user.json +++ b/public/language/nb/user.json @@ -61,6 +61,7 @@ "change_picture": "Bytt bilde", "change_username": "Endre brukernavn", "change_email": "Endre e-post", + "email-updated": "Email Updated", "email_same_as_password": "Skriv inn ditt nåværende passord for å fortsette – du har skrevet inn den nye e-posten din igjen", "edit": "Endre", "edit-profile": "Rediger profil", diff --git a/public/language/nl/admin/manage/users.json b/public/language/nl/admin/manage/users.json index 747a92d3b2..df2bb773bc 100644 --- a/public/language/nl/admin/manage/users.json +++ b/public/language/nl/admin/manage/users.json @@ -4,16 +4,21 @@ "edit": "Actions", "make-admin": "Maak administrator", "remove-admin": "Verwijder administrator", + "change-email": "Change Email", + "new-email": "New Email", "validate-email": "Bevestig Email", "send-validation-email": "Verstuur Email bevestiging", + "change-password": "Change Password", "password-reset-email": "Verstuur wachtwoord herstel email", "force-password-reset": "Force Password Reset & Log User Out", - "ban": "Verban gebruiker(s)", + "ban": "Ban", + "ban-users": "Ban User(s)", "temp-ban": "Verban gebruiker(s) tijdelijk", "unban": "Unban User(s)", "reset-lockout": "Reset Lockout", "reset-flags": "Reset Flags", - "delete": "Delete User(s)", + "delete": "Delete", + "delete-users": "Delete User(s)", "delete-content": "Delete User(s) Content", "purge": "Delete User(s) and Content", "download-csv": "Download CSV", @@ -81,6 +86,7 @@ "alerts.button-ban-x": "Ban %1 user(s)", "alerts.unban-success": "User(s) unbanned!", "alerts.lockout-reset-success": "Lockout(s) reset!", + "alerts.password-change-success": "Password(s) changed!", "alerts.flag-reset-success": "Flags(s) reset!", "alerts.no-remove-yourself-admin": "You can't remove yourself as Administrator!", "alerts.make-admin-success": "User is now administrator.", @@ -106,6 +112,7 @@ "alerts.create": "Create User", "alerts.button-create": "Create", "alerts.button-cancel": "Cancel", + "alerts.button-change": "Change", "alerts.error-passwords-different": "Passwords must match!", "alerts.error-x": "Error

%1

", "alerts.create-success": "User created!", @@ -113,6 +120,10 @@ "alerts.prompt-email": "Emails: ", "alerts.email-sent-to": "An invitation email has been sent to %1", "alerts.x-users-found": "%1 user(s) found, (%2 seconds)", + "alerts.select-a-single-user-to-change-email": "Select a single user to change email", "export-users-started": "Exporting users as csv, this might take a while. You will receive a notification when it is complete.", - "export-users-completed": "Users exported as csv, click here to download." + "export-users-completed": "Users exported as csv, click here to download.", + "email": "Email", + "password": "Password", + "manage": "Manage" } \ No newline at end of file diff --git a/public/language/nl/user.json b/public/language/nl/user.json index 843dbb0b60..b3d917d709 100644 --- a/public/language/nl/user.json +++ b/public/language/nl/user.json @@ -61,6 +61,7 @@ "change_picture": "Bewerk afbeelding", "change_username": "Wijzig gebruikersnaam", "change_email": "Wijzig email", + "email-updated": "Email Updated", "email_same_as_password": "Voer uw huidige wachtwoord in om door te gaan – u heeft uw nieuwe e-mail weer ingevoered", "edit": "Bewerken", "edit-profile": "Profiel wijzigen", diff --git a/public/language/pl/admin/manage/users.json b/public/language/pl/admin/manage/users.json index 7cf406d251..19ce6612a8 100644 --- a/public/language/pl/admin/manage/users.json +++ b/public/language/pl/admin/manage/users.json @@ -4,16 +4,21 @@ "edit": "Actions", "make-admin": "Nadaj uprawnienia administratora", "remove-admin": "Odbierz uprawnienia administratora", + "change-email": "Change Email", + "new-email": "New Email", "validate-email": "Zweryfikuj e-mail", "send-validation-email": "Wyślij e-mail weryfikacyjny", + "change-password": "Change Password", "password-reset-email": "Wyślij e-mail do resetu hasła", "force-password-reset": "Wymuś Zmianę Hasła i Wyloguj Użytkownika", - "ban": "Zbanuj użytkownika(-ów)", + "ban": "Ban", + "ban-users": "Ban User(s)", "temp-ban": "Tymczasowo zbanuj użytkownika(-ów)", "unban": "Odbanuj użytkownika(-ów)", "reset-lockout": "Zresetuj blokadę", "reset-flags": "Zresetuj flagi", - "delete": "Usuń Użytkownika(ów)", + "delete": "Delete", + "delete-users": "Delete User(s)", "delete-content": "Usuń Treści Użytkownika(ów)", "purge": "Usuń Użytkownika(ów) i Treści", "download-csv": "Pobierz CSV", @@ -81,6 +86,7 @@ "alerts.button-ban-x": "Zbanowano %1 użytkownika(-ów)", "alerts.unban-success": "Użytkownik(-cy) nie są już zbanowani!", "alerts.lockout-reset-success": "Zresetowano blokadę(-y)!", + "alerts.password-change-success": "Password(s) changed!", "alerts.flag-reset-success": "Zresetowano flagę(-i)!", "alerts.no-remove-yourself-admin": "Nie możesz odebrać sobie samemu praw administratora.", "alerts.make-admin-success": "Użytkownik jest teraz administratorem.", @@ -106,6 +112,7 @@ "alerts.create": "Utwórz użytkownika", "alerts.button-create": "Utwórz", "alerts.button-cancel": "Anuluj", + "alerts.button-change": "Change", "alerts.error-passwords-different": "Hasła muszą być takie same!", "alerts.error-x": "Błąd

%1

", "alerts.create-success": "Utworzono użytkownika!", @@ -113,6 +120,10 @@ "alerts.prompt-email": "Adresy e-mail:", "alerts.email-sent-to": "Wysłano zaproszenie do %1", "alerts.x-users-found": "Znaleziono %1 użytkownika(-ów), (czas wyszukiwania: %2 s)", + "alerts.select-a-single-user-to-change-email": "Select a single user to change email", "export-users-started": "Exporting users as csv, this might take a while. You will receive a notification when it is complete.", - "export-users-completed": "Users exported as csv, click here to download." + "export-users-completed": "Users exported as csv, click here to download.", + "email": "Email", + "password": "Password", + "manage": "Manage" } \ No newline at end of file diff --git a/public/language/pl/user.json b/public/language/pl/user.json index f7077296b6..2a800d57ba 100644 --- a/public/language/pl/user.json +++ b/public/language/pl/user.json @@ -61,6 +61,7 @@ "change_picture": "Zmień zdjęcie", "change_username": "Zmień nazwę użytkownika", "change_email": "Zmień adres e-mail", + "email-updated": "Email Updated", "email_same_as_password": "Wprowadź bieżące hasło, aby kontynuować – ponownie wprowadziłeś nową wiadomość e-mail", "edit": "Edytuj", "edit-profile": "Edytuj profil", diff --git a/public/language/pt-BR/admin/manage/users.json b/public/language/pt-BR/admin/manage/users.json index 86b3970b74..6bb45a1700 100644 --- a/public/language/pt-BR/admin/manage/users.json +++ b/public/language/pt-BR/admin/manage/users.json @@ -4,16 +4,21 @@ "edit": "Actions", "make-admin": "Tornar Administrador", "remove-admin": "Excluir Administrador", + "change-email": "Change Email", + "new-email": "New Email", "validate-email": "Validar E-mail", "send-validation-email": "Enviar E-mail de Validação", + "change-password": "Change Password", "password-reset-email": "Enviar E-mail de Redefinição de Senha", "force-password-reset": "Forçar a Redifinição de Senha & Desconectar Usuário", - "ban": "Banir Usuário(s)", + "ban": "Ban", + "ban-users": "Ban User(s)", "temp-ban": "Banir Usuário(s) Temporariamente", "unban": "Desbanir Usuário(s)", "reset-lockout": "Excluir Bloqueio", "reset-flags": "Resetar Sinalizações", - "delete": "Excluir Usuário(s)", + "delete": "Delete", + "delete-users": "Delete User(s)", "delete-content": "Excluir Conteúdo do(s) Usuário(s)", "purge": "Excluir Usuário(s) e Conteúdo", "download-csv": "Baixar CSV", @@ -81,6 +86,7 @@ "alerts.button-ban-x": "Banir %1 usuário(s)", "alerts.unban-success": "Usuário(s) desbanidos!", "alerts.lockout-reset-success": "Bloqueio(s) redefinidos!", + "alerts.password-change-success": "Password(s) changed!", "alerts.flag-reset-success": "Sinalização(ões) excluída(s)!", "alerts.no-remove-yourself-admin": "Você não pode remover a si mesmo como Administrador!", "alerts.make-admin-success": "O usuário agora é administrador.", @@ -106,6 +112,7 @@ "alerts.create": "Criar Usuário", "alerts.button-create": "Criar", "alerts.button-cancel": "Cancelar", + "alerts.button-change": "Change", "alerts.error-passwords-different": "As senhas devem combinar!", "alerts.error-x": "Erro

%1

", "alerts.create-success": "Usuário criado!", @@ -113,6 +120,10 @@ "alerts.prompt-email": "E-mails:", "alerts.email-sent-to": "Um e-mail de convite foi enviado para %1", "alerts.x-users-found": "%1 usuário(s) encontrados, (%2 segundos)", + "alerts.select-a-single-user-to-change-email": "Select a single user to change email", "export-users-started": "Exportando usuários como csv, isso pode demorar um pouco. Você receberá uma notificação quando isso for concluído.", - "export-users-completed": "Usuários exportados como csv, clique aqui para fazer o download." + "export-users-completed": "Usuários exportados como csv, clique aqui para fazer o download.", + "email": "Email", + "password": "Password", + "manage": "Manage" } \ No newline at end of file diff --git a/public/language/pt-BR/user.json b/public/language/pt-BR/user.json index 481152fc24..1dd11d2030 100644 --- a/public/language/pt-BR/user.json +++ b/public/language/pt-BR/user.json @@ -61,6 +61,7 @@ "change_picture": "Alterar Foto", "change_username": "Mudar nome de usuário", "change_email": "Mudar email", + "email-updated": "Email Updated", "email_same_as_password": "Por favor, digite a sua senha atual para continuar – você digitou o seu novo e-mail novamente", "edit": "Editar", "edit-profile": "Editar Perfil", diff --git a/public/language/pt-PT/admin/manage/users.json b/public/language/pt-PT/admin/manage/users.json index 948989505a..c59c0f1b11 100644 --- a/public/language/pt-PT/admin/manage/users.json +++ b/public/language/pt-PT/admin/manage/users.json @@ -4,16 +4,21 @@ "edit": "Actions", "make-admin": "Tornar Administrador", "remove-admin": "Remover Administrador", + "change-email": "Change Email", + "new-email": "New Email", "validate-email": "Validar E-mail", "send-validation-email": "Enviar Validação de E-mail", + "change-password": "Change Password", "password-reset-email": "Enviar E-mail de Reposição de Palavra-passe", "force-password-reset": "Force Password Reset & Log User Out", - "ban": "Banir Utilizador(es)", + "ban": "Ban", + "ban-users": "Ban User(s)", "temp-ban": "Banir Utilizador(es) Temporariamente", "unban": "Desbanir Utilizador(es)", "reset-lockout": "Redefinir Bloqueio", "reset-flags": "Redefinir Denúncias", - "delete": "Eliminar Utilizador(es)", + "delete": "Delete", + "delete-users": "Delete User(s)", "delete-content": "Eliminar Conteúdo do(s) Utilizador(es)", "purge": "Eliminar Utilizador(es) e os seus Conteúdos", "download-csv": "Transferir CSV", @@ -81,6 +86,7 @@ "alerts.button-ban-x": "Banir %1 utilizador(es)", "alerts.unban-success": "Utilizador(es) desbanido(s)!", "alerts.lockout-reset-success": "Bloqueio(s) redefinido(s)!", + "alerts.password-change-success": "Password(s) changed!", "alerts.flag-reset-success": "Denúncia(s) redefinida(s)!", "alerts.no-remove-yourself-admin": "Não podes remover a ti próprio como Administrador!", "alerts.make-admin-success": "O utilizador é agora um administrador.", @@ -106,6 +112,7 @@ "alerts.create": "Criar Utilizador", "alerts.button-create": "Criar", "alerts.button-cancel": "Cancelar", + "alerts.button-change": "Change", "alerts.error-passwords-different": "As palavras-passe têm de coincidir!", "alerts.error-x": "Erro

%1

", "alerts.create-success": "Utilizador criado!", @@ -113,6 +120,10 @@ "alerts.prompt-email": "E-mails:", "alerts.email-sent-to": "Foi enviado um e-mail de convite para %1", "alerts.x-users-found": "%1 utilizador(es) encontrado(s), (%2 segundos)", + "alerts.select-a-single-user-to-change-email": "Select a single user to change email", "export-users-started": "Exporting users as csv, this might take a while. You will receive a notification when it is complete.", - "export-users-completed": "Users exported as csv, click here to download." + "export-users-completed": "Users exported as csv, click here to download.", + "email": "Email", + "password": "Password", + "manage": "Manage" } \ No newline at end of file diff --git a/public/language/pt-PT/user.json b/public/language/pt-PT/user.json index 0b08a709e2..4b1ef200c9 100644 --- a/public/language/pt-PT/user.json +++ b/public/language/pt-PT/user.json @@ -61,6 +61,7 @@ "change_picture": "Alterar fotografia", "change_username": "Alterar Nome de Utilizador", "change_email": "Alterar E-mail", + "email-updated": "Email Updated", "email_same_as_password": "Por favor, insere a tua palavra-passe atual para continuar – tu inseriste o teu novo e-mail novamente", "edit": "Editar", "edit-profile": "Editar perfil", diff --git a/public/language/ro/admin/manage/users.json b/public/language/ro/admin/manage/users.json index 1fef96f56d..08e5701f40 100644 --- a/public/language/ro/admin/manage/users.json +++ b/public/language/ro/admin/manage/users.json @@ -4,16 +4,21 @@ "edit": "Actions", "make-admin": "Make Admin", "remove-admin": "Remove Admin", + "change-email": "Change Email", + "new-email": "New Email", "validate-email": "Validate Email", "send-validation-email": "Send Validation Email", + "change-password": "Change Password", "password-reset-email": "Send Password Reset Email", "force-password-reset": "Force Password Reset & Log User Out", - "ban": "Ban User(s)", + "ban": "Ban", + "ban-users": "Ban User(s)", "temp-ban": "Ban User(s) Temporarily", "unban": "Unban User(s)", "reset-lockout": "Reset Lockout", "reset-flags": "Reset Flags", - "delete": "Delete User(s)", + "delete": "Delete", + "delete-users": "Delete User(s)", "delete-content": "Delete User(s) Content", "purge": "Delete User(s) and Content", "download-csv": "Download CSV", @@ -81,6 +86,7 @@ "alerts.button-ban-x": "Ban %1 user(s)", "alerts.unban-success": "User(s) unbanned!", "alerts.lockout-reset-success": "Lockout(s) reset!", + "alerts.password-change-success": "Password(s) changed!", "alerts.flag-reset-success": "Flags(s) reset!", "alerts.no-remove-yourself-admin": "You can't remove yourself as Administrator!", "alerts.make-admin-success": "User is now administrator.", @@ -106,6 +112,7 @@ "alerts.create": "Create User", "alerts.button-create": "Create", "alerts.button-cancel": "Cancel", + "alerts.button-change": "Change", "alerts.error-passwords-different": "Passwords must match!", "alerts.error-x": "Error

%1

", "alerts.create-success": "User created!", @@ -113,6 +120,10 @@ "alerts.prompt-email": "Emails: ", "alerts.email-sent-to": "An invitation email has been sent to %1", "alerts.x-users-found": "%1 user(s) found, (%2 seconds)", + "alerts.select-a-single-user-to-change-email": "Select a single user to change email", "export-users-started": "Exporting users as csv, this might take a while. You will receive a notification when it is complete.", - "export-users-completed": "Users exported as csv, click here to download." + "export-users-completed": "Users exported as csv, click here to download.", + "email": "Email", + "password": "Password", + "manage": "Manage" } \ No newline at end of file diff --git a/public/language/ro/user.json b/public/language/ro/user.json index ab622da988..3b12561272 100644 --- a/public/language/ro/user.json +++ b/public/language/ro/user.json @@ -61,6 +61,7 @@ "change_picture": "Schimbă Poza", "change_username": "Change Username", "change_email": "Change Email", + "email-updated": "Email Updated", "email_same_as_password": "Please enter your current password to continue – you've entered your new email again", "edit": "Editează", "edit-profile": "Edit Profile", diff --git a/public/language/ru/admin/manage/users.json b/public/language/ru/admin/manage/users.json index ac9fa0e2da..207b7934f0 100644 --- a/public/language/ru/admin/manage/users.json +++ b/public/language/ru/admin/manage/users.json @@ -4,16 +4,21 @@ "edit": "Действия", "make-admin": "Сделать администратором", "remove-admin": "Удалить администратора", + "change-email": "Change Email", + "new-email": "New Email", "validate-email": "Подтвердить адрес электронной почты", "send-validation-email": "Отправить письмо с кодом подтверждения", + "change-password": "Change Password", "password-reset-email": "Отправить письмо для сброса пароля", "force-password-reset": "Сбросить пароль и завершить сессию пользователя", - "ban": "Заблокировать пользователя(-ей)", + "ban": "Ban", + "ban-users": "Ban User(s)", "temp-ban": "Временно заблокировать пользователя(-ей)", "unban": "Разблокировать пользователя(-ей)", "reset-lockout": "Снять локаут", "reset-flags": "Сбросить счётчик жалоб", - "delete": "Удалить пользователя(-ей)", + "delete": "Delete", + "delete-users": "Delete User(s)", "delete-content": "Удалить данные пользователя(-ей)", "purge": "Удалить пользователя(-ей) и данные", "download-csv": "Скачать CSV", @@ -81,6 +86,7 @@ "alerts.button-ban-x": "Заблокировать %1 пользователя(-ей)", "alerts.unban-success": "Пользователь(и) разблокирован(ы)!", "alerts.lockout-reset-success": "Локаут снят!", + "alerts.password-change-success": "Password(s) changed!", "alerts.flag-reset-success": "Счётчик жалоб сброшен!", "alerts.no-remove-yourself-admin": "Вы не можете удалить себя из администраторов!", "alerts.make-admin-success": "Пользователь теперь Администратор.", @@ -106,6 +112,7 @@ "alerts.create": "Создать пользователя", "alerts.button-create": "Создать", "alerts.button-cancel": "Отмена", + "alerts.button-change": "Change", "alerts.error-passwords-different": "Пароли должны совпадать!", "alerts.error-x": "Ошибка

%1

", "alerts.create-success": "Пользователь создан!", @@ -113,6 +120,10 @@ "alerts.prompt-email": "Адреса электронной почты:", "alerts.email-sent-to": "Письмо с приглашением для %1 отправлено", "alerts.x-users-found": "%1 пользователь(ей) найдено, (%2 секунды)", + "alerts.select-a-single-user-to-change-email": "Select a single user to change email", "export-users-started": "Экспорт пользователей в формате CSV может занять некоторое время. Вы получите уведомление, по завершению процесса.", - "export-users-completed": "Пользователи, экспортированные в формате csv, нажмите здесь, чтобы загрузить." + "export-users-completed": "Пользователи, экспортированные в формате csv, нажмите здесь, чтобы загрузить.", + "email": "Email", + "password": "Password", + "manage": "Manage" } \ No newline at end of file diff --git a/public/language/ru/user.json b/public/language/ru/user.json index 9f11274866..f4af87f96f 100644 --- a/public/language/ru/user.json +++ b/public/language/ru/user.json @@ -61,6 +61,7 @@ "change_picture": "Изменить аватар", "change_username": "Изменить имя пользователя", "change_email": "Изменить электронную почту", + "email-updated": "Email Updated", "email_same_as_password": "Пожалуйста, введите пароль, чтобы продолжить – вы снова указали свой новый адрес электронной почты", "edit": "Редактировать", "edit-profile": "Редактировать профиль", diff --git a/public/language/rw/admin/manage/users.json b/public/language/rw/admin/manage/users.json index 1fef96f56d..08e5701f40 100644 --- a/public/language/rw/admin/manage/users.json +++ b/public/language/rw/admin/manage/users.json @@ -4,16 +4,21 @@ "edit": "Actions", "make-admin": "Make Admin", "remove-admin": "Remove Admin", + "change-email": "Change Email", + "new-email": "New Email", "validate-email": "Validate Email", "send-validation-email": "Send Validation Email", + "change-password": "Change Password", "password-reset-email": "Send Password Reset Email", "force-password-reset": "Force Password Reset & Log User Out", - "ban": "Ban User(s)", + "ban": "Ban", + "ban-users": "Ban User(s)", "temp-ban": "Ban User(s) Temporarily", "unban": "Unban User(s)", "reset-lockout": "Reset Lockout", "reset-flags": "Reset Flags", - "delete": "Delete User(s)", + "delete": "Delete", + "delete-users": "Delete User(s)", "delete-content": "Delete User(s) Content", "purge": "Delete User(s) and Content", "download-csv": "Download CSV", @@ -81,6 +86,7 @@ "alerts.button-ban-x": "Ban %1 user(s)", "alerts.unban-success": "User(s) unbanned!", "alerts.lockout-reset-success": "Lockout(s) reset!", + "alerts.password-change-success": "Password(s) changed!", "alerts.flag-reset-success": "Flags(s) reset!", "alerts.no-remove-yourself-admin": "You can't remove yourself as Administrator!", "alerts.make-admin-success": "User is now administrator.", @@ -106,6 +112,7 @@ "alerts.create": "Create User", "alerts.button-create": "Create", "alerts.button-cancel": "Cancel", + "alerts.button-change": "Change", "alerts.error-passwords-different": "Passwords must match!", "alerts.error-x": "Error

%1

", "alerts.create-success": "User created!", @@ -113,6 +120,10 @@ "alerts.prompt-email": "Emails: ", "alerts.email-sent-to": "An invitation email has been sent to %1", "alerts.x-users-found": "%1 user(s) found, (%2 seconds)", + "alerts.select-a-single-user-to-change-email": "Select a single user to change email", "export-users-started": "Exporting users as csv, this might take a while. You will receive a notification when it is complete.", - "export-users-completed": "Users exported as csv, click here to download." + "export-users-completed": "Users exported as csv, click here to download.", + "email": "Email", + "password": "Password", + "manage": "Manage" } \ No newline at end of file diff --git a/public/language/rw/user.json b/public/language/rw/user.json index 40c14485b3..5f6eb1cdb4 100644 --- a/public/language/rw/user.json +++ b/public/language/rw/user.json @@ -61,6 +61,7 @@ "change_picture": "Hindura Ifoto", "change_username": "Hindura Izina", "change_email": "Hindura Email", + "email-updated": "Email Updated", "email_same_as_password": "Please enter your current password to continue – you've entered your new email again", "edit": "Hinduraho", "edit-profile": "Hinduraho ku Ishusho", diff --git a/public/language/sc/admin/manage/users.json b/public/language/sc/admin/manage/users.json index 1fef96f56d..08e5701f40 100644 --- a/public/language/sc/admin/manage/users.json +++ b/public/language/sc/admin/manage/users.json @@ -4,16 +4,21 @@ "edit": "Actions", "make-admin": "Make Admin", "remove-admin": "Remove Admin", + "change-email": "Change Email", + "new-email": "New Email", "validate-email": "Validate Email", "send-validation-email": "Send Validation Email", + "change-password": "Change Password", "password-reset-email": "Send Password Reset Email", "force-password-reset": "Force Password Reset & Log User Out", - "ban": "Ban User(s)", + "ban": "Ban", + "ban-users": "Ban User(s)", "temp-ban": "Ban User(s) Temporarily", "unban": "Unban User(s)", "reset-lockout": "Reset Lockout", "reset-flags": "Reset Flags", - "delete": "Delete User(s)", + "delete": "Delete", + "delete-users": "Delete User(s)", "delete-content": "Delete User(s) Content", "purge": "Delete User(s) and Content", "download-csv": "Download CSV", @@ -81,6 +86,7 @@ "alerts.button-ban-x": "Ban %1 user(s)", "alerts.unban-success": "User(s) unbanned!", "alerts.lockout-reset-success": "Lockout(s) reset!", + "alerts.password-change-success": "Password(s) changed!", "alerts.flag-reset-success": "Flags(s) reset!", "alerts.no-remove-yourself-admin": "You can't remove yourself as Administrator!", "alerts.make-admin-success": "User is now administrator.", @@ -106,6 +112,7 @@ "alerts.create": "Create User", "alerts.button-create": "Create", "alerts.button-cancel": "Cancel", + "alerts.button-change": "Change", "alerts.error-passwords-different": "Passwords must match!", "alerts.error-x": "Error

%1

", "alerts.create-success": "User created!", @@ -113,6 +120,10 @@ "alerts.prompt-email": "Emails: ", "alerts.email-sent-to": "An invitation email has been sent to %1", "alerts.x-users-found": "%1 user(s) found, (%2 seconds)", + "alerts.select-a-single-user-to-change-email": "Select a single user to change email", "export-users-started": "Exporting users as csv, this might take a while. You will receive a notification when it is complete.", - "export-users-completed": "Users exported as csv, click here to download." + "export-users-completed": "Users exported as csv, click here to download.", + "email": "Email", + "password": "Password", + "manage": "Manage" } \ No newline at end of file diff --git a/public/language/sc/modules.json b/public/language/sc/modules.json index 9742cec1f5..478fb6a8a0 100644 --- a/public/language/sc/modules.json +++ b/public/language/sc/modules.json @@ -9,7 +9,10 @@ "chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others", "chat.send": "Imbia", "chat.no_active": "Non tenes tzarras ativas.", - "chat.user_typing": "%1 is typing ...", + "chat.user_typing_1": "%1 is typing ...", + "chat.user_typing_2": "%1 and %2 are typing ...", + "chat.user_typing_3": "%1, %2 and %3 are typing ...", + "chat.user_typing_n": "%1, %2 and %3 others are typing ...", "chat.user_has_messaged_you": "%1 has messaged you.", "chat.replying-to": "Replying to %1", "chat.see_all": "All chats", @@ -30,6 +33,10 @@ "chat.delete_message_confirm": "Are you sure you wish to delete this message?", "chat.retrieving-users": "Retrieving users...", "chat.view-users-list": "View users list", + "chat.pinned-messages": "Pinned Messages", + "chat.no-pinned-messages": "There are no pinned messages", + "chat.pin-message": "Pin Message", + "chat.unpin-message": "Unpin Message", "chat.public-rooms": "Public Rooms (%1)", "chat.private-rooms": "Private Rooms (%1)", "chat.create-room": "Create Chat Room", @@ -88,6 +95,7 @@ "composer.zen_mode": "Zen Mode", "composer.select_category": "Select a category", "composer.textarea.placeholder": "Enter your post content here, drag and drop images", + "composer.post-queue-alert": "Hello👋!
This forum uses a post queue system, since you are a new user your post will be hidden until it is approved by our moderation team.", "composer.schedule-for": "Schedule topic for", "composer.schedule-date": "Date", "composer.schedule-time": "Time", diff --git a/public/language/sc/user.json b/public/language/sc/user.json index 533fb3e63d..90d6c8b025 100644 --- a/public/language/sc/user.json +++ b/public/language/sc/user.json @@ -61,6 +61,7 @@ "change_picture": "Muda Immàgine", "change_username": "Change Username", "change_email": "Change Email", + "email-updated": "Email Updated", "email_same_as_password": "Please enter your current password to continue – you've entered your new email again", "edit": "Acontza", "edit-profile": "Edit Profile", diff --git a/public/language/sk/admin/manage/users.json b/public/language/sk/admin/manage/users.json index d6493bbf0a..59aa33d56b 100644 --- a/public/language/sk/admin/manage/users.json +++ b/public/language/sk/admin/manage/users.json @@ -4,16 +4,21 @@ "edit": "Actions", "make-admin": "Urobiť správcom", "remove-admin": "Odobrať správcu", + "change-email": "Change Email", + "new-email": "New Email", "validate-email": "Overiť e-mail", "send-validation-email": "Poslať overovací e-mail", + "change-password": "Change Password", "password-reset-email": "Poslať e-mail k obnove hesla", "force-password-reset": "Force Password Reset & Log User Out", - "ban": "Zablokovať používateľa(ov)", + "ban": "Ban", + "ban-users": "Ban User(s)", "temp-ban": "Dočasne zablokovať používateľa(ov)", "unban": "Zrušiť zákaz používateľa", "reset-lockout": "Obnoviť uzamknutie", "reset-flags": "Obnoviť označenia", - "delete": "Delete User(s)", + "delete": "Delete", + "delete-users": "Delete User(s)", "delete-content": "Delete User(s) Content", "purge": "Delete User(s) and Content", "download-csv": "Stiahnuť ako CSV", @@ -81,6 +86,7 @@ "alerts.button-ban-x": "Zakázať %1 používateľa.", "alerts.unban-success": "Zablokovanie používateľa bolo zrušené!", "alerts.lockout-reset-success": "Uzamknutie bolo obnovené!", + "alerts.password-change-success": "Password(s) changed!", "alerts.flag-reset-success": "Príznak(y) boli obnovené!", "alerts.no-remove-yourself-admin": "Seba samého ako správcu nemôžete odstrániť!", "alerts.make-admin-success": "Používateľ je odteraz správcom", @@ -106,6 +112,7 @@ "alerts.create": "Vytvoriť používateľa", "alerts.button-create": "Vytvoriť", "alerts.button-cancel": "Zrušiť", + "alerts.button-change": "Change", "alerts.error-passwords-different": "Hesla musia byť zhodné!", "alerts.error-x": "Chyba

%1

", "alerts.create-success": "Používateľ bol vytvorený!", @@ -113,6 +120,10 @@ "alerts.prompt-email": "Emails: ", "alerts.email-sent-to": "E-mail s pozvánkou bol odoslaný na %1", "alerts.x-users-found": "%1 user(s) found, (%2 seconds)", + "alerts.select-a-single-user-to-change-email": "Select a single user to change email", "export-users-started": "Exporting users as csv, this might take a while. You will receive a notification when it is complete.", - "export-users-completed": "Users exported as csv, click here to download." + "export-users-completed": "Users exported as csv, click here to download.", + "email": "Email", + "password": "Password", + "manage": "Manage" } \ No newline at end of file diff --git a/public/language/sk/user.json b/public/language/sk/user.json index 81b5555746..7b6baef392 100644 --- a/public/language/sk/user.json +++ b/public/language/sk/user.json @@ -61,6 +61,7 @@ "change_picture": "Zmeniť obrázok", "change_username": "Zmeniť užívateľské meno", "change_email": "Zmeniť e-mail", + "email-updated": "Email Updated", "email_same_as_password": "Please enter your current password to continue – you've entered your new email again", "edit": "Upraviť", "edit-profile": "Upraviť profil", diff --git a/public/language/sl/admin/manage/users.json b/public/language/sl/admin/manage/users.json index b7604c0d00..b03aee6b12 100644 --- a/public/language/sl/admin/manage/users.json +++ b/public/language/sl/admin/manage/users.json @@ -4,16 +4,21 @@ "edit": "Dejanja", "make-admin": "Nastavi kot skrbnika", "remove-admin": "Odstrani kot skrbnika", + "change-email": "Change Email", + "new-email": "New Email", "validate-email": "Potrdite e-poštni naslov", "send-validation-email": "Pošljite potrditveno e-sporočilo", + "change-password": "Change Password", "password-reset-email": "Pošljite e-poštno sporočilo za ponastavitev gesla", "force-password-reset": "Vsilite ponastavitev gesla in odjavo uporabnika", - "ban": "Prepovejte uporabnika(e)", + "ban": "Ban", + "ban-users": "Ban User(s)", "temp-ban": "Začasno prepovejte uporabnika(e)", "unban": "Razveljavi prepoved uporabnika(ov)", "reset-lockout": "Ponastavitev zaklepanja", "reset-flags": "Reset Flags", - "delete": "Izbrišiteuporabnika(e)", + "delete": "Delete", + "delete-users": "Delete User(s)", "delete-content": "Izbrišite Vsebino uporabnika(ov)", "purge": "Izbrišiteuporabnika(e) in vsebino", "download-csv": "Prenesite CSV", @@ -81,6 +86,7 @@ "alerts.button-ban-x": "Ban %1 user(s)", "alerts.unban-success": "User(s) unbanned!", "alerts.lockout-reset-success": "Lockout(s) reset!", + "alerts.password-change-success": "Password(s) changed!", "alerts.flag-reset-success": "Flags(s) reset!", "alerts.no-remove-yourself-admin": "Sebe kot skrbnika ne morete odstraniti!", "alerts.make-admin-success": "Uporabnik je sedaj skrbnik.", @@ -106,6 +112,7 @@ "alerts.create": "Ustvari uporabnika", "alerts.button-create": "Ustvari", "alerts.button-cancel": "Prekliči", + "alerts.button-change": "Change", "alerts.error-passwords-different": "Gesli se morata ujemati!", "alerts.error-x": "Napaka

%1

", "alerts.create-success": "Uporabnik je ustvarjen!", @@ -113,6 +120,10 @@ "alerts.prompt-email": "E-poštni naslovi:", "alerts.email-sent-to": "E -poštno sporočilo s povabilom je bilo poslano %1", "alerts.x-users-found": "%1 najdenih uporabnik(ov), (%2 sekund)", + "alerts.select-a-single-user-to-change-email": "Select a single user to change email", "export-users-started": "Izvoz uporabnikov kot CSV lahko traja nekaj časa. Ko bo končano, boste prejeli obvestilo.", - "export-users-completed": "Uporabniki, izvoženi kot CSV, kliknite tukaj za prenos." + "export-users-completed": "Uporabniki, izvoženi kot CSV, kliknite tukaj za prenos.", + "email": "Email", + "password": "Password", + "manage": "Manage" } \ No newline at end of file diff --git a/public/language/sl/user.json b/public/language/sl/user.json index f111164191..c83d4ddc2a 100644 --- a/public/language/sl/user.json +++ b/public/language/sl/user.json @@ -61,6 +61,7 @@ "change_picture": "Spremeni sliko", "change_username": "Spremeni uporabniško ime", "change_email": "Spremeni e-poštni naslov", + "email-updated": "Email Updated", "email_same_as_password": "Za nadaljevanje vnesite svoje trenutno geslo & ndash; ponovno ste vnesli svoj novi e-poštni naslov", "edit": "Uredi", "edit-profile": "Uredi profil", diff --git a/public/language/sq-AL/admin/manage/users.json b/public/language/sq-AL/admin/manage/users.json index 1fef96f56d..08e5701f40 100644 --- a/public/language/sq-AL/admin/manage/users.json +++ b/public/language/sq-AL/admin/manage/users.json @@ -4,16 +4,21 @@ "edit": "Actions", "make-admin": "Make Admin", "remove-admin": "Remove Admin", + "change-email": "Change Email", + "new-email": "New Email", "validate-email": "Validate Email", "send-validation-email": "Send Validation Email", + "change-password": "Change Password", "password-reset-email": "Send Password Reset Email", "force-password-reset": "Force Password Reset & Log User Out", - "ban": "Ban User(s)", + "ban": "Ban", + "ban-users": "Ban User(s)", "temp-ban": "Ban User(s) Temporarily", "unban": "Unban User(s)", "reset-lockout": "Reset Lockout", "reset-flags": "Reset Flags", - "delete": "Delete User(s)", + "delete": "Delete", + "delete-users": "Delete User(s)", "delete-content": "Delete User(s) Content", "purge": "Delete User(s) and Content", "download-csv": "Download CSV", @@ -81,6 +86,7 @@ "alerts.button-ban-x": "Ban %1 user(s)", "alerts.unban-success": "User(s) unbanned!", "alerts.lockout-reset-success": "Lockout(s) reset!", + "alerts.password-change-success": "Password(s) changed!", "alerts.flag-reset-success": "Flags(s) reset!", "alerts.no-remove-yourself-admin": "You can't remove yourself as Administrator!", "alerts.make-admin-success": "User is now administrator.", @@ -106,6 +112,7 @@ "alerts.create": "Create User", "alerts.button-create": "Create", "alerts.button-cancel": "Cancel", + "alerts.button-change": "Change", "alerts.error-passwords-different": "Passwords must match!", "alerts.error-x": "Error

%1

", "alerts.create-success": "User created!", @@ -113,6 +120,10 @@ "alerts.prompt-email": "Emails: ", "alerts.email-sent-to": "An invitation email has been sent to %1", "alerts.x-users-found": "%1 user(s) found, (%2 seconds)", + "alerts.select-a-single-user-to-change-email": "Select a single user to change email", "export-users-started": "Exporting users as csv, this might take a while. You will receive a notification when it is complete.", - "export-users-completed": "Users exported as csv, click here to download." + "export-users-completed": "Users exported as csv, click here to download.", + "email": "Email", + "password": "Password", + "manage": "Manage" } \ No newline at end of file diff --git a/public/language/sq-AL/user.json b/public/language/sq-AL/user.json index 36fe87231d..0572fa0edf 100644 --- a/public/language/sq-AL/user.json +++ b/public/language/sq-AL/user.json @@ -61,6 +61,7 @@ "change_picture": "Ndrysho foton", "change_username": "Ndrysho emrin e përdoruesit", "change_email": "Ndrysho e-mailin", + "email-updated": "Email Updated", "email_same_as_password": "Ju lutemi shkruani fjalëkalimin tuaj aktual për të vazhduar – ju keni futur përsëri emailin tuaj të ri", "edit": "Rregullo", "edit-profile": "Rregullo Profilin", diff --git a/public/language/sr/admin/manage/users.json b/public/language/sr/admin/manage/users.json index 1fef96f56d..08e5701f40 100644 --- a/public/language/sr/admin/manage/users.json +++ b/public/language/sr/admin/manage/users.json @@ -4,16 +4,21 @@ "edit": "Actions", "make-admin": "Make Admin", "remove-admin": "Remove Admin", + "change-email": "Change Email", + "new-email": "New Email", "validate-email": "Validate Email", "send-validation-email": "Send Validation Email", + "change-password": "Change Password", "password-reset-email": "Send Password Reset Email", "force-password-reset": "Force Password Reset & Log User Out", - "ban": "Ban User(s)", + "ban": "Ban", + "ban-users": "Ban User(s)", "temp-ban": "Ban User(s) Temporarily", "unban": "Unban User(s)", "reset-lockout": "Reset Lockout", "reset-flags": "Reset Flags", - "delete": "Delete User(s)", + "delete": "Delete", + "delete-users": "Delete User(s)", "delete-content": "Delete User(s) Content", "purge": "Delete User(s) and Content", "download-csv": "Download CSV", @@ -81,6 +86,7 @@ "alerts.button-ban-x": "Ban %1 user(s)", "alerts.unban-success": "User(s) unbanned!", "alerts.lockout-reset-success": "Lockout(s) reset!", + "alerts.password-change-success": "Password(s) changed!", "alerts.flag-reset-success": "Flags(s) reset!", "alerts.no-remove-yourself-admin": "You can't remove yourself as Administrator!", "alerts.make-admin-success": "User is now administrator.", @@ -106,6 +112,7 @@ "alerts.create": "Create User", "alerts.button-create": "Create", "alerts.button-cancel": "Cancel", + "alerts.button-change": "Change", "alerts.error-passwords-different": "Passwords must match!", "alerts.error-x": "Error

%1

", "alerts.create-success": "User created!", @@ -113,6 +120,10 @@ "alerts.prompt-email": "Emails: ", "alerts.email-sent-to": "An invitation email has been sent to %1", "alerts.x-users-found": "%1 user(s) found, (%2 seconds)", + "alerts.select-a-single-user-to-change-email": "Select a single user to change email", "export-users-started": "Exporting users as csv, this might take a while. You will receive a notification when it is complete.", - "export-users-completed": "Users exported as csv, click here to download." + "export-users-completed": "Users exported as csv, click here to download.", + "email": "Email", + "password": "Password", + "manage": "Manage" } \ No newline at end of file diff --git a/public/language/sr/user.json b/public/language/sr/user.json index 61e40f1591..ca546ea44c 100644 --- a/public/language/sr/user.json +++ b/public/language/sr/user.json @@ -61,6 +61,7 @@ "change_picture": "Промена слике", "change_username": "Промена корисничког имена", "change_email": "Промена е-поште", + "email-updated": "Email Updated", "email_same_as_password": "Унесите тренутну лозинку за наставак; поново сте унели нову е-пошту", "edit": "Уреди", "edit-profile": "Уреди профил", diff --git a/public/language/sv/admin/manage/users.json b/public/language/sv/admin/manage/users.json index 1fef96f56d..08e5701f40 100644 --- a/public/language/sv/admin/manage/users.json +++ b/public/language/sv/admin/manage/users.json @@ -4,16 +4,21 @@ "edit": "Actions", "make-admin": "Make Admin", "remove-admin": "Remove Admin", + "change-email": "Change Email", + "new-email": "New Email", "validate-email": "Validate Email", "send-validation-email": "Send Validation Email", + "change-password": "Change Password", "password-reset-email": "Send Password Reset Email", "force-password-reset": "Force Password Reset & Log User Out", - "ban": "Ban User(s)", + "ban": "Ban", + "ban-users": "Ban User(s)", "temp-ban": "Ban User(s) Temporarily", "unban": "Unban User(s)", "reset-lockout": "Reset Lockout", "reset-flags": "Reset Flags", - "delete": "Delete User(s)", + "delete": "Delete", + "delete-users": "Delete User(s)", "delete-content": "Delete User(s) Content", "purge": "Delete User(s) and Content", "download-csv": "Download CSV", @@ -81,6 +86,7 @@ "alerts.button-ban-x": "Ban %1 user(s)", "alerts.unban-success": "User(s) unbanned!", "alerts.lockout-reset-success": "Lockout(s) reset!", + "alerts.password-change-success": "Password(s) changed!", "alerts.flag-reset-success": "Flags(s) reset!", "alerts.no-remove-yourself-admin": "You can't remove yourself as Administrator!", "alerts.make-admin-success": "User is now administrator.", @@ -106,6 +112,7 @@ "alerts.create": "Create User", "alerts.button-create": "Create", "alerts.button-cancel": "Cancel", + "alerts.button-change": "Change", "alerts.error-passwords-different": "Passwords must match!", "alerts.error-x": "Error

%1

", "alerts.create-success": "User created!", @@ -113,6 +120,10 @@ "alerts.prompt-email": "Emails: ", "alerts.email-sent-to": "An invitation email has been sent to %1", "alerts.x-users-found": "%1 user(s) found, (%2 seconds)", + "alerts.select-a-single-user-to-change-email": "Select a single user to change email", "export-users-started": "Exporting users as csv, this might take a while. You will receive a notification when it is complete.", - "export-users-completed": "Users exported as csv, click here to download." + "export-users-completed": "Users exported as csv, click here to download.", + "email": "Email", + "password": "Password", + "manage": "Manage" } \ No newline at end of file diff --git a/public/language/sv/user.json b/public/language/sv/user.json index 52ba3b01c7..74d494f61e 100644 --- a/public/language/sv/user.json +++ b/public/language/sv/user.json @@ -61,6 +61,7 @@ "change_picture": "Ändra bild", "change_username": "Ändra användarnamn", "change_email": "Ändra e-postadress", + "email-updated": "Email Updated", "email_same_as_password": "Vänligen skriv ditt lösenord flr att fortsätta – du har angett din nya epost igen", "edit": "Ändra", "edit-profile": "Redigera profil", diff --git a/public/language/th/admin/manage/users.json b/public/language/th/admin/manage/users.json index a3cfe00931..ae77c5372e 100644 --- a/public/language/th/admin/manage/users.json +++ b/public/language/th/admin/manage/users.json @@ -4,16 +4,21 @@ "edit": "Actions", "make-admin": "ทำให้เป็นแอดมิน", "remove-admin": "ยกเลิกการเป็นแอดมิน", + "change-email": "Change Email", + "new-email": "New Email", "validate-email": "ยืนยันอีเมล", "send-validation-email": "ส่งอีเมลยืนยัน", + "change-password": "Change Password", "password-reset-email": "ส่งการล้างค่ารหัสผ่านทางอีเมล", "force-password-reset": "Force Password Reset & Log User Out", - "ban": "ผู้ใช้งานที่โดนแบน", + "ban": "Ban", + "ban-users": "Ban User(s)", "temp-ban": "ผู้ใช้งานที่โดนแบนชั่วคราว", "unban": "ยกเลิกการแบนผู้ใช้งาน", "reset-lockout": "ยกเลิกการกักกัน", "reset-flags": "ยกเลิกการการเฝ้าระวัง", - "delete": "Delete User(s)", + "delete": "Delete", + "delete-users": "Delete User(s)", "delete-content": "Delete User(s) Content", "purge": "Delete User(s) and Content", "download-csv": "ดาวน์โหลด CSV", @@ -81,6 +86,7 @@ "alerts.button-ban-x": "แบน %1 ผู้ใช้งาน", "alerts.unban-success": "ยกเลิกการแบนผู้ใช้งาน", "alerts.lockout-reset-success": "ยกเลิกการกักกัน", + "alerts.password-change-success": "Password(s) changed!", "alerts.flag-reset-success": "ยกเลิกการติดตาม", "alerts.no-remove-yourself-admin": "คุณไม่สามารถที่จะยกเลิกตัวเองจากการเป็นผู้ดูแลระบบ", "alerts.make-admin-success": "ขณะนี้ผู้ใช้เป็นผู้ดูแลระบบแล้ว", @@ -106,6 +112,7 @@ "alerts.create": "สร้างผู้ใช้งาน", "alerts.button-create": "สร้าง", "alerts.button-cancel": "ยกเลิก", + "alerts.button-change": "Change", "alerts.error-passwords-different": "รหัสผ่านจะต้องเหมือนกัน! ", "alerts.error-x": "ผิดพลาด

%1

", "alerts.create-success": "ผู้ใช้งานถูกสร้าง!", @@ -113,6 +120,10 @@ "alerts.prompt-email": "Emails: ", "alerts.email-sent-to": "อีเมลคำเชิญถูกส่งไปที่ %1", "alerts.x-users-found": "%1 user(s) found, (%2 seconds)", + "alerts.select-a-single-user-to-change-email": "Select a single user to change email", "export-users-started": "Exporting users as csv, this might take a while. You will receive a notification when it is complete.", - "export-users-completed": "Users exported as csv, click here to download." + "export-users-completed": "Users exported as csv, click here to download.", + "email": "Email", + "password": "Password", + "manage": "Manage" } \ No newline at end of file diff --git a/public/language/th/user.json b/public/language/th/user.json index d3480c38b0..92f518308e 100644 --- a/public/language/th/user.json +++ b/public/language/th/user.json @@ -61,6 +61,7 @@ "change_picture": "เปลี่ยนรูป", "change_username": "เปลี่ยนชื่อผู้ใช้", "change_email": "เปลี่ยนอีเมล", + "email-updated": "Email Updated", "email_same_as_password": "Please enter your current password to continue – you've entered your new email again", "edit": "แก้ไข", "edit-profile": "แก้ไขข้อมูลส่วนตัว", diff --git a/public/language/tr/admin/manage/users.json b/public/language/tr/admin/manage/users.json index 4cc0417d38..eee1f680ee 100644 --- a/public/language/tr/admin/manage/users.json +++ b/public/language/tr/admin/manage/users.json @@ -4,16 +4,21 @@ "edit": "Hareketler", "make-admin": "Yönetici Yap", "remove-admin": "Yöneticiliği Sil", + "change-email": "Change Email", + "new-email": "New Email", "validate-email": "E-postayı Doğrula", "send-validation-email": "Onay E-postası Gönder", + "change-password": "Change Password", "password-reset-email": "E-posta Sıfırlaması için Parola Gönder", "force-password-reset": "Kullanıcının oturumunu kapat ve şifreyi değiştirmeye zorla", - "ban": "Yasaklı Kullanıcı(lar)", + "ban": "Ban", + "ban-users": "Ban User(s)", "temp-ban": "Kullanıcı(ları) Geçici Olarak Yasakla", "unban": "Kullanıcı(n/lar)ın Yasağını Kaldır", "reset-lockout": "Kilitlemeyi Sıfırla", "reset-flags": "Bayrakları Sıfırla", - "delete": " Kullanıcı(ları) Sil", + "delete": "Delete", + "delete-users": "Delete User(s)", "delete-content": "Kullanıcı İçeriğini Sil", "purge": "Kullanıcıyı/ları ve İçeriği Sil", "download-csv": "CSV İndir", @@ -81,6 +86,7 @@ "alerts.button-ban-x": "%1 kullanıcı(ları) yasakla", "alerts.unban-success": "Kullanıcı(ların) yasağı kaldırıldı!", "alerts.lockout-reset-success": "Kilitleme(ler) sıfırlandı!", + "alerts.password-change-success": "Password(s) changed!", "alerts.flag-reset-success": "Bayrak(lar) sıfırlandı!", "alerts.no-remove-yourself-admin": "Kendinizi Yönetici olarak kaldıramazsınız!", "alerts.make-admin-success": "Kullanıcı şimdi yönetici.", @@ -106,6 +112,7 @@ "alerts.create": "Kullanıcı Oluştur", "alerts.button-create": "Oluştur", "alerts.button-cancel": "İptal", + "alerts.button-change": "Change", "alerts.error-passwords-different": "Şifreler aynı olmalı!", "alerts.error-x": "Hata

%1

", "alerts.create-success": "Kullanıcı oluşturuldu!", @@ -113,6 +120,10 @@ "alerts.prompt-email": "Eposta:", "alerts.email-sent-to": "%1'e bir davet e-postası gönderildi", "alerts.x-users-found": "%1 kullanıcı bulundu, (%2 saniye)", + "alerts.select-a-single-user-to-change-email": "Select a single user to change email", "export-users-started": "Kullanıcılar csv olarak aktarılmak üzere hazırlanıyor, bu işlem zaman alabilir. İşlem tamamlandığında bildirim alacaksınız!", - "export-users-completed": "Kullanıcılar csv olarak hazırlandı, indirmek için tıklayınız" + "export-users-completed": "Kullanıcılar csv olarak hazırlandı, indirmek için tıklayınız", + "email": "Email", + "password": "Password", + "manage": "Manage" } \ No newline at end of file diff --git a/public/language/tr/user.json b/public/language/tr/user.json index 4c18f2409c..03dcda3cf9 100644 --- a/public/language/tr/user.json +++ b/public/language/tr/user.json @@ -61,6 +61,7 @@ "change_picture": "Fotoğrafı Değiştir", "change_username": "Kullanıcı Adı Değiştir", "change_email": "E-posta Değiştir", + "email-updated": "Email Updated", "email_same_as_password": "Lütfen devam etmek için şu anki şifrenizi girin – Tekrar e-posta adresinizi girdiniz", "edit": "Düzenle", "edit-profile": "Profil Düzenle", diff --git a/public/language/uk/admin/manage/users.json b/public/language/uk/admin/manage/users.json index 2b7df34d4f..7c5b9cd3ab 100644 --- a/public/language/uk/admin/manage/users.json +++ b/public/language/uk/admin/manage/users.json @@ -4,16 +4,21 @@ "edit": "Actions", "make-admin": "Створити адміна", "remove-admin": "Видалити адміна", + "change-email": "Change Email", + "new-email": "New Email", "validate-email": "Підтвердити електронну адресу", "send-validation-email": "Надіслати підтверджувального листа", + "change-password": "Change Password", "password-reset-email": "Надіслати скидання паролю", "force-password-reset": "Force Password Reset & Log User Out", - "ban": "Забанити", + "ban": "Ban", + "ban-users": "Ban User(s)", "temp-ban": "Забанити тимчасово", "unban": "Розбанити", "reset-lockout": "Скинути блокування", "reset-flags": "Скинути скарги", - "delete": "Delete User(s)", + "delete": "Delete", + "delete-users": "Delete User(s)", "delete-content": "Delete User(s) Content", "purge": "Delete User(s) and Content", "download-csv": "Скачати CSV", @@ -81,6 +86,7 @@ "alerts.button-ban-x": "Забанити %1 користувачів", "alerts.unban-success": "Користувачів забанено!", "alerts.lockout-reset-success": "Блокування скинуто!", + "alerts.password-change-success": "Password(s) changed!", "alerts.flag-reset-success": "Скарги скинуто!", "alerts.no-remove-yourself-admin": "Ви не можете видалити себе як адміна!", "alerts.make-admin-success": "Користувач зараз є адміністратором.", @@ -106,6 +112,7 @@ "alerts.create": "Створити користувача", "alerts.button-create": "Створити", "alerts.button-cancel": "Скасувати", + "alerts.button-change": "Change", "alerts.error-passwords-different": "Паролі мають співпадати!", "alerts.error-x": "Помилка

%1

", "alerts.create-success": "Користувача створено!", @@ -113,6 +120,10 @@ "alerts.prompt-email": "Emails: ", "alerts.email-sent-to": "Запрошення надіслано за адресою %1", "alerts.x-users-found": "%1 user(s) found, (%2 seconds)", + "alerts.select-a-single-user-to-change-email": "Select a single user to change email", "export-users-started": "Exporting users as csv, this might take a while. You will receive a notification when it is complete.", - "export-users-completed": "Users exported as csv, click here to download." + "export-users-completed": "Users exported as csv, click here to download.", + "email": "Email", + "password": "Password", + "manage": "Manage" } \ No newline at end of file diff --git a/public/language/uk/user.json b/public/language/uk/user.json index 77cf774cfc..5952d5285d 100644 --- a/public/language/uk/user.json +++ b/public/language/uk/user.json @@ -61,6 +61,7 @@ "change_picture": "Змінити зображення", "change_username": "Змінити ім'я користувача", "change_email": "Змінити електронну пошту", + "email-updated": "Email Updated", "email_same_as_password": "Будь-ласка введіть ваш поточний пароль щоб продовжити – ви ввели ваш новий емейл знову", "edit": "Редагувати", "edit-profile": "Редагувати профіль", diff --git a/public/language/vi/admin/manage/users.json b/public/language/vi/admin/manage/users.json index a318c8b711..5eb9b61c01 100644 --- a/public/language/vi/admin/manage/users.json +++ b/public/language/vi/admin/manage/users.json @@ -4,16 +4,21 @@ "edit": "Hành động", "make-admin": "Làm Quản Trị Viên", "remove-admin": "Xóa Quản Trị Viên", + "change-email": "Change Email", + "new-email": "New Email", "validate-email": "Xác Thực Email", "send-validation-email": "Gửi Email Xác Thực", + "change-password": "Change Password", "password-reset-email": "Gửi Email Đặt Lại Mật Khẩu", "force-password-reset": "Buộc đặt lại mật khẩu và đăng xuất người dùng", - "ban": "Cấm Người Dùng", + "ban": "Ban", + "ban-users": "Ban User(s)", "temp-ban": "Cấm Người Dùng Tạm Thời", "unban": "Bỏ Cấm Người Dùng", "reset-lockout": "Đặt lại khóa", "reset-flags": "Đặt Lại Gắn Cờ", - "delete": "Xóa Người Dùng", + "delete": "Delete", + "delete-users": "Delete User(s)", "delete-content": "Xóa Nội Dung Người Dùng", "purge": "Xóa Người DùngNội Dung", "download-csv": "Tải về CSV", @@ -81,6 +86,7 @@ "alerts.button-ban-x": "Cấm %1 người dùng", "alerts.unban-success": "Đã bỏ cấm người dùng!", "alerts.lockout-reset-success": "Đặt lại khóa!", + "alerts.password-change-success": "Password(s) changed!", "alerts.flag-reset-success": "Đặt lại gắn cờ!", "alerts.no-remove-yourself-admin": "Bạn không thể tự xóa mình với tư cách Quản trị viên!", "alerts.make-admin-success": "Người dùng hiện là quản trị viên.", @@ -106,6 +112,7 @@ "alerts.create": "Tạo Người Dùng", "alerts.button-create": "Tạo", "alerts.button-cancel": "Hủy", + "alerts.button-change": "Change", "alerts.error-passwords-different": "Mật khẩu phải khớp!", "alerts.error-x": "Lỗi

%1

", "alerts.create-success": "Đã tạo người dùng!", @@ -113,6 +120,10 @@ "alerts.prompt-email": "Thư điện tử:", "alerts.email-sent-to": "Email mời đã được gửi đến %1", "alerts.x-users-found": "Tìm được %1 người dùng (%2 giây)", + "alerts.select-a-single-user-to-change-email": "Select a single user to change email", "export-users-started": "Xuất người dùng dưới dạng csv, quá trình này có thể mất một lúc. Bạn sẽ nhận được thông báo khi hoàn tất.", - "export-users-completed": "Đã xuất người dùng ra csv, bấm vào đây tải xuống." + "export-users-completed": "Đã xuất người dùng ra csv, bấm vào đây tải xuống.", + "email": "Email", + "password": "Password", + "manage": "Manage" } \ No newline at end of file diff --git a/public/language/vi/user.json b/public/language/vi/user.json index 5d74dda241..7df30cb5ca 100644 --- a/public/language/vi/user.json +++ b/public/language/vi/user.json @@ -61,6 +61,7 @@ "change_picture": "Đổi Hình Ảnh", "change_username": "Đổi tên đăng nhập", "change_email": "Đổi email", + "email-updated": "Email Updated", "email_same_as_password": "Vui lòng nhập mật khẩu hiện tại của bạn để tiếp tục – bạn đã nhập lại email mới", "edit": "Chỉnh sửa", "edit-profile": "Sửa Hồ Sơ", diff --git a/public/language/zh-CN/admin/manage/users.json b/public/language/zh-CN/admin/manage/users.json index 2f66737c83..6a380e2133 100644 --- a/public/language/zh-CN/admin/manage/users.json +++ b/public/language/zh-CN/admin/manage/users.json @@ -4,16 +4,21 @@ "edit": "操作", "make-admin": "设为管理", "remove-admin": "取消管理员", + "change-email": "Change Email", + "new-email": "New Email", "validate-email": "验证邮箱", "send-validation-email": "发送验证邮件", + "change-password": "Change Password", "password-reset-email": "发送密码重置邮件", "force-password-reset": "强制密码重置 & 登录用户已退出", - "ban": "封禁用户", + "ban": "Ban", + "ban-users": "Ban User(s)", "temp-ban": "暂时封禁用户", "unban": "解禁用户", "reset-lockout": "重设锁定", "reset-flags": "重设举报", - "delete": "删除用户", + "delete": "Delete", + "delete-users": "Delete User(s)", "delete-content": "删除用户内容", "purge": "删除用户和内容", "download-csv": "下载CSV", @@ -81,6 +86,7 @@ "alerts.button-ban-x": "封禁 %1 名用户", "alerts.unban-success": "用户已解封!", "alerts.lockout-reset-success": "锁定已重置!", + "alerts.password-change-success": "Password(s) changed!", "alerts.flag-reset-success": "举报已重置!", "alerts.no-remove-yourself-admin": "您无法撤销自己的管理员身份!", "alerts.make-admin-success": "此用户已成为管理员", @@ -106,6 +112,7 @@ "alerts.create": "创建用户", "alerts.button-create": "创建", "alerts.button-cancel": "取消", + "alerts.button-change": "Change", "alerts.error-passwords-different": "两次输入的密码必须相同!", "alerts.error-x": "错误

%1

", "alerts.create-success": "用户已创建!", @@ -113,6 +120,10 @@ "alerts.prompt-email": "邮件:", "alerts.email-sent-to": "已发送邀请给 %1", "alerts.x-users-found": "找到 %1 位用户(耗时 %2 秒)", + "alerts.select-a-single-user-to-change-email": "Select a single user to change email", "export-users-started": "导出用户为 csv,这可能需要一些时间。当导出完成时你会收到通知。", - "export-users-completed": "用户列表已被导出为 CSV 文件,点击以下载。" + "export-users-completed": "用户列表已被导出为 CSV 文件,点击以下载。", + "email": "Email", + "password": "Password", + "manage": "Manage" } \ No newline at end of file diff --git a/public/language/zh-CN/user.json b/public/language/zh-CN/user.json index 572f914e5f..04bb681ca3 100644 --- a/public/language/zh-CN/user.json +++ b/public/language/zh-CN/user.json @@ -61,6 +61,7 @@ "change_picture": "更改头像", "change_username": "更改用户名", "change_email": "更改电子邮箱", + "email-updated": "Email Updated", "email_same_as_password": "请输入您当前的密码以继续 –您已经再次输入了您的新电子邮箱", "edit": "编辑", "edit-profile": "编辑资料", diff --git a/public/language/zh-TW/admin/manage/users.json b/public/language/zh-TW/admin/manage/users.json index 403dd12ccf..d523e0c39c 100644 --- a/public/language/zh-TW/admin/manage/users.json +++ b/public/language/zh-TW/admin/manage/users.json @@ -4,16 +4,21 @@ "edit": "Actions", "make-admin": "設為管理員", "remove-admin": "撤銷管理員", + "change-email": "Change Email", + "new-email": "New Email", "validate-email": "驗證電郵地址", "send-validation-email": "發送驗證郵件", + "change-password": "Change Password", "password-reset-email": "發送密碼重設郵件", "force-password-reset": "強制密碼重設 & 登入使用者已退出", - "ban": "封鎖使用者", + "ban": "Ban", + "ban-users": "Ban User(s)", "temp-ban": "暫時封鎖使用者", "unban": "解封使用者", "reset-lockout": "重設封鎖", "reset-flags": "重設舉報", - "delete": "Delete User(s)", + "delete": "Delete", + "delete-users": "Delete User(s)", "delete-content": "Delete User(s) Content", "purge": "Delete User(s) and Content", "download-csv": "下載CSV", @@ -81,6 +86,7 @@ "alerts.button-ban-x": "停權 %1 名使用者", "alerts.unban-success": "使用者已復權!", "alerts.lockout-reset-success": "鎖定已重設!", + "alerts.password-change-success": "Password(s) changed!", "alerts.flag-reset-success": "舉報已重設!", "alerts.no-remove-yourself-admin": "您無法撤銷自己的管理員身份!", "alerts.make-admin-success": "該使用者已成為管理員", @@ -106,6 +112,7 @@ "alerts.create": "建立使用者", "alerts.button-create": "建立", "alerts.button-cancel": "取消", + "alerts.button-change": "Change", "alerts.error-passwords-different": "兩次輸入的密碼必須相同!", "alerts.error-x": "錯誤

%1

", "alerts.create-success": "使用者已建立!", @@ -113,6 +120,10 @@ "alerts.prompt-email": "電郵地址:", "alerts.email-sent-to": "已發送邀請給 %1", "alerts.x-users-found": "%1 user(s) found, (%2 seconds)", + "alerts.select-a-single-user-to-change-email": "Select a single user to change email", "export-users-started": "Exporting users as csv, this might take a while. You will receive a notification when it is complete.", - "export-users-completed": "Users exported as csv, click here to download." + "export-users-completed": "Users exported as csv, click here to download.", + "email": "Email", + "password": "Password", + "manage": "Manage" } \ No newline at end of file diff --git a/public/language/zh-TW/user.json b/public/language/zh-TW/user.json index 7eabad40d0..d4a4cb1366 100644 --- a/public/language/zh-TW/user.json +++ b/public/language/zh-TW/user.json @@ -61,6 +61,7 @@ "change_picture": "更改頭像", "change_username": "更改帳戶", "change_email": "更改電子信箱", + "email-updated": "Email Updated", "email_same_as_password": "請輸入您當前的密碼以繼續 –您已經再次輸入了您的新電子信箱", "edit": "編輯", "edit-profile": "編輯個人檔案", From 3dccf327fa7d5f86b2f3ff35bb401172801c0944 Mon Sep 17 00:00:00 2001 From: Misty Release Bot Date: Fri, 8 Sep 2023 09:19:55 +0000 Subject: [PATCH 016/275] Latest translations and fallbacks --- public/language/bg/admin/manage/users.json | 26 +++++++------- public/language/bg/admin/settings/chat.json | 14 ++++---- public/language/bg/modules.json | 18 +++++----- public/language/bg/user.json | 2 +- public/language/fr/admin/admin.json | 2 +- .../language/fr/admin/appearance/skins.json | 10 +++--- public/language/fr/admin/dashboard.json | 2 +- public/language/fr/admin/manage/digest.json | 12 +++---- public/language/fr/admin/manage/users.json | 26 +++++++------- public/language/fr/admin/settings/chat.json | 12 +++---- public/language/fr/category.json | 2 +- public/language/fr/error.json | 18 +++++----- public/language/fr/modules.json | 34 +++++++++---------- public/language/fr/notifications.json | 34 +++++++++---------- public/language/fr/topic.json | 4 +-- public/language/fr/user.json | 2 +- 16 files changed, 109 insertions(+), 109 deletions(-) diff --git a/public/language/bg/admin/manage/users.json b/public/language/bg/admin/manage/users.json index b08d45c51a..f5b049a406 100644 --- a/public/language/bg/admin/manage/users.json +++ b/public/language/bg/admin/manage/users.json @@ -4,21 +4,21 @@ "edit": "Действия", "make-admin": "Даване на администраторски права", "remove-admin": "Отнемане на администраторски права", - "change-email": "Change Email", - "new-email": "New Email", + "change-email": "Промяна на е-пощата", + "new-email": "Нова е-поща", "validate-email": "Проверка на е-пощата", "send-validation-email": "Изпращане на е-писмо за потвърждение", - "change-password": "Change Password", + "change-password": "Промяна на паролата", "password-reset-email": "Изпращане на е-писмо за възстановяване на паролата", "force-password-reset": "Принудително подновяване на паролата и отписване на потребителя", - "ban": "Ban", - "ban-users": "Ban User(s)", + "ban": "Блокиране", + "ban-users": "Блокиране на потребителя/ите", "temp-ban": "Блокиране на потребителя/ите временно", "unban": "Деблокиране на потребителя/ите", "reset-lockout": "Нулиране на заключването", "reset-flags": "Анулиране на докладите", - "delete": "Delete", - "delete-users": "Delete User(s)", + "delete": "Изтриване", + "delete-users": "Изтриване на потребителя/ите", "delete-content": "Изтриване на съдържанието на потребителя/ите", "purge": "Изтриване на потребителя/ите и съдържанието", "download-csv": "Сваляне във формат „CSV“", @@ -86,7 +86,7 @@ "alerts.button-ban-x": "Блокиране на %1 потребител(и)", "alerts.unban-success": "Потребителят/ите е/са деблокиран(и)!", "alerts.lockout-reset-success": "Заключването/ията е/са нулирано/и!", - "alerts.password-change-success": "Password(s) changed!", + "alerts.password-change-success": "Паролата/ите е/са променени!", "alerts.flag-reset-success": "Докладът/ите е/са анулиран(и)!", "alerts.no-remove-yourself-admin": "Не можете да отнемете собствените си права на администратор!", "alerts.make-admin-success": "Потребителят вече ще бъде администратор.", @@ -112,7 +112,7 @@ "alerts.create": "Създаване на потребител", "alerts.button-create": "Създаване", "alerts.button-cancel": "Отказ", - "alerts.button-change": "Change", + "alerts.button-change": "Промяна", "alerts.error-passwords-different": "Паролите са различни!", "alerts.error-x": "Грешка

%1

", "alerts.create-success": "Потребителят е създаден!", @@ -120,10 +120,10 @@ "alerts.prompt-email": "Е-пощи: ", "alerts.email-sent-to": "Беше изпратено е-писмо за потвърждение до %1", "alerts.x-users-found": "Намерени потребители: %1 (%2 секунди)", - "alerts.select-a-single-user-to-change-email": "Select a single user to change email", + "alerts.select-a-single-user-to-change-email": "Изберете един потребител, чиято е-поща да промените", "export-users-started": "Изнасяне на потребителите във формат „csv“… Това може да отнеме известно време. Ще получите известие, когато е готово.", "export-users-completed": "Потребителите са изнесени във формат „csv“, щракнете за сваляне.", - "email": "Email", - "password": "Password", - "manage": "Manage" + "email": "Е-поща", + "password": "Парола", + "manage": "Управление" } \ No newline at end of file diff --git a/public/language/bg/admin/settings/chat.json b/public/language/bg/admin/settings/chat.json index 61a76faf9a..0b653316df 100644 --- a/public/language/bg/admin/settings/chat.json +++ b/public/language/bg/admin/settings/chat.json @@ -1,5 +1,5 @@ { - "zero-is-disabled": "Enter 0 to disable this restriction", + "zero-is-disabled": "Въведете 0, за да изключите това ограничение", "chat-settings": "Настройки на разговорите", "disable": "Изключване на разговорите", "disable-editing": "Изключване на редактирането и изтриването на съобщения в разговорите", @@ -7,10 +7,10 @@ "max-length": "Максимална дължина на съобщенията в разговорите", "max-chat-room-name-length": "Максимална дължина на имената на стаи за разговори", "max-room-size": "Максимален брой потребители в стая за разговор", - "delay": "Time between chat messages (ms)", - "newbieDelay": "... for new users (ms)", - "notification-delay": "Notification delay for chat messages", - "notification-delay-help": "Additional messages sent between this time are collated, and the user is notified once per delay period. Set this to 0 to disable the delay.", - "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable.", - "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable." + "delay": "Време между съобщенията в разговорите (мсек)", + "newbieDelay": "…за нови потребители (мсек)", + "notification-delay": "Забавяне преди известяване за съобщения в разговорите", + "notification-delay-help": "Допълнителните съобщения, изпратени в рамките на това време, се комбинират, и потребителят получава по едно известие за всеки такъв период на забавяне. Задайте стойност 0, за да изключите забавянето.", + "restrictions.seconds-edit-after": "Брой секунди, през които съобщенията в разговор могат да бъдат редактирани.", + "restrictions.seconds-delete-after": "Брой секунди, през които съобщенията в разговор могат да бъдат изтрити." } \ No newline at end of file diff --git a/public/language/bg/modules.json b/public/language/bg/modules.json index be6a76bfa2..c6927570aa 100644 --- a/public/language/bg/modules.json +++ b/public/language/bg/modules.json @@ -9,10 +9,10 @@ "chat.chat-with-usernames-and-x-others": "Разговор с %1 и %2 други", "chat.send": "Изпращане", "chat.no_active": "Нямате текущи разговори.", - "chat.user_typing_1": "%1 is typing ...", - "chat.user_typing_2": "%1 and %2 are typing ...", - "chat.user_typing_3": "%1, %2 and %3 are typing ...", - "chat.user_typing_n": "%1, %2 and %3 others are typing ...", + "chat.user_typing_1": "%1 пише…", + "chat.user_typing_2": "%1 и %2 пишат…", + "chat.user_typing_3": "%1, %2 и %3 пишат…", + "chat.user_typing_n": "%1, %2 и %3 други пишат…", "chat.user_has_messaged_you": "%1 Ви написа съобщение.", "chat.replying-to": "Отговор до %1", "chat.see_all": "Всички разговори", @@ -33,10 +33,10 @@ "chat.delete_message_confirm": "Наистина ли искате да изтриете това съобщение?", "chat.retrieving-users": "Получаване на потребителите…", "chat.view-users-list": "Преглед на списъка с потребители", - "chat.pinned-messages": "Pinned Messages", - "chat.no-pinned-messages": "There are no pinned messages", - "chat.pin-message": "Pin Message", - "chat.unpin-message": "Unpin Message", + "chat.pinned-messages": "Закачени съобщения", + "chat.no-pinned-messages": "Няма закачени съобщения", + "chat.pin-message": "Закачане на съобщението", + "chat.unpin-message": "Откачане на съобщението", "chat.public-rooms": "Публични стаи (%1)", "chat.private-rooms": "Частни стаи (%1)", "chat.create-room": "Създаване на стая за разговор", @@ -95,7 +95,7 @@ "composer.zen_mode": "Режим Дзен", "composer.select_category": "Изберете категория", "composer.textarea.placeholder": "Въведете съдържанието на публикацията си тук. Можете също да влачите и пускате снимки.", - "composer.post-queue-alert": "Hello👋!
This forum uses a post queue system, since you are a new user your post will be hidden until it is approved by our moderation team.", + "composer.post-queue-alert": "Здравейте👋!
Този форум използва система, при която публикациите се добавят в опашка. Тъй като сте нов потребител, публикацията Ви ще бъде скрита, докато не бъде одобрена от модератор.", "composer.schedule-for": "Насрочване на тема за", "composer.schedule-date": "Дата", "composer.schedule-time": "Час", diff --git a/public/language/bg/user.json b/public/language/bg/user.json index a5d3637076..ca9ab4bba6 100644 --- a/public/language/bg/user.json +++ b/public/language/bg/user.json @@ -61,7 +61,7 @@ "change_picture": "Промяна на снимката", "change_username": "Промяна на потребителското име", "change_email": "Промяна на е-пощата", - "email-updated": "Email Updated", + "email-updated": "Е-пощата е променена", "email_same_as_password": "Моля, въведете текущата си парола, за да продължите – Вие въведохте новата си е-поща отново", "edit": "Редактиране", "edit-profile": "Редактиране на профила", diff --git a/public/language/fr/admin/admin.json b/public/language/fr/admin/admin.json index 30e90b3093..ff3f62f598 100644 --- a/public/language/fr/admin/admin.json +++ b/public/language/fr/admin/admin.json @@ -14,5 +14,5 @@ "view": "Voir", "edit": "Éditer ", "add": "Ajouter", - "select-icon": "Sélectionner un icône" + "select-icon": "Sélectionner une icône" } \ No newline at end of file diff --git a/public/language/fr/admin/appearance/skins.json b/public/language/fr/admin/appearance/skins.json index 0f3e380e01..4626540a91 100644 --- a/public/language/fr/admin/appearance/skins.json +++ b/public/language/fr/admin/appearance/skins.json @@ -1,16 +1,16 @@ { "skins": "Skins", "bootswatch-skins": "Skins de lancement", - "custom-skins": "Skins personnalisé", + "custom-skins": "Skins personnalisés", "add-skin": "Ajouter un Skin", - "save-custom-skins": "Sauvegarder le Skin personnalisé", + "save-custom-skins": "Sauvegarder le skin personnalisé", "save-custom-skins-success": "Sauvegardé avec succès", - "custom-skin-name": "Nom du Skin personnalisé", - "custom-skin-variables": "Variables du Skin personnalisé", + "custom-skin-name": "Nom du skin personnalisé", + "custom-skin-variables": "Variables du skin personnalisé", "loading": "Chargements des skins…", "homepage": "Page d'accueil", "select-skin": "Sélectionner le skin", - "revert-skin": "Rétablir le Skin", + "revert-skin": "Rétablir le skin", "current-skin": "Skin actuel", "skin-updated": "Skin mis à jour", "applied-success": "Le skin %1 a été appliqué avec succès.", diff --git a/public/language/fr/admin/dashboard.json b/public/language/fr/admin/dashboard.json index df6995a46f..34f4440595 100644 --- a/public/language/fr/admin/dashboard.json +++ b/public/language/fr/admin/dashboard.json @@ -91,7 +91,7 @@ "start": "Début", "end": "Fin", "filter": "Filtre", - "view-as-json": "Voir le JSON", + "view-as-json": "Afficher en JSON", "expand-analytics": "Développer les statistiques", "clear-search-history": "Effacer l'historique", "clear-search-history-confirm": "Êtes-vous sûr de vouloir effacer tout l'historique de recherche ?" diff --git a/public/language/fr/admin/manage/digest.json b/public/language/fr/admin/manage/digest.json index 2512debb1f..8726e546ae 100644 --- a/public/language/fr/admin/manage/digest.json +++ b/public/language/fr/admin/manage/digest.json @@ -1,7 +1,7 @@ { "lead": "Une liste des statistiques des lettres d'activités envoyées est affichée ci-dessous.", - "disclaimer": "Veuillez noter que l'envoi par email n'est pas garantie en raison de la nature de la technologie de votre serveur de messagerie. De nombreuses variables déterminent si un email envoyé au serveur destinataire arrive dans la boîte de réception de l'utilisateur, y compris la réputation du serveur, les adresses IP figurant sur la liste noire et si les DKIM / SPF / DMARC sont configurés.", - "disclaimer-continued": "Un envoi réussie signifie que le message a été envoyé avec succès par NodeBB et acquitté par le serveur destinataire. Cela ne signifie pas que l'e-mail a atterri dans la boîte de réception. Pour de meilleurs résultats, nous vous recommandons d'utiliser un service de messagerie tiers, tel que SendGrid.", + "disclaimer": "Veuillez noter que l'envoi par email n'est pas garanti en raison de la nature de la technologie de votre serveur de messagerie. De nombreuses variables déterminent si un email envoyé au serveur destinataire arrive dans la boîte de réception de l'utilisateur, y compris la réputation du serveur, les adresses IP figurant sur la liste noire et si les DKIM / SPF / DMARC sont configurés.", + "disclaimer-continued": "Un envoi réussi signifie que le message a été envoyé avec succès par NodeBB et acquitté par le serveur destinataire. Cela ne signifie pas que l'e-mail a atterri dans la boîte de réception. Pour de meilleurs résultats, nous vous recommandons d'utiliser un service de messagerie tiers, tel que SendGrid.", "user": "Utilisateur", "subscription": "Type d'abonnement", @@ -9,14 +9,14 @@ "default": "Valeur par défaut", "default-help": "La valeur par défaut signifie que l'utilisateur n'a pas explicitement modifié ses paramètres pour les lettres d'activités, qui sont : "%1"", "resend": "Renvoi", - "resend-all-confirm": "Voulez-vous vraiment exécuter manuellement cette envoi ?", + "resend-all-confirm": "Voulez-vous vraiment exécuter manuellement cet envoi ?", "resent-single": "Lettre d'activité envoyée", - "resent-day": "Lettre d'activités quotidienne envoyée", + "resent-day": "Lettre d'activité quotidienne envoyée", "resent-week": "Lettre d'activité hebdomadaire envoyée", "resent-biweek": "Lettre d'activité envoyée deux fois par semaine", - "resent-month": "Lettre d'activité mensuel envoyé", + "resent-month": "Lettre d'activité mensuelle envoyée", "null": "Jamais", - "manual-run": "Lancer manuellement l'envoi:", + "manual-run": "Lancer manuellement l'envoi :", "no-delivery-data": "Aucune donnée d'envoi trouvée" } diff --git a/public/language/fr/admin/manage/users.json b/public/language/fr/admin/manage/users.json index f721a5f9ea..f6475bd75e 100644 --- a/public/language/fr/admin/manage/users.json +++ b/public/language/fr/admin/manage/users.json @@ -4,21 +4,21 @@ "edit": "Actions", "make-admin": "Promouvoir Admin", "remove-admin": "Retirer des Admins", - "change-email": "Change Email", - "new-email": "New Email", + "change-email": "Modifier l'adresse mail", + "new-email": "Nouvel email", "validate-email": "Vérifier l'adresse e-mail", "send-validation-email": "Envoyer un e-mail de vérification", - "change-password": "Change Password", + "change-password": "Modifier le mot de passe", "password-reset-email": "Envoyer un e-mail de réinitialisation du mot de passe", "force-password-reset": "Forcer la réinitialisation du mot de passe et déconnecter l'utilisateur", - "ban": "Ban", - "ban-users": "Ban User(s)", + "ban": "Bannir", + "ban-users": "Bannir l'(es) utilisateur(s)", "temp-ban": "Utilisateur(s) temporairement banni(s)", "unban": "Dé-bannir le(s) utilisateur(s)", "reset-lockout": "Supprimer le blocage", "reset-flags": "Supprimer les signalements", - "delete": "Delete", - "delete-users": "Delete User(s)", + "delete": "Supprimer", + "delete-users": "Supprimer Utilisateur(s)", "delete-content": "Supprimer le contenu du compte", "purge": "Supprimer le(s) compte(s) et le contenu", "download-csv": "Exporter en CSV", @@ -86,7 +86,7 @@ "alerts.button-ban-x": "Bannir %1 utilisateur(s)", "alerts.unban-success": "Utilisateur(s) dé-banni(s) !", "alerts.lockout-reset-success": "Blocage supprimé", - "alerts.password-change-success": "Password(s) changed!", + "alerts.password-change-success": "Mot(s) de passe modifié(s) !", "alerts.flag-reset-success": "Signalement(s) réinitialisé(s) !", "alerts.no-remove-yourself-admin": "Vous ne pouvez pas vous retirer vous-même des administrateurs !", "alerts.make-admin-success": "L'utilisateur est maintenant administrateur.", @@ -112,7 +112,7 @@ "alerts.create": "Créer un utilisateur", "alerts.button-create": "Créer", "alerts.button-cancel": "Annuler", - "alerts.button-change": "Change", + "alerts.button-change": "Modifier", "alerts.error-passwords-different": "Les mots de passe doivent correspondre !", "alerts.error-x": "Erreur

%1

", "alerts.create-success": "Utilisateur créé !", @@ -120,10 +120,10 @@ "alerts.prompt-email": "Emails: ", "alerts.email-sent-to": "Un e-mail d'invitation a été envoyé à %1", "alerts.x-users-found": "%1 utilisateur(s) trouvé(s), (%2 secondes)", - "alerts.select-a-single-user-to-change-email": "Select a single user to change email", + "alerts.select-a-single-user-to-change-email": "Sélectionner un utilisateur pour modifier l'adresse email", "export-users-started": "L'exportation d'utilisateurs au format CSV peut prendre un certain temps. Vous recevrez une notification lorsqu'elle sera terminée.", "export-users-completed": "Utilisateurs exportés au format CSV, cliquez ici pour télécharger.", - "email": "Email", - "password": "Password", - "manage": "Manage" + "email": "email", + "password": "Mot de passe", + "manage": "Gérer" } \ No newline at end of file diff --git a/public/language/fr/admin/settings/chat.json b/public/language/fr/admin/settings/chat.json index 5eadb8b455..82f277dc95 100644 --- a/public/language/fr/admin/settings/chat.json +++ b/public/language/fr/admin/settings/chat.json @@ -1,5 +1,5 @@ { - "zero-is-disabled": "Enter 0 to disable this restriction", + "zero-is-disabled": "Entrez 0 pour désactiver cette restriction", "chat-settings": "Paramètres des discussions", "disable": "Désactiver les discussions", "disable-editing": "Désactiver l'édition/la suppression des messages des discussions", @@ -7,10 +7,10 @@ "max-length": "Longueur maximales des messages de discussion", "max-chat-room-name-length": "Longueur maximale des noms de salons", "max-room-size": "Nombre maximum d'utilisateurs dans une même discussion", - "delay": "Time between chat messages (ms)", - "newbieDelay": "... for new users (ms)", - "notification-delay": "Notification delay for chat messages", + "delay": "Temps entre les messages de chat (ms)", + "newbieDelay": "... pour les nouveaux utilisateurs (ms)", + "notification-delay": "Délai de notification pour les messages de chat", "notification-delay-help": "Additional messages sent between this time are collated, and the user is notified once per delay period. Set this to 0 to disable the delay.", - "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable.", - "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable." + "restrictions.seconds-edit-after": "Nombre de secondes pendant lesquelles un message de discussion restera modifiable.", + "restrictions.seconds-delete-after": "Nombre de secondes pendant lesquelles un message de discussion reste supprimable." } \ No newline at end of file diff --git a/public/language/fr/category.json b/public/language/fr/category.json index d32a2a0f0c..48d830d4e3 100644 --- a/public/language/fr/category.json +++ b/public/language/fr/category.json @@ -16,7 +16,7 @@ "not-watching.description": "Ne pas afficher les sujets non lus, afficher les récents", "ignoring.description": "Ne pas afficher les sujets non lus et récents", "watching.message": "Vous suivez les mises à jour de cette catégorie et de ses sous-catégories. ", - "notwatching.message": "Vous ne suivez aucunes mises à jour de cette catégorie et de ses sous-catégories.", + "notwatching.message": "Vous ne suivez aucune mises à jour de cette catégorie et de ses sous-catégories.", "ignoring.message": "Vous ignorez maintenant les mises à jour de cette catégorie et de toutes les sous-catégories.", "watched-categories": "Catégories surveillées", "x-more-categories": "%1 plus de catégories" diff --git a/public/language/fr/error.json b/public/language/fr/error.json index a29abd42bc..b48af548fd 100644 --- a/public/language/fr/error.json +++ b/public/language/fr/error.json @@ -35,16 +35,16 @@ "email-taken": "Email déjà utilisé", "email-nochange": "Le mail saisi est déjà enregistré.", "email-invited": "Cet utilisateur a déjà été invité.", - "email-not-confirmed": "La publication dans certaines catégories ou sujets sera activée après confirmation de e-mail, veuillez cliquer ici pour envoyer un e-mail de confirmation.", + "email-not-confirmed": "La publication dans certaines catégories ou sujets sera activée après confirmation de l'e-mail, veuillez cliquer ici pour envoyer un e-mail de confirmation.", "email-not-confirmed-chat": "Il ne vous est pas possible d'utiliser le chat tant que votre adresse email n'a pas été vérifiée. Veuillez cliquer ici pour confirmer votre adresse email.", - "email-not-confirmed-email-sent": "Votre email n'a pas encore été confirmé, veuillez vérifier votre boîte mail. Vous ne pourrez pas poster ou discuter avant que votre email ne soit confirmé.", - "no-email-to-confirm": "Votre compte n'a pas d'adresse mail définie. Un mail est nécessaire pour la récupération du compte. Veuillez cliquer ici pour entrer un courriel.", + "email-not-confirmed-email-sent": "Votre e-mail n'a pas encore été confirmé, veuillez vérifier votre boîte mail. Vous ne pourrez pas poster ou discuter avant que votre e-mail ne soit confirmé.", + "no-email-to-confirm": "Votre compte n'a pas d'adresse mail définie. Un e-mail est nécessaire pour la récupération du compte. Veuillez cliquer ici pour entrer un courriel.", "user-doesnt-have-email": "L'utilisateur « %1 » n'a pas d'adresse e-mail.", "email-confirm-failed": "Votre adresse email n'a pas pu être vérifiée. Veuillez ré-essayer plus tard.", "confirm-email-already-sent": "L'email de confirmation a déjà été envoyé. Veuillez attendre %1 minute(s) avant de redemander un nouvel envoi.", - "confirm-email-expired": "Email de confirmation expiré.", + "confirm-email-expired": "E-mail de confirmation expiré.", "sendmail-not-found": "L'application d'envoi de mail est introuvable, assurez-vous qu'elle est installée et que l'utilisateur ayant démarré NodeBB ait des droits suffisants.", - "digest-not-enabled": "Les lettres d'activités de cet utilisateur ne sont pas activés ou la configuration système par défaut n’est pas configurée", + "digest-not-enabled": "Les lettres d'activités de cet utilisateur ne sont pas activées ou la configuration système par défaut n’est pas configurée", "username-too-short": "Nom d'utilisateur trop court", "username-too-long": "Nom d'utilisateur trop long", "password-too-long": "Mot de passe trop long", @@ -107,7 +107,7 @@ "upload-error-fallback": "Impossible de téléverser l'image — %1", "scheduling-to-past": "Veuillez sélectionner une date ultérieure.", "invalid-schedule-date": "Veuillez saisir une date et une heure valide.", - "cant-pin-scheduled": "Les sujets planifiés ne peuvent pas être (dé)épinglés.", + "cant-pin-scheduled": "Les sujets planifiés ne peuvent pas être (dés)épinglés.", "cant-merge-scheduled": "Les sujets planifiés ne peuvent pas être fusionnés.", "cant-move-posts-to-scheduled": "Impossible de déplacer les messages vers un sujet planifié.", "cant-move-from-scheduled-to-existing": "Impossible de déplacer les publications d'un sujet planifié vers un sujet existant.", @@ -165,7 +165,7 @@ "chat-room-does-not-exist": "Le salon de discussion n'existe pas.", "cant-add-users-to-chat-room": "Impossible d'ajouter des utilisateurs au salon.", "cant-remove-users-from-chat-room": "Impossible de supprimer des utilisateurs du salon.", - "chat-room-name-too-long": "Le nom de la salon est trop long. Les noms ne peuvent pas contenir plus de %1 caractères.", + "chat-room-name-too-long": "Le nom du salon est trop long. Les noms ne peuvent pas contenir plus de %1 caractères.", "already-voting-for-this-post": "Vous avez déjà voté pour ce message.", "reputation-system-disabled": "Le système de réputation est désactivé", "downvoting-disabled": "Les votes négatifs ne sont pas autorisés", @@ -201,7 +201,7 @@ "not-in-room": "L'utilisateur n'est pas dans cette salle", "cant-kick-self": "Vous ne pouvez pas vous exclure vous-même du groupe", "no-users-selected": "Aucun utilisateur sélectionné", - "no-groups-selected": "Aucun groupe(s) sélectionné", + "no-groups-selected": "Aucun groupe(s) sélectionné(s)", "invalid-home-page-route": "Chemin vers la page d'accueil invalide", "invalid-session": "Session Invalide", "invalid-session-text": "Il semblerait que votre session de connexion ne soit plus active. Merci de rafraîchir cette page.", @@ -211,7 +211,7 @@ "cant-move-to-same-topic": "Impossible de déplacer le message dans le même sujet !", "cant-move-topic-to-same-category": "Impossible de déplacer le sujet dans la même catégorie !", "cannot-block-self": "Vous ne pouvez pas vous bloquer !", - "cannot-block-privileged": "Vous ne pouvez pas bloquer les administrateurs ou les modérateurs global", + "cannot-block-privileged": "Vous ne pouvez pas bloquer les administrateurs ou les modérateurs globaux", "cannot-block-guest": "Les Invités ne peuvent pas bloquer d'autres utilisateurs", "already-blocked": "Cet utilisateur est déjà bloqué", "already-unblocked": "Cet utilisateur est déjà débloqué", diff --git a/public/language/fr/modules.json b/public/language/fr/modules.json index c954038e47..ad916bff6f 100644 --- a/public/language/fr/modules.json +++ b/public/language/fr/modules.json @@ -9,14 +9,14 @@ "chat.chat-with-usernames-and-x-others": "Discuter avec %1 & %2 autres", "chat.send": "Envoyer", "chat.no_active": "Vous n'avez aucune discussion en cours.", - "chat.user_typing_1": "%1 is typing ...", - "chat.user_typing_2": "%1 and %2 are typing ...", - "chat.user_typing_3": "%1, %2 and %3 are typing ...", - "chat.user_typing_n": "%1, %2 and %3 others are typing ...", + "chat.user_typing_1": "%1 est en train de taper...", + "chat.user_typing_2": "%1 et %2 sont en train de taper...", + "chat.user_typing_3": "%1, %2 et %3 sont en train de taper...", + "chat.user_typing_n": "%1, %2 et %3 autres sont en train de taper...", "chat.user_has_messaged_you": "%1 vous a envoyé un message.", "chat.replying-to": "En réponse à %1", "chat.see_all": "Tous les chats", - "chat.mark_all_read": "Marquez tous comme lu", + "chat.mark_all_read": "Marquer tous comme lu", "chat.no-messages": "Veuillez sélectionner un destinataire pour voir l'historique des discussions", "chat.no-users-in-room": "Aucun participant à cette discussion", "chat.recent-chats": "Discussions récentes", @@ -33,22 +33,22 @@ "chat.delete_message_confirm": "Êtes-vous sûr de vouloir supprimer ce message ?", "chat.retrieving-users": "Ajouter des utilisateurs ...", "chat.view-users-list": "Afficher la liste de utilisateurs", - "chat.pinned-messages": "Pinned Messages", - "chat.no-pinned-messages": "There are no pinned messages", - "chat.pin-message": "Pin Message", - "chat.unpin-message": "Unpin Message", - "chat.public-rooms": "Salon Publique (%1)", - "chat.private-rooms": "Salon Privé (%1)", - "chat.create-room": "Créer une salon de discussion", + "chat.pinned-messages": "Messages épinglés", + "chat.no-pinned-messages": "Il n'y a aucun message épinglé", + "chat.pin-message": "Épingler un message", + "chat.unpin-message": "Désépingler un message", + "chat.public-rooms": "Salons Publics (%1)", + "chat.private-rooms": "Salons Privés (%1)", + "chat.create-room": "Créer un salon de discussion", "chat.private.option": "Privé (uniquement visible pour les utilisateurs ajoutés au salon)", "chat.public.option": "Public (Visible par tous les utilisateurs des groupes sélectionnés)", - "chat.public.groups-help": "Pour créer une salon de discussion visible par tous les utilisateurs, sélectionnez les utilisateurs enregistrés dans la liste des groupes.", + "chat.public.groups-help": "Pour créer un salon de discussion visible par tous les utilisateurs, sélectionnez les utilisateurs enregistrés dans la liste des groupes.", "chat.manage-room": "Gérer l'espace de discussion", "chat.add-user": "Ajouter un utilisateur", "chat.notification-settings": "Paramètres de notification", "chat.default-notification-setting": "Paramètres des notifications par défaut", "chat.notification-setting-room-default": "Salon par défaut", - "chat.notification-setting-none": "Aucunes notifications", + "chat.notification-setting-none": "Aucune notification", "chat.notification-setting-at-mention-only": "@mention seulement", "chat.notification-setting-all-messages": "Tous les messages", "chat.select-groups": "Sélectionner des groupes", @@ -95,7 +95,7 @@ "composer.zen_mode": "Mode Zen", "composer.select_category": "Sélectionnez une catégorie", "composer.textarea.placeholder": "Saisissez le contenu de votre message ici, faites glisser et déposez les images", - "composer.post-queue-alert": "Hello👋!
This forum uses a post queue system, since you are a new user your post will be hidden until it is approved by our moderation team.", + "composer.post-queue-alert": "Bonjour👋 ! Ce forum utilise un système de file d'attente des publications, puisque vous êtes un nouvel utilisateur, votre message sera masqué jusqu'à ce qu'il soit approuvé par notre équipe de modération.", "composer.schedule-for": "Planifier le sujet pour", "composer.schedule-date": "Date", "composer.schedule-time": "Heure", @@ -111,8 +111,8 @@ "bootbox.submit": "Envoyer", "bootbox.send": "Envoyer", "cover.dragging_title": "Positionnement de la photo de couverture", - "cover.dragging_message": "Déplacez la photo de couverture à la position désiré et cliquez sur \"Enregistrer\"", - "cover.saved": "Photo de couverture et position sauvegardé. ", + "cover.dragging_message": "Déplacez la photo de couverture à la position désirée et cliquez sur \"Enregistrer\"", + "cover.saved": "Photo de couverture et position sauvegardées. ", "thumbs.modal.title": "Gérer les vignettes des sujets", "thumbs.modal.no-thumbs": "Aucune vignette trouvée.", "thumbs.modal.resize-note": "Remarque: ce forum est configuré pour redimensionner les vignettes des sujets jusqu'à une largeur maximale de %1px", diff --git a/public/language/fr/notifications.json b/public/language/fr/notifications.json index 69d2056b2f..633cd609ee 100644 --- a/public/language/fr/notifications.json +++ b/public/language/fr/notifications.json @@ -1,8 +1,8 @@ { "title": "Notifications", "no_notifs": "Vous n'avez aucune notification", - "see_all": "Toutes vos notifications", - "mark_all_read": "Marquez tous comme lu", + "see_all": "Toutes les notifications", + "mark_all_read": "Marquer tous comme lu", "back_to_home": "Revenir à %1", "outgoing_link": "Lien sortant", "outgoing_link_message": "Vous quittez %1", @@ -15,41 +15,41 @@ "replies": "Réponses", "chat": "Discussions", "group-chat": "Groupe de discussions", - "public-chat": "Discussions plubiques", + "public-chat": "Discussions publiques", "follows": "Suivis", "upvote": "Votes positifs", "new-flags": "Nouveaux drapeaux", "my-flags": "Drapeaux assignés à moi", "bans": "Bannissements", "new_message_from": "Nouveau message de %1", - "user_posted_in_public_room": "%1 à écrit dans %3", - "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", - "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", - "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", + "user_posted_in_public_room": "%1 a écrit dans %3", + "user_posted_in_public_room_dual": "%1 et %2 ont écrit dans %4", + "user_posted_in_public_room_triple": "%1, %2 et %3 ont écrit dans %5", + "user_posted_in_public_room_multiple": "%1, %2 et %3 autres ont écrit dans %5", "upvoted_your_post_in": "%1 a voté pour votre message dans %2.", "upvoted_your_post_in_dual": "%1 et %2 ont voté pour votre message dans %3.", - "upvoted_your_post_in_triple": "%1, %2 and %3 have upvoted your post in %4.", - "upvoted_your_post_in_multiple": "%1, %2 and %3 others have upvoted your post in %4.", + "upvoted_your_post_in_triple": "%1, %2 et %3 ont voté pour votre message dans %4.", + "upvoted_your_post_in_multiple": "%1, %2 et %3 autres ont voté positivement pour votre message dans %4.", "moved_your_post": "%1 a déplacé votre message vers %2", "moved_your_topic": "%1 a déplacé %2.", "user_flagged_post_in": "%1 a signalé un message dans %2.", "user_flagged_post_in_dual": "%1 et %2 ont signalé un message dans %3", - "user_flagged_post_in_triple": "%1, %2 and %3 flagged a post in %4", - "user_flagged_post_in_multiple": "%1, %2 and %3 others flagged a post in %4", + "user_flagged_post_in_triple": "%1, %2 et %3 ont signalé un message dans %4", + "user_flagged_post_in_multiple": "%1, %2 et %3 autres ont signalé un message dans %4", "user_flagged_user": "%1 a signalé un profil utilisateur (%2)", "user_flagged_user_dual": "%1 et %2 ont signalé un profil utilisateur (%3)", - "user_flagged_user_triple": "%1, %2 and %3 flagged a user profile (%4)", - "user_flagged_user_multiple": "%1, %2 and %3 others flagged a user profile (%4)", + "user_flagged_user_triple": "%1, %2 et %3 ont signalé un profil utilisateur (%4)", + "user_flagged_user_multiple": "%1, %2 et %3 autres ont signalé un profil utilisateur (%4)", "user_posted_to": "%1 a répondu à : %2", "user_posted_to_dual": "%1 et %2 ont posté une réponse à : %3", - "user_posted_to_triple": "%1, %2 and %3 have posted replies to: %4", - "user_posted_to_multiple": "%1, %2 and %3 others have posted replies to: %4", + "user_posted_to_triple": "%1, %2 et %3 ont publié des réponses à : %4", + "user_posted_to_multiple": "%1, %2 et %3 autres ont posté des réponses dans : %4", "user_posted_topic": "%1 a posté un nouveau sujet: %2.", "user_edited_post": "%1 a édité un message dans %2", "user_started_following_you": "%1 vous suit.", "user_started_following_you_dual": "%1 et %2 se sont abonnés à votre compte.", - "user_started_following_you_triple": "%1, %2 and %3 started following you.", - "user_started_following_you_multiple": "%1, %2 and %3 others started following you.", + "user_started_following_you_triple": "%1, %2 et %3 ont commencé à vous suivre.", + "user_started_following_you_multiple": "%1, %2 et %3 autres ont commencé à vous suivre.", "new_register": "%1 a envoyé une demande d'incription.", "new_register_multiple": "%1 inscription(s) est en attente de validation.", "flag_assigned_to_you": "Drapeau %1 vous a été assigné", diff --git a/public/language/fr/topic.json b/public/language/fr/topic.json index 582860ef1c..48c5b2cf82 100644 --- a/public/language/fr/topic.json +++ b/public/language/fr/topic.json @@ -17,7 +17,7 @@ "last_reply_time": "Dernière réponse", "reply-as-topic": "Répondre à l'aide d'un nouveau sujet", "guest-login-reply": "Se connecter pour répondre", - "login-to-view": "🔒 Se connectez-vous pour voir", + "login-to-view": "🔒 Se connecter pour voir", "edit": "Éditer", "delete": "Supprimer", "delete-event": "Supprimer l'événement", @@ -181,7 +181,7 @@ "newest_to_oldest": "Du plus récent au plus ancien", "most_votes": "Les plus votés", "most_posts": "Meilleurs messages", - "most_views": "Les plus vues", + "most_views": "Les plus vus", "stale.title": "Créer un nouveau sujet à la place ?", "stale.warning": "Le sujet auquel vous répondez est assez ancien. Ne voudriez-vous pas créer un nouveau sujet à la place et placer une référence vers celui-ci dans votre réponse ?", "stale.create": "Créer un nouveau sujet", diff --git a/public/language/fr/user.json b/public/language/fr/user.json index 2b327376e3..81fdbf6cbc 100644 --- a/public/language/fr/user.json +++ b/public/language/fr/user.json @@ -61,7 +61,7 @@ "change_picture": "Changer l'image", "change_username": "Changer le nom d'utilisateur", "change_email": "Changer l'e-mail", - "email-updated": "Email Updated", + "email-updated": "E-mail mis à jour", "email_same_as_password": "Veuillez entrer votre mot de passe actuel pour continuer – vous devez saisir à nouveau votre email", "edit": "Éditer", "edit-profile": "Éditer le profil", From 0b231fd31bbe22788283b3ebee06d94d2330c12f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 8 Sep 2023 11:21:17 -0400 Subject: [PATCH 017/275] chore(deps): update redis docker tag to v7.2.1 (#11987) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/test.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index e938284a9b..8595263dc3 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -63,7 +63,7 @@ jobs: - 5432:5432 redis: - image: 'redis:7.2.0' + image: 'redis:7.2.1' # Set health checks to wait until redis has started options: >- --health-cmd "redis-cli ping" From a473b5155d4085752d54bdf6e9ed288d38dd1613 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 8 Sep 2023 11:21:26 -0400 Subject: [PATCH 018/275] chore(deps): update coverallsapp/github-action action to v2.2.3 (#11988) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/test.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 8595263dc3..5805db031c 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -192,7 +192,7 @@ jobs: run: npm run coverage - name: Test coverage - uses: coverallsapp/github-action@3b7078ee895f74fc267b7b267c88211df59fa816 # v2.2.2 + uses: coverallsapp/github-action@3dfc5567390f6fa9267c0ee9c251e4c8c3f18949 # v2.2.3 if: matrix.coverage with: github-token: ${{ secrets.GITHUB_TOKEN }} @@ -206,7 +206,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Coveralls Finished - uses: coverallsapp/github-action@3b7078ee895f74fc267b7b267c88211df59fa816 # v2.2.2 + uses: coverallsapp/github-action@3dfc5567390f6fa9267c0ee9c251e4c8c3f18949 # v2.2.3 with: github-token: ${{ secrets.GITHUB_TOKEN }} parallel-finished: true From 867959b03b1efb752ef490ce0ee20eb4e1881bf1 Mon Sep 17 00:00:00 2001 From: Misty Release Bot Date: Sat, 9 Sep 2023 09:18:55 +0000 Subject: [PATCH 019/275] Latest translations and fallbacks --- public/language/fr/admin/admin.json | 10 ++--- .../fr/admin/appearance/customise.json | 2 +- public/language/fr/admin/dashboard.json | 4 +- .../language/fr/admin/development/info.json | 4 +- public/language/fr/admin/extend/widgets.json | 2 +- .../language/fr/admin/manage/admins-mods.json | 2 +- .../language/fr/admin/manage/categories.json | 2 +- public/language/fr/admin/manage/digest.json | 2 +- public/language/fr/admin/manage/groups.json | 4 +- .../language/fr/admin/manage/privileges.json | 18 ++++---- public/language/fr/admin/manage/tags.json | 2 +- public/language/fr/admin/manage/users.json | 28 ++++++------ .../language/fr/admin/settings/advanced.json | 12 ++--- public/language/fr/admin/settings/api.json | 6 +-- public/language/fr/admin/settings/chat.json | 4 +- .../language/fr/admin/settings/cookies.json | 4 +- public/language/fr/admin/settings/email.json | 12 ++--- .../language/fr/admin/settings/general.json | 10 ++--- .../fr/admin/settings/navigation.json | 4 +- .../fr/admin/settings/notifications.json | 2 +- public/language/fr/admin/settings/post.json | 14 +++--- .../fr/admin/settings/reputation.json | 10 ++--- .../language/fr/admin/settings/uploads.json | 18 ++++---- public/language/fr/admin/settings/user.json | 16 +++---- public/language/fr/category.json | 4 +- public/language/fr/email.json | 28 ++++++------ public/language/fr/error.json | 16 +++---- public/language/fr/flags.json | 8 ++-- public/language/fr/global.json | 8 ++-- public/language/fr/groups.json | 4 +- public/language/fr/modules.json | 26 +++++------ public/language/fr/notifications.json | 24 +++++----- public/language/fr/pages.json | 8 ++-- public/language/fr/post-queue.json | 8 ++-- public/language/fr/register.json | 12 ++--- public/language/fr/reset_password.json | 6 +-- public/language/fr/search.json | 44 +++++++++---------- public/language/fr/tags.json | 4 +- public/language/fr/themes/harmony.json | 2 +- public/language/fr/themes/persona.json | 12 ++--- public/language/fr/topic.json | 40 ++++++++--------- public/language/fr/user.json | 12 ++--- public/language/tr/modules.json | 2 +- 43 files changed, 230 insertions(+), 230 deletions(-) diff --git a/public/language/fr/admin/admin.json b/public/language/fr/admin/admin.json index ff3f62f598..b678e57c67 100644 --- a/public/language/fr/admin/admin.json +++ b/public/language/fr/admin/admin.json @@ -4,13 +4,13 @@ "acp-title": "%1 | Panneau d'administration NodeBB", "settings-header-contents": "Contenus", - "changes-saved": "Changements sauvegardés", + "changes-saved": "Modifications enregistrées", "changes-saved-message": "Vos modifications de la configuration NodeBB ont été enregistrées.", - "changes-not-saved": "Changements non sauvegardés !", + "changes-not-saved": "Modifications non enregistrées !", "changes-not-saved-message": "NodeBB a rencontré un problème lors de l'enregistrement de vos modifications ! (%1)", - "save-changes": "Enregistrer les changements", - "min": "Min:", - "max": "Max:", + "save-changes": "Enregistrer les modifications", + "min": "Min :", + "max": "Max :", "view": "Voir", "edit": "Éditer ", "add": "Ajouter", diff --git a/public/language/fr/admin/appearance/customise.json b/public/language/fr/admin/appearance/customise.json index 52942da8a3..ed3d35bec0 100644 --- a/public/language/fr/admin/appearance/customise.json +++ b/public/language/fr/admin/appearance/customise.json @@ -15,6 +15,6 @@ "custom-css.livereload": "Activer le rechargement en direct", "custom-css.livereload.description": "Activez cette option pour forcer toutes les sessions sur chaque appareil connecté à votre compte à se rafraichir lorsque vous cliquez sur Enregistrer.", "bsvariables": "_variables.scss", - "bsvariables.description": "Remplacez les variables de lancement ici. Vous pouvez également utiliser un outil comme bootstrap.build et copier coller le code ici.
Les modifications nécessitent une reconstruction et un redémarrage.", + "bsvariables.description": "Remplacer les variables de lancement ici. Vous pouvez également utiliser un outil comme bootstrap.build et copier coller le code ici.
Les modifications nécessitent une reconstruction et un redémarrage.", "bsvariables.enable": "Activer _variables.scss" } \ No newline at end of file diff --git a/public/language/fr/admin/dashboard.json b/public/language/fr/admin/dashboard.json index 34f4440595..4fe90ddc2b 100644 --- a/public/language/fr/admin/dashboard.json +++ b/public/language/fr/admin/dashboard.json @@ -30,7 +30,7 @@ "upgrade-available": "

Une nouvelle version (v%1) est disponible. Veuillez mettre à jour NodeBB.

", "prerelease-upgrade-available": "

Votre version est dépassée. Une nouvelle version (v%1) est disponible. Veuillez mettre à jour NodeBB.

", "prerelease-warning": "

Ceci est une version préliminaire de NodeBB. Des bugs inattendus peuvent se produire.

", - "fallback-emailer-not-found": "Email de secours introuvable!", + "fallback-emailer-not-found": "E-mail de secours introuvable !", "running-in-development": "Le forum est en mode développement. Il peut être sujet à certaines vulnérabilités, veuillez contacter votre administrateur système.", "latest-lookup-failed": "Erreur de vérification de la dernière version disponible de NodeBB", @@ -86,7 +86,7 @@ "details.no-topics": "Aucun sujet n'a été publié dans la période sélectionnée", "details.no-searches": "Aucune recherche n'a été effectuée dans la période sélectionnée", "details.no-logins": "Aucune connexion n'a été enregistrée dans le délai sélectionné", - "details.logins-static": "NodeBB n'enregistre que les données de session pendant %1 jours, et le tableau ci-dessous n'affichera donc que les dernières sessions actives", + "details.logins-static": "NodeBB n'enregistre que les données de session pendant %1 jours, le tableau ci-dessous n'affichera donc que les dernières sessions actives", "details.logins-login-time": "Heure de connexion", "start": "Début", "end": "Fin", diff --git a/public/language/fr/admin/development/info.json b/public/language/fr/admin/development/info.json index 2b20a90ad6..b33bf0a4fa 100644 --- a/public/language/fr/admin/development/info.json +++ b/public/language/fr/admin/development/info.json @@ -8,8 +8,8 @@ "nodejs": "nodejs", "online": "en ligne", "git": "git", - "process-memory": "mémoire de processus", - "system-memory": "mémoire système", + "process-memory": "Mémoire de processus", + "system-memory": "Mémoire système", "used-memory-process": "Mémoire utilisée par processus", "used-memory-os": "Mémoire système utilisée", "total-memory-os": "Mémoire système totale", diff --git a/public/language/fr/admin/extend/widgets.json b/public/language/fr/admin/extend/widgets.json index d8b8fa5088..683bfa3160 100644 --- a/public/language/fr/admin/extend/widgets.json +++ b/public/language/fr/admin/extend/widgets.json @@ -24,7 +24,7 @@ "title": "Titre", "title.placeholder": "Titre (indiqué uniquement sur certains blocs)", "container": "Bloc", - "container.placeholder": "Glissez et déposez un bloc ou entrez HTML ici.", + "container.placeholder": "Glisser et déposer un bloc ou entrer HTML ici.", "show-to-groups": "Visible pour les groupes", "hide-from-groups": "Masquer pour les groupes", "start-date": "Date de début", diff --git a/public/language/fr/admin/manage/admins-mods.json b/public/language/fr/admin/manage/admins-mods.json index 35579e669b..6a6c195983 100644 --- a/public/language/fr/admin/manage/admins-mods.json +++ b/public/language/fr/admin/manage/admins-mods.json @@ -4,7 +4,7 @@ "global-moderators": "Modérateurs Globaux", "moderators": "Modérateurs", "no-global-moderators": "Aucun Modérateur Global ", - "no-sub-categories": "Aucunes sous-catégories", + "no-sub-categories": "Aucune sous-catégorie", "view-children": "Afficher les enfants (%1)", "no-moderators": "Aucun Modérateur", "add-administrator": "Ajouter un Administrateur", diff --git a/public/language/fr/admin/manage/categories.json b/public/language/fr/admin/manage/categories.json index 28e32bd26d..0c130427c1 100644 --- a/public/language/fr/admin/manage/categories.json +++ b/public/language/fr/admin/manage/categories.json @@ -3,7 +3,7 @@ "add-category": "Ajouter une catégorie", "jump-to": "Aller à...", "settings": "Paramètres de la catégorie", - "edit-category": "Retour aux catégories", + "edit-category": "Modifier les catégories", "privileges": "Privilèges", "back-to-categories": "Retour aux catégories", "name": "Nom de la catégorie", diff --git a/public/language/fr/admin/manage/digest.json b/public/language/fr/admin/manage/digest.json index 8726e546ae..5b41d01964 100644 --- a/public/language/fr/admin/manage/digest.json +++ b/public/language/fr/admin/manage/digest.json @@ -1,6 +1,6 @@ { "lead": "Une liste des statistiques des lettres d'activités envoyées est affichée ci-dessous.", - "disclaimer": "Veuillez noter que l'envoi par email n'est pas garanti en raison de la nature de la technologie de votre serveur de messagerie. De nombreuses variables déterminent si un email envoyé au serveur destinataire arrive dans la boîte de réception de l'utilisateur, y compris la réputation du serveur, les adresses IP figurant sur la liste noire et si les DKIM / SPF / DMARC sont configurés.", + "disclaimer": "Veuillez noter que l'envoi par e-mail n'est pas garanti en raison de la nature de la technologie de votre serveur de messagerie. De nombreuses variables déterminent si un e-mail envoyé au serveur destinataire arrive dans la boîte de réception de l'utilisateur, y compris la réputation du serveur, les adresses IP figurant sur la liste noire et si les DKIM / SPF / DMARC sont configurés.", "disclaimer-continued": "Un envoi réussi signifie que le message a été envoyé avec succès par NodeBB et acquitté par le serveur destinataire. Cela ne signifie pas que l'e-mail a atterri dans la boîte de réception. Pour de meilleurs résultats, nous vous recommandons d'utiliser un service de messagerie tiers, tel que SendGrid.", "user": "Utilisateur", diff --git a/public/language/fr/admin/manage/groups.json b/public/language/fr/admin/manage/groups.json index b8159c5705..fc1b258e95 100644 --- a/public/language/fr/admin/manage/groups.json +++ b/public/language/fr/admin/manage/groups.json @@ -1,13 +1,13 @@ { "manage-groups": "Gérer les groupes", "add-group": "Ajouter un groupe", - "edit-group": "Éditer un groupe", + "edit-group": "modifier un groupe", "back-to-groups": "Retour aux groupes", "view-group": "Voir le groupe", "icon-and-title": "Icône & titre", "name": "Nom du groupe", "badge": "Badge", - "properties": "Propriétées", + "properties": "Propriétés", "description": "Description du groupe", "member-count": "Nombre de membres", "system": "Système", diff --git a/public/language/fr/admin/manage/privileges.json b/public/language/fr/admin/manage/privileges.json index c8ddcfed56..6d781a137e 100644 --- a/public/language/fr/admin/manage/privileges.json +++ b/public/language/fr/admin/manage/privileges.json @@ -17,12 +17,12 @@ "search-content": "Rechercher un contenu", "search-users": "Rechercher des utilisateurs", "search-tags": "Rechercher les tags", - "view-users": "Afficher les Utilisateurs", - "view-tags": "Afficher les Tags", + "view-users": "Afficher les utilisateurs", + "view-tags": "Afficher les mots-clés", "view-groups": "Afficher les Groupes", "allow-local-login": "Identifiant local", - "allow-group-creation": "Groupe Créer", - "view-users-info": "Afficher les Utilisateurs", + "allow-group-creation": "Groupe créé", + "view-users-info": "Afficher les utilisateurs", "find-category": "Rechercher une catégorie", "access-category": "Droits des catégories", "access-topics": "Droits des sujets", @@ -45,17 +45,17 @@ "admin-users": "Utilisateurs", "admin-admins-mods": "Admin & Modo", "admin-groups": "Groupes", - "admin-tags": "Mots Clés", + "admin-tags": "Mots-clés", "admin-settings": "Paramètres", - "alert.confirm-moderate": "Voulez-vous vraiment accorder le privilège de modération à ce groupe d'utilisateurs ? Ce groupe est public et tous les utilisateurs peuvent le rejoindre à volonté.", - "alert.confirm-admins-mods": "Voulez-vous vraiment attribuer les droits aux & quot; d'Administrations & amp; Modérations & quot; à cet utilisateur / groupe? Les utilisateurs disposant de ce privilège peuvent promouvoir et rétrograder d'autres utilisateurs à des postes privilégiés, y compris le super administrateur", + "alert.confirm-moderate": "Voulez-vous vraiment accorder le privilège de modération à ce groupe d'utilisateurs ? Ce groupe est public et tous les utilisateurs peuvent le rejoindre.", + "alert.confirm-admins-mods": "Voulez-vous vraiment attribuer les droits & quot; d'administration & amp; de modération & quot; à cet utilisateur / groupe ? Les utilisateurs disposant de ce privilège peuvent promouvoir et rétrograder d'autres utilisateurs à des rôles privilégiés, y compris le super administrateur", "alert.confirm-save": "Veuillez confirmer votre intention de sauvegarder ces privilèges", "alert.confirm-discard": "Êtes-vous sûr de vouloir annuler vos modifications de privilèges ?", - "alert.discarded": "Modifications de privilèges annulés", + "alert.discarded": "Modifications de privilèges annulée", "alert.confirm-copyToAll": "Voulez-vous vraiment appliquer cet ensemble de %1 à toutes les catégories?", "alert.confirm-copyToAllGroup": "Voulez-vous vraiment appliquer l'ensemble de %1 de ce groupe à toutes les catégories?", - "alert.confirm-copyToChildren": "Voulez-vous vraiment appliquer cet ensemble de %1 à toutes les catégories incluses (enfants)?", + "alert.confirm-copyToChildren": "Voulez-vous vraiment appliquer cet ensemble de %1 à toutes les catégories enfants incluses?", "alert.confirm-copyToChildrenGroup": "Voulez-vous vraiment appliquer l'ensemble de %1 de ce groupe à toutes les catégories incluses (enfants)?", "alert.no-undo": "Cette action ne peut pas être annulée.", "alert.admin-warning": "Les administrateurs obtiennent implicitement tous les privilèges", diff --git a/public/language/fr/admin/manage/tags.json b/public/language/fr/admin/manage/tags.json index f7fc238bfd..572d9e1b7e 100644 --- a/public/language/fr/admin/manage/tags.json +++ b/public/language/fr/admin/manage/tags.json @@ -5,7 +5,7 @@ "text-color": "Couleur du texte", "description": "Pour une sélection multiple :\nSélectionnez des mots-clés en cliquant ou en sélectionnant avec votre souris ou utilisez la touche CTRL .", "create": "Créer le mot-clés", - "add-tag": "Ajouter un mots-clés", + "add-tag": "Ajouter un mots-clé", "modify": "Modifier les mots-clés", "rename": "Renommer les mots-clés", "delete": "Supprimer la sélection", diff --git a/public/language/fr/admin/manage/users.json b/public/language/fr/admin/manage/users.json index f6475bd75e..914d56ee2a 100644 --- a/public/language/fr/admin/manage/users.json +++ b/public/language/fr/admin/manage/users.json @@ -5,7 +5,7 @@ "make-admin": "Promouvoir Admin", "remove-admin": "Retirer des Admins", "change-email": "Modifier l'adresse mail", - "new-email": "Nouvel email", + "new-email": "Nouvel e-mail", "validate-email": "Vérifier l'adresse e-mail", "send-validation-email": "Envoyer un e-mail de vérification", "change-password": "Modifier le mot de passe", @@ -26,7 +26,7 @@ "set-reputation": "Définir une réputation", "add-group": "Ajouter un groupe", "create": "Créer un utilisateur", - "invite": "Inviter par mail", + "invite": "Inviter par e-mail", "new": "Nouvel utilisateur", "filter-by": "Filtrer par", "pills.unvalidated": "Non vérifié", @@ -45,7 +45,7 @@ "search.email": "Par adresse e-mail", "search.email-placeholder": "Entrez une adresse e-mail à rechercher", "search.ip": "Par adresse IP", - "search.ip-placeholder": "Entrez une adresse IP à rechercher", + "search.ip-placeholder": "Entrer une adresse IP à rechercher", "search.not-found": "Utilisateur introuvable !", "inactive.3-months": "3 mois", @@ -55,7 +55,7 @@ "users.uid": "uid", "users.username": "nom d'utilisateur", "users.email": "e-mail", - "users.no-email": "(pas e-mail)", + "users.no-email": "(pas d'e-mail)", "users.validated": "Validé", "users.not-validated": "Non validé", "users.validation-pending": "Validation en attente", @@ -85,7 +85,7 @@ "alerts.ban-success": "Utilisateur(s) banni(s)", "alerts.button-ban-x": "Bannir %1 utilisateur(s)", "alerts.unban-success": "Utilisateur(s) dé-banni(s) !", - "alerts.lockout-reset-success": "Blocage supprimé", + "alerts.lockout-reset-success": "Blocage(s) supprimé(s)", "alerts.password-change-success": "Mot(s) de passe modifié(s) !", "alerts.flag-reset-success": "Signalement(s) réinitialisé(s) !", "alerts.no-remove-yourself-admin": "Vous ne pouvez pas vous retirer vous-même des administrateurs !", @@ -93,17 +93,17 @@ "alerts.confirm-remove-admin": "Voulez-vous vraiment supprimer cet administrateur?", "alerts.remove-admin-success": "L'utilisateur n'est plus administrateur", "alerts.make-global-mod-success": "L'utilisateur est maintenant modérateur global", - "alerts.confirm-remove-global-mod": "Voulez-vous vraiment supprimer ce modérateur global?", + "alerts.confirm-remove-global-mod": "Voulez-vous vraiment supprimer ce modérateur global ?", "alerts.remove-global-mod-success": "L'utilisateur n'est plus un modérateur global.", "alerts.make-moderator-success": "L'utilisateur est maintenant modérateur", - "alerts.confirm-remove-moderator": "Voulez-vous vraiment supprimer ce modérateur?", + "alerts.confirm-remove-moderator": "Voulez-vous vraiment supprimer ce modérateur ?", "alerts.remove-moderator-success": "L'utilisateur n'est plus modérateur", - "alerts.confirm-validate-email": "Voulez-vous réellement vérifier les adresses e-mail de ces utilisateurs ?", - "alerts.confirm-force-password-reset": "Êtes-vous sûr de vouloir forcer la réinitialisation du mot de passe et déconnecter ces utilisateur(s) ?", + "alerts.confirm-validate-email": "Voulez-vous réellement vérifier les adresses e-mails de ces utilisateurs ?", + "alerts.confirm-force-password-reset": "Êtes-vous sûr de vouloir forcer la réinitialisation du mot de passe et déconnecter cet (ces) utilisateur(s) ?", "alerts.validate-email-success": "Adresse e-mail vérifiée", "alerts.validate-force-password-reset-success": "Les mots de passe des utilisateurs ont été réinitialisés et leurs sessions existantes ont été révoquées.", "alerts.password-reset-confirm": "Voulez-vous réellement envoyer un e-mail de réinitialisation de mot de passe à ces utilisateurs ?", - "alerts.password-reset-email-sent": "Le mail pour réinitialiser votre mot de passe a était envoyer.", + "alerts.password-reset-email-sent": "Réinitialisation de mot de passe envoyée", "alerts.confirm-delete": "Attention !

Voulez-vous réellement supprimer le(s) utilisateur(s) ?

Cette action est irréversible ! Toutes les données de ces utilisateurs seront effacées !

", "alerts.delete-success": "Utilisateur(s) supprimé(s) !", "alerts.confirm-delete-content": "Attention !

Voulez-vous réellement supprimer le contenu de ces utilisateurs ?

Cette action est irréversible ! Toutes les données de ces utilisateurs seront effacées !

", @@ -117,13 +117,13 @@ "alerts.error-x": "Erreur

%1

", "alerts.create-success": "Utilisateur créé !", - "alerts.prompt-email": "Emails: ", + "alerts.prompt-email": "E-mails : ", "alerts.email-sent-to": "Un e-mail d'invitation a été envoyé à %1", "alerts.x-users-found": "%1 utilisateur(s) trouvé(s), (%2 secondes)", - "alerts.select-a-single-user-to-change-email": "Sélectionner un utilisateur pour modifier l'adresse email", + "alerts.select-a-single-user-to-change-email": "Sélectionner un utilisateur pour modifier l'adresse e-mail", "export-users-started": "L'exportation d'utilisateurs au format CSV peut prendre un certain temps. Vous recevrez une notification lorsqu'elle sera terminée.", - "export-users-completed": "Utilisateurs exportés au format CSV, cliquez ici pour télécharger.", - "email": "email", + "export-users-completed": "Utilisateurs exportés au format CSV, cliquer ici pour télécharger.", + "email": "e-mail", "password": "Mot de passe", "manage": "Gérer" } \ No newline at end of file diff --git a/public/language/fr/admin/settings/advanced.json b/public/language/fr/admin/settings/advanced.json index 149196b62e..2b775d0084 100644 --- a/public/language/fr/admin/settings/advanced.json +++ b/public/language/fr/admin/settings/advanced.json @@ -7,32 +7,32 @@ "headers": "En-têtes", "headers.allow-from": "Définissez ALLOW-FROM pour afficher NodeBB dans un iFrame", "headers.csp-frame-ancestors": "Définir la politique de sécurité pour pouvoir intégrer des iframes", - "headers.csp-frame-ancestors-help": "'none', 'self' (par défaut) ou liste d'UrIs à autoriser.", + "headers.csp-frame-ancestors-help": "'none', 'self' (par défaut) ou liste d'URL à autoriser.", "headers.powered-by": "Personnaliser l'en-tête \"Propulsé par\" envoyé par NodeBB", "headers.acao": "Access-Control-Allow-Origin", "headers.acao-regex": "Access-Control-Allow-Origin Expression régulière", "headers.acao-help": "Pour refuser l'accès à tous les sites, laissez vide", - "headers.acao-regex-help": "Entrez une expression régulière pour autoriser les pages de manière dynamique. Pour interdire l'accès à toutes les pages, laissez vide.", + "headers.acao-regex-help": "Entrer une expression régulière pour autoriser les pages de manière dynamique. Pour interdire l'accès à toutes les pages, laissez vide.", "headers.acac": "Access-Control-Allow-Credentials", "headers.acam": "\nAccess-Control-Allow-Methods", "headers.acah": "\nAccess-Control-Allow-Headers", "headers.coep": "Cross-Origin-Embedder-Policy", - "headers.coep-help": "Lorsqu'il est activé (par défaut), définira l'en-tête sur require-corp", + "headers.coep-help": "Lorsqu'il est activé (par défaut), cela définira l'en-tête sur require-corp", "headers.coop": "Cross-Origin-Opener-Policy", "headers.corp": "Cross-Origin-Resource-Policy", "headers.permissions-policy": "En-tête HTTP de sécurité", "headers.permissions-policy-help": "Permet de définir l'en-tête HTTP de sécurité, par exemple \"geolocation=*, camera=()\", voir ceci pour plus d'informations.", "hsts": "Strict Transport Security", "hsts.enabled": "Activer HSTS (recommandé)", - "hsts.maxAge": "HSTS Age Max", + "hsts.maxAge": "HSTS âge max", "hsts.subdomains": "Inclure les sous-domaines dans l'en-tête HSTS", "hsts.preload": "Autoriser le préchargement de l'en-tête HSTS", "hsts.help": "Si activé, un en-tête HSTS sera défini pour ce site. Vous pouvez choisir d'inclure des sous-domaines et des indicateurs de préchargement dans votre en-tête. En cas de doute, ne cochez pas l'option. Plus d'informations", "traffic-management": "Gestion du trafic", "traffic.help": "NodeBB utilise un module qui refuse automatiquement les demandes dans les situations de fort trafic. Vous pouvez régler ces paramètres ici, bien que les valeurs par défaut soient un bon point de départ.", - "traffic.enable": "Activé la gestion du trafic", + "traffic.enable": "Activer la gestion du trafic", "traffic.event-lag": "Seuil de lag des boucles d'événements (en millisecondes) ", - "traffic.event-lag-help": "Descendre cette valeur réduit le temps d'attente pour le chargement de s pages, mais montrera le message \"charge excessive\" à plus d'utilisateurs. (redémarrage requis)", + "traffic.event-lag-help": "Descendre cette valeur réduit le temps d'attente pour le chargement des pages, mais montrera le message \"charge excessive\" à plus d'utilisateurs. (redémarrage requis)", "traffic.lag-check-interval": "Vérifier l’intervalle (en millisecondes)", "traffic.lag-check-interval-help": "Descendre cette valeur rend NodeBB plus sensible aux pics dans le chargement, mais rend aussi le contrôle trop sensible. (redémarrage requis)", diff --git a/public/language/fr/admin/settings/api.json b/public/language/fr/admin/settings/api.json index fad2658239..e8ccbd1373 100644 --- a/public/language/fr/admin/settings/api.json +++ b/public/language/fr/admin/settings/api.json @@ -7,14 +7,14 @@ "docs": "Cliquez ici pour accéder à la documentation de l'API", "require-https": "Forcer l'utilisation de l'API via HTTPS uniquement", - "require-https-caveat": "Remarque: certaines installations impliquant des load balancer peuvent transmettre leurs requêtes à NodeBB via HTTP, auquel cas cette option doit rester désactivée.", + "require-https-caveat": "Remarque: certaines installations impliquant de l'équilibrage de charge peuvent transmettre leurs requêtes à NodeBB via HTTP, auquel cas cette option doit rester désactivée.", "uid": "ID Utilisateur", "token": "Jeton", - "uid-help-text": "Spécifiez un ID utilisateur à associer à ce token. Si l'ID utilisateur est 0, il sera considéré comme un token maître, qui peut prendre l'identité d'autres utilisateurs en fonction du paramètre _uid", + "uid-help-text": "Spécifier un ID utilisateur à associer à ce token. Si l'ID utilisateur est 0, il sera considéré comme un token maître, qui peut prendre l'identité d'autres utilisateurs en fonction du paramètre _uid", "description": "Description", "last-seen": "Vu pour la dernière fois", - "created": "Créée", + "created": "Créé", "create-token": "Créer un Jeton", "update-token": "Mettre à jour le Jeton", "master-token": "Jeton maître", diff --git a/public/language/fr/admin/settings/chat.json b/public/language/fr/admin/settings/chat.json index 82f277dc95..56f57672b0 100644 --- a/public/language/fr/admin/settings/chat.json +++ b/public/language/fr/admin/settings/chat.json @@ -4,13 +4,13 @@ "disable": "Désactiver les discussions", "disable-editing": "Désactiver l'édition/la suppression des messages des discussions", "disable-editing-help": "Les administrateurs et modérateurs globaux sont dispensés de cette restriction", - "max-length": "Longueur maximales des messages de discussion", + "max-length": "Longueur maximale des messages de discussion", "max-chat-room-name-length": "Longueur maximale des noms de salons", "max-room-size": "Nombre maximum d'utilisateurs dans une même discussion", "delay": "Temps entre les messages de chat (ms)", "newbieDelay": "... pour les nouveaux utilisateurs (ms)", "notification-delay": "Délai de notification pour les messages de chat", - "notification-delay-help": "Additional messages sent between this time are collated, and the user is notified once per delay period. Set this to 0 to disable the delay.", + "notification-delay-help": "Les messages supplémentaires envoyés pendant cette période sont regroupés et l’utilisateur est averti pendant ce délai. Définissez cette valeur sur 0 pour désactiver le délai.", "restrictions.seconds-edit-after": "Nombre de secondes pendant lesquelles un message de discussion restera modifiable.", "restrictions.seconds-delete-after": "Nombre de secondes pendant lesquelles un message de discussion reste supprimable." } \ No newline at end of file diff --git a/public/language/fr/admin/settings/cookies.json b/public/language/fr/admin/settings/cookies.json index b337057dfc..4473a402d1 100644 --- a/public/language/fr/admin/settings/cookies.json +++ b/public/language/fr/admin/settings/cookies.json @@ -4,10 +4,10 @@ "consent.message": "Message de notification", "consent.acceptance": "Message d'acceptation", "consent.link-text": "Texte du lien vers la politique de confidentialité", - "consent.link-url": "URL du lien Policy", + "consent.link-url": "URL du lien vers la politique", "consent.blank-localised-default": "Laisser vide pour utiliser les textes localisés par défaut de NodeBB", "settings": "Réglages", "cookie-domain": "Domaine de session du cookie", "max-user-sessions": "Nombre maximum de sessions actives par utilisateur", - "blank-default": "Laissez vide pour utiliser les réglages par défaut" + "blank-default": "Laisser vide pour utiliser les réglages par défaut" } \ No newline at end of file diff --git a/public/language/fr/admin/settings/email.json b/public/language/fr/admin/settings/email.json index 2d1e56a0db..8848ec54a4 100644 --- a/public/language/fr/admin/settings/email.json +++ b/public/language/fr/admin/settings/email.json @@ -13,10 +13,10 @@ "smtp-transport-help": "Vous pouvez sélectionner depuis une liste de services ou entrer un service personnalisé.", "smtp-transport.service": "Sélectionner un service", "smtp-transport.service-custom": "Service personnalisé", - "smtp-transport.service-help": "Sélectionnez un nom de service ci-dessus afin d'utiliser les informations connues à son sujet. Vous pouvez également sélectionner "Service personnalisé" et entrez les détails ci-dessous.", + "smtp-transport.service-help": "Sélectionnez un nom de service ci-dessus afin d'utiliser les informations connues à son sujet. Vous pouvez également sélectionner "Service personnalisé" et entrer les détails ci-dessous.", "smtp-transport.gmail-warning1": "Si vous utilisez GMail comme fournisseur de messagerie, vous devrez générer un "mot de passe d'application" afin que NodeBB s'authentifie avec succès. Vous pouvez en générer un sur la page Mots de passe .", - "smtp-transport.gmail-warning2": "Pour plus d'informations sur cette solution de contournement, veuillez consulter cet article de NodeMailer sur le problème. Une alternative serait d'utiliser un plug-in tiers d'e-mail tel que SendGrid, Mailgun, etc. Parcourez les plug-ins disponibles ici.", - "smtp-transport.auto-enable-toast": "Il semble que vous configuriez un serveur SMTP. Nous avons activé l'option \" SMTP\" pour vous.", + "smtp-transport.gmail-warning2": "Pour plus d'informations sur cette solution de contournement, veuillez consulter cet article de NodeMailer sur le problème. Une alternative serait d'utiliser un plug-in tiers d'e-mail tel que SendGrid, Mailgun, etc. Parcourez les plugins disponibles ici.", + "smtp-transport.auto-enable-toast": "Il semble que vous configurez un serveur SMTP. Nous avons activé l'option \" SMTP\" pour vous.", "smtp-transport.host": "Host SMTP", "smtp-transport.port": "Port SMTP", "smtp-transport.security": "Accès sécurisé", @@ -44,9 +44,9 @@ "require-email-address": "Exiger une adresse e-mail aux nouveaux utilisateurs ", "require-email-address-warning": "Par défaut, les utilisateurs peuvent refuser de saisir une adresse e-mail en laissant le champ vide. L'activation de cette option signifie que les nouveaux utilisateurs devront entrer et confirmer une adresse e-mail afin de procéder à l'inscription et à l'accès ultérieur au forum. Cela ne garantit pas que l'utilisateur saisira une véritable adresse e-mail, ni même une adresse qu'il possède.", "send-validation-email": "Envoyer une confirmation de validation lorsqu'un e-mail est ajouté ou modifié", - "include-unverified-emails": "Envoyer des mails aux destinataires qui n'ont pas explicitement confirmé leurs mails", + "include-unverified-emails": "Envoyer des e-mails aux destinataires qui n'ont pas explicitement confirmé leurs adresses", "include-unverified-warning": "Par défaut, les utilisateurs dont les mails sont associés à leur compte ont déjà été vérifiés, mais il existe des situations où ce n'est pas le cas (par exemple, les connexions SSO, les utilisateurs bénéficiant de droits acquis, etc.). Activez ce paramètre à vos risques et périls – l'envoi de mails à des adresses non vérifiées peut constituer une violation des lois anti-spam régionales.", - "prompt": "Inviter les utilisateurs à saisir ou à confirmer leurs emails", - "prompt-help": "Si un utilisateur n'a pas défini d'email ou si son email n'est pas confirmé, un avertissement s'affichera à l'écran.", + "prompt": "Inviter les utilisateurs à saisir ou à confirmer leur e-mail", + "prompt-help": "Si un utilisateur n'a pas défini d'e-mail ou si son e-mail n'est pas confirmé, un avertissement s'affichera à l'écran.", "sendEmailToBanned": "Envoyer des e-mails aux utilisateurs même s'ils ont été bannis" } diff --git a/public/language/fr/admin/settings/general.json b/public/language/fr/admin/settings/general.json index 47dcf81c8c..ee00bf5d30 100644 --- a/public/language/fr/admin/settings/general.json +++ b/public/language/fr/admin/settings/general.json @@ -1,19 +1,19 @@ { "general-settings": "Réglages Principaux", - "on-this-page": "Sur cette page:", + "on-this-page": "Sur cette page :", "site-settings": "Réglages du site", "title": "Titre du site", "title.short": "Titre court", "title.short-placeholder": "Si aucun titre court n'est spécifié, le titre du site sera utilisé", "title.url": "URL du lien du titre", "title.url-placeholder": "URL du titre du site", - "title.url-help": "Lorsque le titre est cliqué, il renvoi les utilisateurs à cette adresse. Si laissé vide, l'utilisateur sera envoyé à l'index du forum. Remarque : il ne s'agit pas de l'URL externe utilisée dans les e-mails, etc. Elle est définie par la propriété url dans config.json", + "title.url-help": "Lorsque le titre est cliqué, il renvoie les utilisateurs à cette adresse. Si laissé vide, l'utilisateur sera envoyé à l'index du forum. Remarque : il ne s'agit pas de l'URL externe utilisée dans les e-mails, etc. Elle est définie par la propriété url dans config.json", "title.name": "Nom de votre communauté", "title.show-in-header": "Afficher le titre du site dans l'en-tête", "browser-title": "Titre dans le navigateur", "browser-title-help": "Si aucun titre dans le navigateur n'est spécifié, le titre du site sera utilisé", "title-layout": "Disposition du titre", - "title-layout-help": "Définissez la manière dont le titre est structuré dans le navigateur ex: { pageTitle} | {browserTitle}", + "title-layout-help": "Définissez la manière dont le titre est structuré dans le navigateur ex : { pageTitle} | {browserTitle}", "description.placeholder": "Une courte description de votre communauté", "description": "Description du site", "keywords": "Mots-clés du site", @@ -25,14 +25,14 @@ "logo.url": "URL du lien du logo", "logo.url-placeholder": "L'URL du logo du site", "logo.url-help": "Lorsque le logo est cliqué, il renvoi les utilisateurs à cette adresse. Si laissé vide, l'utilisateur sera envoyé à l'index du forum.
Remarque : il ne s'agit pas de l'URL externe utilisée dans les e-mails, etc. Elle est définie par la propriété url dans config.json", - "logo.alt-text": "Texte alternatif (alt)", + "logo.alt-text": "Texte alternatif", "log.alt-text-placeholder": "Texte alternatif pour l'accessibilité", "favicon": "Favicon", "favicon.upload": "Télécharger", "pwa": "Progressive Web App", "touch-icon": "Icône d'accueil", "touch-icon.upload": "Télécharger", - "touch-icon.help": "Taille et format recommandés: 512x512, format PNG uniquement. Si aucun Icône d'accueil n'est spécifiée, le favicon NodeBB sera visible.", + "touch-icon.help": "Taille et format recommandés: 512x512, format PNG uniquement. Si aucune icône d'accueil n'est spécifiée, le favicon NodeBB sera visible.", "maskable-icon": "Icône masquable (écran d'accueil)", "maskable-icon.help": "Taille et format recommandés: 512x512, format PNG uniquement. Si aucune icône masquable n'est spécifiée, le favicon NodeBB sera visible.", "outgoing-links": "Liens sortants", diff --git a/public/language/fr/admin/settings/navigation.json b/public/language/fr/admin/settings/navigation.json index e7f338f81c..e7300db040 100644 --- a/public/language/fr/admin/settings/navigation.json +++ b/public/language/fr/admin/settings/navigation.json @@ -10,10 +10,10 @@ "id": "ID : optionnel", "properties": "Propriétés :", - "groups": "Groupes:", + "groups": "Groupes :", "open-new-window": "Ouvrir dans une nouvelle fenêtre", "dropdown": "Menu déroulant", - "dropdown-placeholder": "Placez vos éléments de menu déroulant ci-dessous, par exemple:
<li><a class="dropdown-item" href="https://myforum.com">Link 1</a></li>", + "dropdown-placeholder": "Placez vos éléments de menu déroulant ci-dessous, par exemple :
<li><a class="dropdown-item" href="https://myforum.com">Link 1</a></li>", "btn.delete": "Supprimer", "btn.disable": "Désactiver", diff --git a/public/language/fr/admin/settings/notifications.json b/public/language/fr/admin/settings/notifications.json index 9a0978d167..0a6ccf82a2 100644 --- a/public/language/fr/admin/settings/notifications.json +++ b/public/language/fr/admin/settings/notifications.json @@ -3,5 +3,5 @@ "welcome-notification": "Notification de bienvenue", "welcome-notification-link": "Lien de notification de bienvenue", "welcome-notification-uid": "Notification de bienvenue de l'utilisateur (UID)", - "post-queue-notification-uid": "File d'attente d l'Utilisateur (UID)" + "post-queue-notification-uid": "File d'attente d'utilisateur (UID)" } \ No newline at end of file diff --git a/public/language/fr/admin/settings/post.json b/public/language/fr/admin/settings/post.json index 41b9ea9b66..1465287eaf 100644 --- a/public/language/fr/admin/settings/post.json +++ b/public/language/fr/admin/settings/post.json @@ -16,25 +16,25 @@ "restrictions.groups-exempt-from-post-queue": "Sélectionnez les groupes qui devraient être exemptés de la file d'attente de publication", "restrictions-new.post-queue": "Activer la restriction", "restrictions.post-queue-help": "L'activation de la file d'attente de publication placera les messages de nouveaux utilisateurs dans une file d'attente pour approbation.", - "restrictions-new.post-queue-help": "L'activation de restrictions des nouveaux utilisateurs définira des restrictions sur les messages créées par de nouveaux utilisateurs.", + "restrictions-new.post-queue-help": "L'activation de restrictions aux nouveaux utilisateurs définira des restrictions sur les messages créés par les nouveaux utilisateurs.", "restrictions.seconds-between": "Nombre de secondes entre les messages", "restrictions.seconds-between-new": "Secondes entre les messages pour les nouveaux utilisateurs", "restrictions.rep-threshold": "Seuil de réputation avant que ces restrictions ne soient levées", "restrictions.seconds-before-new": "Secondes avant qu'un nouvel utilisateur puisse publier son premier message", "restrictions.seconds-edit-after": "Nombre de secondes pendant lesquelles une publication reste modifiable (définissez la valeur sur 0 pour la désactiver)", - "restrictions.seconds-delete-after": "Nombre de secondes pendant lesquelles un message reste supprimable (définissez la valeur sur 0 pour la désactiver)", - "restrictions.replies-no-delete": "Nombre de réponses avant que les utilisateurs soient pas autorisés à supprimer leurs propres sujets (définissez la valeur sur 0 pour la désactiver)", + "restrictions.seconds-delete-after": "Nombre de secondes pendant lesquelles un message reste supprimable (définissez la valeur sur 0 pour désactiver)", + "restrictions.replies-no-delete": "Nombre de réponses avant que les utilisateurs soient interdits de supprimer leurs propres sujets (définissez la valeur sur 0 pour désactiver)", "restrictions.title-length": "Longueur du titre", "restrictions.post-length": "Longueur du message", "restrictions.days-until-stale": "Jours jusqu'à ce que le sujet soit considéré comme périmé", "restrictions.stale-help": "Si un sujet est considéré comme \"périmé\", un message sera affiché aux utilisateurs tentant de répondre au sujet", "timestamp": "Horodatage", "timestamp.cut-off": "Date de coupure (en jours)", - "timestamp.cut-off-help": "Les dates et heures seront affichées de façon relative (par exemple \"il y a 3 heures\", \"il y a 5 jours\"), et localisées. Après un certain point, le texte peut afficher la date emlle-même (par exemple 5 Novembre 2016, 15:30).
(Défaut : 30, ou un mois). Régler à 0 pour toujours afficher des dates, laisser vide pour toujours afficher des dates relatives.", + "timestamp.cut-off-help": "Les dates et heures seront affichées de façon relative (par exemple \"il y a 3 heures\", \"il y a 5 jours\"), et localisées. Après un certain temps, le texte peut afficher la date elle-même (par exemple 5 Novembre 2016, 15:30).
(Défaut : 30, ou un mois). Régler à 0 pour toujours afficher des dates, laisser vide pour toujours afficher des dates relatives.", "timestamp.necro-threshold": "Seuil d'archivage (en jours)", - "timestamp.necro-threshold-help": "Un message sera affiché entre les messages si le temps qui les sépare est plus long que le seuil d'archivage. (Par défaut: 7 ou une semaine). Définissez sur 0 pour désactiver.", + "timestamp.necro-threshold-help": "Un message sera affiché entre les messages si le temps qui les sépare est plus long que le seuil d'archivage. (Par défaut : 7 ou une semaine). Définissez sur 0 pour désactiver.", "timestamp.topic-views-interval": "Incrémenter l'intervalle de consultation du sujet (en minutes)", - "timestamp.topic-views-interval-help": "Les conseultations de sujet ne s'incrémenteront qu'une fois toutes les X minutes, comme défini par ce paramètre.", + "timestamp.topic-views-interval-help": "Les consultations de sujet ne s'incrémenteront qu'une fois toutes les X minutes, comme défini par ce paramètre.", "teaser": "Message d'aperçu", "teaser.last-post": "Dernier – Affiche le dernier message, ou celui d'origine, si il n'y a pas de réponse", "teaser.last-reply": "Dernier – Affiche le dernier message, ou \"Aucune réponse\" si il n'y a pas de réponse", @@ -52,7 +52,7 @@ "signature.hide-duplicates": "Masquer les signatures en double dans les sujets", "signature.max-length": "Longueur maximum des signatures", "composer": "Paramètres Composer", - "composer-help": "Les réglages suivants permettent de choisir les fonctionnalités et/ou l'apparence du composeur de message affiché\n\t\t\t\ttaux utilisateurs quand ils créent de nouveaux sujets ou répondent à des sujets existants.", + "composer-help": "Les réglages suivants permettent de choisir les fonctionnalités et/ou l'apparence du composeur de message affiché\n\t\t\t\taux utilisateurs quand ils créent de nouveaux sujets ou répondent à des sujets existants.", "composer.show-help": "Afficher l'onglet \"Aide\"", "composer.enable-plugin-help": "Autoriser les plugins à modifier l'onglet d'aide", "composer.custom-help": "Message d'aide personnalisé", diff --git a/public/language/fr/admin/settings/reputation.json b/public/language/fr/admin/settings/reputation.json index d2a97f3652..e561b19c9e 100644 --- a/public/language/fr/admin/settings/reputation.json +++ b/public/language/fr/admin/settings/reputation.json @@ -8,8 +8,8 @@ "upvotes-per-day": "Votes positifs par jour (0 pour un nombre illimité)", "upvotes-per-user-per-day": "Votes positifs par utilisateur et par jour (0 pour un nombre illimité)", "min-rep-downvote": "Réputation minimum pour les votes négatifs", - "downvotes-per-day": "Votes négatif par jour (0 = illimités)", - "downvotes-per-user-per-day": "Votes négatif pour un utilisateur par jour (0 = illimités)", + "downvotes-per-day": "Votes négatifs par jour (0 = illimités)", + "downvotes-per-user-per-day": "Votes négatifs pour un utilisateur par jour (0 = illimités)", "min-rep-chat": "Réputation minimum pour écrire un message", "min-rep-post-links": "Réputation minimale pour publier des liens", "min-rep-flag": "Réputation minimum pour signaler un message", @@ -22,11 +22,11 @@ "flags": "Paramètres de signalement", "flags.limit-per-target": "Nombre maximum de fois qu'un élément peut être signalé", "flags.limit-per-target-placeholder": "Défaut: 0", - "flags.limit-per-target-help": "Lorsqu'un message ou un utilisateur a été signalé plusieurs fois, chaque indicateur supplémentaire est considéré comme un \"rapport\". et ajouté au signalement d'origine. Définissez cette option sur un nombre autre que zéro pour limiter le nombre de rapports qu'un signalement peut admettre.", + "flags.limit-per-target-help": "Lorsqu'un message ou un utilisateur a été signalé plusieurs fois, chaque indicateur supplémentaire est considéré comme un \"rapport\" et est ajouté au signalement d'origine. Définissez cette option sur un nombre autre que zéro pour limiter le nombre de rapports qu'un signalement peut admettre.", "flags.auto-flag-on-downvote-threshold": "Nombre de votes négatifs pour les signalements (0 pour désactiver, par défaut : 0)", "flags.auto-resolve-on-ban": "Résoudre automatiquement tous les tickets d'un utilisateur lorsqu'il est banni", - "flags.action-on-resolve": "Procédez comme suit lorsqu'un signalement est résolu", - "flags.action-on-reject": "Procédez comme suit lorsqu'un signalement est rejeté", + "flags.action-on-resolve": "Procéder comme suit lorsqu'un signalement est résolu", + "flags.action-on-reject": "Procéder comme suit lorsqu'un signalement est rejeté", "flags.action.nothing": "Ne rien faire", "flags.action.rescind": "Annuler la notification envoyée aux modérateurs/administrateurs" } \ No newline at end of file diff --git a/public/language/fr/admin/settings/uploads.json b/public/language/fr/admin/settings/uploads.json index 86384a3acc..a84342061d 100644 --- a/public/language/fr/admin/settings/uploads.json +++ b/public/language/fr/admin/settings/uploads.json @@ -7,22 +7,22 @@ "orphanExpiryDays": "Jours pour garder les fichiers orphelins", "orphanExpiryDays-help": "Les téléchargements orphelins seront supprimés du système de fichiers après ce délai :
Changer 0 Laissez vide pour désactiver.", "private-extensions": "Rendre privé des extensions de fichier.", - "private-uploads-extensions-help": "Renseignez ici une liste d'extensions de fichiers séparées par des virgules pour les rendre privées (par exemple : pdf, xls, doc). Une liste vide signifie que tous les fichiers sont privés.", - "resize-image-width-threshold": "Redimensionner les images si elles sont plus larges que la largeur spécifiée", - "resize-image-width-threshold-help": "(En pixels, valeur par défaut: 1520 pixels, mettez 0 pour désactiver)", + "private-uploads-extensions-help": "Renseigner ici une liste d'extensions de fichiers séparées par des virgules pour les rendre privées (par exemple : pdf, xls, doc). Une liste vide signifie que tous les fichiers sont privés.", + "resize-image-width-threshold": "Redimensionner les images si elles sont plus larges que la valeur spécifiée", + "resize-image-width-threshold-help": "(en pixels, valeur par défaut : 1520 pixels, mettez 0 pour désactiver)", "resize-image-width": "Redimensionner les images à la largeur spécifiée", - "resize-image-width-help": "(En pixels, valeur par défaut: 760 pixels, mettez 0 pour désactiver)", + "resize-image-width-help": "(en pixels, valeur par défaut : 760 pixels, mettez 0 pour désactiver)", "resize-image-quality": "Qualité utilisée des images redimensionnées", "resize-image-quality-help": "Diminuer la qualité des images redimensionnées pour réduire leur taille.", - "max-file-size": "Taille maximum d'un fichier (en Ko)", + "max-file-size": "Taille maximum d'un fichier (en Kio)", "max-file-size-help": "(en kibioctets, défaut : 2048 Kio)", "reject-image-width": "Largeur maximale des images (en pixels)", "reject-image-width-help": "Les images plus larges que cette valeur seront rejetées.", "reject-image-height": "Hauteur maximale des images (en pixels)", - "reject-image-height-help": "Les images plus hautes que cette valeur seront rejetées.", + "reject-image-height-help": "Les images plus grandes que cette valeur seront rejetées.", "allow-topic-thumbnails": "Autoriser les utilisateurs à télécharger des miniatures de sujet", "topic-thumb-size": "Miniature du sujet", - "allowed-file-extensions": "Extensions de fichier autorisés", + "allowed-file-extensions": "Extensions de fichiers autorisés", "allowed-file-extensions-help": "Entrer une liste d’extensions de fichier séparés par une virgule (ex : pdf,xls,doc). Une liste vide signifie que toutes les extensions sont autorisées.", "upload-limit-threshold": "Limite d'envoi de fichiers par utilisateurs:", "upload-limit-threshold-per-minute": "Par %1 Minute", @@ -33,13 +33,13 @@ "default-avatar": "Modifier l'avatar par défaut", "upload": "Télécharger", "profile-image-dimension": "Dimensions de l'avatar", - "profile-image-dimension-help": "(En pixel, par défaut : 128 pixels)", + "profile-image-dimension-help": "(En pixels, par défaut : 128 pixels)", "max-profile-image-size": "Taille maximum des avatars", "max-profile-image-size-help": "(en kibioctets, défaut : 256 Kio)", "max-cover-image-size": "Taille maximum des images de couverture", "max-cover-image-size-help": "(en kibioctets, défaut : 2048 Kio)", "keep-all-user-images": "Garder les anciennes versions d'avatars et d'images de couverture sur le serveur", - "profile-covers": "Image de couverture", + "profile-covers": "Images de profil", "default-covers": "Image de couverture par défaut", "default-covers-help": "Ajouter des images de couvertures par défaut séparées par des virgules pour les comptes n'ayant pas téléchargé d'image de couverture" } diff --git a/public/language/fr/admin/settings/user.json b/public/language/fr/admin/settings/user.json index e1648547fe..cb59c86a0a 100644 --- a/public/language/fr/admin/settings/user.json +++ b/public/language/fr/admin/settings/user.json @@ -13,7 +13,7 @@ "disable-password-changes": "Désactiver le changement de mot de passe", "allow-account-deletion": "Autoriser la suppression des comptes", "hide-fullname": "Masquer le nom complet aux utilisateurs", - "hide-email": "Masquer les emails aux utilisateurs", + "hide-email": "Masquer les e-mails aux utilisateurs", "show-fullname-as-displayname": "Afficher le nom complet de l'utilisateur en tant que nom d'affichage si disponible", "themes": "Thèmes", "disable-user-skins": "Empêcher les utilisateurs de choisir un skin personnalisé", @@ -23,15 +23,15 @@ "login-attempts": "Tentatives de connexions par heure", "login-attempts-help": "Si le nombre de tentatives de connexion à un compte dépasse ce seuil, le compte sera bloqué pour une durée pré-configurée", "lockout-duration": "Durée du blocage (minutes)", - "login-days": "Nombre de jour pendant lesquels se souvenir des sessions d'identification utilisateurs", + "login-days": "Nombre de jours pendant lesquels se souvenir des sessions d'identification utilisateurs", "password-expiry-days": "Imposer un changement de mot de passe après un certain nombre de jours", "session-time": "Temps de session", "session-time-days": "Jours", "session-time-seconds": "Secondes", - "session-time-help": "Ces valeurs permettent de définir la durée pendant laquelle un utilisateur reste connecté lorsqu'il consulte le lien \"Se souvenir de moi\". Notez que seulement une de ces valeurs sera utilisée. S'il n'y a pas de valeur en secondes, la valeur sera en jours. S'il n'y a pas de valeur en jours, la valeur sera par défaut est 14 jours.", + "session-time-help": "Ces valeurs permettent de définir la durée pendant laquelle un utilisateur reste connecté lorsqu'il coche l'option \"Se souvenir de moi\". Notez que seulement une de ces valeurs sera utilisée. S'il n'y a pas de valeur en secondes, la valeur sera en jours. S'il n'y a pas de valeur en jours, la valeur sera par défaut est 14 jours.", "session-duration": "Durée de la session si \"Se souvenir de moi\" n'est pas coché (en secondes)", - "session-duration-help": "Par défaut - ou s'il est défini sur 0 - un utilisateur restera connecté pendant toute la durée de la session (par exemple, aussi longtemps que la fenêtre/l'onglet du navigateur reste ouvert). Définissez cette valeur pour invalider explicitement la session après le nombre de secondes spécifié.", - "online-cutoff": "Minutes après que l'utilisateur soit considéré comme inactif", + "session-duration-help": "Par défaut - ou s'il est défini sur 0 - un utilisateur restera connecté pendant toute la durée de la session (par exemple, aussi longtemps que la fenêtre/l'onglet du navigateur reste ouvert(e)). Définir cette valeur pour invalider explicitement la session après le nombre de secondes spécifié.", + "online-cutoff": "Minutes après lesquelles l'utilisateur est considéré comme inactif", "online-cutoff-help": "Si l'utilisateur n'effectue aucune action pendant cette durée, il est considéré comme inactif et ne reçoit pas de mises à jour en temps réel.", "registration": "Inscription des utilisateurs", "registration-type": "Type d'inscription", @@ -53,7 +53,7 @@ "invite-expiration": "Expiration des invitations", "invite-expiration-help": "nombre de jours avant que l'invitation n'expire.", "min-username-length": "Longueur minimum du nom d'utilisateur", - "max-username-length": "Longueur maxmum du nom d'utilisateur", + "max-username-length": "Longueur maximum du nom d'utilisateur", "min-password-length": "Longueur minimum du mot de passe", "min-password-strength": "Sécurité minimale du mot de passe", "max-about-me-length": "Longueur maximum du À propos de moi", @@ -67,14 +67,14 @@ "outgoing-new-tab": "Ouvrir les liens sortants dans un nouvel onglet", "topic-search": "Activer la recherche au sein des sujets", "update-url-with-post-index": "Mettre à jour l'URL avec l'index des articles", - "digest-freq": "S'inscrire aux compte rendus", + "digest-freq": "S'inscrire aux comptes rendus", "digest-freq.off": "Désactivé", "digest-freq.daily": "Quotidien", "digest-freq.weekly": "Hebdomadaire", "digest-freq.biweekly": "Deux fois par semaine", "digest-freq.monthly": "Mensuel", "email-chat-notifs": "Envoyer un e-mail si un nouveau message de chat arrive lorsque je ne suis pas en ligne", - "email-post-notif": "Envoyer un email lors de réponses envoyées aux sujets auxquels que je suis", + "email-post-notif": "Envoyer un e-mail lors de réponses envoyées aux sujets auxquels que je suis", "follow-created-topics": "S'abonner aux sujets que vous créez", "follow-replied-topics": "S'abonner aux sujets auxquels vous répondez", "default-notification-settings": "Paramètres des notifications par défaut", diff --git a/public/language/fr/category.json b/public/language/fr/category.json index 48d830d4e3..98b757dc3c 100644 --- a/public/language/fr/category.json +++ b/public/language/fr/category.json @@ -16,8 +16,8 @@ "not-watching.description": "Ne pas afficher les sujets non lus, afficher les récents", "ignoring.description": "Ne pas afficher les sujets non lus et récents", "watching.message": "Vous suivez les mises à jour de cette catégorie et de ses sous-catégories. ", - "notwatching.message": "Vous ne suivez aucune mises à jour de cette catégorie et de ses sous-catégories.", - "ignoring.message": "Vous ignorez maintenant les mises à jour de cette catégorie et de toutes les sous-catégories.", + "notwatching.message": "Vous ne suivez aucune mise à jour de cette catégorie et de ses sous-catégories.", + "ignoring.message": "Vous ignorez maintenant les mises à jour de cette catégorie et de ses sous-catégories.", "watched-categories": "Catégories surveillées", "x-more-categories": "%1 plus de catégories" } \ No newline at end of file diff --git a/public/language/fr/email.json b/public/language/fr/email.json index f19ff31fbd..b56776f745 100644 --- a/public/language/fr/email.json +++ b/public/language/fr/email.json @@ -1,13 +1,13 @@ { - "test-email.subject": "Email Test", + "test-email.subject": "Test e-mail", "password-reset-requested": "Demande de réinitialisation de mot de passe !", "welcome-to": "Bienvenue sur %1", "invite": "Invitation de %1", "greeting_no_name": "Bonjour", "greeting_with_name": "Bonjour %1", - "email.verify-your-email.subject": "Veuillez vérifier votre Email", + "email.verify-your-email.subject": "Veuillez vérifier votre e-mail", "email.verify.text1": "Vous avez demandé que nous modifiions ou confirmions votre adresse mail", - "email.verify.text2": "Pour des raisons de sécurité, nous ne modifions ou ne confirmons l'adresse mail enregistrée qu'une fois que sa propriété soit confirmée. Si vous ne l'avez pas demandé, aucune action n'est requise de votre part.", + "email.verify.text2": "Pour des raisons de sécurité, nous ne modifions ou ne confirmons l'adresse mail enregistrée qu'une sa propriété confirmée. Si vous ne l'avez pas demandé, aucune action n'est requise de votre part.", "email.verify.text3": "Une fois que vous aurez confirmé ce mail, nous remplacerons votre adresse e-mail actuelle par celle-ci (%1).", "welcome.text1": "Merci de vous être inscrit sur %1!", "welcome.text2": "Pour activer totalement votre compte, nous devons vérifier que vous êtes bien propriétaire de l'adresse email que vous avez utilisé pour vous inscrire.", @@ -16,39 +16,39 @@ "invitation.text1": "%1 vous a invité à rejoindre %2", "invitation.text2": "Votre invitation va expirer dans %1 jours.", "invitation.cta": "Cliquez ici pour créer votre compte.", - "reset.text1": "Nous avons reçu une demande de réinitialisation de votre mot de passe, probablement parce que vous l'avez oublié. Si ce n'est pas le cas, veuillez ignorer cet email.", + "reset.text1": "Nous avons reçu une demande de réinitialisation de votre mot de passe, probablement parce que vous l'avez oublié. Si ce n'est pas le cas, veuillez ignorer cet e-mail.", "reset.text2": "Pour confirmer la réinitialisation de votre mot de passe, veuillez cliquer sur le lien suivant :", "reset.cta": "Cliquez ici pour réinitialiser votre mot de passe", "reset.notify.subject": "Mot de passe modifié", "reset.notify.text1": "Nous vous informons que le %1, votre mot de passe a été modifié.", "reset.notify.text2": "Si vous n'avez pas autorisé ceci, veuillez contacter immédiatement un administrateur.", - "digest.unread-rooms": "Discussions Non-Lus", + "digest.unread-rooms": "Discussions non lues", "digest.room-name-unreadcount": "%1 (%2 non lu)", "digest.latest_topics": "Derniers sujets de %1 :", "digest.top-topics": "Meilleurs sujets de %1", "digest.popular-topics": "Sujets populaires de %1", - "digest.cta": "Cliquez ici pour aller sur %1", + "digest.cta": "Cliquer ici pour aller sur %1", "digest.unsub.info": "Ce message vous a été envoyé en raison de vos paramètres d'abonnement.", "digest.day": "jour", "digest.week": "semaine", "digest.month": "mois", "digest.subject": "Lettre d'activités de %1", - "digest.title.day": "Votre lettre d'activités quotidienne", - "digest.title.week": "Votre lettre d'activités hebdomadaire", - "digest.title.month": "Votre lettre d'activités mensuel", + "digest.title.day": "Votre lettre d'activité quotidienne", + "digest.title.week": "Votre lettre d'activité hebdomadaire", + "digest.title.month": "Votre lettre d'activité mensuel", "notif.chat.subject": "Nouveau message de chat reçu de %1", "notif.chat.public-chat-subject": "Nouveau message de %1 dans la discussion %2", - "notif.chat.cta": "Cliquez ici pour continuer la conversation", + "notif.chat.cta": "Cliquer ici pour continuer la conversation", "notif.chat.unsub.info": "Cette notification de chat a été envoyé en raison de vos paramètres d'abonnement.", "notif.post.unsub.info": "La notification de ce message vous a été envoyé en raison de vos paramètres d'abonnement.", - "notif.post.unsub.one-click": "Vous pouvez également vous désabonner des lettres d'activités, en cliquant sur", + "notif.post.unsub.one-click": "Vous pouvez également vous désabonner des lettres d'activités en cliquant sur", "notif.cta": "Sur le forum", "notif.cta-new-reply": "Voir les messages", "notif.cta-new-chat": "Voir les discussions", - "notif.test.short": "Test des notifications", - "notif.test.long": "Ceci est un test de notifications de mail. Envoyez de l'aide!", + "notif.test.short": "Tester les notifications", + "notif.test.long": "Ceci est un test de notifications de mail. Envoyez de l'aide !", "test.text1": "Ceci est un e-mail de test pour vérifier que l'e-mailer est correctement configuré pour NodeBB.", - "unsub.cta": "Cliquez ici pour modifier ces paramètres", + "unsub.cta": "Cliquer ici pour modifier ces paramètres", "unsubscribe": "Se désinscrire", "unsub.success": "Vous ne recevrez plus d'e-mails de la liste de diffusion %1", "unsub.failure.title": "Impossible de se désinscrire", diff --git a/public/language/fr/error.json b/public/language/fr/error.json index b48af548fd..4761fdd9c8 100644 --- a/public/language/fr/error.json +++ b/public/language/fr/error.json @@ -26,7 +26,7 @@ "invalid-search-term": "Données de recherche invalides", "invalid-url": "URL invalide", "invalid-event": "Événement non valide: %1", - "local-login-disabled": "Le système de connexion local a été désactivé pour les comptes sans privilèges.", + "local-login-disabled": "Le système de connexion locale a été désactivé pour les comptes sans privilèges.", "csrf-invalid": "Nous ne pouvons pas vous connectez, probablement car votre session a expiré. Merci de réessayer.", "invalid-path": "Chemin invalide", "folder-exists": "Le dossier existe", @@ -42,7 +42,7 @@ "user-doesnt-have-email": "L'utilisateur « %1 » n'a pas d'adresse e-mail.", "email-confirm-failed": "Votre adresse email n'a pas pu être vérifiée. Veuillez ré-essayer plus tard.", "confirm-email-already-sent": "L'email de confirmation a déjà été envoyé. Veuillez attendre %1 minute(s) avant de redemander un nouvel envoi.", - "confirm-email-expired": "E-mail de confirmation expiré.", + "confirm-email-expired": "E-mail de confirmation expiré", "sendmail-not-found": "L'application d'envoi de mail est introuvable, assurez-vous qu'elle est installée et que l'utilisateur ayant démarré NodeBB ait des droits suffisants.", "digest-not-enabled": "Les lettres d'activités de cet utilisateur ne sont pas activées ou la configuration système par défaut n’est pas configurée", "username-too-short": "Nom d'utilisateur trop court", @@ -201,12 +201,12 @@ "not-in-room": "L'utilisateur n'est pas dans cette salle", "cant-kick-self": "Vous ne pouvez pas vous exclure vous-même du groupe", "no-users-selected": "Aucun utilisateur sélectionné", - "no-groups-selected": "Aucun groupe(s) sélectionné(s)", + "no-groups-selected": "Aucun groupe sélectionné", "invalid-home-page-route": "Chemin vers la page d'accueil invalide", "invalid-session": "Session Invalide", "invalid-session-text": "Il semblerait que votre session de connexion ne soit plus active. Merci de rafraîchir cette page.", "session-mismatch": "Session Interrompue", - "session-mismatch-text": "Il semble que votre session ne soit plus active, ou que le serveur ne la reconnaisse plus. Merci de rafraîchir cette page.", + "session-mismatch-text": "Il semble que votre session ne soit plus active ou que le serveur ne la reconnaisse plus. Merci de rafraîchir cette page.", "no-topics-selected": "Aucun sujet sélectionné !", "cant-move-to-same-topic": "Impossible de déplacer le message dans le même sujet !", "cant-move-topic-to-same-category": "Impossible de déplacer le sujet dans la même catégorie !", @@ -215,11 +215,11 @@ "cannot-block-guest": "Les Invités ne peuvent pas bloquer d'autres utilisateurs", "already-blocked": "Cet utilisateur est déjà bloqué", "already-unblocked": "Cet utilisateur est déjà débloqué", - "no-connection": "Il semble y avoir un problème avec votre connexion Internet", + "no-connection": "Il semble y avoir un problème avec votre connexion internet", "socket-reconnect-failed": "Serveur inaccessible pour le moment. Cliquez ici pour réessayer ou réessayez plus tard", - "plugin-not-whitelisted": "Impossible d'installer le plug-in – seuls les plugins mis en liste blanche dans le gestionnaire de packages NodeBB peuvent être installés via l'ACP", + "plugin-not-whitelisted": "Impossible d'installer le plugin – seuls les plugins mis en liste blanche dans le gestionnaire de packages NodeBB peuvent être installés via l'ACP", "plugins-set-in-configuration": "Vous n'êtes pas autorisé à modifier l'état des plugins car ils sont définis au moment de l'exécution (config.json, variables d'environnement ou arguments de terminal), veuillez plutôt modifier la configuration.", - "theme-not-set-in-configuration": "Lors de la définition des plugins actifs, le changement de thèmes nécessite d'ajouter le nouveau thème à la liste des plugins actifs avant de le mettre à jour dans l'ACP", + "theme-not-set-in-configuration": "Lors de la définition des plugins actifs, le changement de thème nécessite d'ajouter le nouveau thème à la liste des plugins actifs avant de le mettre à jour dans l'ACP", "topic-event-unrecognized": "Événement du sujet '%1' non reconnu", "cant-set-child-as-parent": "Cette catégorie ne peut être une catégorie principale", "cant-set-self-as-parent": "Ne peut être définie comme catégorie principale", @@ -233,5 +233,5 @@ "api.500": "Une erreur inattendue s'est produite lors de la tentative de traitement de votre demande.", "api.501": "L'accès n'est pas encore fonctionnel, veuillez réessayer demain", "api.503": "L'accès n'est pas disponible actuellement en raison d'une configuration de serveur", - "api.reauth-required": "La ressource à laquelle vous tentez d'accéder nécessite une (ré)authentification." + "api.reauth-required": "La ressource à laquelle vous tentez d'accéder nécessite une (ré-)authentification." } \ No newline at end of file diff --git a/public/language/fr/flags.json b/public/language/fr/flags.json index 0576b7f107..b2a33fcaab 100644 --- a/public/language/fr/flags.json +++ b/public/language/fr/flags.json @@ -48,7 +48,7 @@ "notes": "Notes de signalement", "add-note": "Ajouter une note", "edit-note": "Editer la Note", - "no-notes": "aucune note partagée", + "no-notes": "Aucune note partagée", "delete-note-confirm": "Êtes-vous sûr de bien vouloir supprimer cette note de signalement ?", "delete-flag-confirm": "Êtes-vous sûr de bien vouloir supprimer ce signalement ?", "note-added": "Note ajoutée", @@ -71,8 +71,8 @@ "sort-reports": "Rapports", "sort-all": "Tous les signalements...", "sort-posts-only": "Messages seulement...", - "sort-downvotes": "Demandes négatives", - "sort-upvotes": "Demandes positives", + "sort-downvotes": "Votes négatifs maximum", + "sort-upvotes": "Votes positifs maximum", "sort-replies": "Réponses", "modal-title": "Contenu du rapport", @@ -86,7 +86,7 @@ "bulk-actions": "Actions", "bulk-resolve": "Signalement(s) résolu(s)", - "bulk-success": "%1 signalement mis à jour", + "bulk-success": "%1 signalements mis à jour", "flagged-timeago-readable": "Signalé (%2)", "auto-flagged": "[Auto Signalement] A reçu %1 votes négatifs." } \ No newline at end of file diff --git a/public/language/fr/global.json b/public/language/fr/global.json index fbd61b0d5f..e4e2ab7bf1 100644 --- a/public/language/fr/global.json +++ b/public/language/fr/global.json @@ -6,7 +6,7 @@ "403.message": "Il semble que vous ayez atteint une page à laquelle vous n'avez pas accès.", "403.login": "Peut-être devriez-vous essayer de vous connecter ?", "404.title": "Introuvable", - "404.message": "Désolé la page demandée n'existe pas.
Retournez à la page d'accueil.
", + "404.message": "Désolé la page demandée n'existe pas.
Retourner à la page d'accueil.
", "500.title": "Erreur Interne.", "500.message": "Oops ! Il semblerait que quelque chose se soit mal passé !", "400.title": "Requête erronée.", @@ -72,7 +72,7 @@ "voters": "Votants", "upvoters": "Votes positifs", "upvoted": "Vote(s) positif(s)", - "downvoters": "Votes contre", + "downvoters": "Votes négatifs", "downvoted": "Vote(s) négatif(s)", "views": "Vues", "posters": "Publieurs", @@ -99,7 +99,7 @@ "recentposts": "Messages récents", "recentips": "Adresses IP récemment enregistées", "moderator_tools": "Outils de modération", - "status": "Statuts", + "status": "Statut", "online": "En ligne", "away": "Absent", "dnd": "Occupé", @@ -127,7 +127,7 @@ "uploads": "Fichiers envoyés", "allowed-file-types": "Les types de fichiers autorisés sont : %1", "unsaved-changes": "Vous avez des modifications non sauvegardées. Êtes-vous sûr de vouloir naviguer tout de même ?", - "reconnecting-message": "Il semble que votre connexion ait été perdue, veuillez patienter pendant que nous vous re-connectons.", + "reconnecting-message": "Il semble que votre connexion ait été perdue, veuillez patienter pendant que nous vous reconnectons.", "play": "Lire", "cookies.message": "Ce site utilise des cookies pour vous permettre d'avoir la meilleure expérience possible.", "cookies.accept": "Compris !", diff --git a/public/language/fr/groups.json b/public/language/fr/groups.json index d4a9899b7f..fbc0e612f3 100644 --- a/public/language/fr/groups.json +++ b/public/language/fr/groups.json @@ -15,7 +15,7 @@ "invited.uninvite": "Résilier l'invitation", "invited.search": "Chercher un utilisateur a inviter dans ce groupe", "invited.notification_title": "Vous avez été invité à rejoindre %1", - "request.notification_title": "Requête d'Adhésion au Groupe de %1", + "request.notification_title": "Requête d'adhésion au Groupe de %1", "request.notification_text": "%1 a demandé à devenir membre de %2", "cover-save": "Enregistrer", "cover-saving": "Enregistrement", @@ -60,7 +60,7 @@ "membership.reject": "Refuser", "new-group.group_name": "Nom du groupe :", "upload-group-cover": "Envoyer une image de groupe", - "bulk-invite-instructions": "Entrez une liste de nom d'utilisateurs séparés par des virgules pour les inviter à rejoindre ce groupe.", + "bulk-invite-instructions": "Entrer une liste de nom d'utilisateurs séparés par des virgules pour les inviter à rejoindre ce groupe.", "bulk-invite": "Invitation multiple", "remove_group_cover_confirm": "Êtes-vous sûr de vouloir supprimer l'image de couverture ?" } \ No newline at end of file diff --git a/public/language/fr/modules.json b/public/language/fr/modules.json index ad916bff6f..b676acb14d 100644 --- a/public/language/fr/modules.json +++ b/public/language/fr/modules.json @@ -1,22 +1,22 @@ { "chat.room-id": "Discussion %1", "chat.chatting_with": "Discuter avec", - "chat.placeholder": "Écrivez vos message ici, faites glisser / déposez les images, validez sur entrée pour envoyer", - "chat.placeholder.mobile": "Tapez le message ici", + "chat.placeholder": "Écrire vos message ici, glisser & déposer les images, valider sur entrée pour envoyer", + "chat.placeholder.mobile": "Saisir ici le message", "chat.scroll-up-alert": "Aller au message le plus récent", "chat.usernames-and-x-others": "%1 & %2 autres", "chat.chat-with-usernames": "Discuter avec %1", "chat.chat-with-usernames-and-x-others": "Discuter avec %1 & %2 autres", "chat.send": "Envoyer", "chat.no_active": "Vous n'avez aucune discussion en cours.", - "chat.user_typing_1": "%1 est en train de taper...", - "chat.user_typing_2": "%1 et %2 sont en train de taper...", - "chat.user_typing_3": "%1, %2 et %3 sont en train de taper...", - "chat.user_typing_n": "%1, %2 et %3 autres sont en train de taper...", + "chat.user_typing_1": "%1 est en train d'écrire...", + "chat.user_typing_2": "%1 et %2 sont en train d'écrire...", + "chat.user_typing_3": "%1, %2 et %3 sont en train d'écrire...", + "chat.user_typing_n": "%1, %2 et %3 autres sont en train d'écrire...", "chat.user_has_messaged_you": "%1 vous a envoyé un message.", "chat.replying-to": "En réponse à %1", "chat.see_all": "Tous les chats", - "chat.mark_all_read": "Marquer tous comme lu", + "chat.mark_all_read": "Marquer tout comme lu", "chat.no-messages": "Veuillez sélectionner un destinataire pour voir l'historique des discussions", "chat.no-users-in-room": "Aucun participant à cette discussion", "chat.recent-chats": "Discussions récentes", @@ -32,7 +32,7 @@ "chat.three_months": "3 Mois", "chat.delete_message_confirm": "Êtes-vous sûr de vouloir supprimer ce message ?", "chat.retrieving-users": "Ajouter des utilisateurs ...", - "chat.view-users-list": "Afficher la liste de utilisateurs", + "chat.view-users-list": "Afficher la liste d'utilisateurs", "chat.pinned-messages": "Messages épinglés", "chat.no-pinned-messages": "Il n'y a aucun message épinglé", "chat.pin-message": "Épingler un message", @@ -40,8 +40,8 @@ "chat.public-rooms": "Salons Publics (%1)", "chat.private-rooms": "Salons Privés (%1)", "chat.create-room": "Créer un salon de discussion", - "chat.private.option": "Privé (uniquement visible pour les utilisateurs ajoutés au salon)", - "chat.public.option": "Public (Visible par tous les utilisateurs des groupes sélectionnés)", + "chat.private.option": "Privé (visible uniquement pour les utilisateurs ajoutés au salon)", + "chat.public.option": "Public (visible par tous les utilisateurs des groupes sélectionnés)", "chat.public.groups-help": "Pour créer un salon de discussion visible par tous les utilisateurs, sélectionnez les utilisateurs enregistrés dans la liste des groupes.", "chat.manage-room": "Gérer l'espace de discussion", "chat.add-user": "Ajouter un utilisateur", @@ -52,7 +52,7 @@ "chat.notification-setting-at-mention-only": "@mention seulement", "chat.notification-setting-all-messages": "Tous les messages", "chat.select-groups": "Sélectionner des groupes", - "chat.add-user-help": "Rechercher des utilisateurs ici. Lorsque cette option est sélectionnée, l'utilisateur sera ajouté à l'espace de discussion. Le nouvel utilisateur ne pourra pas visualiser les échanges avant d'être ajoutés à la conversation. Seuls les propriétaires de l'espace de discussion () peuvent supprimer des utilisateurs.", + "chat.add-user-help": "Rechercher des utilisateurs ici. Lorsque cette option est sélectionnée, l'utilisateur sera ajouté à l'espace de discussion. Le nouvel utilisateur ne pourra pas visualiser les échanges avant d'être ajouté à la conversation. Seuls les propriétaires de l'espace de discussion () peuvent supprimer des utilisateurs.", "chat.confirm-chat-with-dnd-user": "Cet utilisateur a son statut en mode \"Ne pas déranger\". Voulez-vous quand même discuter avec lui ?", "chat.room-name-optional": "Renommer l'espace de discussion (optionnel)", "chat.rename-room": "Renommer l'espace de discussion ", @@ -93,8 +93,8 @@ "composer.upload-picture": "Envoyer une image", "composer.upload-file": "Envoyer un fichier", "composer.zen_mode": "Mode Zen", - "composer.select_category": "Sélectionnez une catégorie", - "composer.textarea.placeholder": "Saisissez le contenu de votre message ici, faites glisser et déposez les images", + "composer.select_category": "Sélectionner une catégorie", + "composer.textarea.placeholder": "Saisir le contenu de votre message ici, faites glisser et déposez les images", "composer.post-queue-alert": "Bonjour👋 ! Ce forum utilise un système de file d'attente des publications, puisque vous êtes un nouvel utilisateur, votre message sera masqué jusqu'à ce qu'il soit approuvé par notre équipe de modération.", "composer.schedule-for": "Planifier le sujet pour", "composer.schedule-date": "Date", diff --git a/public/language/fr/notifications.json b/public/language/fr/notifications.json index 633cd609ee..c9c37c73e4 100644 --- a/public/language/fr/notifications.json +++ b/public/language/fr/notifications.json @@ -18,8 +18,8 @@ "public-chat": "Discussions publiques", "follows": "Suivis", "upvote": "Votes positifs", - "new-flags": "Nouveaux drapeaux", - "my-flags": "Drapeaux assignés à moi", + "new-flags": "Nouveaux signalements", + "my-flags": "Signalement qui me sont assignés", "bans": "Bannissements", "new_message_from": "Nouveau message de %1", "user_posted_in_public_room": "%1 a écrit dans %3", @@ -42,7 +42,7 @@ "user_flagged_user_multiple": "%1, %2 et %3 autres ont signalé un profil utilisateur (%4)", "user_posted_to": "%1 a répondu à : %2", "user_posted_to_dual": "%1 et %2 ont posté une réponse à : %3", - "user_posted_to_triple": "%1, %2 et %3 ont publié des réponses à : %4", + "user_posted_to_triple": "%1, %2 et %3 ont publié des réponses à : %4", "user_posted_to_multiple": "%1, %2 et %3 autres ont posté des réponses dans : %4", "user_posted_topic": "%1 a posté un nouveau sujet: %2.", "user_edited_post": "%1 a édité un message dans %2", @@ -52,23 +52,23 @@ "user_started_following_you_multiple": "%1, %2 et %3 autres ont commencé à vous suivre.", "new_register": "%1 a envoyé une demande d'incription.", "new_register_multiple": "%1 inscription(s) est en attente de validation.", - "flag_assigned_to_you": "Drapeau %1 vous a été assigné", + "flag_assigned_to_you": "Signalement %1 vous a été assigné", "post_awaiting_review": "Message en attente de validation", "profile-exported": "%1 profil exporté, cliquez pour le télécharger", "posts-exported": "%1 messages exportés, cliquez pour les télécharger", "uploads-exported": "%1 envois exportés, cliquez pour les télécharger", - "users-csv-exported": "Utilisateurs exportés en CSV, cliquez pour télécharger", - "post-queue-accepted": "Votre message a été accepté. Cliquez ici pour voir votre message.", + "users-csv-exported": "Utilisateurs exportés en CSV, cliquer pour télécharger", + "post-queue-accepted": "Votre message a été accepté. Cliquez ici pour l'afficher.", "post-queue-rejected": "Votre message a été rejeté.", "post-queue-notify": "Vous avez reçu une notification:
\"%1\"", - "email-confirmed": "Email vérifié", - "email-confirmed-message": "Merci pour la validation de votre adresse email. Votre compte est désormais activé.", - "email-confirm-error-message": "Il y a un un problème dans la vérification de votre adresse email. Le code est peut être invalide ou a expiré.", - "email-confirm-sent": "Email de vérification envoyé.", + "email-confirmed": "E-mail vérifié", + "email-confirmed-message": "Merci pour la validation de votre adresse e-mail. Votre compte est désormais activé.", + "email-confirm-error-message": "Il y a un un problème dans la vérification de votre adresse e-mail. Le code est peut être invalide ou a expiré.", + "email-confirm-sent": "E-mail de vérification envoyé.", "none": "aucun", "notification_only": "Seulement une notification", - "email_only": "Seulement un email", - "notification_and_email": "Notification et email", + "email_only": "Seulement un e-mail", + "notification_and_email": "Notification et e-mail", "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", diff --git a/public/language/fr/pages.json b/public/language/fr/pages.json index 6a079c1818..77d93f09bd 100644 --- a/public/language/fr/pages.json +++ b/public/language/fr/pages.json @@ -28,7 +28,7 @@ "register": "Créer un compte", "registration-complete": "Inscription terminée", "login": "Connectez-vous à votre compte", - "reset": "Remettez à zéro votre mot de passe", + "reset": "Réinitialiser votre mot de passe", "categories": "Catégories", "groups": "Groupes", "group": "%1 groupe", @@ -41,8 +41,8 @@ "account/edit/username": "Édition du nom d'utilisateur de \"%1\"", "account/edit/email": "Édition de l'e-mail de \"%1\"", "account/info": "Informations du compte", - "account/following": "Les personnes auxquelles %1 est abonné", - "account/followers": "Les personnes abonnées à %1", + "account/following": "Personnes auxquelles %1 est abonné(e)", + "account/followers": "Personnes abonnées à %1", "account/posts": "Messages postés par %1", "account/latest-posts": "Derniers messages publiés par %1", "account/topics": "Sujets créés par %1", @@ -60,7 +60,7 @@ "account/blocks": "Utilisateurs bloqués pour %1", "account/uploads": "Envoyé par %1", "account/sessions": "Sessions des connexions", - "confirm": "Email vérifié", + "confirm": "E-mail vérifié", "maintenance.text": "%1 est actuellement en cours de maintenance.
Veuillez revenir ultérieurement.", "maintenance.messageIntro": "De plus, l'administrateur a laissé ce message :", "throttled.text": "%1 est actuellement indisponible en raison d'une charge excessive. Merci de réessayer plus tard." diff --git a/public/language/fr/post-queue.json b/public/language/fr/post-queue.json index 9ba7dbd67f..8a37ad5ab0 100644 --- a/public/language/fr/post-queue.json +++ b/public/language/fr/post-queue.json @@ -12,9 +12,9 @@ "content": "Contenu", "posted": "Posté", "reply-to": "Répondre à \"%1\"", - "content-editable": "Cliquez sur le contenu pour modifier", - "category-editable": "Cliquez sur la catégorie pour modifier", - "title-editable": "Cliquez sur le titre pour modifier", + "content-editable": "Cliquer sur le contenu pour modifier", + "category-editable": "Cliquer sur la catégorie pour modifier", + "title-editable": "Cliquer sur le titre pour modifier", "reply": "Répondre", "topic": "Sujet", "accept": "Accepter", @@ -26,7 +26,7 @@ "confirm-remove": "Voulez-vous supprimer ce message ?", "bulk-actions": "Actions", "accept-all": "Tout accepter", - "accept-selected": "Acceptation sélectionné", + "accept-selected": "Acceptation sélectionnée", "reject-all": "Tout rejeter", "reject-all-confirm": "Voulez vous réellement rejeter tous ces messages ?", "reject-selected": "Rejets sélectionnés", diff --git a/public/language/fr/register.json b/public/language/fr/register.json index 06da648470..9ca9004f40 100644 --- a/public/language/fr/register.json +++ b/public/language/fr/register.json @@ -18,16 +18,16 @@ "terms_of_use": "Conditions générales d'utilisation", "agree_to_terms_of_use": "J'accepte les conditions générales d'utilisation", "terms_of_use_error": "Vous devez accepter les conditions générales d'utilisation", - "registration-added-to-queue": "Votre inscription a été ajoutée à la liste d'approbation. Vous recevrez un email quand celle-ci sera acceptée par un administrateur.", - "registration-queue-average-time": "Temps moyen d'approbation des adhésions est de %1 heures %2 minutes.", - "registration-queue-auto-approve-time": "Votre adhésion à ce forum sera entièrement activée dans un maximum de %1 heures.", + "registration-added-to-queue": "Votre inscription a été ajoutée à la liste d'approbation. Vous recevrez un e-mail quand celle-ci sera acceptée par un administrateur.", + "registration-queue-average-time": "Le temps moyen d'approbation des adhésions est de %1 heures %2 minutes.", + "registration-queue-auto-approve-time": "Votre adhésion à ce forum sera entièrement activée dans un délai maximum de %1 heures.", "interstitial.intro": "Nous aimerions avoir des informations supplémentaires afin de mettre à jour votre compte…", "interstitial.intro-new": "Nous aimerions avoir des informations supplémentaires avant de pouvoir créer votre compte…", "interstitial.errors-found": "Veuillez vérifier les informations saisies :", "gdpr_agree_data": "J'accepte la collecte et le traitement de mes données personnelles sur ce site.", "gdpr_agree_email": "J'accepte de recevoir des courriels et des notifications de ce site Web.", - "gdpr_consent_denied": "Vous devez accepter que ce site puisse collecter et traiter vos données, et pour vous envoyer des courriels.", + "gdpr_consent_denied": "Vous devez accepter que ce site puisse collecter et traiter vos données et vous envoyer des courriels.", "invite.error-admin-only": "Les inscriptions sont désactivés. Veuillez contacter un administrateur pour plus de détails.", - "invite.error-invite-only": "Les inscriptions sont désactivés. Seules les invitations sont acceptés pour accéder au forum.", - "invite.error-invalid-data": "Renseignements erronées. Veuillez contacter un administrateur pour plus de détails" + "invite.error-invite-only": "Les inscriptions sont désactivées. Seules les invitations sont acceptées pour accéder au forum.", + "invite.error-invalid-data": "Renseignements erronés. Veuillez contacter un administrateur pour plus de détails" } \ No newline at end of file diff --git a/public/language/fr/reset_password.json b/public/language/fr/reset_password.json index c0ec57af7b..cd950e731b 100644 --- a/public/language/fr/reset_password.json +++ b/public/language/fr/reset_password.json @@ -8,10 +8,10 @@ "new_password": "Nouveau mot de passe", "repeat_password": "Confirmer le mot de passe", "changing_password": "Changer le mot de passe", - "enter_email": "Veuillez entrer votre adresse email pour recevoir un email contenant les instructions permettant de réinitialiser votre compte.", + "enter_email": "Veuillez entrer votre adresse e-mail pour recevoir un e-mail contenant les instructions permettant de réinitialiser votre compte.", "enter_email_address": "Entrer votre adresse email", - "password_reset_sent": "Si l'adresse spécifiée correspond à un compte d'utilisateur existant, un email de réinitialisation de mot de passe va être envoyé. Veuillez noter qu'un seul email sera envoyé par minute.", - "invalid_email": "Email invalide / L'email n'existe pas !", + "password_reset_sent": "Si l'adresse spécifiée correspond à un compte d'utilisateur existant, un e-mail de réinitialisation de mot de passe va être envoyé. Veuillez noter qu'un seul e-mail sera envoyé par minute.", + "invalid_email": "E-mail invalide / L'e-mail n'existe pas !", "password_too_short": "Le mot de passe est trop court, veuillez entrer un mot de passe différent.", "passwords_do_not_match": "Les deux mots de passe saisis ne correspondent pas.", "password_expired": "Votre mot de passe a expiré, veuillez choisir un nouveau mot de passe." diff --git a/public/language/fr/search.json b/public/language/fr/search.json index 25b237aa25..34f4c2f423 100644 --- a/public/language/fr/search.json +++ b/public/language/fr/search.json @@ -1,5 +1,5 @@ { - "type-to-search": "Ecrivez votre recherche", + "type-to-search": "Écrivez votre recherche", "results_matching": "%1 résultat(s) correspondant(s) à \"%2\", (%3 secondes)", "no-matches": "Aucune réponse trouvée", "advanced-search": "Recherche avancée", @@ -12,12 +12,12 @@ "in-tags": "Dans les mots-clés", "categories": "Catégories", "all-categories": "Toutes Catégories", - "categories-x": "Catégories: %1", + "categories-x": "Catégories : %1", "categories-watched-categories": "Catégories : Catégories surveillées", "type-a-category": "Ecrivez une catégorie", "tags": "Mots-clés", - "tags-x": "Mots-clés: %1", - "type-a-tag": "Ecrivez un mot-clés", + "tags-x": "Mots-clés : %1", + "type-a-tag": "Écrivez un mot-clé", "match-words": "Correspondance", "match-all-words": "Tous les mots", "match-any-word": "N'importe quel mot", @@ -30,8 +30,8 @@ "has-tags": "Contient les mots-clés", "reply-count": "Nombre de réponses", "replies": "Réponses", - "replies-atleast-count": "Réponses: au moins %1", - "replies-atmost-count": "Réponses: au plus %1", + "replies-atleast-count": "Réponses : au moins %1", + "replies-atmost-count": "Réponses : au plus %1", "at-least": "Au moins", "at-most": "Au plus", "relevance": "Pertinence", @@ -48,20 +48,20 @@ "three-months": "Trois mois", "six-months": "Six mois", "one-year": "Un an", - "time-newer-than-86400": "Date: Plus récent qu'hier", - "time-older-than-86400": "Date: Plus ancien qu'hier", - "time-newer-than-604800": "Date: Moins d'une semaine", - "time-older-than-604800": "Date: Plus d'une semaine", - "time-newer-than-1209600": "Date: Moins de deux semaines", - "time-older-than-1209600": "Date: Plus de deux semaines", - "time-newer-than-2592000": "Date: Moins d'un mois", - "time-older-than-2592000": "Date: Plus d'un mois", - "time-newer-than-7776000": "Date: Moins de trois mois", - "time-older-than-7776000": "Date: Moins de trois mois", - "time-newer-than-15552000": "Date: Moins de six mois", - "time-older-than-15552000": "Date: Plus de six mois", - "time-newer-than-31104000": "Date: Moins d'un an", - "time-older-than-31104000": "Date: Plus d'un an", + "time-newer-than-86400": "Date : Plus récent qu'hier", + "time-older-than-86400": "Date : Plus ancien qu'hier", + "time-newer-than-604800": "Date : Moins d'une semaine", + "time-older-than-604800": "Date : Plus d'une semaine", + "time-newer-than-1209600": "Date : Moins de deux semaines", + "time-older-than-1209600": "Date : Plus de deux semaines", + "time-newer-than-2592000": "Date : Moins d'un mois", + "time-older-than-2592000": "Date : Plus d'un mois", + "time-newer-than-7776000": "Date : Moins de trois mois", + "time-older-than-7776000": "Date : Moins de trois mois", + "time-newer-than-15552000": "Date : Moins de six mois", + "time-older-than-15552000": "Date : Plus de six mois", + "time-newer-than-31104000": "Date : Moins d'un an", + "time-older-than-31104000": "Date : Plus d'un an", "sort-by": "Trier par", "sort": "Trier", "last-reply-time": "Date de dernière réponse", @@ -76,8 +76,8 @@ "ascending": "Par ordre croissant", "sort-by-relevance-desc": "Trier par : Pertinence par ordre décroissant", "sort-by-relevance-asc": "Trier par : Pertinence par ordre croissant", - "sort-by-timestamp-desc": "Trier par: Date par ordre décroissant", - "sort-by-timestamp-asc": "Trier par: Date par ordre croissant", + "sort-by-timestamp-desc": "Trier par : Date par ordre décroissant", + "sort-by-timestamp-asc": "Trier par : Date par ordre croissant", "sort-by-votes-desc": "Trier par : Votes par ordre décroissant", "sort-by-votes-asc": "Trier par : Votes par ordre croissant", "sort-by-topic.lastposttime-desc": "Trier par : Date de dernière réponse par ordre décroissant", diff --git a/public/language/fr/tags.json b/public/language/fr/tags.json index 0171ee5090..93c938947e 100644 --- a/public/language/fr/tags.json +++ b/public/language/fr/tags.json @@ -1,11 +1,11 @@ { "all-tags": "Tous les mots-clés", "no_tag_topics": "Il n'y a aucun sujet ayant ce mot-clé", - "no-tags-found": "Aucun mots-clés trouvés", + "no-tags-found": "Aucun mot-clé trouvé", "tags": "Mots-clés", "enter_tags_here": "Entrez les mots-clés ici. Chaque mot doit faire entre %1 et %2 caractères.", "enter_tags_here_short": "Entrez des mots-clés...", "no_tags": "Il n'y a pas encore de mots-clés.", "select_tags": "Sélectionner les mots-clés", - "tag-whitelist": "Liste blanche de mots clés" + "tag-whitelist": "Liste blanche de mots-clés" } \ No newline at end of file diff --git a/public/language/fr/themes/harmony.json b/public/language/fr/themes/harmony.json index 9c6527fee9..12cd9130c6 100644 --- a/public/language/fr/themes/harmony.json +++ b/public/language/fr/themes/harmony.json @@ -11,6 +11,6 @@ "settings.stickyToolbar": "Barre d'outils", "settings.stickyToolbar.help": "La barre d'outils sur les pages de sujets et de catégories restera en haut de la page", "settings.autohideBottombar": "Masquer automatiquement la barre inférieure", - "settings.autohideBottombar.help": "La barre inférieure de la vue mobile sera masquée lorsque la page défilera vers le bas", + "settings.autohideBottombar.help": "La barre inférieure sur mobile sera masquée lorsque la page défilera vers le bas", "settings.chatModals": "Activer les discussions" } \ No newline at end of file diff --git a/public/language/fr/themes/persona.json b/public/language/fr/themes/persona.json index f0cc2ac77a..af2d3f93a7 100644 --- a/public/language/fr/themes/persona.json +++ b/public/language/fr/themes/persona.json @@ -1,10 +1,10 @@ { "settings.title": "Configuration du thème", - "settings.intro": "Vous pouvez personnaliser les paramètres de votre thème ici. Les paramètres sont stockés sur une base par appareil, vous pouvez donc avoir différents paramètres sur différents appareils (téléphone, tablette, ordinateur de bureau, etc.)", - "settings.mobile-menu-side": "Changer la position du menu en version mobiles", + "settings.intro": "Vous pouvez personnaliser les paramètres de votre thème ici. Les paramètres sont stockés sur une base par appareil, vous pouvez donc avoir différents paramètres sur chacun de vos appareils (téléphone, tablette, ordinateur de bureau, etc)", + "settings.mobile-menu-side": "Changer la position du menu en version mobile", "settings.autoHidingNavbar": "Masquer automatiquement la barre de navigation lors du défilement", - "settings.autoHidingNavbar-xs": "Très petits écrans (par exemple, téléphones en mode portrait)", - "settings.autoHidingNavbar-sm": "Petits écrans (par exemple, téléphones, certaines tablettes)", - "settings.autoHidingNavbar-md": "Moyen écrans (ex. tablettes en mode paysage)", - "settings.autoHidingNavbar-lg": "Grands écrans (par exemple, ordinateurs de bureau)" + "settings.autoHidingNavbar-xs": "Très petits écrans (ex : téléphones en mode portrait, etc)", + "settings.autoHidingNavbar-sm": "Petits écrans (ex : téléphones, certaines tablettes, etc)", + "settings.autoHidingNavbar-md": "Écrans moyens (ex : tablettes en mode paysage, etc)", + "settings.autoHidingNavbar-lg": "Grands écrans (ex : ordinateurs de bureau, etc)" } \ No newline at end of file diff --git a/public/language/fr/topic.json b/public/language/fr/topic.json index 48c5b2cf82..7f8d9ad923 100644 --- a/public/language/fr/topic.json +++ b/public/language/fr/topic.json @@ -62,9 +62,9 @@ "user-queued-post-on": "%1 message En attente pour approbation sur %3", "user-referenced-topic-ago": "%1 a fait référence à ce sujet %3", "user-referenced-topic-on": "%1 a fait référence à ce sujet sur %3", - "user-forked-topic-ago": "%1 a dupliqué ce sujet %3", - "user-forked-topic-on": "%1 a dupliqué ce sujet sur %3", - "bookmark_instructions": "Cliquez ici pour aller au dernier message lu de ce fil.", + "user-forked-topic-ago": "%1 a scindé ce sujet %3", + "user-forked-topic-on": "%1 a scindé ce sujet sur %3", + "bookmark_instructions": "Cliquer ici pour aller au dernier message lu de ce fil.", "flag-post": "Signaler ce message", "flag-user": "Signaler cet utilisateur", "already-flagged": "Déjà signalé", @@ -77,7 +77,7 @@ "ignoring_topic.message": "Vous ne verrez plus ce sujet dans la liste des sujets non lus. Vous serez notifié lorsque vous serez mentionné ou que quelqu'un votera pour votre message.", "login_to_subscribe": "Veuillez vous enregistrer ou vous connecter afin de vous abonner à ce sujet.", "markAsUnreadForAll.success": "Sujet marqué comme non lu pour tout le monde.", - "mark_unread": "Marquer comme non-lu", + "mark_unread": "Marquer comme non lu", "mark_unread.success": "Sujet marqué comme non lu.", "watch": "Suivre", "unwatch": "Cesser de suivre", @@ -113,10 +113,10 @@ "thread_tools.merge_topics": "Fusionner les Sujets", "thread_tools.merge": "Fusionner le sujet", "topic_move_success": "Ce sujet sera bientôt déplacé vers \"%1\". Cliquez ici pour annuler.", - "topic_move_multiple_success": "Ces sujets seront bientôt déplacés vers \"%1\". Cliquez ici pour annuler.", - "topic_move_all_success": "Tous les sujets seront déplacés vers \"%1\". Cliquez ici pour annuler.", + "topic_move_multiple_success": "Ces sujets seront bientôt déplacés vers \"%1\". Cliquer ici pour annuler.", + "topic_move_all_success": "Tous les sujets seront déplacés vers \"%1\". Cliquer ici pour annuler.", "topic_move_undone": "Déplacement de sujet annulé", - "topic_move_posts_success": "Les messages vont être déplacés. Cliquez ici pour annuler.", + "topic_move_posts_success": "Les messages vont être déplacés. Cliquer ici pour annuler.", "topic_move_posts_undone": "Déplacement annulé", "post_delete_confirm": "Êtes-vous sûr de bien vouloir supprimer ce message ?", "post_restore_confirm": "Êtes-vous sûr de bien vouloir restaurer ce message ?", @@ -136,24 +136,24 @@ "move_post": "Déplacer", "post_moved": "Message déplacé !", "fork_topic": "Scinder le sujet", - "enter-new-topic-title": "Entrez un nouveau titre de sujet", - "fork_topic_instruction": "Cliquez sur les messages que vous souhaitez dupliquer, entrez un titre pour le nouveau sujet et cliquez sur dupliquer", + "enter-new-topic-title": "Entrer un nouveau titre de sujet", + "fork_topic_instruction": "Cliquez sur les messages que vous souhaitez scinder, entrez un titre pour le nouveau sujet et cliquez sur scinder", "fork_no_pids": "Aucun post sélectionné !", - "no-posts-selected": "Aucun(s) message(s) sélectionné(s) !", + "no-posts-selected": "Aucun message sélectionné !", "x-posts-selected": "%1 message(s) sélectionné(s)", "x-posts-will-be-moved-to-y": "%1 message(s) seront déplacés vers \"%2\"", "fork_pid_count": "%1 message(s) sélectionné(s)", - "fork_success": "Sujet copié avec succès ! Cliquez ici pour aller au sujet copié.", - "delete_posts_instruction": "Sélectionnez les messages que vous souhaitez supprimer/vider", - "merge_topics_instruction": "Cliquez sur les sujets que vous voulez fusionner", + "fork_success": "Sujet scindé avec succès ! Cliquez ici pour aller au sujet scindé.", + "delete_posts_instruction": "Sélectionner les messages que vous souhaitez supprimer/vider", + "merge_topics_instruction": "Cliquer sur les sujets que vous voulez fusionner", "merge-topic-list-title": "Liste des sujets à fusionner", "merge-options": "Options de fusion", - "merge-select-main-topic": "Sélectionnez le sujet principal", + "merge-select-main-topic": "Sélectionner le sujet principal", "merge-new-title-for-topic": "Nouveau titre pour le sujet", "topic-id": "Sujet ID", - "move_posts_instruction": "Cliquez sur les articles que vous souhaitez déplacer, puis entrez un ID de sujet ou accédez au sujet cible", - "move_topic_instruction": "Sélectionnez la catégorie cible, puis cliquez sur déplacer", - "change_owner_instruction": "Cliquez sur les messages que vous souhaitez attribuer à un autre utilisateur.", + "move_posts_instruction": "Cliquer sur les articles que vous souhaitez déplacer, puis entrez un ID de sujet ou accédez au sujet cible", + "move_topic_instruction": "Sélectionner la catégorie cible puis cliquer sur déplacer", + "change_owner_instruction": "Cliquer sur les messages que vous souhaitez attribuer à un autre utilisateur.", "composer.title_placeholder": "Entrer le titre du sujet ici…", "composer.handle_placeholder": "Entrez votre nom/identifiant ici", "composer.hide": "Cacher", @@ -171,7 +171,7 @@ "composer.thumb_url_placeholder": "http://exemple.com/vignette.png", "composer.thumb_file_label": "Ou envoyer un fichier", "composer.thumb_remove": "Effacer les champs", - "composer.drag_and_drop_images": "Glissez-déposez les images ici", + "composer.drag_and_drop_images": "Glisser & déposer les images ici", "more_users_and_guests": "%1 autre(s) utilisateur(s) et %2 invité(s)", "more_users": "%1 autre(s) utilisateur(s)", "more_guests": "%1 autre(s) invité(s)", @@ -196,8 +196,8 @@ "diffs.restore-description": "Une nouvelle révision sera ajoutée à l'historique des modifications de ce message après la restauration.", "diffs.post-restored": "Restauration avec succès dans une révision antérieure", "diffs.delete": "Supprimer cette révision", - "diffs.deleted": "Révision supprimé", - "timeago_later": "%1", + "diffs.deleted": "Révision supprimée", + "timeago_later": "%1 après", "timeago_earlier": "il y a %1", "first-post": "Premier message", "last-post": "Dernier message", diff --git a/public/language/fr/user.json b/public/language/fr/user.json index 81fdbf6cbc..e2c68556e3 100644 --- a/public/language/fr/user.json +++ b/public/language/fr/user.json @@ -105,13 +105,13 @@ "has_no_follower": "Cet utilisateur n'a pas encore d'abonné :(", "follows_no_one": "Cet utilisateur n'est abonné à personne :(", "has_no_posts": "Cet utilisateur n'a encore rien posté.", - "has_no_best_posts": "Cet utilisateur n'a pas encore d'avis positifs", + "has_no_best_posts": "Cet utilisateur n'a pas encore d'avis positif", "has_no_topics": "Cet utilisateur n'a encore créé aucun sujet.", "has_no_watched_topics": "Cet utilisateur ne s'est encore abonné à aucun sujet.", "has_no_ignored_topics": "Cet utilisateur n'a encore ignoré aucun sujet.", "has_no_upvoted_posts": "Cet utilisateur n'a donné d'avis positifs", "has_no_downvoted_posts": "Cet utilisateur n'a pas donné d'avis négatifs", - "has_no_controversial_posts": "Cet utilisateur n'a pas encore d'avis négatifs.", + "has_no_controversial_posts": "Cet utilisateur n'a pas encore d'avis négatif.", "has_no_blocks": "Vous n'avez bloqué aucun utilisateur.", "email_hidden": "Email masqué", "hidden": "masqué", @@ -164,8 +164,8 @@ "info.banned-permanently": "Banni de façon permanente", "info.banned-reason-label": "Raison", "info.banned-no-reason": "Aucune raison donnée", - "info.mute-history": "Historique de mise en sourdine récent", - "info.no-mute-history": "Cette utilisateur n'a jamais était muet", + "info.mute-history": "Historique de mise en sourdine récente", + "info.no-mute-history": "Cet utilisateur n'a jamais été mis en sourdine", "info.muted-until": "Muet jusqu'à %1", "info.muted-expiry": "Date d'expiration", "info.muted-no-reason": "Aucune raison donnée.", @@ -200,10 +200,10 @@ "consent.export-uploads-success": "Exportation des envois, vous recevrez une notification lorsqu'elle sera terminée.", "consent.export_posts": "Exporter vos messages (.csv)", "consent.export-posts-success": "Exportation des messages, vous recevrez une notification lorsqu'elle sera terminée.", - "emailUpdate.intro": "Veuillez renseigner votre adresse mails. Ce forum utilise votre adresse mail pour suivre l'activité et les notifications programmés, ainsi que pour la récupération de compte en cas de perte de mot de passe.", + "emailUpdate.intro": "Veuillez renseigner votre adresse mail. Ce forum utilise votre adresse mail pour suivre l'activité et les notifications programmées, ainsi que pour la récupération de compte en cas de perte de mot de passe.", "emailUpdate.optional": "Ce champ est facultatif. Vous n'êtes pas obligé de fournir votre adresse e-mail, mais sans e-mail validé, vous ne pourrez pas récupérer votre compte ou vous connecter avec votre e-mail.", "emailUpdate.required": "Ce champ est requis.", - "emailUpdate.change-instructions": "Un mail de confirmation sera envoyé à l'adresse mail saisie avec un lien unique. L'accès à ce lien confirmera votre propriété de mail et elle deviendra active sur votre compte. À tout moment, vous pouvez mettre à jour votre mail enregistré depuis la page de votre compte.", + "emailUpdate.change-instructions": "Un e-mail de confirmation sera envoyé à l'adresse mail saisie avec un lien unique. L'accès à ce lien confirmera votre propriété d'e-mail et elle deviendra active sur votre compte. À tout moment, vous pouvez mettre à jour votre e-mail enregistré depuis la page de votre compte.", "emailUpdate.password-challenge": "Veuillez entrer votre mot de passe pour confirmer la propriété du compte.", "emailUpdate.pending": "Votre adresse e-mail n'a pas encore été confirmée, mais un e-mail a été envoyé pour demander une confirmation. Si vous souhaitez annuler cette demande et renvoyer une demande de confirmation, veuillez remplir le formulaire ci-dessous." } \ No newline at end of file diff --git a/public/language/tr/modules.json b/public/language/tr/modules.json index fed7bd0e63..4b7a014a29 100644 --- a/public/language/tr/modules.json +++ b/public/language/tr/modules.json @@ -1,5 +1,5 @@ { - "chat.room-id": "Room %1", + "chat.room-id": "Oda %1", "chat.chatting_with": "Sohbet", "chat.placeholder": "Mesajı yazın veya resim sürükleyip bırakın", "chat.placeholder.mobile": "Sohbet içeriğini buraya giriniz", From 7e5d9b71749bfd922d0e74e4009f77f1b201b706 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Sat, 9 Sep 2023 22:58:04 -0400 Subject: [PATCH 020/275] chore: up composer --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index 33bbce3f20..376ac9e129 100644 --- a/install/package.json +++ b/install/package.json @@ -93,7 +93,7 @@ "multiparty": "4.2.3", "nconf": "0.12.0", "nodebb-plugin-2factor": "7.2.1", - "nodebb-plugin-composer-default": "10.2.20", + "nodebb-plugin-composer-default": "10.2.21", "nodebb-plugin-dbsearch": "6.2.2", "nodebb-plugin-emoji": "5.1.5", "nodebb-plugin-emoji-android": "4.0.0", From 45b9803a2b85ed2a77975f8264649112c3e75a35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Sat, 9 Sep 2023 23:09:00 -0400 Subject: [PATCH 021/275] chore: up composer --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index 376ac9e129..ad9f781b81 100644 --- a/install/package.json +++ b/install/package.json @@ -93,7 +93,7 @@ "multiparty": "4.2.3", "nconf": "0.12.0", "nodebb-plugin-2factor": "7.2.1", - "nodebb-plugin-composer-default": "10.2.21", + "nodebb-plugin-composer-default": "10.2.22", "nodebb-plugin-dbsearch": "6.2.2", "nodebb-plugin-emoji": "5.1.5", "nodebb-plugin-emoji-android": "4.0.0", From 42e2486af3c0e621f4bb1af3372772bdf841ee64 Mon Sep 17 00:00:00 2001 From: Misty Release Bot Date: Mon, 11 Sep 2023 09:20:40 +0000 Subject: [PATCH 022/275] Latest translations and fallbacks --- public/language/fr/admin/admin.json | 4 +-- public/language/fr/admin/advanced/errors.json | 4 +-- public/language/fr/admin/advanced/events.json | 2 +- .../fr/admin/appearance/customise.json | 8 +++--- .../language/fr/admin/appearance/skins.json | 4 +-- .../language/fr/admin/appearance/themes.json | 2 +- public/language/fr/admin/dashboard.json | 28 +++++++++---------- public/language/it/admin/manage/users.json | 26 ++++++++--------- public/language/it/admin/settings/chat.json | 14 +++++----- public/language/it/modules.json | 18 ++++++------ public/language/it/user.json | 2 +- public/language/sr/modules.json | 18 ++++++------ public/language/sr/user.json | 2 +- 13 files changed, 66 insertions(+), 66 deletions(-) diff --git a/public/language/fr/admin/admin.json b/public/language/fr/admin/admin.json index b678e57c67..fcb1689664 100644 --- a/public/language/fr/admin/admin.json +++ b/public/language/fr/admin/admin.json @@ -1,5 +1,5 @@ { - "alert.confirm-rebuild-and-restart": "Êtes-vous sûr de vouloir régénérer et redémarrer NodeBB ?", + "alert.confirm-rebuild-and-restart": "Êtes-vous sûr de vouloir reconstruire et redémarrer NodeBB ?", "alert.confirm-restart": "Êtes-vous sûr de vouloir redémarrer NodeBB ?", "acp-title": "%1 | Panneau d'administration NodeBB", @@ -12,7 +12,7 @@ "min": "Min :", "max": "Max :", "view": "Voir", - "edit": "Éditer ", + "edit": "Modifier", "add": "Ajouter", "select-icon": "Sélectionner une icône" } \ No newline at end of file diff --git a/public/language/fr/admin/advanced/errors.json b/public/language/fr/admin/advanced/errors.json index 419e896306..6070619ca1 100644 --- a/public/language/fr/admin/advanced/errors.json +++ b/public/language/fr/admin/advanced/errors.json @@ -2,14 +2,14 @@ "errors": "Erreurs", "figure-x": "Graphe %1", "error-events-per-day": "Évènements %1 par jour", - "error.404": "404 Introuvable", + "error.404": "404 non trouvé", "error.503": "503 Service indisponible", "manage-error-log": "Gestion des journaux d'erreurs", "export-error-log": "Exporter les journaux d'erreurs (CSV)", "clear-error-log": "Effacer les journaux d'erreurs", "route": "Chemin", "count": "Nombre", - "no-routes-not-found": "Hourrah ! Aucune erreur 404 !", + "no-routes-not-found": "Hourra ! Aucune erreur 404 !", "clear404-confirm": "Êtes-vous sûr de vouloir effacer les journaux d'erreurs 404 ?", "clear404-success": "Erreurs \"404 non trouvé\" effacées" } \ No newline at end of file diff --git a/public/language/fr/admin/advanced/events.json b/public/language/fr/admin/advanced/events.json index 3514894bce..067ab33736 100644 --- a/public/language/fr/admin/advanced/events.json +++ b/public/language/fr/admin/advanced/events.json @@ -3,7 +3,7 @@ "no-events": "Il n'y a aucun évènement.", "control-panel": "Panneau de contrôle des évènements", "delete-events": "Supprimer les évènements", - "confirm-delete-all-events": "Êtes-vous sûr de vouloir supprimer tous les événements enregistrés ?", + "confirm-delete-all-events": "Êtes-vous sûr de vouloir supprimer tous les évènements enregistrés ?", "filters": "Filtres", "filters-apply": "Appliquer", "filter-type": "Évènements", diff --git a/public/language/fr/admin/appearance/customise.json b/public/language/fr/admin/appearance/customise.json index ed3d35bec0..c673596d66 100644 --- a/public/language/fr/admin/appearance/customise.json +++ b/public/language/fr/admin/appearance/customise.json @@ -1,19 +1,19 @@ { "customise": "Personnaliser", "custom-css": "CSS/SASS personnalisé", - "custom-css.description": "Entrez vos propres déclarations CSS/SASS ici, qui seront appliquées après tous les autres styles.", + "custom-css.description": "Entrer vos propres déclarations CSS/SASS ici, qui seront appliquées après tous les autres styles.", "custom-css.enable": "Activer le CSS/SASS personnalisé", "custom-js": "Javascript personnalisé", - "custom-js.description": "Entrez votre Javascript ici. Celui-ci sera exécuté après le chargement complet de la page.", + "custom-js.description": "Entrer votre Javascript ici. Celui-ci sera exécuté après le chargement complet de la page.", "custom-js.enable": "Activer le Javascript personnalisé", "custom-header": "En-tête personnalisé", - "custom-header.description": "Saisissez votre code HTML personnalisé ici (par exemple, les balises Meta, etc.), qui sera ajouté au section <head> du balisage de votre forum. Les mots clés sont autorisés, mais sont déconseillés, dans la mesure où le Javascript personnalisé est disponible.", + "custom-header.description": "Saisir du code HTML personnalisé ici (par exemple, les balises Meta, etc.), qui sera ajouté à la section <head> du balisage de votre forum. Les mots clés sont autorisés, mais sont déconseillés, dans la mesure où le Javascript personnalisé est disponible.", "custom-header.enable": "Activer les en-têtes personnalisés", "custom-css.livereload": "Activer le rechargement en direct", - "custom-css.livereload.description": "Activez cette option pour forcer toutes les sessions sur chaque appareil connecté à votre compte à se rafraichir lorsque vous cliquez sur Enregistrer.", + "custom-css.livereload.description": "Activer cette option pour forcer toutes les sessions sur chaque appareil connecté à votre compte à se rafraichir lorsque vous cliquez sur Enregistrer.", "bsvariables": "_variables.scss", "bsvariables.description": "Remplacer les variables de lancement ici. Vous pouvez également utiliser un outil comme bootstrap.build et copier coller le code ici.
Les modifications nécessitent une reconstruction et un redémarrage.", "bsvariables.enable": "Activer _variables.scss" diff --git a/public/language/fr/admin/appearance/skins.json b/public/language/fr/admin/appearance/skins.json index 4626540a91..6294c8470e 100644 --- a/public/language/fr/admin/appearance/skins.json +++ b/public/language/fr/admin/appearance/skins.json @@ -3,8 +3,8 @@ "bootswatch-skins": "Skins de lancement", "custom-skins": "Skins personnalisés", "add-skin": "Ajouter un Skin", - "save-custom-skins": "Sauvegarder le skin personnalisé", - "save-custom-skins-success": "Sauvegardé avec succès", + "save-custom-skins": "Sauvegarder les skins personnalisés", + "save-custom-skins-success": "Skins personnalisés sauvegardé avec succès", "custom-skin-name": "Nom du skin personnalisé", "custom-skin-variables": "Variables du skin personnalisé", "loading": "Chargements des skins…", diff --git a/public/language/fr/admin/appearance/themes.json b/public/language/fr/admin/appearance/themes.json index 9fbb9122c5..7504113c23 100644 --- a/public/language/fr/admin/appearance/themes.json +++ b/public/language/fr/admin/appearance/themes.json @@ -9,5 +9,5 @@ "revert-confirm": "Êtes-vous sûr de vouloir restaurer le thème NodeBB par défaut ?", "theme-changed": "Thème changé", "revert-success": "Vous avez restauré avec succès le thème par défaut de NodeBB.", - "restart-to-activate": "Veuillez régénérer et redémarrer votre NodeBB pour activer ce thème." + "restart-to-activate": "Veuillez reconstruire et redémarrer votre NodeBB pour activer ce thème." } \ No newline at end of file diff --git a/public/language/fr/admin/dashboard.json b/public/language/fr/admin/dashboard.json index 4fe90ddc2b..33bc4bbc4e 100644 --- a/public/language/fr/admin/dashboard.json +++ b/public/language/fr/admin/dashboard.json @@ -3,7 +3,7 @@ "page-views": "Pages vues", "unique-visitors": "Visiteurs uniques", "logins": "Connexions", - "new-users": "Nouvel utilisateur", + "new-users": "Nouveaux utilisateurs", "posts": "Messages", "topics": "Sujets", "page-views-seven": "7 derniers jours", @@ -12,8 +12,8 @@ "page-views-custom": "Dates personnalisées", "page-views-custom-start": "Début", "page-views-custom-end": "Fin", - "page-views-custom-help": "Entrez une plage de date pour les vues que vous souhaitez afficher. Si aucun sélecteur de date n'est disponible, le format de date accepté est YYYY-MM-DD.", - "page-views-custom-error": "Veuillez entrer une plage de date valide dans le format suivant : YYYY-MM-DD", + "page-views-custom-help": "Entrer une plage de date pour les vues que vous souhaitez afficher. Si aucun sélecteur de date n'est disponible, le format de date accepté est JJ-MM-AAAA.", + "page-views-custom-error": "Veuillez entrer une plage de date valide dans le format suivant : JJ-MM-AAAA", "stats.yesterday": "Hier", "stats.today": "Aujourd'hui", @@ -21,15 +21,15 @@ "stats.this-week": "Cette semaine", "stats.last-month": "Mois dernier", "stats.this-month": "Ce mois", - "stats.all": "Tous les temps", + "stats.all": "Tout le temps", "updates": "Mises à jour", "running-version": "NodeBB v%1 est actuellement installé.", "keep-updated": "Assurez-vous que votre version de NodeBB est à jour pour les derniers patchs de sécurité et correctifs de bugs.", - "up-to-date": "

Votre version est à jour

", + "up-to-date": "Votre version est à jour ", "upgrade-available": "

Une nouvelle version (v%1) est disponible. Veuillez mettre à jour NodeBB.

", - "prerelease-upgrade-available": "

Votre version est dépassée. Une nouvelle version (v%1) est disponible. Veuillez mettre à jour NodeBB.

", - "prerelease-warning": "

Ceci est une version préliminaire de NodeBB. Des bugs inattendus peuvent se produire.

", + "prerelease-upgrade-available": "Votre version est dépassée. Une nouvelle version (v%1) est disponible. Veuillez mettre à jour NodeBB.", + "prerelease-warning": "Ceci est une pré-version de NodeBB. Des bugs inattendus peuvent se produire. ", "fallback-emailer-not-found": "E-mail de secours introuvable !", "running-in-development": "Le forum est en mode développement. Il peut être sujet à certaines vulnérabilités, veuillez contacter votre administrateur système.", "latest-lookup-failed": "Erreur de vérification de la dernière version disponible de NodeBB", @@ -42,12 +42,12 @@ "search-plugin-tooltip": "Installer un plugin de recherche depuis la page des plugins pour activer la fonctionnalité de recherche", "control-panel": "Contrôle du système", - "rebuild-and-restart": "Régénérer & Redémarrer", + "rebuild-and-restart": "Reconstruire & Redémarrer", "restart": "Redémarrer", - "restart-warning": "Régénérer ou redémarrer NodeBB coupera toutes les connexions existantes pendant quelques secondes. ", - "restart-disabled": "La régénération et le redémarrage de votre forum ont été désactivés car vous ne semblez pas les exécuter à l'aide du serveur approprié.", + "restart-warning": "Reconstruire ou redémarrer NodeBB coupera toutes les connexions existantes pendant quelques secondes. ", + "restart-disabled": "La reconstruction et le redémarrage de votre forum ont été désactivés car vous ne semblez pas les exécuter à l'aide du serveur approprié.", "maintenance-mode": "Mode maintenance", - "maintenance-mode-title": "Cliquez ici pour passer NodeBB en mode maintenance", + "maintenance-mode-title": "Cliquer ici pour passer NodeBB en mode maintenance", "dark-mode": "Mode sombre", "realtime-chart-updates": "Mises à jour des graphiques en temps réel", @@ -58,7 +58,7 @@ "active-users.connections": "Connexions", "guest-registered-users": "Utilisateurs invités vs enregistrés", - "guest": "Invité", + "guest": "Invités", "registered": "Enregistrés", "user-presence": "Présence des utilisateurs", @@ -82,10 +82,10 @@ "no-users-browsing": "Aucun utilisateur connecté", "back-to-dashboard": "Retour au Tableau de bord", - "details.no-users": "Aucun utilisateur ne s'est joint dans le délai sélectionné", + "details.no-users": "Aucun utilisateur ne s'est joint dans la période sélectionnée", "details.no-topics": "Aucun sujet n'a été publié dans la période sélectionnée", "details.no-searches": "Aucune recherche n'a été effectuée dans la période sélectionnée", - "details.no-logins": "Aucune connexion n'a été enregistrée dans le délai sélectionné", + "details.no-logins": "Aucune connexion n'a été enregistrée dans la période sélectionnée", "details.logins-static": "NodeBB n'enregistre que les données de session pendant %1 jours, le tableau ci-dessous n'affichera donc que les dernières sessions actives", "details.logins-login-time": "Heure de connexion", "start": "Début", diff --git a/public/language/it/admin/manage/users.json b/public/language/it/admin/manage/users.json index 4bd4790544..f7c1848426 100644 --- a/public/language/it/admin/manage/users.json +++ b/public/language/it/admin/manage/users.json @@ -4,23 +4,23 @@ "edit": "Azioni", "make-admin": "Crea Amministratore", "remove-admin": "Rimuovi Amministratore", - "change-email": "Change Email", - "new-email": "New Email", + "change-email": "Modifica Email", + "new-email": "Nuova Email", "validate-email": "Valida Email", "send-validation-email": "Invia Email di Validazione", - "change-password": "Change Password", + "change-password": "Modifica Password", "password-reset-email": "Invia Email per resettare la password", "force-password-reset": "Forzare il reset della password e Logout dell'utente", "ban": "Ban", - "ban-users": "Ban User(s)", + "ban-users": "Ban Utente(i)", "temp-ban": "Ban Utente(i) Temporaneamente", "unban": "Togli Ban Utente(i)", - "reset-lockout": "Reset Blocco", + "reset-lockout": "Reimposta blocco", "reset-flags": "Reset segnalazioni", - "delete": "Delete", - "delete-users": "Delete User(s)", - "delete-content": "Elimina contenuto utente/i", - "purge": "Elimina Utenti e Contenuto", + "delete": "Elimina", + "delete-users": "Elimina Utente(i)", + "delete-content": "Elimina contenuto utente(i)", + "purge": "Elimina Utente(i) e Contenuto", "download-csv": "Scarica CSV", "manage-groups": "Gestisci Gruppi", "set-reputation": "Imposta reputazione", @@ -86,7 +86,7 @@ "alerts.button-ban-x": "Ban %1 utente(i)", "alerts.unban-success": "Utente(i) a cui è stato tolto il ban!", "alerts.lockout-reset-success": "Reset Blocchi(o)", - "alerts.password-change-success": "Password(s) changed!", + "alerts.password-change-success": "Password modificata!", "alerts.flag-reset-success": "Segnalazione(i) resettate!", "alerts.no-remove-yourself-admin": "Tu non puoi rimuovere te stesso da Amministratore!", "alerts.make-admin-success": "L'utente adesso è amministratore.", @@ -112,7 +112,7 @@ "alerts.create": "Utente creato", "alerts.button-create": "Crea", "alerts.button-cancel": "Cancella", - "alerts.button-change": "Change", + "alerts.button-change": "Cambia", "alerts.error-passwords-different": "Le Password devono coincidere!", "alerts.error-x": "Errore

%1

", "alerts.create-success": "Utente creato!", @@ -120,10 +120,10 @@ "alerts.prompt-email": "Emails:", "alerts.email-sent-to": "Un invito è stato inviato tramite mail a %1", "alerts.x-users-found": "%1 utente(i) trovato(i), (%2 secondi)", - "alerts.select-a-single-user-to-change-email": "Select a single user to change email", + "alerts.select-a-single-user-to-change-email": "Seleziona un singolo utente per modificare l'email", "export-users-started": "L'esportazione di utenti come csv potrebbe richiedere del tempo. Riceverai una notifica al termine.", "export-users-completed": "Utenti esportati come csv, clicca qui per scaricare.", "email": "Email", "password": "Password", - "manage": "Manage" + "manage": "Gestisci" } \ No newline at end of file diff --git a/public/language/it/admin/settings/chat.json b/public/language/it/admin/settings/chat.json index 234f7d7145..457f54a3e9 100644 --- a/public/language/it/admin/settings/chat.json +++ b/public/language/it/admin/settings/chat.json @@ -1,5 +1,5 @@ { - "zero-is-disabled": "Enter 0 to disable this restriction", + "zero-is-disabled": "Immetti 0 per disabilitare questa restrizione", "chat-settings": "Impostazioni chat", "disable": "Disabilita chat", "disable-editing": "Disabilita modifica/cancellazione messaggio chat", @@ -7,10 +7,10 @@ "max-length": "Lunghezza massima dei messaggi della chat", "max-chat-room-name-length": "Lunghezza massima dei nomi delle stanze chat", "max-room-size": "Numero massimo di utenti nelle stanza chat", - "delay": "Time between chat messages (ms)", - "newbieDelay": "... for new users (ms)", - "notification-delay": "Notification delay for chat messages", - "notification-delay-help": "Additional messages sent between this time are collated, and the user is notified once per delay period. Set this to 0 to disable the delay.", - "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable.", - "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable." + "delay": "Tempo tra i messaggi di chat (ms)", + "newbieDelay": "... per i nuovi utenti (ms)", + "notification-delay": "Ritardo nella notifica dei messaggi di chat", + "notification-delay-help": "I messaggi aggiuntivi inviati in questo intervallo di tempo vengono raccolti e l'utente riceve una notifica per ogni periodo di ritardo. Impostalo su 0 per disabilitare il ritardo.", + "restrictions.seconds-edit-after": "Numero di secondi in cui un messaggio di chat rimane modificabile.", + "restrictions.seconds-delete-after": "Numero di secondi in cui un messaggio di chat rimane cancellabile." } \ No newline at end of file diff --git a/public/language/it/modules.json b/public/language/it/modules.json index 7d6db35ffb..32789a7e46 100644 --- a/public/language/it/modules.json +++ b/public/language/it/modules.json @@ -9,10 +9,10 @@ "chat.chat-with-usernames-and-x-others": "Chatta con %1 e altri %2", "chat.send": "Invia", "chat.no_active": "Non hai chat attive.", - "chat.user_typing_1": "%1 is typing ...", - "chat.user_typing_2": "%1 and %2 are typing ...", - "chat.user_typing_3": "%1, %2 and %3 are typing ...", - "chat.user_typing_n": "%1, %2 and %3 others are typing ...", + "chat.user_typing_1": "%1 sta scrivendo ...", + "chat.user_typing_2": "%1 e %2 stanno scrivendo...", + "chat.user_typing_3": "%1, %2 e %3 stanno scrivendo...", + "chat.user_typing_n": "%1, %2 e %3 stanno scrivendo...", "chat.user_has_messaged_you": "%1 ti ha scritto.", "chat.replying-to": "Risposta a %1", "chat.see_all": "Tutte le chat", @@ -33,10 +33,10 @@ "chat.delete_message_confirm": "Sei sicuro di voler eliminare questo messaggio?", "chat.retrieving-users": "Estrapolando gli utenti...", "chat.view-users-list": "Visualizza elenco utenti", - "chat.pinned-messages": "Pinned Messages", - "chat.no-pinned-messages": "There are no pinned messages", - "chat.pin-message": "Pin Message", - "chat.unpin-message": "Unpin Message", + "chat.pinned-messages": "Messaggi fissati", + "chat.no-pinned-messages": "Non ci sono messaggi fissati", + "chat.pin-message": "Fissa Messaggio", + "chat.unpin-message": "Libera Messaggio", "chat.public-rooms": "Stanze pubbliche (%1)", "chat.private-rooms": "Stanze private (%1)", "chat.create-room": "Crea stanza chat ", @@ -95,7 +95,7 @@ "composer.zen_mode": "Zen Mode", "composer.select_category": "Seleziona una categoria", "composer.textarea.placeholder": "Inserisci qui il contenuto del tuo post, trascina e rilascia le immagini", - "composer.post-queue-alert": "Hello👋!
This forum uses a post queue system, since you are a new user your post will be hidden until it is approved by our moderation team.", + "composer.post-queue-alert": "Ciao👋!
Questo forum utilizza un sistema di coda per i post, poiché sei un nuovo utente il tuo post sarà nascosto finché non sarà approvato dal nostro team di moderazione.", "composer.schedule-for": "Discussione pianificata per", "composer.schedule-date": "Data", "composer.schedule-time": "Orario", diff --git a/public/language/it/user.json b/public/language/it/user.json index f87e8c7782..2f939a0427 100644 --- a/public/language/it/user.json +++ b/public/language/it/user.json @@ -61,7 +61,7 @@ "change_picture": "Cambia Foto", "change_username": "Modifica il nome utente", "change_email": "Modifica Email", - "email-updated": "Email Updated", + "email-updated": "Email Aggiornata", "email_same_as_password": "Inserisci la tua password attuale per continuare – hai inserito di nuovo la tua nuova email", "edit": "Modifica", "edit-profile": "Modifica Profilo", diff --git a/public/language/sr/modules.json b/public/language/sr/modules.json index e95cdb3b5e..a4cea0cb80 100644 --- a/public/language/sr/modules.json +++ b/public/language/sr/modules.json @@ -9,10 +9,10 @@ "chat.chat-with-usernames-and-x-others": "Ћаскај са %1 & %2 осталих", "chat.send": "Пошаљи", "chat.no_active": "Нема активних ћаскања.", - "chat.user_typing_1": "%1 is typing ...", - "chat.user_typing_2": "%1 and %2 are typing ...", - "chat.user_typing_3": "%1, %2 and %3 are typing ...", - "chat.user_typing_n": "%1, %2 and %3 others are typing ...", + "chat.user_typing_1": "%1 куца...", + "chat.user_typing_2": "%1 и %2 куцају...", + "chat.user_typing_3": "%1, %2 и %3 куцају...", + "chat.user_typing_n": "%1, %2 и осталих %3 куцају...", "chat.user_has_messaged_you": "%1 вам је послао поруку.", "chat.replying-to": "Одговарање кориснику %1", "chat.see_all": "Сва ћаскања", @@ -33,10 +33,10 @@ "chat.delete_message_confirm": "Да ли сте сигурни да желите да избришете ову поруку?", "chat.retrieving-users": "Преузимање корисника...", "chat.view-users-list": "Погледај листу корисника", - "chat.pinned-messages": "Pinned Messages", - "chat.no-pinned-messages": "There are no pinned messages", - "chat.pin-message": "Pin Message", - "chat.unpin-message": "Unpin Message", + "chat.pinned-messages": "Закачене поруке", + "chat.no-pinned-messages": "Нема закачених порука", + "chat.pin-message": "Закачи поруку", + "chat.unpin-message": "Откачи поруку", "chat.public-rooms": "Јавне собе (%1)", "chat.private-rooms": "Приватне собе (%1)", "chat.create-room": "Креирај собу за ћаскање", @@ -95,7 +95,7 @@ "composer.zen_mode": "Цео екран", "composer.select_category": "Изаберите категорију", "composer.textarea.placeholder": "Овде унесите садржај поруке, превуците и отпустите слике", - "composer.post-queue-alert": "Hello👋!
This forum uses a post queue system, since you are a new user your post will be hidden until it is approved by our moderation team.", + "composer.post-queue-alert": "Здраво👋!
Овај форум користи систем чекања за објављивање, пошто сте нови корисник ваша објава ће бити сакривена док је не одобри наш модераторски тим.", "composer.schedule-for": "Испланирајте тему за", "composer.schedule-date": "Датум", "composer.schedule-time": "Време", diff --git a/public/language/sr/user.json b/public/language/sr/user.json index ca546ea44c..ce2d814b2c 100644 --- a/public/language/sr/user.json +++ b/public/language/sr/user.json @@ -61,7 +61,7 @@ "change_picture": "Промена слике", "change_username": "Промена корисничког имена", "change_email": "Промена е-поште", - "email-updated": "Email Updated", + "email-updated": "Е-пошта је ажурирана", "email_same_as_password": "Унесите тренутну лозинку за наставак; поново сте унели нову е-пошту", "edit": "Уреди", "edit-profile": "Уреди профил", From ceed4327320e1b0e3a61701a5824ec478df21652 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 11 Sep 2023 12:02:14 -0400 Subject: [PATCH 023/275] chore(deps): update dependency eslint to v8.49.0 (#11993) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index 2f8cb9494e..d2e90e5ae3 100644 --- a/install/package.json +++ b/install/package.json @@ -156,7 +156,7 @@ "@commitlint/cli": "17.7.1", "@commitlint/config-angular": "17.7.0", "coveralls": "3.1.1", - "eslint": "8.48.0", + "eslint": "8.49.0", "eslint-config-nodebb": "0.2.1", "eslint-plugin-import": "2.28.1", "grunt": "1.6.1", From 447b795425202aa4dc846d1770fd8fc754e622c8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 11 Sep 2023 12:02:50 -0400 Subject: [PATCH 024/275] fix(deps): update dependency ace-builds to v1.24.2 (#11991) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index d2e90e5ae3..55a85f2687 100644 --- a/install/package.json +++ b/install/package.json @@ -34,7 +34,7 @@ "@fortawesome/fontawesome-free": "6.4.2", "@isaacs/ttlcache": "1.4.1", "@popperjs/core": "2.11.8", - "ace-builds": "1.24.1", + "ace-builds": "1.24.2", "archiver": "6.0.1", "async": "3.2.4", "autoprefixer": "10.4.15", From f09f4105ba32c753c10f48b97ca69948a4f18a95 Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Mon, 11 Sep 2023 13:56:50 -0400 Subject: [PATCH 025/275] fix: nodebb/nodebb-plugin-link-preview#18, remove sup from allowedTags, add source + source attributes --- src/posts/parse.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/posts/parse.js b/src/posts/parse.js index 944c1c2125..75747b3887 100644 --- a/src/posts/parse.js +++ b/src/posts/parse.js @@ -14,9 +14,8 @@ const utils = require('../utils'); let sanitizeConfig = { allowedTags: sanitize.defaults.allowedTags.concat([ // Some safe-to-use tags to add - 'sup', 'ins', 'del', 'img', 'button', - 'video', 'audio', 'iframe', 'embed', - // 'sup' still necessary until https://github.com/apostrophecms/sanitize-html/pull/422 merged + 'ins', 'del', 'img', 'button', + 'video', 'audio', 'source', 'iframe', 'embed', ]), allowedAttributes: { ...sanitize.defaults.allowedAttributes, @@ -25,6 +24,7 @@ let sanitizeConfig = { iframe: ['height', 'name', 'src', 'width'], video: ['autoplay', 'controls', 'height', 'loop', 'muted', 'poster', 'preload', 'src', 'width'], audio: ['autoplay', 'controls', 'loop', 'muted', 'preload', 'src'], + source: ['type', 'src', 'srcset', 'sizes', 'media', 'height', 'width'], embed: ['height', 'src', 'type', 'width'], }, globalAttributes: ['accesskey', 'class', 'contenteditable', 'dir', From 8c977f4c0689575e8849c3fcc6463ad5e2d00db2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Mon, 11 Sep 2023 16:48:54 -0400 Subject: [PATCH 026/275] feat: add heading strings --- public/language/en-GB/modules.json | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/public/language/en-GB/modules.json b/public/language/en-GB/modules.json index d348e75e7c..43df181a1b 100644 --- a/public/language/en-GB/modules.json +++ b/public/language/en-GB/modules.json @@ -87,6 +87,13 @@ "composer.uploading": "Uploading %1", "composer.formatting.bold": "Bold", "composer.formatting.italic": "Italic", + "composer.formatting.heading": "Heading", + "composer.formatting.heading1": "Heading 1", + "composer.formatting.heading2": "Heading 2", + "composer.formatting.heading3": "Heading 3", + "composer.formatting.heading4": "Heading 4", + "composer.formatting.heading5": "Heading 5", + "composer.formatting.heading6": "Heading 6", "composer.formatting.list": "List", "composer.formatting.strikethrough": "Strikethrough", "composer.formatting.code": "Code", From ec3ab9867b286b08b79f718aafd7c55cb49de408 Mon Sep 17 00:00:00 2001 From: Misty Release Bot Date: Mon, 11 Sep 2023 20:50:26 +0000 Subject: [PATCH 027/275] chore(i18n): fallback strings for new resources: nodebb.modules --- public/language/ar/modules.json | 7 +++++++ public/language/bg/modules.json | 7 +++++++ public/language/bn/modules.json | 7 +++++++ public/language/cs/modules.json | 7 +++++++ public/language/da/modules.json | 7 +++++++ public/language/de/modules.json | 7 +++++++ public/language/el/modules.json | 7 +++++++ public/language/en-US/modules.json | 7 +++++++ public/language/en-x-pirate/modules.json | 7 +++++++ public/language/es/modules.json | 7 +++++++ public/language/et/modules.json | 7 +++++++ public/language/fa-IR/modules.json | 7 +++++++ public/language/fi/modules.json | 7 +++++++ public/language/fr/modules.json | 7 +++++++ public/language/gl/modules.json | 7 +++++++ public/language/he/modules.json | 23 +++++++++++++++-------- public/language/hr/modules.json | 7 +++++++ public/language/hu/modules.json | 7 +++++++ public/language/hy/modules.json | 7 +++++++ public/language/id/modules.json | 7 +++++++ public/language/it/modules.json | 7 +++++++ public/language/ja/modules.json | 7 +++++++ public/language/ko/modules.json | 7 +++++++ public/language/lt/modules.json | 7 +++++++ public/language/lv/modules.json | 7 +++++++ public/language/ms/modules.json | 7 +++++++ public/language/nb/modules.json | 7 +++++++ public/language/nl/modules.json | 7 +++++++ public/language/pl/modules.json | 7 +++++++ public/language/pt-BR/modules.json | 7 +++++++ public/language/pt-PT/modules.json | 7 +++++++ public/language/ro/modules.json | 7 +++++++ public/language/ru/modules.json | 7 +++++++ public/language/rw/modules.json | 7 +++++++ public/language/sc/modules.json | 7 +++++++ public/language/sk/modules.json | 7 +++++++ public/language/sl/modules.json | 7 +++++++ public/language/sq-AL/modules.json | 7 +++++++ public/language/sr/modules.json | 7 +++++++ public/language/sv/modules.json | 7 +++++++ public/language/th/modules.json | 7 +++++++ public/language/tr/modules.json | 7 +++++++ public/language/uk/modules.json | 7 +++++++ public/language/vi/modules.json | 7 +++++++ public/language/zh-CN/modules.json | 7 +++++++ public/language/zh-TW/modules.json | 7 +++++++ 46 files changed, 330 insertions(+), 8 deletions(-) diff --git a/public/language/ar/modules.json b/public/language/ar/modules.json index 7fa958e6b6..e4a9565c23 100644 --- a/public/language/ar/modules.json +++ b/public/language/ar/modules.json @@ -85,6 +85,13 @@ "composer.uploading": "Uploading %1", "composer.formatting.bold": "Bold", "composer.formatting.italic": "Italic", + "composer.formatting.heading": "Heading", + "composer.formatting.heading1": "Heading 1", + "composer.formatting.heading2": "Heading 2", + "composer.formatting.heading3": "Heading 3", + "composer.formatting.heading4": "Heading 4", + "composer.formatting.heading5": "Heading 5", + "composer.formatting.heading6": "Heading 6", "composer.formatting.list": "List", "composer.formatting.strikethrough": "Strikethrough", "composer.formatting.code": "Code", diff --git a/public/language/bg/modules.json b/public/language/bg/modules.json index c6927570aa..9d727f7aac 100644 --- a/public/language/bg/modules.json +++ b/public/language/bg/modules.json @@ -85,6 +85,13 @@ "composer.uploading": "Качване на %1", "composer.formatting.bold": "Получер", "composer.formatting.italic": "Курсив", + "composer.formatting.heading": "Heading", + "composer.formatting.heading1": "Heading 1", + "composer.formatting.heading2": "Heading 2", + "composer.formatting.heading3": "Heading 3", + "composer.formatting.heading4": "Heading 4", + "composer.formatting.heading5": "Heading 5", + "composer.formatting.heading6": "Heading 6", "composer.formatting.list": "Списък", "composer.formatting.strikethrough": "Зачертан", "composer.formatting.code": "Код", diff --git a/public/language/bn/modules.json b/public/language/bn/modules.json index 5a319c7b1e..0f5501496f 100644 --- a/public/language/bn/modules.json +++ b/public/language/bn/modules.json @@ -85,6 +85,13 @@ "composer.uploading": "Uploading %1", "composer.formatting.bold": "Bold", "composer.formatting.italic": "Italic", + "composer.formatting.heading": "Heading", + "composer.formatting.heading1": "Heading 1", + "composer.formatting.heading2": "Heading 2", + "composer.formatting.heading3": "Heading 3", + "composer.formatting.heading4": "Heading 4", + "composer.formatting.heading5": "Heading 5", + "composer.formatting.heading6": "Heading 6", "composer.formatting.list": "List", "composer.formatting.strikethrough": "Strikethrough", "composer.formatting.code": "Code", diff --git a/public/language/cs/modules.json b/public/language/cs/modules.json index 0ca9b9b388..fe0dc0a502 100644 --- a/public/language/cs/modules.json +++ b/public/language/cs/modules.json @@ -85,6 +85,13 @@ "composer.uploading": "Nahrávám %1", "composer.formatting.bold": "Tučné", "composer.formatting.italic": "Kurzíva", + "composer.formatting.heading": "Heading", + "composer.formatting.heading1": "Heading 1", + "composer.formatting.heading2": "Heading 2", + "composer.formatting.heading3": "Heading 3", + "composer.formatting.heading4": "Heading 4", + "composer.formatting.heading5": "Heading 5", + "composer.formatting.heading6": "Heading 6", "composer.formatting.list": "Seznam", "composer.formatting.strikethrough": "Přeškrtnutí", "composer.formatting.code": "Kód", diff --git a/public/language/da/modules.json b/public/language/da/modules.json index 71ebc48e6a..54d886ac96 100644 --- a/public/language/da/modules.json +++ b/public/language/da/modules.json @@ -85,6 +85,13 @@ "composer.uploading": "Uploader %1", "composer.formatting.bold": "Bold", "composer.formatting.italic": "Italic", + "composer.formatting.heading": "Heading", + "composer.formatting.heading1": "Heading 1", + "composer.formatting.heading2": "Heading 2", + "composer.formatting.heading3": "Heading 3", + "composer.formatting.heading4": "Heading 4", + "composer.formatting.heading5": "Heading 5", + "composer.formatting.heading6": "Heading 6", "composer.formatting.list": "List", "composer.formatting.strikethrough": "Strikethrough", "composer.formatting.code": "Code", diff --git a/public/language/de/modules.json b/public/language/de/modules.json index 9b955e8134..4388509238 100644 --- a/public/language/de/modules.json +++ b/public/language/de/modules.json @@ -85,6 +85,13 @@ "composer.uploading": "Lade %1 hoch", "composer.formatting.bold": "Fett", "composer.formatting.italic": "Kursiv", + "composer.formatting.heading": "Heading", + "composer.formatting.heading1": "Heading 1", + "composer.formatting.heading2": "Heading 2", + "composer.formatting.heading3": "Heading 3", + "composer.formatting.heading4": "Heading 4", + "composer.formatting.heading5": "Heading 5", + "composer.formatting.heading6": "Heading 6", "composer.formatting.list": "Liste", "composer.formatting.strikethrough": "Durchstreichen", "composer.formatting.code": "Code", diff --git a/public/language/el/modules.json b/public/language/el/modules.json index 17dcb79bb7..fce5233f8b 100644 --- a/public/language/el/modules.json +++ b/public/language/el/modules.json @@ -85,6 +85,13 @@ "composer.uploading": "Uploading %1", "composer.formatting.bold": "Bold", "composer.formatting.italic": "Italic", + "composer.formatting.heading": "Heading", + "composer.formatting.heading1": "Heading 1", + "composer.formatting.heading2": "Heading 2", + "composer.formatting.heading3": "Heading 3", + "composer.formatting.heading4": "Heading 4", + "composer.formatting.heading5": "Heading 5", + "composer.formatting.heading6": "Heading 6", "composer.formatting.list": "List", "composer.formatting.strikethrough": "Strikethrough", "composer.formatting.code": "Code", diff --git a/public/language/en-US/modules.json b/public/language/en-US/modules.json index 17dcb79bb7..fce5233f8b 100644 --- a/public/language/en-US/modules.json +++ b/public/language/en-US/modules.json @@ -85,6 +85,13 @@ "composer.uploading": "Uploading %1", "composer.formatting.bold": "Bold", "composer.formatting.italic": "Italic", + "composer.formatting.heading": "Heading", + "composer.formatting.heading1": "Heading 1", + "composer.formatting.heading2": "Heading 2", + "composer.formatting.heading3": "Heading 3", + "composer.formatting.heading4": "Heading 4", + "composer.formatting.heading5": "Heading 5", + "composer.formatting.heading6": "Heading 6", "composer.formatting.list": "List", "composer.formatting.strikethrough": "Strikethrough", "composer.formatting.code": "Code", diff --git a/public/language/en-x-pirate/modules.json b/public/language/en-x-pirate/modules.json index 55dd75845f..ffb25290f9 100644 --- a/public/language/en-x-pirate/modules.json +++ b/public/language/en-x-pirate/modules.json @@ -85,6 +85,13 @@ "composer.uploading": "Uploading %1", "composer.formatting.bold": "Bold", "composer.formatting.italic": "Italic", + "composer.formatting.heading": "Heading", + "composer.formatting.heading1": "Heading 1", + "composer.formatting.heading2": "Heading 2", + "composer.formatting.heading3": "Heading 3", + "composer.formatting.heading4": "Heading 4", + "composer.formatting.heading5": "Heading 5", + "composer.formatting.heading6": "Heading 6", "composer.formatting.list": "List", "composer.formatting.strikethrough": "Strikethrough", "composer.formatting.code": "Code", diff --git a/public/language/es/modules.json b/public/language/es/modules.json index 750149cf31..4893d7e54e 100644 --- a/public/language/es/modules.json +++ b/public/language/es/modules.json @@ -85,6 +85,13 @@ "composer.uploading": "Subiendo %1", "composer.formatting.bold": "Negrita", "composer.formatting.italic": "Itálica", + "composer.formatting.heading": "Heading", + "composer.formatting.heading1": "Heading 1", + "composer.formatting.heading2": "Heading 2", + "composer.formatting.heading3": "Heading 3", + "composer.formatting.heading4": "Heading 4", + "composer.formatting.heading5": "Heading 5", + "composer.formatting.heading6": "Heading 6", "composer.formatting.list": "Lista", "composer.formatting.strikethrough": "Tachado", "composer.formatting.code": "Código", diff --git a/public/language/et/modules.json b/public/language/et/modules.json index 1ed87293bd..429203e922 100644 --- a/public/language/et/modules.json +++ b/public/language/et/modules.json @@ -85,6 +85,13 @@ "composer.uploading": "%1 Üleslaadimine", "composer.formatting.bold": "Paksult", "composer.formatting.italic": "Kaldkiri", + "composer.formatting.heading": "Heading", + "composer.formatting.heading1": "Heading 1", + "composer.formatting.heading2": "Heading 2", + "composer.formatting.heading3": "Heading 3", + "composer.formatting.heading4": "Heading 4", + "composer.formatting.heading5": "Heading 5", + "composer.formatting.heading6": "Heading 6", "composer.formatting.list": "Nimekiri", "composer.formatting.strikethrough": "Läbitõmmatud", "composer.formatting.code": "Code", diff --git a/public/language/fa-IR/modules.json b/public/language/fa-IR/modules.json index d94b7baae6..922d967e9e 100644 --- a/public/language/fa-IR/modules.json +++ b/public/language/fa-IR/modules.json @@ -85,6 +85,13 @@ "composer.uploading": "در حال بارگذاری %1", "composer.formatting.bold": "توپر", "composer.formatting.italic": "کج", + "composer.formatting.heading": "Heading", + "composer.formatting.heading1": "Heading 1", + "composer.formatting.heading2": "Heading 2", + "composer.formatting.heading3": "Heading 3", + "composer.formatting.heading4": "Heading 4", + "composer.formatting.heading5": "Heading 5", + "composer.formatting.heading6": "Heading 6", "composer.formatting.list": "فهرست", "composer.formatting.strikethrough": "خط خورده", "composer.formatting.code": "کد", diff --git a/public/language/fi/modules.json b/public/language/fi/modules.json index 55710bf7bd..dc6b5450d5 100644 --- a/public/language/fi/modules.json +++ b/public/language/fi/modules.json @@ -85,6 +85,13 @@ "composer.uploading": "Uploading %1", "composer.formatting.bold": "Bold", "composer.formatting.italic": "Italic", + "composer.formatting.heading": "Heading", + "composer.formatting.heading1": "Heading 1", + "composer.formatting.heading2": "Heading 2", + "composer.formatting.heading3": "Heading 3", + "composer.formatting.heading4": "Heading 4", + "composer.formatting.heading5": "Heading 5", + "composer.formatting.heading6": "Heading 6", "composer.formatting.list": "List", "composer.formatting.strikethrough": "Strikethrough", "composer.formatting.code": "Code", diff --git a/public/language/fr/modules.json b/public/language/fr/modules.json index b676acb14d..f018d03f60 100644 --- a/public/language/fr/modules.json +++ b/public/language/fr/modules.json @@ -85,6 +85,13 @@ "composer.uploading": "Envoi en cours %1", "composer.formatting.bold": "Gras", "composer.formatting.italic": "Italique", + "composer.formatting.heading": "Heading", + "composer.formatting.heading1": "Heading 1", + "composer.formatting.heading2": "Heading 2", + "composer.formatting.heading3": "Heading 3", + "composer.formatting.heading4": "Heading 4", + "composer.formatting.heading5": "Heading 5", + "composer.formatting.heading6": "Heading 6", "composer.formatting.list": "Liste", "composer.formatting.strikethrough": "Barré", "composer.formatting.code": "Code", diff --git a/public/language/gl/modules.json b/public/language/gl/modules.json index c6e9fe49ba..aa1b84350a 100644 --- a/public/language/gl/modules.json +++ b/public/language/gl/modules.json @@ -85,6 +85,13 @@ "composer.uploading": "Subindo %1", "composer.formatting.bold": "Negriña", "composer.formatting.italic": "Itálica", + "composer.formatting.heading": "Heading", + "composer.formatting.heading1": "Heading 1", + "composer.formatting.heading2": "Heading 2", + "composer.formatting.heading3": "Heading 3", + "composer.formatting.heading4": "Heading 4", + "composer.formatting.heading5": "Heading 5", + "composer.formatting.heading6": "Heading 6", "composer.formatting.list": "Lista", "composer.formatting.strikethrough": "Tachado", "composer.formatting.code": "Code", diff --git a/public/language/he/modules.json b/public/language/he/modules.json index 280ad995c2..e276537b63 100644 --- a/public/language/he/modules.json +++ b/public/language/he/modules.json @@ -9,10 +9,10 @@ "chat.chat-with-usernames-and-x-others": "צ'אט עם %1 ו-%2 אחרים", "chat.send": "שליחה", "chat.no_active": "אין לכם צ'אטים פעילים.", - "chat.user_typing_1": "%1 is typing ...", - "chat.user_typing_2": "%1 and %2 are typing ...", - "chat.user_typing_3": "%1, %2 and %3 are typing ...", - "chat.user_typing_n": "%1, %2 and %3 others are typing ...", + "chat.user_typing_1": "%1 מקליד...", + "chat.user_typing_2": "%1 ו%2 מקלידים...", + "chat.user_typing_3": "%1, %2 ו%3 מקלידים...", + "chat.user_typing_n": "%1, %2 ו%3 אחרים מקלידים...", "chat.user_has_messaged_you": "ל%1 יש הודעה עבורכם.", "chat.replying-to": "מגיב ל%1", "chat.see_all": "צפו בכל הצ'אטים", @@ -33,10 +33,10 @@ "chat.delete_message_confirm": "האם למחוק הודעה זו?", "chat.retrieving-users": "מאחזר משתמשים...", "chat.view-users-list": "הצג רשימת משתמשים", - "chat.pinned-messages": "Pinned Messages", - "chat.no-pinned-messages": "There are no pinned messages", - "chat.pin-message": "Pin Message", - "chat.unpin-message": "Unpin Message", + "chat.pinned-messages": "הודעות מוצמדות", + "chat.no-pinned-messages": "אין הודעות מוצמדות", + "chat.pin-message": "הצמד הודעה", + "chat.unpin-message": "בטל את הצמדת ההודעה", "chat.public-rooms": "חדרים ציבוריים (%1)", "chat.private-rooms": "חדרים פרטיים (%1)", "chat.create-room": "צור חדר צ'אט", @@ -85,6 +85,13 @@ "composer.uploading": "העלאה %1", "composer.formatting.bold": "מודגש", "composer.formatting.italic": "נטוי", + "composer.formatting.heading": "Heading", + "composer.formatting.heading1": "Heading 1", + "composer.formatting.heading2": "Heading 2", + "composer.formatting.heading3": "Heading 3", + "composer.formatting.heading4": "Heading 4", + "composer.formatting.heading5": "Heading 5", + "composer.formatting.heading6": "Heading 6", "composer.formatting.list": "רשימה", "composer.formatting.strikethrough": "קו פוסל", "composer.formatting.code": "קוד", diff --git a/public/language/hr/modules.json b/public/language/hr/modules.json index 4d7fc00b59..37af962df6 100644 --- a/public/language/hr/modules.json +++ b/public/language/hr/modules.json @@ -85,6 +85,13 @@ "composer.uploading": "Šaljem %1", "composer.formatting.bold": "Bold", "composer.formatting.italic": "Italic", + "composer.formatting.heading": "Heading", + "composer.formatting.heading1": "Heading 1", + "composer.formatting.heading2": "Heading 2", + "composer.formatting.heading3": "Heading 3", + "composer.formatting.heading4": "Heading 4", + "composer.formatting.heading5": "Heading 5", + "composer.formatting.heading6": "Heading 6", "composer.formatting.list": "Popis", "composer.formatting.strikethrough": "Precrtano", "composer.formatting.code": "Code", diff --git a/public/language/hu/modules.json b/public/language/hu/modules.json index 9fb4407a20..09dc85e28e 100644 --- a/public/language/hu/modules.json +++ b/public/language/hu/modules.json @@ -85,6 +85,13 @@ "composer.uploading": "%1 feltöltése", "composer.formatting.bold": "Félkövér", "composer.formatting.italic": "Dőlt", + "composer.formatting.heading": "Heading", + "composer.formatting.heading1": "Heading 1", + "composer.formatting.heading2": "Heading 2", + "composer.formatting.heading3": "Heading 3", + "composer.formatting.heading4": "Heading 4", + "composer.formatting.heading5": "Heading 5", + "composer.formatting.heading6": "Heading 6", "composer.formatting.list": "Felsorolás", "composer.formatting.strikethrough": "Áthúzás", "composer.formatting.code": "Code", diff --git a/public/language/hy/modules.json b/public/language/hy/modules.json index 4b0028f01e..47fa62ce0e 100644 --- a/public/language/hy/modules.json +++ b/public/language/hy/modules.json @@ -85,6 +85,13 @@ "composer.uploading": "Վերբեռնվում է %1", "composer.formatting.bold": "Bold", "composer.formatting.italic": "Շեղագիր", + "composer.formatting.heading": "Heading", + "composer.formatting.heading1": "Heading 1", + "composer.formatting.heading2": "Heading 2", + "composer.formatting.heading3": "Heading 3", + "composer.formatting.heading4": "Heading 4", + "composer.formatting.heading5": "Heading 5", + "composer.formatting.heading6": "Heading 6", "composer.formatting.list": "Ցուցակ", "composer.formatting.strikethrough": "Strikethrough", "composer.formatting.code": "Կոդ", diff --git a/public/language/id/modules.json b/public/language/id/modules.json index 4f556f8040..af24406af2 100644 --- a/public/language/id/modules.json +++ b/public/language/id/modules.json @@ -85,6 +85,13 @@ "composer.uploading": "Uploading %1", "composer.formatting.bold": "Bold", "composer.formatting.italic": "Italic", + "composer.formatting.heading": "Heading", + "composer.formatting.heading1": "Heading 1", + "composer.formatting.heading2": "Heading 2", + "composer.formatting.heading3": "Heading 3", + "composer.formatting.heading4": "Heading 4", + "composer.formatting.heading5": "Heading 5", + "composer.formatting.heading6": "Heading 6", "composer.formatting.list": "List", "composer.formatting.strikethrough": "Strikethrough", "composer.formatting.code": "Code", diff --git a/public/language/it/modules.json b/public/language/it/modules.json index 32789a7e46..37bddceea7 100644 --- a/public/language/it/modules.json +++ b/public/language/it/modules.json @@ -85,6 +85,13 @@ "composer.uploading": "Caricamento %1", "composer.formatting.bold": "Grassetto", "composer.formatting.italic": "Corsivo", + "composer.formatting.heading": "Heading", + "composer.formatting.heading1": "Heading 1", + "composer.formatting.heading2": "Heading 2", + "composer.formatting.heading3": "Heading 3", + "composer.formatting.heading4": "Heading 4", + "composer.formatting.heading5": "Heading 5", + "composer.formatting.heading6": "Heading 6", "composer.formatting.list": "Lista", "composer.formatting.strikethrough": "Barrato", "composer.formatting.code": "Codice", diff --git a/public/language/ja/modules.json b/public/language/ja/modules.json index c9c0146565..96fe7dc3ff 100644 --- a/public/language/ja/modules.json +++ b/public/language/ja/modules.json @@ -85,6 +85,13 @@ "composer.uploading": " %1をアップロード中", "composer.formatting.bold": "太字", "composer.formatting.italic": "斜体", + "composer.formatting.heading": "Heading", + "composer.formatting.heading1": "Heading 1", + "composer.formatting.heading2": "Heading 2", + "composer.formatting.heading3": "Heading 3", + "composer.formatting.heading4": "Heading 4", + "composer.formatting.heading5": "Heading 5", + "composer.formatting.heading6": "Heading 6", "composer.formatting.list": "一覧", "composer.formatting.strikethrough": "取り消し線", "composer.formatting.code": "コード", diff --git a/public/language/ko/modules.json b/public/language/ko/modules.json index a35099d24e..142c2f7a3b 100644 --- a/public/language/ko/modules.json +++ b/public/language/ko/modules.json @@ -85,6 +85,13 @@ "composer.uploading": "%1 업로드 중", "composer.formatting.bold": "굵게", "composer.formatting.italic": "기울임", + "composer.formatting.heading": "Heading", + "composer.formatting.heading1": "Heading 1", + "composer.formatting.heading2": "Heading 2", + "composer.formatting.heading3": "Heading 3", + "composer.formatting.heading4": "Heading 4", + "composer.formatting.heading5": "Heading 5", + "composer.formatting.heading6": "Heading 6", "composer.formatting.list": "목록", "composer.formatting.strikethrough": "취소선", "composer.formatting.code": "코드", diff --git a/public/language/lt/modules.json b/public/language/lt/modules.json index b4db0a3e17..025306cc40 100644 --- a/public/language/lt/modules.json +++ b/public/language/lt/modules.json @@ -85,6 +85,13 @@ "composer.uploading": "Uploading %1", "composer.formatting.bold": "Bold", "composer.formatting.italic": "Italic", + "composer.formatting.heading": "Heading", + "composer.formatting.heading1": "Heading 1", + "composer.formatting.heading2": "Heading 2", + "composer.formatting.heading3": "Heading 3", + "composer.formatting.heading4": "Heading 4", + "composer.formatting.heading5": "Heading 5", + "composer.formatting.heading6": "Heading 6", "composer.formatting.list": "List", "composer.formatting.strikethrough": "Strikethrough", "composer.formatting.code": "Code", diff --git a/public/language/lv/modules.json b/public/language/lv/modules.json index 7cd09aed70..4fa2e84915 100644 --- a/public/language/lv/modules.json +++ b/public/language/lv/modules.json @@ -85,6 +85,13 @@ "composer.uploading": "Augšupielādē %1", "composer.formatting.bold": "Treknrakstā", "composer.formatting.italic": "Slīprakstā", + "composer.formatting.heading": "Heading", + "composer.formatting.heading1": "Heading 1", + "composer.formatting.heading2": "Heading 2", + "composer.formatting.heading3": "Heading 3", + "composer.formatting.heading4": "Heading 4", + "composer.formatting.heading5": "Heading 5", + "composer.formatting.heading6": "Heading 6", "composer.formatting.list": "Saraksts", "composer.formatting.strikethrough": "Svītrotā rakstā", "composer.formatting.code": "Koda gabals", diff --git a/public/language/ms/modules.json b/public/language/ms/modules.json index f1b6cbc745..98cd236865 100644 --- a/public/language/ms/modules.json +++ b/public/language/ms/modules.json @@ -85,6 +85,13 @@ "composer.uploading": "Memuat naik %1", "composer.formatting.bold": "Bold", "composer.formatting.italic": "Italic", + "composer.formatting.heading": "Heading", + "composer.formatting.heading1": "Heading 1", + "composer.formatting.heading2": "Heading 2", + "composer.formatting.heading3": "Heading 3", + "composer.formatting.heading4": "Heading 4", + "composer.formatting.heading5": "Heading 5", + "composer.formatting.heading6": "Heading 6", "composer.formatting.list": "List", "composer.formatting.strikethrough": "Strikethrough", "composer.formatting.code": "Code", diff --git a/public/language/nb/modules.json b/public/language/nb/modules.json index ef2d435062..45aad87fc2 100644 --- a/public/language/nb/modules.json +++ b/public/language/nb/modules.json @@ -85,6 +85,13 @@ "composer.uploading": "Laster opp %1", "composer.formatting.bold": "Uthevet", "composer.formatting.italic": "Kursiv", + "composer.formatting.heading": "Heading", + "composer.formatting.heading1": "Heading 1", + "composer.formatting.heading2": "Heading 2", + "composer.formatting.heading3": "Heading 3", + "composer.formatting.heading4": "Heading 4", + "composer.formatting.heading5": "Heading 5", + "composer.formatting.heading6": "Heading 6", "composer.formatting.list": "Liste", "composer.formatting.strikethrough": "Gjennomstreking", "composer.formatting.code": "Code", diff --git a/public/language/nl/modules.json b/public/language/nl/modules.json index 6f4c72f59b..9e01a9263c 100644 --- a/public/language/nl/modules.json +++ b/public/language/nl/modules.json @@ -85,6 +85,13 @@ "composer.uploading": "Uploaden van %1", "composer.formatting.bold": "Vet", "composer.formatting.italic": "Cursief", + "composer.formatting.heading": "Heading", + "composer.formatting.heading1": "Heading 1", + "composer.formatting.heading2": "Heading 2", + "composer.formatting.heading3": "Heading 3", + "composer.formatting.heading4": "Heading 4", + "composer.formatting.heading5": "Heading 5", + "composer.formatting.heading6": "Heading 6", "composer.formatting.list": "Lijst", "composer.formatting.strikethrough": "Doorhalen", "composer.formatting.code": "Code", diff --git a/public/language/pl/modules.json b/public/language/pl/modules.json index c6339c7314..0225b391fa 100644 --- a/public/language/pl/modules.json +++ b/public/language/pl/modules.json @@ -85,6 +85,13 @@ "composer.uploading": "Wysyłanie %1", "composer.formatting.bold": "Pogrubienie", "composer.formatting.italic": "Kursywa", + "composer.formatting.heading": "Heading", + "composer.formatting.heading1": "Heading 1", + "composer.formatting.heading2": "Heading 2", + "composer.formatting.heading3": "Heading 3", + "composer.formatting.heading4": "Heading 4", + "composer.formatting.heading5": "Heading 5", + "composer.formatting.heading6": "Heading 6", "composer.formatting.list": "Lista", "composer.formatting.strikethrough": "Przekreślenie", "composer.formatting.code": "Kod", diff --git a/public/language/pt-BR/modules.json b/public/language/pt-BR/modules.json index 59529df687..0337825988 100644 --- a/public/language/pt-BR/modules.json +++ b/public/language/pt-BR/modules.json @@ -85,6 +85,13 @@ "composer.uploading": "Enviando %1", "composer.formatting.bold": "Negrito", "composer.formatting.italic": "Itálico", + "composer.formatting.heading": "Heading", + "composer.formatting.heading1": "Heading 1", + "composer.formatting.heading2": "Heading 2", + "composer.formatting.heading3": "Heading 3", + "composer.formatting.heading4": "Heading 4", + "composer.formatting.heading5": "Heading 5", + "composer.formatting.heading6": "Heading 6", "composer.formatting.list": "Lista", "composer.formatting.strikethrough": "Riscado", "composer.formatting.code": "Código", diff --git a/public/language/pt-PT/modules.json b/public/language/pt-PT/modules.json index b67772fabf..b50808971f 100644 --- a/public/language/pt-PT/modules.json +++ b/public/language/pt-PT/modules.json @@ -85,6 +85,13 @@ "composer.uploading": "Carregando %1", "composer.formatting.bold": "Negrito", "composer.formatting.italic": "Itálico", + "composer.formatting.heading": "Heading", + "composer.formatting.heading1": "Heading 1", + "composer.formatting.heading2": "Heading 2", + "composer.formatting.heading3": "Heading 3", + "composer.formatting.heading4": "Heading 4", + "composer.formatting.heading5": "Heading 5", + "composer.formatting.heading6": "Heading 6", "composer.formatting.list": "Lista", "composer.formatting.strikethrough": "Riscado", "composer.formatting.code": "Código", diff --git a/public/language/ro/modules.json b/public/language/ro/modules.json index 07cef72037..e28c70daf2 100644 --- a/public/language/ro/modules.json +++ b/public/language/ro/modules.json @@ -85,6 +85,13 @@ "composer.uploading": "Uploading %1", "composer.formatting.bold": "Bold", "composer.formatting.italic": "Italic", + "composer.formatting.heading": "Heading", + "composer.formatting.heading1": "Heading 1", + "composer.formatting.heading2": "Heading 2", + "composer.formatting.heading3": "Heading 3", + "composer.formatting.heading4": "Heading 4", + "composer.formatting.heading5": "Heading 5", + "composer.formatting.heading6": "Heading 6", "composer.formatting.list": "List", "composer.formatting.strikethrough": "Strikethrough", "composer.formatting.code": "Code", diff --git a/public/language/ru/modules.json b/public/language/ru/modules.json index 0ef8f3c45a..e287221fc2 100644 --- a/public/language/ru/modules.json +++ b/public/language/ru/modules.json @@ -85,6 +85,13 @@ "composer.uploading": "Загрузка %1", "composer.formatting.bold": "Жирный", "composer.formatting.italic": "Курсив", + "composer.formatting.heading": "Heading", + "composer.formatting.heading1": "Heading 1", + "composer.formatting.heading2": "Heading 2", + "composer.formatting.heading3": "Heading 3", + "composer.formatting.heading4": "Heading 4", + "composer.formatting.heading5": "Heading 5", + "composer.formatting.heading6": "Heading 6", "composer.formatting.list": "Список", "composer.formatting.strikethrough": "Зачеркнуть", "composer.formatting.code": "Код", diff --git a/public/language/rw/modules.json b/public/language/rw/modules.json index e0a733ec7d..f146aa22f0 100644 --- a/public/language/rw/modules.json +++ b/public/language/rw/modules.json @@ -85,6 +85,13 @@ "composer.uploading": "Ugupakira %1", "composer.formatting.bold": "Bold", "composer.formatting.italic": "Italic", + "composer.formatting.heading": "Heading", + "composer.formatting.heading1": "Heading 1", + "composer.formatting.heading2": "Heading 2", + "composer.formatting.heading3": "Heading 3", + "composer.formatting.heading4": "Heading 4", + "composer.formatting.heading5": "Heading 5", + "composer.formatting.heading6": "Heading 6", "composer.formatting.list": "List", "composer.formatting.strikethrough": "Strikethrough", "composer.formatting.code": "Code", diff --git a/public/language/sc/modules.json b/public/language/sc/modules.json index 478fb6a8a0..097d0558fc 100644 --- a/public/language/sc/modules.json +++ b/public/language/sc/modules.json @@ -85,6 +85,13 @@ "composer.uploading": "Uploading %1", "composer.formatting.bold": "Bold", "composer.formatting.italic": "Italic", + "composer.formatting.heading": "Heading", + "composer.formatting.heading1": "Heading 1", + "composer.formatting.heading2": "Heading 2", + "composer.formatting.heading3": "Heading 3", + "composer.formatting.heading4": "Heading 4", + "composer.formatting.heading5": "Heading 5", + "composer.formatting.heading6": "Heading 6", "composer.formatting.list": "List", "composer.formatting.strikethrough": "Strikethrough", "composer.formatting.code": "Code", diff --git a/public/language/sk/modules.json b/public/language/sk/modules.json index dc6f97824f..3ba12c40b3 100644 --- a/public/language/sk/modules.json +++ b/public/language/sk/modules.json @@ -85,6 +85,13 @@ "composer.uploading": "Nahrávanie %1", "composer.formatting.bold": "Tučné", "composer.formatting.italic": "Kurzíva", + "composer.formatting.heading": "Heading", + "composer.formatting.heading1": "Heading 1", + "composer.formatting.heading2": "Heading 2", + "composer.formatting.heading3": "Heading 3", + "composer.formatting.heading4": "Heading 4", + "composer.formatting.heading5": "Heading 5", + "composer.formatting.heading6": "Heading 6", "composer.formatting.list": "Zoznam", "composer.formatting.strikethrough": "Prečiarknuté", "composer.formatting.code": "Code", diff --git a/public/language/sl/modules.json b/public/language/sl/modules.json index 43622668f5..9ca4f2a655 100644 --- a/public/language/sl/modules.json +++ b/public/language/sl/modules.json @@ -85,6 +85,13 @@ "composer.uploading": "Prenašanje %1", "composer.formatting.bold": "Krepko", "composer.formatting.italic": "Ležeče", + "composer.formatting.heading": "Heading", + "composer.formatting.heading1": "Heading 1", + "composer.formatting.heading2": "Heading 2", + "composer.formatting.heading3": "Heading 3", + "composer.formatting.heading4": "Heading 4", + "composer.formatting.heading5": "Heading 5", + "composer.formatting.heading6": "Heading 6", "composer.formatting.list": "Seznam", "composer.formatting.strikethrough": "Prečrtano", "composer.formatting.code": "Code", diff --git a/public/language/sq-AL/modules.json b/public/language/sq-AL/modules.json index bda868049f..5bd58060c4 100644 --- a/public/language/sq-AL/modules.json +++ b/public/language/sq-AL/modules.json @@ -85,6 +85,13 @@ "composer.uploading": "Ngarkimi %1", "composer.formatting.bold": "Bold", "composer.formatting.italic": "Italic", + "composer.formatting.heading": "Heading", + "composer.formatting.heading1": "Heading 1", + "composer.formatting.heading2": "Heading 2", + "composer.formatting.heading3": "Heading 3", + "composer.formatting.heading4": "Heading 4", + "composer.formatting.heading5": "Heading 5", + "composer.formatting.heading6": "Heading 6", "composer.formatting.list": "List", "composer.formatting.strikethrough": "Kalo nëpërmjet", "composer.formatting.code": "Kodi", diff --git a/public/language/sr/modules.json b/public/language/sr/modules.json index a4cea0cb80..2bdee7a590 100644 --- a/public/language/sr/modules.json +++ b/public/language/sr/modules.json @@ -85,6 +85,13 @@ "composer.uploading": "Отпремање %1", "composer.formatting.bold": "Подебљано", "composer.formatting.italic": "Курзив", + "composer.formatting.heading": "Heading", + "composer.formatting.heading1": "Heading 1", + "composer.formatting.heading2": "Heading 2", + "composer.formatting.heading3": "Heading 3", + "composer.formatting.heading4": "Heading 4", + "composer.formatting.heading5": "Heading 5", + "composer.formatting.heading6": "Heading 6", "composer.formatting.list": "Листа", "composer.formatting.strikethrough": "Прецртано", "composer.formatting.code": "Код", diff --git a/public/language/sv/modules.json b/public/language/sv/modules.json index 64f5fe8c11..0bca51dadb 100644 --- a/public/language/sv/modules.json +++ b/public/language/sv/modules.json @@ -85,6 +85,13 @@ "composer.uploading": "Laddar upp %1", "composer.formatting.bold": "Fet", "composer.formatting.italic": "Kursiv", + "composer.formatting.heading": "Heading", + "composer.formatting.heading1": "Heading 1", + "composer.formatting.heading2": "Heading 2", + "composer.formatting.heading3": "Heading 3", + "composer.formatting.heading4": "Heading 4", + "composer.formatting.heading5": "Heading 5", + "composer.formatting.heading6": "Heading 6", "composer.formatting.list": "Lista", "composer.formatting.strikethrough": "Genomstrykning", "composer.formatting.code": "Kod", diff --git a/public/language/th/modules.json b/public/language/th/modules.json index 511cda28d6..2f1be677d2 100644 --- a/public/language/th/modules.json +++ b/public/language/th/modules.json @@ -85,6 +85,13 @@ "composer.uploading": "กำลังอัพโหลด %1", "composer.formatting.bold": "ตัวหนา", "composer.formatting.italic": "ตัวเอียง", + "composer.formatting.heading": "Heading", + "composer.formatting.heading1": "Heading 1", + "composer.formatting.heading2": "Heading 2", + "composer.formatting.heading3": "Heading 3", + "composer.formatting.heading4": "Heading 4", + "composer.formatting.heading5": "Heading 5", + "composer.formatting.heading6": "Heading 6", "composer.formatting.list": "รายการ", "composer.formatting.strikethrough": "ขีดเส้นใต้", "composer.formatting.code": "Code", diff --git a/public/language/tr/modules.json b/public/language/tr/modules.json index 4b7a014a29..84e08b5b05 100644 --- a/public/language/tr/modules.json +++ b/public/language/tr/modules.json @@ -85,6 +85,13 @@ "composer.uploading": "Yükleniyor %1", "composer.formatting.bold": "Kalın", "composer.formatting.italic": "İtalik", + "composer.formatting.heading": "Heading", + "composer.formatting.heading1": "Heading 1", + "composer.formatting.heading2": "Heading 2", + "composer.formatting.heading3": "Heading 3", + "composer.formatting.heading4": "Heading 4", + "composer.formatting.heading5": "Heading 5", + "composer.formatting.heading6": "Heading 6", "composer.formatting.list": "Liste", "composer.formatting.strikethrough": "Üstüçizili", "composer.formatting.code": "Kod", diff --git a/public/language/uk/modules.json b/public/language/uk/modules.json index b874136886..726e862568 100644 --- a/public/language/uk/modules.json +++ b/public/language/uk/modules.json @@ -85,6 +85,13 @@ "composer.uploading": "Завантаження %1", "composer.formatting.bold": "Жирний", "composer.formatting.italic": "Курсив", + "composer.formatting.heading": "Heading", + "composer.formatting.heading1": "Heading 1", + "composer.formatting.heading2": "Heading 2", + "composer.formatting.heading3": "Heading 3", + "composer.formatting.heading4": "Heading 4", + "composer.formatting.heading5": "Heading 5", + "composer.formatting.heading6": "Heading 6", "composer.formatting.list": "Список", "composer.formatting.strikethrough": "Закреслений", "composer.formatting.code": "Код", diff --git a/public/language/vi/modules.json b/public/language/vi/modules.json index f1e7202c0e..f643449fa2 100644 --- a/public/language/vi/modules.json +++ b/public/language/vi/modules.json @@ -85,6 +85,13 @@ "composer.uploading": "Đang tải lên %1", "composer.formatting.bold": "In đậm", "composer.formatting.italic": "In nghiêng", + "composer.formatting.heading": "Heading", + "composer.formatting.heading1": "Heading 1", + "composer.formatting.heading2": "Heading 2", + "composer.formatting.heading3": "Heading 3", + "composer.formatting.heading4": "Heading 4", + "composer.formatting.heading5": "Heading 5", + "composer.formatting.heading6": "Heading 6", "composer.formatting.list": "Danh sách", "composer.formatting.strikethrough": "Gạch ngang", "composer.formatting.code": "Mã", diff --git a/public/language/zh-CN/modules.json b/public/language/zh-CN/modules.json index d4a66cf9c2..6644e57967 100644 --- a/public/language/zh-CN/modules.json +++ b/public/language/zh-CN/modules.json @@ -85,6 +85,13 @@ "composer.uploading": "正在上传 %1", "composer.formatting.bold": "加粗", "composer.formatting.italic": "倾斜", + "composer.formatting.heading": "Heading", + "composer.formatting.heading1": "Heading 1", + "composer.formatting.heading2": "Heading 2", + "composer.formatting.heading3": "Heading 3", + "composer.formatting.heading4": "Heading 4", + "composer.formatting.heading5": "Heading 5", + "composer.formatting.heading6": "Heading 6", "composer.formatting.list": "列表", "composer.formatting.strikethrough": "删除线", "composer.formatting.code": "代码", diff --git a/public/language/zh-TW/modules.json b/public/language/zh-TW/modules.json index 62a1f39afe..2638eff1fa 100644 --- a/public/language/zh-TW/modules.json +++ b/public/language/zh-TW/modules.json @@ -85,6 +85,13 @@ "composer.uploading": "正在上傳 %1", "composer.formatting.bold": "粗體", "composer.formatting.italic": "斜體", + "composer.formatting.heading": "Heading", + "composer.formatting.heading1": "Heading 1", + "composer.formatting.heading2": "Heading 2", + "composer.formatting.heading3": "Heading 3", + "composer.formatting.heading4": "Heading 4", + "composer.formatting.heading5": "Heading 5", + "composer.formatting.heading6": "Heading 6", "composer.formatting.list": "清單", "composer.formatting.strikethrough": "刪除線", "composer.formatting.code": "程式碼", From f1021542091d6abc76576222f89649591643be2d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Mon, 11 Sep 2023 16:52:07 -0400 Subject: [PATCH 028/275] chore: up deps --- install/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/install/package.json b/install/package.json index 57fa18813d..85d4af6f6a 100644 --- a/install/package.json +++ b/install/package.json @@ -93,11 +93,11 @@ "multiparty": "4.2.3", "nconf": "0.12.0", "nodebb-plugin-2factor": "7.2.2", - "nodebb-plugin-composer-default": "10.2.22", + "nodebb-plugin-composer-default": "10.2.23", "nodebb-plugin-dbsearch": "6.2.2", "nodebb-plugin-emoji": "5.1.5", "nodebb-plugin-emoji-android": "4.0.0", - "nodebb-plugin-markdown": "12.2.3", + "nodebb-plugin-markdown": "12.2.4", "nodebb-plugin-mentions": "4.3.5", "nodebb-plugin-ntfy": "1.6.1", "nodebb-plugin-spam-be-gone": "2.1.1", From e2777f4a4ec951b2b3a5db3997d0ae231ef16814 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Tue, 12 Sep 2023 12:16:09 -0400 Subject: [PATCH 029/275] allow editing pinned chat messages only update message body and edited component --- public/src/client/chats/messages.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/public/src/client/chats/messages.js b/public/src/client/chats/messages.js index 17c85abb37..3a39352392 100644 --- a/public/src/client/chats/messages.js +++ b/public/src/client/chats/messages.js @@ -273,7 +273,13 @@ define('forum/chats/messages', [ messages.parseMessage(message, function (html) { const msgEl = components.get('chat/message', message.mid); if (msgEl.length) { - msgEl.replaceWith(html); + const componentsToReplace = [ + '[component="chat/message/body"]', + '[component="chat/message/edited"]', + ]; + componentsToReplace.forEach((cmp) => { + msgEl.find(cmp).replaceWith(html.find(cmp)); + }); messages.onMessagesAddedToDom(components.get('chat/message', message.mid)); } const parentEl = $(`[component="chat/message/parent"][data-parent-mid="${message.mid}"]`); From d06829057cc0b73ac1c575d2ba8a9ca6e7a562ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Tue, 12 Sep 2023 12:19:43 -0400 Subject: [PATCH 030/275] chore: up themes --- install/package.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/install/package.json b/install/package.json index 85d4af6f6a..a3df5ad870 100644 --- a/install/package.json +++ b/install/package.json @@ -102,10 +102,10 @@ "nodebb-plugin-ntfy": "1.6.1", "nodebb-plugin-spam-be-gone": "2.1.1", "nodebb-rewards-essentials": "0.2.3", - "nodebb-theme-harmony": "1.1.60", + "nodebb-theme-harmony": "1.1.61", "nodebb-theme-lavender": "7.1.3", - "nodebb-theme-peace": "2.1.18", - "nodebb-theme-persona": "13.2.29", + "nodebb-theme-peace": "2.1.19", + "nodebb-theme-persona": "13.2.30", "nodebb-widget-essentials": "7.0.13", "nodemailer": "6.9.5", "nprogress": "0.2.0", From 8bc2ef227ed49ed64328176dfd56aa54d6e0fa0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Wed, 13 Sep 2023 16:23:49 -0400 Subject: [PATCH 031/275] refactor: get rid of async.waterfall/series --- test/groups.js | 128 +++++++++++++------------------------------------ 1 file changed, 32 insertions(+), 96 deletions(-) diff --git a/test/groups.js b/test/groups.js index 2fcb48d59e..10ff138639 100644 --- a/test/groups.js +++ b/test/groups.js @@ -1,7 +1,6 @@ 'use strict'; const assert = require('assert'); -const async = require('async'); const fs = require('fs'); const path = require('path'); const nconf = require('nconf'); @@ -161,33 +160,15 @@ describe('Groups', () => { }); }); - it('should return all users if no query', (done) => { - function createAndJoinGroup(username, email, callback) { - async.waterfall([ - function (next) { - User.create({ username: username, email: email }, next); - }, - function (uid, next) { - Groups.join('Test', uid, next); - }, - ], callback); + it('should return all users if no query', async () => { + async function createAndJoinGroup(username, email) { + const uid = await User.create({ username: username, email: email }); + await Groups.join('Test', uid); } - async.series([ - function (next) { - createAndJoinGroup('newuser', 'newuser@b.com', next); - }, - function (next) { - createAndJoinGroup('bob', 'bob@b.com', next); - }, - ], (err) => { - assert.ifError(err); - - socketGroups.searchMembers({ uid: adminUid }, { groupName: 'Test', query: '' }, (err, data) => { - assert.ifError(err); - assert.equal(data.users.length, 3); - done(); - }); - }); + await createAndJoinGroup('newuser', 'newuser@b.com'); + await createAndJoinGroup('bob', 'bob@b.com'); + const data = await socketGroups.searchMembers({ uid: adminUid }, { groupName: 'Test', query: '' }); + assert.equal(data.users.length, 3); }); it('should search group members', (done) => { @@ -584,37 +565,20 @@ describe('Groups', () => { }); }); - it('should remove group from privilege groups', (done) => { + it('should remove group from privilege groups', async () => { const privileges = require('../src/privileges'); const cid = 1; const groupName = '1'; const uid = 1; - async.waterfall([ - function (next) { - Groups.create({ name: groupName }, next); - }, - function (groupData, next) { - privileges.categories.give(['groups:topics:create'], cid, groupName, next); - }, - function (next) { - Groups.isMember(groupName, 'cid:1:privileges:groups:topics:create', next); - }, - function (isMember, next) { - assert(isMember); - Groups.destroy(groupName, next); - }, - function (next) { - Groups.isMember(groupName, 'cid:1:privileges:groups:topics:create', next); - }, - function (isMember, next) { - assert(!isMember); - Groups.isMember(uid, 'registered-users', next); - }, - function (isMember, next) { - assert(isMember); - next(); - }, - ], done); + await Groups.create({ name: groupName }); + await privileges.categories.give(['groups:topics:create'], cid, groupName); + let isMember = await Groups.isMember(groupName, 'cid:1:privileges:groups:topics:create'); + assert(isMember); + await Groups.destroy(groupName); + isMember = await Groups.isMember(groupName, 'cid:1:privileges:groups:topics:create'); + assert(!isMember); + isMember = await Groups.isMember(uid, 'registered-users'); + assert(isMember); }); }); @@ -779,36 +743,19 @@ describe('Groups', () => { }); describe('.leaveAllGroups()', () => { - it('should remove a user from all groups', (done) => { - Groups.leaveAllGroups(testUid, (err) => { - assert.ifError(err); - - const groups = ['Test', 'Hidden']; - async.every(groups, (group, next) => { - Groups.isMember(testUid, group, (err, isMember) => { - next(err, !isMember); - }); - }, (err, result) => { - assert.ifError(err); - assert(result); - - done(); - }); - }); + it('should remove a user from all groups', async () => { + await Groups.leaveAllGroups(testUid); + const groups = ['Test', 'Hidden']; + const isMembers = await Groups.isMemberOfGroups(testUid, groups); + assert(!isMembers.includes(true)); }); }); describe('.show()', () => { - it('should make a group visible', (done) => { - Groups.show('Test', function (err) { - assert.ifError(err); - assert.equal(arguments.length, 1); - db.isSortedSetMember('groups:visible:createtime', 'Test', (err, isMember) => { - assert.ifError(err); - assert.strictEqual(isMember, true); - done(); - }); - }); + it('should make a group visible', async () => { + await Groups.show('Test'); + const isMember = await db.isSortedSetMember('groups:visible:createtime', 'Test'); + assert.strictEqual(isMember, true); }); }); @@ -1262,22 +1209,11 @@ describe('Groups', () => { let regularUid; const logoPath = path.join(__dirname, '../test/files/test.png'); const imagePath = path.join(__dirname, '../test/files/groupcover.png'); - before((done) => { - User.create({ username: 'regularuser', password: '123456' }, (err, uid) => { - assert.ifError(err); - regularUid = uid; - async.series([ - function (next) { - Groups.join('Test', adminUid, next); - }, - function (next) { - Groups.join('Test', regularUid, next); - }, - function (next) { - helpers.copyFile(logoPath, imagePath, next); - }, - ], done); - }); + before(async () => { + regularUid = await User.create({ username: 'regularuser', password: '123456' }); + await Groups.join('Test', adminUid); + await Groups.join('Test', regularUid); + await helpers.copyFile(logoPath, imagePath); }); it('should fail if user is not logged in or not owner', (done) => { From 6cfde97eb4e5deb38afa271ae6d37193bc7509f5 Mon Sep 17 00:00:00 2001 From: Misty Release Bot Date: Thu, 14 Sep 2023 09:19:51 +0000 Subject: [PATCH 032/275] Latest translations and fallbacks --- public/language/bg/modules.json | 14 +++---- .../language/fr/admin/development/logger.json | 6 +-- public/language/fr/admin/extend/plugins.json | 16 +++---- public/language/fr/admin/extend/rewards.json | 2 +- public/language/fr/admin/extend/widgets.json | 4 +- .../language/fr/admin/manage/categories.json | 18 ++++---- public/language/fr/admin/manage/digest.json | 4 +- public/language/fr/admin/manage/groups.json | 4 +- .../language/fr/admin/manage/privileges.json | 8 ++-- .../fr/admin/manage/registration.json | 8 ++-- public/language/fr/admin/manage/tags.json | 10 ++--- public/language/fr/admin/manage/uploads.json | 6 +-- public/language/fr/admin/manage/users.json | 42 +++++++++---------- public/language/fr/admin/menu.json | 4 +- .../language/fr/admin/settings/advanced.json | 8 ++-- public/language/fr/admin/settings/api.json | 8 ++-- public/language/fr/admin/settings/email.json | 18 ++++---- .../language/fr/admin/settings/general.json | 26 ++++++------ public/language/fr/admin/settings/group.json | 6 +-- .../language/fr/admin/settings/homepage.json | 2 +- .../language/fr/admin/settings/languages.json | 4 +- .../fr/admin/settings/navigation.json | 4 +- .../fr/admin/settings/notifications.json | 2 +- .../fr/admin/settings/pagination.json | 4 +- public/language/fr/admin/settings/post.json | 18 ++++---- public/language/he/admin/manage/users.json | 22 +++++----- public/language/he/admin/settings/chat.json | 8 ++-- public/language/he/user.json | 2 +- 28 files changed, 139 insertions(+), 139 deletions(-) diff --git a/public/language/bg/modules.json b/public/language/bg/modules.json index 9d727f7aac..b13c9a864b 100644 --- a/public/language/bg/modules.json +++ b/public/language/bg/modules.json @@ -85,13 +85,13 @@ "composer.uploading": "Качване на %1", "composer.formatting.bold": "Получер", "composer.formatting.italic": "Курсив", - "composer.formatting.heading": "Heading", - "composer.formatting.heading1": "Heading 1", - "composer.formatting.heading2": "Heading 2", - "composer.formatting.heading3": "Heading 3", - "composer.formatting.heading4": "Heading 4", - "composer.formatting.heading5": "Heading 5", - "composer.formatting.heading6": "Heading 6", + "composer.formatting.heading": "Заглавие", + "composer.formatting.heading1": "Заглавие 1", + "composer.formatting.heading2": "Заглавие 2", + "composer.formatting.heading3": "Заглавие 3", + "composer.formatting.heading4": "Заглавие 4", + "composer.formatting.heading5": "Заглавие 5", + "composer.formatting.heading6": "Заглавие 6", "composer.formatting.list": "Списък", "composer.formatting.strikethrough": "Зачертан", "composer.formatting.code": "Код", diff --git a/public/language/fr/admin/development/logger.json b/public/language/fr/admin/development/logger.json index 9f5d977514..32b55ae84d 100644 --- a/public/language/fr/admin/development/logger.json +++ b/public/language/fr/admin/development/logger.json @@ -1,12 +1,12 @@ { - "logger": "Réglages journalisation", + "logger": "Journaliseur", "logger-settings": "Réglages de la journalisation", - "description": "En activant les cases, vous recevrez des journaux dans votre terminal. Si vous spécifiez un chemin, les journaux y seront sauvegardés. La journalisation HTTP est utile pour collecter des statistiques sur les personnes qui accèdent à votre forum. En plus de la journalisation des requêtes HTTP, nous pouvons également journaliser les évènements socket.io. La journalisation socket.io, associée au monitoring redis-cli, peut être très utile pour apprendre les rouages de NodeBB.", + "description": "En activant les cases, vous recevrez des journaux dans votre terminal. Si vous spécifiez un chemin, les journaux y seront sauvegardés. La journalisation HTTP est utile pour collecter des statistiques sur les personnes qui accèdent à votre forum. En plus de la journalisation des requêtes HTTP, nous pouvons également journaliser les évènements socket.io. La journalisation socket.io, associée au monitoring redis-cli, peut-être très utile pour apprendre les rouages de NodeBB.", "explanation": "Cochez ou décochez simplement les réglages de la journalisation pour l'activer ou la désactiver. Aucun redémarrage n'est nécessaire.", "enable-http": "Activer la journalisation HTTP", "enable-socket": "Activer la journalisation des événements socket.io", "file-path": "Chemin vers les fichiers journaux", - "file-path-placeholder": "/path/to/log/file.log ::: laissez vide pour journaliser vers votre terminal", + "file-path-placeholder": "/path/to/log/file.log ::: laisser vide pour journaliser vers votre terminal", "control-panel": "Panneau de contrôle de la journalisation", "update-settings": "Mettre à jour la configuration" diff --git a/public/language/fr/admin/extend/plugins.json b/public/language/fr/admin/extend/plugins.json index acd679dc03..5d0a55fddb 100644 --- a/public/language/fr/admin/extend/plugins.json +++ b/public/language/fr/admin/extend/plugins.json @@ -1,10 +1,10 @@ { "plugins": "Plugins", "trending": "Tendance", - "installed": "Installé", - "active": "Actif", - "inactive": "Inactif", - "out-of-date": "Obsolète", + "installed": "Installés", + "active": "Actifs", + "inactive": "Inactifs", + "out-of-date": "Obsolètes", "none-found": "Aucun plugin trouvé", "none-active": "Aucun plugin actif", "find-plugins": "Chercher des plugins", @@ -27,7 +27,7 @@ "plugin-item.uninstall": "Désinstaller", "plugin-item.settings": "Réglages", "plugin-item.installed": "Installé", - "plugin-item.latest": "Derniers", + "plugin-item.latest": "Dernier", "plugin-item.upgrade": "Mettre à jour", "plugin-item.more-info": "Pour plus d'informations :", "plugin-item.unknown": "Inconnu", @@ -40,9 +40,9 @@ "alert.upgraded": "Plugin mis à jour", "alert.installed": "Plugin installé", "alert.uninstalled": "Plugin désinstallé", - "alert.activate-success": "Veuillez régénérer et redémarrer votre NodeBB pour activer complètement ce plugin", + "alert.activate-success": "Veuillez reconstruire et redémarrer votre NodeBB pour activer complètement ce plugin", "alert.deactivate-success": "Plugin désactivé avec succès", - "alert.upgrade-success": "Veuillez régénérer et redémarrer votre NodeBB pour finaliser la mise à jour de ce plugin.", + "alert.upgrade-success": "Veuillez reconstruire et redémarrer votre NodeBB pour finaliser la mise à jour de ce plugin.", "alert.install-success": "Plugin installé avec succès, veuillez maintenant l'activer.", "alert.uninstall-success": "Le plugin a été désactivé et désinstallé avec succès.", "alert.suggest-error": "

NodeBB n'a pas pu joindre le gestionnaire de paquets, procéder à l'installation de la dernière version ?

Le serveur a répondu (%1) : %2
", @@ -50,7 +50,7 @@ "alert.incompatible": "

Votre version de NodeBB (v%1) ne peut mettre à jour que vers la version v%2 de ce plugin. Veuillez mettre à jour NodeBB si vous souhaitez installer une version plus récente de ce plugin.

", "alert.possibly-incompatible": "

Aucune information de compatibilité trouvée

Ce plugin n'a pas spécifié de version pour une installation sur votre version de NodeBB. Aucune compatibilité ne peut être garantie et ce plugin pourrait empêcher NodeBB de démarrer correctement.

Dans l'éventualité où NodeBB ne pourrait pas démarrer proprement :

$ ./nodebb reset plugin=\"%1\"

Voulez-vous continuer l'installation de ce plugin ?

", "alert.reorder": "Réorganiser les plugins", - "alert.reorder-success": "Veuillez régénérer et redémarrer votre NodeBB pour finaliser le processus.", + "alert.reorder-success": "Veuillez reconstruire et redémarrer votre NodeBB pour finaliser le processus.", "license.title": "Information sur la licence du plugin", "license.intro": "Le plugin %1 est sous licence %2. Veuillez lire et comprendre les termes de la licence avant d’activer ce plugin.", diff --git a/public/language/fr/admin/extend/rewards.json b/public/language/fr/admin/extend/rewards.json index 49973403a5..16bf505433 100644 --- a/public/language/fr/admin/extend/rewards.json +++ b/public/language/fr/admin/extend/rewards.json @@ -4,7 +4,7 @@ "condition-if-users": "Si la propriété de l'utilisateur", "condition-is": "Est :", "condition-then": "Alors :", - "max-claims": "Nombre de fois que la récompense peut être obtenue", + "max-claims": "Nombre de fois que la récompense peut-être obtenue", "zero-infinite": "Entrez 0 pour infini", "select-reward": "Sélectionner une récompense", "delete": "Supprimer", diff --git a/public/language/fr/admin/extend/widgets.json b/public/language/fr/admin/extend/widgets.json index 683bfa3160..4941355755 100644 --- a/public/language/fr/admin/extend/widgets.json +++ b/public/language/fr/admin/extend/widgets.json @@ -1,11 +1,11 @@ { "widgets": "Widgets", "available": "Widgets disponibles", - "explanation": "Sélectionnez un widget depuis le menu puis glissez-déposez le dans une zone template du widget à gauche.", + "explanation": "Sélectionner un widget depuis le menu puis le glisser-déposer dans une zone template du widget à gauche.", "none-installed": "Aucun widget trouvé ! Activez le plugin Widget Essentials dans le panneau de configuration des plugins.", "clone-from": "Cloner le widget", "containers.available": "Conteneurs disponibles", - "containers.explanation": "Glissez-déposez sur n'importe quel widget actif", + "containers.explanation": "Glisser-déposer sur n'importe quel widget actif", "containers.none": "Aucun", "container.well": "Well", "container.jumbotron": "Jombotron", diff --git a/public/language/fr/admin/manage/categories.json b/public/language/fr/admin/manage/categories.json index 0c130427c1..a0e18e5845 100644 --- a/public/language/fr/admin/manage/categories.json +++ b/public/language/fr/admin/manage/categories.json @@ -43,13 +43,13 @@ "set-order-help": "Configuration des catégories. Vous pouvez déplacer vos catégories dans l'ordre que vous le souhaitez. La commande minimum est de 1, ce qui place la catégorie au sommet.", "select-category": "Sélectionner une catégorie", - "set-parent-category": "Définissez une catégorie parente", + "set-parent-category": "Définir une catégorie parente", "privileges.description": "Vous pouvez configurer les privilèges d'accès pour des sections du site. Les privilèges peuvent être accordés par utilisateur ou par groupe. Sélectionnez les droits d'accès dans le menu déroulant ci-dessous.", "privileges.category-selector": "Configuration des privilèges pour", "privileges.warning": "Note: Les paramètres de privilège prennent effet instantanément . Il n'est pas nécessaire de sauvegarder la catégorie après avoir ajusté ces paramètres.", - "privileges.section-viewing": "Afficher les Privilèges", - "privileges.section-posting": "Privilège de posting", + "privileges.section-viewing": "Afficher les privilèges", + "privileges.section-posting": "Privilège de message", "privileges.section-moderation": "Privilèges de modération", "privileges.section-other": "Autres", "privileges.section-user": "Utilisateur", @@ -63,24 +63,24 @@ "privileges.copy-to-children": "Copier aux enfants", "privileges.copy-from-category": "Copier depuis une catégorie", "privileges.copy-privileges-to-all-categories": "Copier dans toutes les catégories", - "privileges.copy-group-privileges-to-children": "Copiez les privilèges de ce groupe de cette catégorie.", - "privileges.copy-group-privileges-to-all-categories": "Copiez les privilèges de ce groupe dans toutes les catégories.", + "privileges.copy-group-privileges-to-children": "Copier les privilèges de ce groupe aux enfants de cette catégorie.", + "privileges.copy-group-privileges-to-all-categories": "Copier les privilèges de ce groupe dans toutes les catégories.", "privileges.copy-group-privileges-from": "Copiez les privilèges de ce groupe à partir d'une autre catégorie.", "privileges.inherit": "Si le groupe utilisateurs enregistrés bénéficie d'un privilège supplémentaire, tous les autres groupes recevront un privilège implicite, même s'ils ne sont pas explicitement définis. Ce privilège implicite vous est montré car tous les utilisateurs font partie du groupe utilisateurs enregistrés ainsi, les privilèges accordés aux autres groupes ne doivent pas nécessairement être explicitement accordés.", "privileges.copy-success": "Privilèges copiés !", "analytics.back": "Revenir à la liste des catégories", - "analytics.title": "Analytique pour la catégorie \"%1\"", + "analytics.title": "Statistiques pour la catégorie \"%1\"", "analytics.pageviews-hourly": "Image 1 – Pages vues par heure pour cette catégorie", "analytics.pageviews-daily": "Image 2 – Pages vues par jour pour cette catégorie", "analytics.topics-daily": "Image 3 – Sujets créés par jour dans catégorie", - "analytics.posts-daily": "Image 4 – Messages par jours postés dans cette catégorie", + "analytics.posts-daily": "Image 4 – Messages par jour postés dans cette catégorie", "alert.created": "Créée", "alert.create-success": "Catégorie créée avec succès !", "alert.none-active": "Vous n'avez aucune catégorie active.", "alert.create": "Créer une catégorie", - "alert.confirm-purge": "

Voulez-vous vraiment purger cette catégorie \"%1\"?

Attention!Tous les sujets et posts dans cette catégorie vont être supprimés

Purger une catégorie va enlever tous les sujets et les posts, et supprimer la catégorie de la base de données. Si vous voulez seulement enlevez une catégorietemporairement, il faut plutôt \"désactiver\" la catégorie.", + "alert.confirm-purge": "

Voulez-vous vraiment purger cette catégorie \"%1\" ?

Attentionc!Tous les sujets et messages dans cette catégorie vont être supprimés

Purger une catégorie va enlever tous les sujets et messages en supprimant la catégorie de la base de données. Si vous voulez seulement enlevez une catégorietemporairement, il faut plutôt \"désactiver\" la catégorie.", "alert.purge-success": "Catégorie purgée !", "alert.copy-success": "Paramètres copiés !", "alert.set-parent-category": "Définir une catégorie parent", @@ -91,7 +91,7 @@ "alert.user-search": "Chercher un utilisateur ici...", "alert.find-group": "Trouver un groupe", "alert.group-search": "Chercher un groupe ici...", - "alert.not-enough-whitelisted-tags": "Vous devez ajouter plus de mot-clés dans votre liste blanche ! Le nombre minimal requis est inférieur à ceux de votre liste blanche", + "alert.not-enough-whitelisted-tags": "Vous devez ajouter plus de mots-clés dans votre liste blanche ! Le nombre minimal requis est inférieur à ceux de votre liste blanche.", "collapse-all": "Tout réduire", "expand-all": "Tout développer", "disable-on-create": "Désactiver lors de la création", diff --git a/public/language/fr/admin/manage/digest.json b/public/language/fr/admin/manage/digest.json index 5b41d01964..3b8a9b9eb1 100644 --- a/public/language/fr/admin/manage/digest.json +++ b/public/language/fr/admin/manage/digest.json @@ -7,13 +7,13 @@ "subscription": "Type d'abonnement", "last-delivery": "Dernier envoi réussi", "default": "Valeur par défaut", - "default-help": "La valeur par défaut signifie que l'utilisateur n'a pas explicitement modifié ses paramètres pour les lettres d'activités, qui sont : "%1"", + "default-help": "La valeur par défaut signifie que l'utilisateur n'a pas explicitement modifié les paramètres pour les lettres d'activités, qui sont : "%1"", "resend": "Renvoi", "resend-all-confirm": "Voulez-vous vraiment exécuter manuellement cet envoi ?", "resent-single": "Lettre d'activité envoyée", "resent-day": "Lettre d'activité quotidienne envoyée", "resent-week": "Lettre d'activité hebdomadaire envoyée", - "resent-biweek": "Lettre d'activité envoyée deux fois par semaine", + "resent-biweek": "Lettre d'activité bihebdomadaire envoyée", "resent-month": "Lettre d'activité mensuelle envoyée", "null": "Jamais", "manual-run": "Lancer manuellement l'envoi :", diff --git a/public/language/fr/admin/manage/groups.json b/public/language/fr/admin/manage/groups.json index fc1b258e95..f3322895e7 100644 --- a/public/language/fr/admin/manage/groups.json +++ b/public/language/fr/admin/manage/groups.json @@ -29,8 +29,8 @@ "edit.description": "Description", "edit.user-title": "Titre des membres", "edit.icon": "Icône du groupe", - "edit.label-color": "Couleur du groupe", - "edit.text-color": "Couleur du groupe", + "edit.label-color": "Couleur de l'étiquette du groupe", + "edit.text-color": "Couleur du nom du groupe", "edit.show-badge": "Afficher le badge", "edit.private-details": "Si activé, rejoindre les groupes nécessitera l'approbation de l'un de leurs propriétaires.", "edit.private-override": "Attention : Les groupes privés sont désactivés au niveau du système, ce qui annule cette option.", diff --git a/public/language/fr/admin/manage/privileges.json b/public/language/fr/admin/manage/privileges.json index 6d781a137e..fb2eee78a6 100644 --- a/public/language/fr/admin/manage/privileges.json +++ b/public/language/fr/admin/manage/privileges.json @@ -22,7 +22,7 @@ "view-groups": "Afficher les Groupes", "allow-local-login": "Identifiant local", "allow-group-creation": "Groupe créé", - "view-users-info": "Afficher les utilisateurs", + "view-users-info": "Afficher les infos utilisateurs", "find-category": "Rechercher une catégorie", "access-category": "Droits des catégories", "access-topics": "Droits des sujets", @@ -49,14 +49,14 @@ "admin-settings": "Paramètres", "alert.confirm-moderate": "Voulez-vous vraiment accorder le privilège de modération à ce groupe d'utilisateurs ? Ce groupe est public et tous les utilisateurs peuvent le rejoindre.", - "alert.confirm-admins-mods": "Voulez-vous vraiment attribuer les droits & quot; d'administration & amp; de modération & quot; à cet utilisateur / groupe ? Les utilisateurs disposant de ce privilège peuvent promouvoir et rétrograder d'autres utilisateurs à des rôles privilégiés, y compris le super administrateur", + "alert.confirm-admins-mods": "Voulez-vous vraiment attribuer les droits d'administration et de modération à cet utilisateur / groupe ? Les utilisateurs disposant de ce privilège peuvent promouvoir et rétrograder d'autres utilisateurs à des rôles privilégiés, y compris le super administrateur", "alert.confirm-save": "Veuillez confirmer votre intention de sauvegarder ces privilèges", "alert.confirm-discard": "Êtes-vous sûr de vouloir annuler vos modifications de privilèges ?", - "alert.discarded": "Modifications de privilèges annulée", + "alert.discarded": "Modification des privilèges annulée", "alert.confirm-copyToAll": "Voulez-vous vraiment appliquer cet ensemble de %1 à toutes les catégories?", "alert.confirm-copyToAllGroup": "Voulez-vous vraiment appliquer l'ensemble de %1 de ce groupe à toutes les catégories?", "alert.confirm-copyToChildren": "Voulez-vous vraiment appliquer cet ensemble de %1 à toutes les catégories enfants incluses?", - "alert.confirm-copyToChildrenGroup": "Voulez-vous vraiment appliquer l'ensemble de %1 de ce groupe à toutes les catégories incluses (enfants)?", + "alert.confirm-copyToChildrenGroup": "Voulez-vous vraiment appliquer l'ensemble de %1 de ce groupe à toutes les catégories enfants incluses?", "alert.no-undo": "Cette action ne peut pas être annulée.", "alert.admin-warning": "Les administrateurs obtiennent implicitement tous les privilèges", "alert.copyPrivilegesFrom-title": "Sélectionnez une catégorie à copier", diff --git a/public/language/fr/admin/manage/registration.json b/public/language/fr/admin/manage/registration.json index e4937da15c..718881118f 100644 --- a/public/language/fr/admin/manage/registration.json +++ b/public/language/fr/admin/manage/registration.json @@ -1,6 +1,6 @@ { "queue": "File d'attente", - "description": "Il n'y a aucun utilisateur dans la file d'inscription.
Pour activer cette fonctionnalité, allez dans Paramètres → Utilisateurs → inscription des utilisateurs et définissez Type d'inscription en \"Approbation par l'administrateur\".", + "description": "Il n'y a aucun utilisateur dans la file d'inscription.
Pour activer cette fonctionnalité, allez dans Réglages → Utilisateurs → Inscription des utilisateurs et définissez Type d'approbation d'inscription sur \"Approbation par l'administrateur\".", "list.name": "Nom", "list.email": "E-mail", @@ -11,9 +11,9 @@ "list.ip-spam": "Fréquence : %1 Apparait : %2", "invitations": "Invitations", - "invitations.description": "Ci-dessous se trouve une liste complète des invitations envoyées. Utilisez CTRL + F pour rechercher un email ou nom d'utilisateur dans la liste.
\n
Le nom d'utilisateur sera affiché à droite des emails pour les utilisateurs qui ont accepté leur invitation.", - "invitations.inviter-username": "Invité par l'utilisateur", - "invitations.invitee-email": "Email invité", + "invitations.description": "Ci-dessous se trouve une liste complète des invitations envoyées. Utilisez CTRL + F pour rechercher un e-mail ou nom d'utilisateur dans la liste.
\n
Le nom d'utilisateur sera affiché à droite des e-mails pour les utilisateurs qui ont accepté leur invitation.", + "invitations.inviter-username": "Nom d’utilisateur de l’invité", + "invitations.invitee-email": "E-mail de l'invité", "invitations.invitee-username": "Nom d'utilisateur de l'invité (si inscrit)", "invitations.confirm-delete": "Êtes-vous sûr de vouloir supprimer l'invitation ?" diff --git a/public/language/fr/admin/manage/tags.json b/public/language/fr/admin/manage/tags.json index 572d9e1b7e..cd560e278f 100644 --- a/public/language/fr/admin/manage/tags.json +++ b/public/language/fr/admin/manage/tags.json @@ -3,18 +3,18 @@ "none": "Votre forum n'a pour l'instant aucun sujet avec mots-clés.", "bg-color": "Couleur d'arrière plan", "text-color": "Couleur du texte", - "description": "Pour une sélection multiple :\nSélectionnez des mots-clés en cliquant ou en sélectionnant avec votre souris ou utilisez la touche CTRL .", - "create": "Créer le mot-clés", - "add-tag": "Ajouter un mots-clé", + "description": "Pour une sélection multiple :\nSélectionner des mots-clés en les sélectionnant avec votre souris ou utilisez la touche CTRL .", + "create": "Créer le mot-clé", + "add-tag": "Ajouter un mot-clé", "modify": "Modifier les mots-clés", "rename": "Renommer les mots-clés", "delete": "Supprimer la sélection", "search": "Chercher des mots-clés...", "settings": "Paramètres", - "name": "Nom du mot-clés", + "name": "Nom du mot-clé", "alerts.editing": "Édition des mots-clés", "alerts.confirm-delete": "Vous-voulez réellement supprimer les mots-clés sélectionnés ?", - "alerts.update-success": "Mot-clés mis à jour !", + "alerts.update-success": "Mot-clé mis à jour !", "reset-colors": "Réinitialiser les couleurs" } \ No newline at end of file diff --git a/public/language/fr/admin/manage/uploads.json b/public/language/fr/admin/manage/uploads.json index 4edb3d8152..772c68f52a 100644 --- a/public/language/fr/admin/manage/uploads.json +++ b/public/language/fr/admin/manage/uploads.json @@ -4,9 +4,9 @@ "filename": "Nom du fichier", "usage": "Utilisé dans le message", "orphaned": "Orphelin", - "size/filecount": "Taille / nombre de fichiers", - "confirm-delete": "Voulez-vous vraiment supprimer ce fichier?", + "size/filecount": "Taille / Nombre de fichiers", + "confirm-delete": "Voulez-vous vraiment supprimer ce fichier ?", "filecount": "%1 fichiers", "new-folder": "Nouveau Dossier", - "name-new-folder": "Entrez un nom pour le nouveau dossier" + "name-new-folder": "Entrer un nom pour le nouveau dossier" } \ No newline at end of file diff --git a/public/language/fr/admin/manage/users.json b/public/language/fr/admin/manage/users.json index 914d56ee2a..c6e7f02a12 100644 --- a/public/language/fr/admin/manage/users.json +++ b/public/language/fr/admin/manage/users.json @@ -3,8 +3,8 @@ "users": "Utilisateurs", "edit": "Actions", "make-admin": "Promouvoir Admin", - "remove-admin": "Retirer des Admins", - "change-email": "Modifier l'adresse mail", + "remove-admin": "Retirer le rôle admin", + "change-email": "Modifier l'adresse e-mail", "new-email": "Nouvel e-mail", "validate-email": "Vérifier l'adresse e-mail", "send-validation-email": "Envoyer un e-mail de vérification", @@ -12,15 +12,15 @@ "password-reset-email": "Envoyer un e-mail de réinitialisation du mot de passe", "force-password-reset": "Forcer la réinitialisation du mot de passe et déconnecter l'utilisateur", "ban": "Bannir", - "ban-users": "Bannir l'(es) utilisateur(s)", - "temp-ban": "Utilisateur(s) temporairement banni(s)", - "unban": "Dé-bannir le(s) utilisateur(s)", + "ban-users": "Bannir l'utilisateur", + "temp-ban": "Bannir l'utilisateur temporairement", + "unban": "Débannir l'utilisateur", "reset-lockout": "Supprimer le blocage", "reset-flags": "Supprimer les signalements", "delete": "Supprimer", "delete-users": "Supprimer Utilisateur(s)", "delete-content": "Supprimer le contenu du compte", - "purge": "Supprimer le(s) compte(s) et le contenu", + "purge": "Supprimer le compte et le contenu", "download-csv": "Exporter en CSV", "manage-groups": "Gérer les groupes", "set-reputation": "Définir une réputation", @@ -29,7 +29,7 @@ "invite": "Inviter par e-mail", "new": "Nouvel utilisateur", "filter-by": "Filtrer par", - "pills.unvalidated": "Non vérifié", + "pills.unvalidated": "Non validé", "pills.validated": "Validé", "pills.banned": "Banni", @@ -78,37 +78,37 @@ "temp-ban.reason": "Raison (Optionel)", "temp-ban.hours": "Heures", "temp-ban.days": "Jours", - "temp-ban.explanation": "Entrez la durée du bannissement. Notez qu'une durée de 0 sera considérée comme un bannissement définitif.", + "temp-ban.explanation": "Entrer la durée du bannissement. Notez qu'une durée de 0 sera considérée comme un bannissement définitif.", "alerts.confirm-ban": "Voulez-vous réellement bannir définitivement cet utilisateur ?", "alerts.confirm-ban-multi": "Voulez-vous réellement bannir définitivement ces utilisateurs ?", "alerts.ban-success": "Utilisateur(s) banni(s)", "alerts.button-ban-x": "Bannir %1 utilisateur(s)", - "alerts.unban-success": "Utilisateur(s) dé-banni(s) !", + "alerts.unban-success": "Utilisateur(s) débanni(s) !", "alerts.lockout-reset-success": "Blocage(s) supprimé(s)", "alerts.password-change-success": "Mot(s) de passe modifié(s) !", "alerts.flag-reset-success": "Signalement(s) réinitialisé(s) !", "alerts.no-remove-yourself-admin": "Vous ne pouvez pas vous retirer vous-même des administrateurs !", "alerts.make-admin-success": "L'utilisateur est maintenant administrateur.", "alerts.confirm-remove-admin": "Voulez-vous vraiment supprimer cet administrateur?", - "alerts.remove-admin-success": "L'utilisateur n'est plus administrateur", - "alerts.make-global-mod-success": "L'utilisateur est maintenant modérateur global", + "alerts.remove-admin-success": "L'utilisateur n'est plus administrateur.", + "alerts.make-global-mod-success": "L'utilisateur est maintenant modérateur global.", "alerts.confirm-remove-global-mod": "Voulez-vous vraiment supprimer ce modérateur global ?", "alerts.remove-global-mod-success": "L'utilisateur n'est plus un modérateur global.", - "alerts.make-moderator-success": "L'utilisateur est maintenant modérateur", + "alerts.make-moderator-success": "L'utilisateur est maintenant modérateur.", "alerts.confirm-remove-moderator": "Voulez-vous vraiment supprimer ce modérateur ?", - "alerts.remove-moderator-success": "L'utilisateur n'est plus modérateur", - "alerts.confirm-validate-email": "Voulez-vous réellement vérifier les adresses e-mails de ces utilisateurs ?", + "alerts.remove-moderator-success": "L'utilisateur n'est plus modérateur.", + "alerts.confirm-validate-email": "Voulez-vous réellement valider les adresses e-mails de ces utilisateurs ?", "alerts.confirm-force-password-reset": "Êtes-vous sûr de vouloir forcer la réinitialisation du mot de passe et déconnecter cet (ces) utilisateur(s) ?", - "alerts.validate-email-success": "Adresse e-mail vérifiée", + "alerts.validate-email-success": "Adresse e-mail validée", "alerts.validate-force-password-reset-success": "Les mots de passe des utilisateurs ont été réinitialisés et leurs sessions existantes ont été révoquées.", - "alerts.password-reset-confirm": "Voulez-vous réellement envoyer un e-mail de réinitialisation de mot de passe à ces utilisateurs ?", + "alerts.password-reset-confirm": "Voulez-vous réellement envoyer un e-mail de réinitialisation de mot de passe à cet utilisateur ?", "alerts.password-reset-email-sent": "Réinitialisation de mot de passe envoyée", - "alerts.confirm-delete": "Attention !

Voulez-vous réellement supprimer le(s) utilisateur(s) ?

Cette action est irréversible ! Toutes les données de ces utilisateurs seront effacées !

", - "alerts.delete-success": "Utilisateur(s) supprimé(s) !", - "alerts.confirm-delete-content": "Attention !

Voulez-vous réellement supprimer le contenu de ces utilisateurs ?

Cette action est irréversible ! Toutes les données de ces utilisateurs seront effacées !

", - "alerts.delete-content-success": "Contenu utilisateur(s) supprimé(s) !", - "alerts.confirm-purge": "Attention !

Voulez-vous réellement supprimer ces utilisateurs ainsi que leurs contenus ?

Cette action est irréversible ! Toutes les données de ces utilisateurs seront effacées !

", + "alerts.confirm-delete": "Attention !

Voulez-vous réellement supprimer cet utilisateur ?

Cette action est irréversible ! Seul le compte sera supprimé, ses sujets et ses messages seront conservés

", + "alerts.delete-success": "Utilisateur supprimé !", + "alerts.confirm-delete-content": "Attention !

Voulez-vous réellement supprimer le contenu de cet utilisateur ?

Cette action est irréversible ! Toutes les données de cet utilisateur seront effacées !

", + "alerts.delete-content-success": "Contenu de l'utilisateur supprimé !", + "alerts.confirm-purge": "Attention !

Voulez-vous réellement supprimer cet utilisateur ainsi que son contenu ?

Cette action est irréversible ! Le compte de l'utilisateur ainsi que tout son contenu seront effacées !

", "alerts.create": "Créer un utilisateur", "alerts.button-create": "Créer", "alerts.button-cancel": "Annuler", diff --git a/public/language/fr/admin/menu.json b/public/language/fr/admin/menu.json index e6af9b58c5..5e6e1205f2 100644 --- a/public/language/fr/admin/menu.json +++ b/public/language/fr/admin/menu.json @@ -1,5 +1,5 @@ { - "section-dashboard": "Tableau de bord", + "section-dashboard": "Tableaux de bord", "dashboard/overview": "Aperçu", "dashboard/logins": "Connexions", "dashboard/users": "Utilisateurs", @@ -73,7 +73,7 @@ "development/info": "Info", "rebuild-and-restart-forum": "Régénérer & Redémarrer votre forum", - "rebuild-and-restart": "Régénérer & Redémarrer", + "rebuild-and-restart": "Reconstruire & Redémarrer", "restart-forum": "Redémarrer le forum", "restart": "Redémarrer", "logout": "Déconnexion ", diff --git a/public/language/fr/admin/settings/advanced.json b/public/language/fr/admin/settings/advanced.json index 2b775d0084..d63cdbc243 100644 --- a/public/language/fr/admin/settings/advanced.json +++ b/public/language/fr/admin/settings/advanced.json @@ -20,11 +20,11 @@ "headers.coep-help": "Lorsqu'il est activé (par défaut), cela définira l'en-tête sur require-corp", "headers.coop": "Cross-Origin-Opener-Policy", "headers.corp": "Cross-Origin-Resource-Policy", - "headers.permissions-policy": "En-tête HTTP de sécurité", - "headers.permissions-policy-help": "Permet de définir l'en-tête HTTP de sécurité, par exemple \"geolocation=*, camera=()\", voir ceci pour plus d'informations.", + "headers.permissions-policy": "Stratégie de permissions", + "headers.permissions-policy-help": "Permet de définir la stratégie de permissions de l'en-tête, par exemple \"geolocation=*, camera=()\", voir ceci pour plus d'informations.", "hsts": "Strict Transport Security", "hsts.enabled": "Activer HSTS (recommandé)", - "hsts.maxAge": "HSTS âge max", + "hsts.maxAge": "Age max HSTS", "hsts.subdomains": "Inclure les sous-domaines dans l'en-tête HSTS", "hsts.preload": "Autoriser le préchargement de l'en-tête HSTS", "hsts.help": "Si activé, un en-tête HSTS sera défini pour ce site. Vous pouvez choisir d'inclure des sous-domaines et des indicateurs de préchargement dans votre en-tête. En cas de doute, ne cochez pas l'option. Plus d'informations", @@ -34,7 +34,7 @@ "traffic.event-lag": "Seuil de lag des boucles d'événements (en millisecondes) ", "traffic.event-lag-help": "Descendre cette valeur réduit le temps d'attente pour le chargement des pages, mais montrera le message \"charge excessive\" à plus d'utilisateurs. (redémarrage requis)", "traffic.lag-check-interval": "Vérifier l’intervalle (en millisecondes)", - "traffic.lag-check-interval-help": "Descendre cette valeur rend NodeBB plus sensible aux pics dans le chargement, mais rend aussi le contrôle trop sensible. (redémarrage requis)", + "traffic.lag-check-interval-help": "Descendre cette valeur rend NodeBB plus sensible aux pics de chargement, mais rend aussi le contrôle trop sensible. (redémarrage requis)", "sockets.settings": "Configuration WebSocket", "sockets.max-attempts": "Nombre maximum de tentatives de reconnexion", diff --git a/public/language/fr/admin/settings/api.json b/public/language/fr/admin/settings/api.json index e8ccbd1373..bc0c4987c0 100644 --- a/public/language/fr/admin/settings/api.json +++ b/public/language/fr/admin/settings/api.json @@ -1,5 +1,5 @@ { - "tokens": "Tokens", + "tokens": "Jetons", "settings": "Paramètres", "lead-text": "À partir de cette page, vous pouvez paramétrer l'accès à l'API dans NodeBB.", "intro": "Par défaut, l'API authentifie les utilisateurs en fonction de leur cookie de session, mais NodeBB prend également en charge l'authentification du porteur via des tokens générés via cette page.", @@ -11,7 +11,7 @@ "uid": "ID Utilisateur", "token": "Jeton", - "uid-help-text": "Spécifier un ID utilisateur à associer à ce token. Si l'ID utilisateur est 0, il sera considéré comme un token maître, qui peut prendre l'identité d'autres utilisateurs en fonction du paramètre _uid", + "uid-help-text": "Spécifier un ID utilisateur à associer à ce jeton. Si l'ID utilisateur est 0, il sera considéré comme un token maître, qui peut prendre l'identité d'autres utilisateurs en fonction du paramètre _uid", "description": "Description", "last-seen": "Vu pour la dernière fois", "created": "Créé", @@ -21,8 +21,8 @@ "last-seen-never": "Cette clé n'a jamais été utilisée.", "no-description": "Aucune description spécifiée.", "actions": "Actions", - "edit": "Éditer ", - "roll": "Jeter", + "edit": "Modifier", + "roll": "Lancer", "delete-confirm": "Voulez-vous vraiment supprimer ce jeton ? Il ne sera pas récupérable.", "roll-confirm": "Voulez-vous vraiment régénérer ce jeton ? L'ancien jeton sera immédiatement révoqué et ne sera pas récupérable." diff --git a/public/language/fr/admin/settings/email.json b/public/language/fr/admin/settings/email.json index 8848ec54a4..750faa1889 100644 --- a/public/language/fr/admin/settings/email.json +++ b/public/language/fr/admin/settings/email.json @@ -6,21 +6,21 @@ "from-help": "Le nom de l’expéditeur à afficher dans l'e-mail", "confirmation-settings": "Confirmation", - "confirmation.expiry": "Heures de validité du lien de confirmation par e-mail", + "confirmation.expiry": "Durée de validité (en heures) du lien de confirmation par e-mail", "smtp-transport": "Protocole SMTP", "smtp-transport.enabled": "Activer l'envoi via SMTP", "smtp-transport-help": "Vous pouvez sélectionner depuis une liste de services ou entrer un service personnalisé.", "smtp-transport.service": "Sélectionner un service", "smtp-transport.service-custom": "Service personnalisé", - "smtp-transport.service-help": "Sélectionnez un nom de service ci-dessus afin d'utiliser les informations connues à son sujet. Vous pouvez également sélectionner "Service personnalisé" et entrer les détails ci-dessous.", - "smtp-transport.gmail-warning1": "Si vous utilisez GMail comme fournisseur de messagerie, vous devrez générer un "mot de passe d'application" afin que NodeBB s'authentifie avec succès. Vous pouvez en générer un sur la page Mots de passe .", - "smtp-transport.gmail-warning2": "Pour plus d'informations sur cette solution de contournement, veuillez consulter cet article de NodeMailer sur le problème. Une alternative serait d'utiliser un plug-in tiers d'e-mail tel que SendGrid, Mailgun, etc. Parcourez les plugins disponibles ici.", + "smtp-transport.service-help": "Sélectionnez un nom de service ci-dessus afin d'utiliser les informations connues à son sujet. Vous pouvez également sélectionner un service personnalisé et entrer les détails ci-dessous.", + "smtp-transport.gmail-warning1": "Si vous utilisez Gmail comme fournisseur de messagerie, vous devrez générer un mot de passe d'application afin que NodeBB s'authentifie avec succès. Vous pouvez en générer un sur la page Mots de passe .", + "smtp-transport.gmail-warning2": "Pour plus d'information sur cette solution de contournement, veuillez consulter cet article de NodeMailer sur le problème. Une alternative serait d'utiliser un plugin tiers d'envoi d'e-mail tel que SendGrid, Mailgun, etc. Parcourez les plugins disponibles ici.", "smtp-transport.auto-enable-toast": "Il semble que vous configurez un serveur SMTP. Nous avons activé l'option \" SMTP\" pour vous.", "smtp-transport.host": "Host SMTP", "smtp-transport.port": "Port SMTP", "smtp-transport.security": "Accès sécurisé", - "smtp-transport.security-encrypted": "Cryptage", + "smtp-transport.security-encrypted": "Chiffrage", "smtp-transport.security-starttls": "StartTLS", "smtp-transport.security-none": "Aucun", "smtp-transport.username": "Nom d'utilisateur", @@ -35,17 +35,17 @@ "testing": "Test d'e-mail", "testing.select": "Sélectionner un modèle d'e-mail ", "testing.send": "Envoyer un e-mail de test", - "testing.send-help": "Le test d'e-mail sera envoyé à l'adresse e-mail de l'utilisateur actuellement connecté.", + "testing.send-help": "Le test d'envoi sera envoyé à l'adresse e-mail de l'utilisateur actuellement connecté.", "subscriptions": "Actualités du forum ", "subscriptions.disable": "Désactiver les actualités du forum ", "subscriptions.hour": "Heure d'envoi", - "subscriptions.hour-help": "Veuillez entrer un nombre représentant l'heure à laquelle envoyer les lettres d'activités (c'est à dire 0 pour minuit, 17 pour 5:00 pm). Gardez à l'esprit qu'il s'agit de l'heure du serveur, et peut ne pas correspondre à votre heure locale.
L'heure du serveur est :
La prochaine lettre d'activités sera envoyée à ", + "subscriptions.hour-help": "Veuillez entrer un nombre pour l'heure à laquelle envoyer les lettres d'activités (c'est à dire 0 pour minuit, 17 pour 5:00 pm). Gardez à l'esprit qu'il s'agit de l'heure du serveur, elle peut ne pas correspondre à votre heure locale.
L'heure du serveur est :
La prochaine lettre d'activités sera envoyée à ", "notifications.remove-images": "Supprimer les images des notifications par e-mail", "require-email-address": "Exiger une adresse e-mail aux nouveaux utilisateurs ", - "require-email-address-warning": "Par défaut, les utilisateurs peuvent refuser de saisir une adresse e-mail en laissant le champ vide. L'activation de cette option signifie que les nouveaux utilisateurs devront entrer et confirmer une adresse e-mail afin de procéder à l'inscription et à l'accès ultérieur au forum. Cela ne garantit pas que l'utilisateur saisira une véritable adresse e-mail, ni même une adresse qu'il possède.", + "require-email-address-warning": "Par défaut, les utilisateurs peuvent refuser de saisir une adresse e-mail en laissant le champ vide. L'activation de cette option signifie que les nouveaux utilisateurs devront entrer et confirmer une adresse e-mail afin de procéder à l'inscription et avoir ultérieurement accès au forum. Cela ne garantit pas que l'utilisateur saisira une véritable adresse e-mail, ni même une adresse qu'il possède.", "send-validation-email": "Envoyer une confirmation de validation lorsqu'un e-mail est ajouté ou modifié", "include-unverified-emails": "Envoyer des e-mails aux destinataires qui n'ont pas explicitement confirmé leurs adresses", - "include-unverified-warning": "Par défaut, les utilisateurs dont les mails sont associés à leur compte ont déjà été vérifiés, mais il existe des situations où ce n'est pas le cas (par exemple, les connexions SSO, les utilisateurs bénéficiant de droits acquis, etc.). Activez ce paramètre à vos risques et périls – l'envoi de mails à des adresses non vérifiées peut constituer une violation des lois anti-spam régionales.", + "include-unverified-warning": "Par défaut, les utilisateurs dont les mails sont associés à leur compte ont déjà été vérifiés, mais il existe des situations où ce n'est pas le cas (par exemple, les connexions SSO, les utilisateurs bénéficiant de droits acquis, etc.). Activer ce paramètre est à vos risques et périls l'envoi d e-mails à des adresses non vérifiées peut constituer une violation des lois anti-spam régionales.", "prompt": "Inviter les utilisateurs à saisir ou à confirmer leur e-mail", "prompt-help": "Si un utilisateur n'a pas défini d'e-mail ou si son e-mail n'est pas confirmé, un avertissement s'affichera à l'écran.", "sendEmailToBanned": "Envoyer des e-mails aux utilisateurs même s'ils ont été bannis" diff --git a/public/language/fr/admin/settings/general.json b/public/language/fr/admin/settings/general.json index ee00bf5d30..614f65365d 100644 --- a/public/language/fr/admin/settings/general.json +++ b/public/language/fr/admin/settings/general.json @@ -1,5 +1,5 @@ { - "general-settings": "Réglages Principaux", + "general-settings": "Réglages Généraux", "on-this-page": "Sur cette page :", "site-settings": "Réglages du site", "title": "Titre du site", @@ -13,40 +13,40 @@ "browser-title": "Titre dans le navigateur", "browser-title-help": "Si aucun titre dans le navigateur n'est spécifié, le titre du site sera utilisé", "title-layout": "Disposition du titre", - "title-layout-help": "Définissez la manière dont le titre est structuré dans le navigateur ex : { pageTitle} | {browserTitle}", + "title-layout-help": "Définir la manière dont le titre est structuré dans le navigateur ex : pageTitle | browserTitle", "description.placeholder": "Une courte description de votre communauté", "description": "Description du site", "keywords": "Mots-clés du site", "keywords-placeholder": "Mots-clés décrivant votre communauté, séparés par des virgules", "logo-and-icons": "Logo et icônes du site", "logo.image": "Image", - "logo.image-placeholder": "Chemin vers un logo à afficher dans l'en-tête du site", - "logo.upload": "Télécharger", + "logo.image-placeholder": "Chemin vers un logo à afficher dans l'en-tête du forum", + "logo.upload": "Téléverser", "logo.url": "URL du lien du logo", - "logo.url-placeholder": "L'URL du logo du site", - "logo.url-help": "Lorsque le logo est cliqué, il renvoi les utilisateurs à cette adresse. Si laissé vide, l'utilisateur sera envoyé à l'index du forum.
Remarque : il ne s'agit pas de l'URL externe utilisée dans les e-mails, etc. Elle est définie par la propriété url dans config.json", + "logo.url-placeholder": "URL du logo du site", + "logo.url-help": "Lorsque le logo est cliqué, il renvoie les utilisateurs à cette adresse. Si laissé vide, l'utilisateur sera envoyé à l'index du forum.
Remarque : il ne s'agit pas de l'URL externe utilisée dans les e-mails, etc. Elle est définie par la propriété url dans config.json", "logo.alt-text": "Texte alternatif", "log.alt-text-placeholder": "Texte alternatif pour l'accessibilité", "favicon": "Favicon", - "favicon.upload": "Télécharger", + "favicon.upload": "Téléverser", "pwa": "Progressive Web App", "touch-icon": "Icône d'accueil", - "touch-icon.upload": "Télécharger", - "touch-icon.help": "Taille et format recommandés: 512x512, format PNG uniquement. Si aucune icône d'accueil n'est spécifiée, le favicon NodeBB sera visible.", + "touch-icon.upload": "Téléverser", + "touch-icon.help": "Taille et format recommandés : 512x512, format PNG uniquement. Si aucune icône d'accueil n'est spécifiée, le favicon NodeBB sera visible.", "maskable-icon": "Icône masquable (écran d'accueil)", - "maskable-icon.help": "Taille et format recommandés: 512x512, format PNG uniquement. Si aucune icône masquable n'est spécifiée, le favicon NodeBB sera visible.", + "maskable-icon.help": "Taille et format recommandés : 512x512, format PNG uniquement. Si aucune icône masquable n'est spécifiée, le favicon NodeBB sera visible.", "outgoing-links": "Liens sortants", "outgoing-links.warning-page": "Utiliser la page d'avertissement pour liens sortants", "search": "Rechercher", "search-default-in": "Rechercher dans", "search-default-in-quick": "Recherche rapide dans", "search-default-sort-by": "Trier par", - "outgoing-links.whitelist": "Domaines à inclure dans la liste blanche pour passer la page d'avertissement.", + "outgoing-links.whitelist": "Domaines à inclure dans la liste blanche pour passer la page d'avertissement", "site-colors": "Métadonnées des couleurs du site", "theme-color": "Couleur du thème", "background-color": "Couleur de l'arrière plan", "background-color-help": "Couleur utilisée pour l'arrière-plan de l'écran de démarrage lorsque le site Web est installé en tant que PWA", "undo-timeout": "Annuler le délai d'attente", - "undo-timeout-help": "Certaines opérations telles que le déplacement de sujets permettront au modérateur d'annuler son action dans un certain délai. Réglez sur 0 pour désactiver complètement l'annulation.", - "topic-tools": "Outils pour sujets" + "undo-timeout-help": "Certaines opérations telles que le déplacement de sujets permettront au modérateur d'annuler son action dans un certain délai. Régler sur 0 pour désactiver complètement l'annulation.", + "topic-tools": "Outils pour les sujets" } diff --git a/public/language/fr/admin/settings/group.json b/public/language/fr/admin/settings/group.json index c32ecfb66f..85d7ca3c06 100644 --- a/public/language/fr/admin/settings/group.json +++ b/public/language/fr/admin/settings/group.json @@ -3,11 +3,11 @@ "private-groups": "Groupes privés", "private-groups.help": "Si cette case est cochée, rejoindre un groupe nécessitera l'accord d'un propriétaire du groupe (Par défaut : activé)", "private-groups.warning": "Attention ! Si cette option est désactivée et que vous avez des groupes privés, ils deviendront automatiquement publics.", - "allow-multiple-badges": "Autoriser de multiple badges", + "allow-multiple-badges": "Autoriser les badges multiples", "allow-multiple-badges-help": "Cet affichage peut être utilisé pour permettre aux utilisateurs de sélectionner plusieurs badges de groupe, nécessite que votre thème le supporte.", - "max-name-length": "Longueur maximum des noms de groupes", + "max-name-length": "Longueur maximale du nom de groupe", "max-title-length": "Longueur maximale du titre de groupe", "cover-image": "Image de couverture du groupe", "default-cover": "Images de couverture par défaut", - "default-cover-help": "Ajouter des images de couvertures par défaut séparées par des virgules pour les groupes n'ayant pas téléchargé d'image de couverture" + "default-cover-help": "Ajouter des images de couvertures par défaut séparées par des virgules pour les groupes n'ayant pas téléversé d'image de couverture" } \ No newline at end of file diff --git a/public/language/fr/admin/settings/homepage.json b/public/language/fr/admin/settings/homepage.json index 3efe41fe65..92811ef4ed 100644 --- a/public/language/fr/admin/settings/homepage.json +++ b/public/language/fr/admin/settings/homepage.json @@ -1,6 +1,6 @@ { "home-page": "Page d'accueil", - "description": "Choisissez la page affichée lorsque les utilisateurs naviguent à la racine de votre forum.", + "description": "Choisir la page affichée lorsque les utilisateurs naviguent à la racine de votre forum.", "home-page-route": "Route de la page d'accueil", "custom-route": "Route personnalisée", "allow-user-home-pages": "Permettre aux utilisateurs de choisir une page d'accueil personnalisée", diff --git a/public/language/fr/admin/settings/languages.json b/public/language/fr/admin/settings/languages.json index 51ee9f7f01..b3a2738c07 100644 --- a/public/language/fr/admin/settings/languages.json +++ b/public/language/fr/admin/settings/languages.json @@ -1,6 +1,6 @@ { - "language-settings": "Réglages linguistiques", - "description": "La langue par défaut détermine les réglages pour tous les utilisateurs qui visitent votre forum.
Les utilisateurs peuvent ensuite modifier la langue par défaut sur leur page de réglages.", + "language-settings": "Paramètres linguistiques", + "description": "La langue par défaut détermine les réglages pour tous les utilisateurs qui visitent votre forum.
Chaque utilisateur peut ensuite modifier la langue par défaut sur sa page de paramètres.", "default-language": "Langue par défaut", "auto-detect": "Détection automatique de la langue pour les invités" } \ No newline at end of file diff --git a/public/language/fr/admin/settings/navigation.json b/public/language/fr/admin/settings/navigation.json index e7300db040..a3da06fe34 100644 --- a/public/language/fr/admin/settings/navigation.json +++ b/public/language/fr/admin/settings/navigation.json @@ -6,14 +6,14 @@ "tooltip": "Info-bulle :", "text": "Texte :", "text-class": "Classe de texte : optionnel", - "class": "Classe: facultatif", + "class": "Classe : facultatif", "id": "ID : optionnel", "properties": "Propriétés :", "groups": "Groupes :", "open-new-window": "Ouvrir dans une nouvelle fenêtre", "dropdown": "Menu déroulant", - "dropdown-placeholder": "Placez vos éléments de menu déroulant ci-dessous, par exemple :
<li><a class="dropdown-item" href="https://myforum.com">Link 1</a></li>", + "dropdown-placeholder": "Placer vos éléments de menu déroulant ci-dessous, par exemple :
https://myforum.com", "btn.delete": "Supprimer", "btn.disable": "Désactiver", diff --git a/public/language/fr/admin/settings/notifications.json b/public/language/fr/admin/settings/notifications.json index 0a6ccf82a2..c80b6b87da 100644 --- a/public/language/fr/admin/settings/notifications.json +++ b/public/language/fr/admin/settings/notifications.json @@ -3,5 +3,5 @@ "welcome-notification": "Notification de bienvenue", "welcome-notification-link": "Lien de notification de bienvenue", "welcome-notification-uid": "Notification de bienvenue de l'utilisateur (UID)", - "post-queue-notification-uid": "File d'attente d'utilisateur (UID)" + "post-queue-notification-uid": "File d'attente utilisateur (UID)" } \ No newline at end of file diff --git a/public/language/fr/admin/settings/pagination.json b/public/language/fr/admin/settings/pagination.json index 512f4471b1..c239131ff1 100644 --- a/public/language/fr/admin/settings/pagination.json +++ b/public/language/fr/admin/settings/pagination.json @@ -1,12 +1,12 @@ { "pagination": "Paramètres de pagination", - "enable": "Utiliser la pagination des sujets et messages au lieu du défilement infini", + "enable": "Utiliser la pagination des sujets et messages au lieu du défilement infini.", "posts": "Pagination des messages", "topics": "Pagination des sujets", "posts-per-page": "Messages par page", "max-posts-per-page": "Messages maximum par page", "categories": "Pagination des categories", "topics-per-page": "Sujets par page", - "max-topics-per-page": "Sujets maximum par page", + "max-topics-per-page": "Maximum de sujets par page", "categories-per-page": "Catégories par page" } \ No newline at end of file diff --git a/public/language/fr/admin/settings/post.json b/public/language/fr/admin/settings/post.json index 1465287eaf..93af7bc7a9 100644 --- a/public/language/fr/admin/settings/post.json +++ b/public/language/fr/admin/settings/post.json @@ -14,8 +14,8 @@ "restrictions.post-queue": "Activer la file d'attente des messages", "restrictions.post-queue-rep-threshold": "Réputation requise pour contourner la file d'attente de publication", "restrictions.groups-exempt-from-post-queue": "Sélectionnez les groupes qui devraient être exemptés de la file d'attente de publication", - "restrictions-new.post-queue": "Activer la restriction", - "restrictions.post-queue-help": "L'activation de la file d'attente de publication placera les messages de nouveaux utilisateurs dans une file d'attente pour approbation.", + "restrictions-new.post-queue": "Activer les restrictions aux nouveaux utilisateurs", + "restrictions.post-queue-help": "L'activation de la file d'attente de publication placera les messages des nouveaux utilisateurs dans une file d'attente pour approbation.", "restrictions-new.post-queue-help": "L'activation de restrictions aux nouveaux utilisateurs définira des restrictions sur les messages créés par les nouveaux utilisateurs.", "restrictions.seconds-between": "Nombre de secondes entre les messages", "restrictions.seconds-between-new": "Secondes entre les messages pour les nouveaux utilisateurs", @@ -33,30 +33,30 @@ "timestamp.cut-off-help": "Les dates et heures seront affichées de façon relative (par exemple \"il y a 3 heures\", \"il y a 5 jours\"), et localisées. Après un certain temps, le texte peut afficher la date elle-même (par exemple 5 Novembre 2016, 15:30).
(Défaut : 30, ou un mois). Régler à 0 pour toujours afficher des dates, laisser vide pour toujours afficher des dates relatives.", "timestamp.necro-threshold": "Seuil d'archivage (en jours)", "timestamp.necro-threshold-help": "Un message sera affiché entre les messages si le temps qui les sépare est plus long que le seuil d'archivage. (Par défaut : 7 ou une semaine). Définissez sur 0 pour désactiver.", - "timestamp.topic-views-interval": "Incrémenter l'intervalle de consultation du sujet (en minutes)", + "timestamp.topic-views-interval": "Incrément du nombre de vues du sujet (en minutes)", "timestamp.topic-views-interval-help": "Les consultations de sujet ne s'incrémenteront qu'une fois toutes les X minutes, comme défini par ce paramètre.", "teaser": "Message d'aperçu", "teaser.last-post": "Dernier – Affiche le dernier message, ou celui d'origine, si il n'y a pas de réponse", "teaser.last-reply": "Dernier – Affiche le dernier message, ou \"Aucune réponse\" si il n'y a pas de réponse", "teaser.first": "Premier", - "showPostPreviewsOnHover": "Afficher un aperçu des messages au survol des liens", + "showPostPreviewsOnHover": "Afficher un aperçu des messages au survol de la souris", "unread-and-recent": "Paramètres non lus et récents", "unread.cutoff": "Nombre de jours pour les messages non-lus", "unread.min-track-last": "Nombre minimum de messages dans le sujet avant de garder en mémoire le dernier message lu", - "recent.max-topics": "Maximum de sujets récents", - "recent.categoryFilter.disable": "Désactiver le filtrage des sujets dans les catégories ignorées sur la page /recent", + "recent.max-topics": "Maximum de sujets sur la page /Récents", + "recent.categoryFilter.disable": "Désactiver le filtrage des sujets dans les catégories ignorées sur la page /Récents", "signature": "Paramètres de signature", "signature.disable": "Désactiver les signatures", "signature.no-links": "Désactiver les liens en signature", "signature.no-images": "Désactiver les images en signature ", "signature.hide-duplicates": "Masquer les signatures en double dans les sujets", "signature.max-length": "Longueur maximum des signatures", - "composer": "Paramètres Composer", - "composer-help": "Les réglages suivants permettent de choisir les fonctionnalités et/ou l'apparence du composeur de message affiché\n\t\t\t\taux utilisateurs quand ils créent de nouveaux sujets ou répondent à des sujets existants.", + "composer": "Paramètres de l'éditeur", + "composer-help": "Les réglages suivants permettent de choisir les fonctionnalités et/ou l'apparence de l'éditeur de message affiché\n\t\t\t\taux utilisateurs quand ils créent de nouveaux sujets ou répondent à des sujets existants.", "composer.show-help": "Afficher l'onglet \"Aide\"", "composer.enable-plugin-help": "Autoriser les plugins à modifier l'onglet d'aide", "composer.custom-help": "Message d'aide personnalisé", - "backlinks": "Backlinks", + "backlinks": "Backlinks (liens entrants)", "backlinks.enabled": "Activer les backlinks de sujet", "backlinks.help": "Si un message fait référence à un autre sujet, un lien vers le message sera inséré dans le sujet référencé.", "ip-tracking": "Suivi d'IP", diff --git a/public/language/he/admin/manage/users.json b/public/language/he/admin/manage/users.json index de9c41a993..a2edf09079 100644 --- a/public/language/he/admin/manage/users.json +++ b/public/language/he/admin/manage/users.json @@ -4,21 +4,21 @@ "edit": "פעולות", "make-admin": "הפוך למנהל", "remove-admin": "הסר הרשאת מנהל", - "change-email": "Change Email", - "new-email": "New Email", + "change-email": "שינוי אימייל", + "new-email": "הגדר אימייל", "validate-email": "סמן את דוא\"ל המשתמש/ים כמאומת", "send-validation-email": "שלח בקשת אימות דוא\"ל למשתמש/ים", - "change-password": "Change Password", + "change-password": "שינוי סיסמה", "password-reset-email": "שלח דוא\"ל לאיפוס סיסמה", "force-password-reset": "כפה איפוס סיסמה ונתק את המשתמש", "ban": "Ban", - "ban-users": "Ban User(s)", + "ban-users": "הרחקת משתמש(ים)", "temp-ban": "הרחק משתמש(ים) באופן זמני", "unban": "בטל הרחקת משתמש(ים)", "reset-lockout": "שחרר נעילת חשבון", "reset-flags": "אפס דגלים", "delete": "Delete", - "delete-users": "Delete User(s)", + "delete-users": "מחיקת משתמש(ים)", "delete-content": "מחק תוכן משתמש(ים)", "purge": "מחק משתמש(ים) ותוכן", "download-csv": "ייצא משתמשים כ-CSV", @@ -86,7 +86,7 @@ "alerts.button-ban-x": "הרחק %1 משתמש(ים)", "alerts.unban-success": "משתמש(ים) הוחזר/ו!", "alerts.lockout-reset-success": "נעילת חשבון שוחרר!", - "alerts.password-change-success": "Password(s) changed!", + "alerts.password-change-success": "הסיסמא(ות) השתנו בהצלחה!", "alerts.flag-reset-success": "דגלים אופסו!", "alerts.no-remove-yourself-admin": "אינך יכול להסיר את עצמך כמנהל!", "alerts.make-admin-success": "המשתמש הינו מנהל עכשיו.", @@ -112,7 +112,7 @@ "alerts.create": "צור משתמש", "alerts.button-create": "צור", "alerts.button-cancel": "בטל", - "alerts.button-change": "Change", + "alerts.button-change": "שינוי", "alerts.error-passwords-different": "הסיסמאות אינן תואמות!", "alerts.error-x": "שגיאה

%1

", "alerts.create-success": "משתמש נוצר!", @@ -120,10 +120,10 @@ "alerts.prompt-email": "מיילים: ", "alerts.email-sent-to": "מייל הזמנה נשלח ל-%1", "alerts.x-users-found": "%1 משתמש(ים) נמצאו, (%2 שניות)", - "alerts.select-a-single-user-to-change-email": "Select a single user to change email", + "alerts.select-a-single-user-to-change-email": "בחר משתמש בודד כדי לשנות את האימייל", "export-users-started": "מייצא משתמשים כ-csv, הדבר עשוי להימשך זמן מה. תקבל הודעה עם השלמתה.", "export-users-completed": "משתמשים יוצאו כ-csv, לחץ כאן להורדה.", - "email": "Email", - "password": "Password", - "manage": "Manage" + "email": "אימייל", + "password": "סיסמה", + "manage": "ניהול" } \ No newline at end of file diff --git a/public/language/he/admin/settings/chat.json b/public/language/he/admin/settings/chat.json index 08e278572f..d9b5ad2c5c 100644 --- a/public/language/he/admin/settings/chat.json +++ b/public/language/he/admin/settings/chat.json @@ -1,5 +1,5 @@ { - "zero-is-disabled": "Enter 0 to disable this restriction", + "zero-is-disabled": "הזן 0 כדי לבטל את ההגבלה הזו", "chat-settings": "הגדרות צ'אט", "disable": "השבת צ'אט", "disable-editing": "השבת עריכה/מחיקה של הודעות צ'אט", @@ -8,9 +8,9 @@ "max-chat-room-name-length": "אורך מקסימלי של שם חדר צ'אט", "max-room-size": "מספר המשתמשים המרבי בחדרי צ'אט", "delay": "Time between chat messages (ms)", - "newbieDelay": "... for new users (ms)", - "notification-delay": "Notification delay for chat messages", - "notification-delay-help": "Additional messages sent between this time are collated, and the user is notified once per delay period. Set this to 0 to disable the delay.", + "newbieDelay": "...עבור משתמשים חדשים (במילישניות)", + "notification-delay": "עיכוב התראה עבור הודעות צ'אט", + "notification-delay-help": "הודעות נוספות שנשלחות בין הזמן הזה נאספות, והמשתמש מקבל הודעה פעם אחת בכל תקופת עיכוב. הגדר ל-0 כדי לבטל את ההשהיה.", "restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable.", "restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable." } \ No newline at end of file diff --git a/public/language/he/user.json b/public/language/he/user.json index 426e7afed0..aab8c35c80 100644 --- a/public/language/he/user.json +++ b/public/language/he/user.json @@ -61,7 +61,7 @@ "change_picture": "שנה תמונה", "change_username": "שנה שם משתמש", "change_email": "שנה מייל", - "email-updated": "Email Updated", + "email-updated": "האימייל עודכן", "email_same_as_password": "הכנס את הסיסמא הנוכחית שלך על מנת להמשיך – כתבת את כתובת המייל החדשה במקום.", "edit": "ערוך", "edit-profile": "ערוך פרופיל", From d2e4947285e4facd49e44f2484ff533ae87e561b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 14 Sep 2023 10:53:19 -0400 Subject: [PATCH 033/275] fix(deps): update dependency sass to v1.67.0 (#12004) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index 89b630a425..c46c5b2124 100644 --- a/install/package.json +++ b/install/package.json @@ -125,7 +125,7 @@ "rss": "1.2.2", "rtlcss": "4.1.0", "sanitize-html": "2.11.0", - "sass": "1.66.1", + "sass": "1.67.0", "semver": "7.5.4", "serve-favicon": "2.5.0", "sharp": "0.32.5", From b9d04e2f9d8c2076ef231f457afce8d73a8b00c9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 14 Sep 2023 10:53:29 -0400 Subject: [PATCH 034/275] chore(deps): update dependency sass-embedded to v1.67.0 (#12003) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index c46c5b2124..6ea9f5549c 100644 --- a/install/package.json +++ b/install/package.json @@ -171,7 +171,7 @@ "smtp-server": "3.13.0" }, "optionalDependencies": { - "sass-embedded": "1.66.1" + "sass-embedded": "1.67.0" }, "resolutions": { "*/jquery": "3.7.1" From ef41b8bcc9bbce3e70f044c74cc70ec1f637d30c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 14 Sep 2023 10:53:48 -0400 Subject: [PATCH 035/275] fix(deps): update dependency esbuild to v0.19.3 (#12002) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index 6ea9f5549c..8860974049 100644 --- a/install/package.json +++ b/install/package.json @@ -63,7 +63,7 @@ "csrf-sync": "4.0.1", "daemon": "1.1.0", "diff": "5.1.0", - "esbuild": "0.19.2", + "esbuild": "0.19.3", "express": "4.18.2", "express-session": "1.17.3", "express-useragent": "1.0.15", From 44d120df3ee0047b11a2a3fff0f75b008836ed8c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 14 Sep 2023 10:56:21 -0400 Subject: [PATCH 036/275] fix(deps): update dependency bootstrap to v5.3.2 (#12005) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index 8860974049..c8b33af36b 100644 --- a/install/package.json +++ b/install/package.json @@ -42,7 +42,7 @@ "benchpressjs": "2.5.1", "body-parser": "1.20.2", "bootbox": "6.0.0", - "bootstrap": "5.3.1", + "bootstrap": "5.3.2", "bootswatch": "5.3.1", "chalk": "4.1.2", "chart.js": "2.9.4", From f286d7fa2e785531e2bf598c6cec62258ada9c17 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 14 Sep 2023 11:06:08 -0400 Subject: [PATCH 037/275] chore(deps): update docker/setup-qemu-action action to v3 (#12001) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/docker.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index ae2e03501a..28984088c1 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -25,7 +25,7 @@ jobs: fetch-depth: 0 - name: Set up QEMU - uses: docker/setup-qemu-action@v2 + uses: docker/setup-qemu-action@v3 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 From 95f7112adc66683c2d089f2da83ef6c04a8f56b1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 14 Sep 2023 11:06:15 -0400 Subject: [PATCH 038/275] chore(deps): update docker/setup-buildx-action action to v3 (#12000) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/docker.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 28984088c1..daf13b8b1b 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -28,7 +28,7 @@ jobs: uses: docker/setup-qemu-action@v3 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 + uses: docker/setup-buildx-action@v3 - name: Login to GitHub Container Registry uses: docker/login-action@v2 From 21b280d298cb32d75ca5324ea3905670024ca77d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 14 Sep 2023 11:06:22 -0400 Subject: [PATCH 039/275] chore(deps): update docker/metadata-action action to v5 (#11999) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/docker.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index daf13b8b1b..4853db8931 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -39,7 +39,7 @@ jobs: - name: Docker meta id: meta - uses: docker/metadata-action@v4 + uses: docker/metadata-action@v5 with: images: ghcr.io/${{ github.repository }} tags: | From 478f7c740f90d0942fd32e6de06df357c0588ecf Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 14 Sep 2023 11:06:30 -0400 Subject: [PATCH 040/275] chore(deps): update docker/login-action action to v3 (#11998) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/docker.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 4853db8931..b8769cf18d 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -31,7 +31,7 @@ jobs: uses: docker/setup-buildx-action@v3 - name: Login to GitHub Container Registry - uses: docker/login-action@v2 + uses: docker/login-action@v3 with: registry: ghcr.io username: ${{ github.repository_owner }} From 4ecfe40ea0d582cdf13af63e2f1960324126eb25 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 14 Sep 2023 11:07:11 -0400 Subject: [PATCH 041/275] chore(deps): update docker/build-push-action action to v5 (#11997) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/docker.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index b8769cf18d..b278eb97b9 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -50,7 +50,7 @@ jobs: type=ref,event=branch,enable=${{ github.event.repository.default_branch != github.ref }} - name: Build and push Docker images - uses: docker/build-push-action@v4 + uses: docker/build-push-action@v5 with: context: . file: ./Dockerfile From b4233366723d3b28b383d47ee0ff9227285f65a6 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 14 Sep 2023 11:07:26 -0400 Subject: [PATCH 042/275] chore(deps): update actions/checkout action to v4 (#11978) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/docker.yml | 2 +- .github/workflows/test.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index b278eb97b9..d27f66173c 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -20,7 +20,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: fetch-depth: 0 diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 5805db031c..0e424e4edd 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -81,7 +81,7 @@ jobs: - 27017:27017 steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - run: cp install/package.json package.json From 1558d7a22c09c3477925038c31721959abf4da48 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 14 Sep 2023 11:24:41 -0400 Subject: [PATCH 043/275] fix(deps): update dependency ace-builds to v1.25.1 (#12006) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index c8b33af36b..189aed4414 100644 --- a/install/package.json +++ b/install/package.json @@ -34,7 +34,7 @@ "@fortawesome/fontawesome-free": "6.4.2", "@isaacs/ttlcache": "1.4.1", "@popperjs/core": "2.11.8", - "ace-builds": "1.24.2", + "ace-builds": "1.25.1", "archiver": "6.0.1", "async": "3.2.4", "autoprefixer": "10.4.15", From f098db7fd38f665144cf512a39d8dda89267dd1d Mon Sep 17 00:00:00 2001 From: Misty Release Bot Date: Fri, 15 Sep 2023 09:19:18 +0000 Subject: [PATCH 044/275] Latest translations and fallbacks --- .../fr/admin/settings/reputation.json | 28 +++++++-------- public/language/fr/admin/settings/tags.json | 10 +++--- .../language/fr/admin/settings/uploads.json | 34 +++++++++---------- public/language/fr/admin/settings/user.json | 28 +++++++-------- 4 files changed, 50 insertions(+), 50 deletions(-) diff --git a/public/language/fr/admin/settings/reputation.json b/public/language/fr/admin/settings/reputation.json index e561b19c9e..163266002d 100644 --- a/public/language/fr/admin/settings/reputation.json +++ b/public/language/fr/admin/settings/reputation.json @@ -1,29 +1,29 @@ { - "reputation": "Paramètre de réputation", + "reputation": "Paramètres de réputation", "disable": "Désactiver le système de réputation", "disable-down-voting": "Désactiver les votes négatifs", "votes-are-public": "Tous les votes sont publics", "thresholds": "Seuils d'activité", "min-rep-upvote": "Réputation minimale pour voter pour les publications", - "upvotes-per-day": "Votes positifs par jour (0 pour un nombre illimité)", - "upvotes-per-user-per-day": "Votes positifs par utilisateur et par jour (0 pour un nombre illimité)", - "min-rep-downvote": "Réputation minimum pour les votes négatifs", - "downvotes-per-day": "Votes négatifs par jour (0 = illimités)", - "downvotes-per-user-per-day": "Votes négatifs pour un utilisateur par jour (0 = illimités)", - "min-rep-chat": "Réputation minimum pour écrire un message", + "upvotes-per-day": "Votes positifs par jour (0 = illimité)", + "upvotes-per-user-per-day": "Votes positifs par utilisateur et par jour (0 = illimité)", + "min-rep-downvote": "Réputation minimale pour les votes négatifs", + "downvotes-per-day": "Votes négatifs par jour (0 = illimité)", + "downvotes-per-user-per-day": "Votes négatifs pour un utilisateur par jour (0 = illimité)", + "min-rep-chat": "Réputation minimale pour utiliser les conversations privées", "min-rep-post-links": "Réputation minimale pour publier des liens", - "min-rep-flag": "Réputation minimum pour signaler un message", - "min-rep-website": "Réputation minimum pour ajouter \"Site internet\" au profil utilisateur", - "min-rep-aboutme": "Réputation minimum pour ajouter \"À propos\" au profil utilisateur", - "min-rep-signature": "Réputation minimum pour ajouter \"Signature\" au profil utilisateur", + "min-rep-flag": "Réputation minimale pour signaler un message", + "min-rep-website": "Réputation minimale pour ajouter \"Site internet\" au profil utilisateur", + "min-rep-aboutme": "Réputation minimale pour ajouter \"À propos\" au profil utilisateur", + "min-rep-signature": "Réputation minimale pour ajouter \"Signature\" au profil utilisateur", "min-rep-profile-picture": "Réputation minimale pour ajouter une photo de profil", "min-rep-cover-picture": "Réputation minimale pour ajouter une photo de couverture", "flags": "Paramètres de signalement", "flags.limit-per-target": "Nombre maximum de fois qu'un élément peut être signalé", - "flags.limit-per-target-placeholder": "Défaut: 0", - "flags.limit-per-target-help": "Lorsqu'un message ou un utilisateur a été signalé plusieurs fois, chaque indicateur supplémentaire est considéré comme un \"rapport\" et est ajouté au signalement d'origine. Définissez cette option sur un nombre autre que zéro pour limiter le nombre de rapports qu'un signalement peut admettre.", - "flags.auto-flag-on-downvote-threshold": "Nombre de votes négatifs pour les signalements (0 pour désactiver, par défaut : 0)", + "flags.limit-per-target-placeholder": "Défaut : 0", + "flags.limit-per-target-help": "Lorsqu'un message ou un utilisateur a été signalé plusieurs fois, chaque indicateur supplémentaire est considéré comme un \"rapport\" et est ajouté au signalement d'origine. Définir cette option sur un nombre autre que zéro pour limiter le nombre de rapports qu'un signalement peut admettre.", + "flags.auto-flag-on-downvote-threshold": "Nombre de votes négatifs pour les signalements automatiques (0 pour désactiver, par défaut : 0)", "flags.auto-resolve-on-ban": "Résoudre automatiquement tous les tickets d'un utilisateur lorsqu'il est banni", "flags.action-on-resolve": "Procéder comme suit lorsqu'un signalement est résolu", "flags.action-on-reject": "Procéder comme suit lorsqu'un signalement est rejeté", diff --git a/public/language/fr/admin/settings/tags.json b/public/language/fr/admin/settings/tags.json index a2667cfd62..c617f9c843 100644 --- a/public/language/fr/admin/settings/tags.json +++ b/public/language/fr/admin/settings/tags.json @@ -3,11 +3,11 @@ "link-to-manage": "Gérer les mots-clés", "system-tags": "Gestion des mots-clés", "system-tags-help": "Seuls les utilisateurs privilégiés pourront utiliser ces mots-clés.", - "tags-per-topic": "Tags par sujet", - "min-per-topic": "Nombre minimum de mots-clés par sujet", - "max-per-topic": "Nombre maximum de mots-clés par sujet", - "min-length": "Longueur minimum des mots-clés", - "max-length": "Longueur maximum des mots-clés", + "tags-per-topic": "Mots-clés par sujet", + "min-per-topic": "Nombre minimale de mots-clés par sujet", + "max-per-topic": "Nombre maximale de mots-clés par sujet", + "min-length": "Longueur minimale des mots-clés", + "max-length": "Longueur maximale des mots-clés", "related-topics": "Sujets connexes", "max-related-topics": "Nombre maximum de sujets connexes à afficher (si supporté par le thème)" } \ No newline at end of file diff --git a/public/language/fr/admin/settings/uploads.json b/public/language/fr/admin/settings/uploads.json index a84342061d..1b0ef38326 100644 --- a/public/language/fr/admin/settings/uploads.json +++ b/public/language/fr/admin/settings/uploads.json @@ -1,45 +1,45 @@ { "posts": "Sujets", "orphans": "Fichiers orphelins", - "private": "Rendre privés les fichiers téléchargés", + "private": "Rendre privés les fichiers téléversés", "strip-exif-data": "Supprimer les données EXIF", - "preserve-orphaned-uploads": "Conserver les fichiers téléchargés après la suppression d'une publication.", - "orphanExpiryDays": "Jours pour garder les fichiers orphelins", + "preserve-orphaned-uploads": "Conserver les fichiers téléversés après la suppression d'une publication", + "orphanExpiryDays": "Durée (en jours) de conservation des fichiers orphelins", "orphanExpiryDays-help": "Les téléchargements orphelins seront supprimés du système de fichiers après ce délai :
Changer 0 Laissez vide pour désactiver.", - "private-extensions": "Rendre privé des extensions de fichier.", + "private-extensions": "Rendre privé des extensions de fichier", "private-uploads-extensions-help": "Renseigner ici une liste d'extensions de fichiers séparées par des virgules pour les rendre privées (par exemple : pdf, xls, doc). Une liste vide signifie que tous les fichiers sont privés.", "resize-image-width-threshold": "Redimensionner les images si elles sont plus larges que la valeur spécifiée", "resize-image-width-threshold-help": "(en pixels, valeur par défaut : 1520 pixels, mettez 0 pour désactiver)", "resize-image-width": "Redimensionner les images à la largeur spécifiée", "resize-image-width-help": "(en pixels, valeur par défaut : 760 pixels, mettez 0 pour désactiver)", - "resize-image-quality": "Qualité utilisée des images redimensionnées", + "resize-image-quality": "Qualité des images redimensionnées", "resize-image-quality-help": "Diminuer la qualité des images redimensionnées pour réduire leur taille.", - "max-file-size": "Taille maximum d'un fichier (en Kio)", + "max-file-size": "Taille maximale d'un fichier (en Kio)", "max-file-size-help": "(en kibioctets, défaut : 2048 Kio)", "reject-image-width": "Largeur maximale des images (en pixels)", "reject-image-width-help": "Les images plus larges que cette valeur seront rejetées.", "reject-image-height": "Hauteur maximale des images (en pixels)", "reject-image-height-help": "Les images plus grandes que cette valeur seront rejetées.", - "allow-topic-thumbnails": "Autoriser les utilisateurs à télécharger des miniatures de sujet", + "allow-topic-thumbnails": "Autoriser les utilisateurs à téléverser des miniatures de sujet", "topic-thumb-size": "Miniature du sujet", - "allowed-file-extensions": "Extensions de fichiers autorisés", - "allowed-file-extensions-help": "Entrer une liste d’extensions de fichier séparés par une virgule (ex : pdf,xls,doc). Une liste vide signifie que toutes les extensions sont autorisées.", - "upload-limit-threshold": "Limite d'envoi de fichiers par utilisateurs:", + "allowed-file-extensions": "Extensions de fichiers autorisées", + "allowed-file-extensions-help": "Entrer une liste d’extensions de fichier séparées par une virgule (ex : pdf,xls,doc). Une liste vide signifie que toutes les extensions sont autorisées.", + "upload-limit-threshold": "Limite d'envoi de fichiers par utilisateurs :", "upload-limit-threshold-per-minute": "Par %1 Minute", "upload-limit-threshold-per-minutes": "Par %1 Minutes", "profile-avatars": "Avatar", - "allow-profile-image-uploads": "Autoriser les utilisateurs à télécharger des avatars", - "convert-profile-image-png": "Convertir les avatars téléchargés au format PNG", + "allow-profile-image-uploads": "Autoriser les utilisateurs à téléverser des avatars", + "convert-profile-image-png": "Convertir les avatars téléversés au format PNG", "default-avatar": "Modifier l'avatar par défaut", - "upload": "Télécharger", + "upload": "Téléverser", "profile-image-dimension": "Dimensions de l'avatar", "profile-image-dimension-help": "(En pixels, par défaut : 128 pixels)", - "max-profile-image-size": "Taille maximum des avatars", + "max-profile-image-size": "Taille maximale des avatars", "max-profile-image-size-help": "(en kibioctets, défaut : 256 Kio)", - "max-cover-image-size": "Taille maximum des images de couverture", + "max-cover-image-size": "Taille maximale des images de couverture", "max-cover-image-size-help": "(en kibioctets, défaut : 2048 Kio)", "keep-all-user-images": "Garder les anciennes versions d'avatars et d'images de couverture sur le serveur", "profile-covers": "Images de profil", - "default-covers": "Image de couverture par défaut", - "default-covers-help": "Ajouter des images de couvertures par défaut séparées par des virgules pour les comptes n'ayant pas téléchargé d'image de couverture" + "default-covers": "Images de couverture par défaut", + "default-covers-help": "Ajouter des images de couverture par défaut séparées par des virgules pour les comptes n'ayant pas téléchargé d'image de couverture" } diff --git a/public/language/fr/admin/settings/user.json b/public/language/fr/admin/settings/user.json index cb59c86a0a..19c6a1e114 100644 --- a/public/language/fr/admin/settings/user.json +++ b/public/language/fr/admin/settings/user.json @@ -6,8 +6,8 @@ "allow-login-with.username-email": "Nom d'utilisateur ou e-mail", "allow-login-with.username": "Nom d'utilisateur uniquement", "account-settings": "Paramètres du compte", - "gdpr_enabled": "Activer le consentement GRPD", - "gdpr_enabled_help": "Une fois activé, tous les nouveaux inscrits seront tenus de donner explicitement leur consentement pour la collecte et l'utilisation des données en vertu du Règlement Général sur la Protection des Données (RGPD). Remarque: l'activation du RGPD n'oblige pas les utilisateurs préexistants à donner leur consentement. Pour ce faire, vous devrez installer le plugin GDPR.", + "gdpr_enabled": "Activer le consentement RGPD", + "gdpr_enabled_help": "Une fois activé, tous les nouveaux inscrits seront tenus de donner explicitement leur consentement pour la collecte et l'utilisation des données en vertu du Règlement Général sur la Protection des Données (RGPD). Remarque: l'activation du RGPD n'oblige pas les utilisateurs préexistants à donner leur consentement. Pour ce faire, vous devrez installer le plugin RGPD.", "disable-username-changes": "Désactiver le changement de nom d'utilisateur", "disable-email-changes": "Désactiver le changement d'adresse e-mail", "disable-password-changes": "Désactiver le changement de mot de passe", @@ -19,7 +19,7 @@ "disable-user-skins": "Empêcher les utilisateurs de choisir un skin personnalisé", "account-protection": "Protection du compte", "admin-relogin-duration": "Temps de reconnexion pour le compte administrateur (en minutes)", - "admin-relogin-duration-help": "Après un certain temps, l'accessibilité à la section d'administration nécessitera une reconnexion ; fixer le nombre à 0 pour désactiver cet effet.", + "admin-relogin-duration-help": "Après un certain temps, l'accessibilité à la section d'administration nécessitera une reconnexion, fixer le nombre à 0 pour désactiver cet effet.", "login-attempts": "Tentatives de connexions par heure", "login-attempts-help": "Si le nombre de tentatives de connexion à un compte dépasse ce seuil, le compte sera bloqué pour une durée pré-configurée", "lockout-duration": "Durée du blocage (minutes)", @@ -28,9 +28,9 @@ "session-time": "Temps de session", "session-time-days": "Jours", "session-time-seconds": "Secondes", - "session-time-help": "Ces valeurs permettent de définir la durée pendant laquelle un utilisateur reste connecté lorsqu'il coche l'option \"Se souvenir de moi\". Notez que seulement une de ces valeurs sera utilisée. S'il n'y a pas de valeur en secondes, la valeur sera en jours. S'il n'y a pas de valeur en jours, la valeur sera par défaut est 14 jours.", + "session-time-help": "Ces valeurs permettent de définir la durée pendant laquelle un utilisateur reste connecté lorsqu'il coche l'option \"Se souvenir de moi\". Notez que seulement une de ces valeurs sera utilisée. S'il n'y a pas de valeur en secondes, la valeur sera de jours. S'il n'y a pas de valeur en jours, la valeur sera par défaut est 14 jours.", "session-duration": "Durée de la session si \"Se souvenir de moi\" n'est pas coché (en secondes)", - "session-duration-help": "Par défaut - ou s'il est défini sur 0 - un utilisateur restera connecté pendant toute la durée de la session (par exemple, aussi longtemps que la fenêtre/l'onglet du navigateur reste ouvert(e)). Définir cette valeur pour invalider explicitement la session après le nombre de secondes spécifié.", + "session-duration-help": "Par défaut — ou s'il est défini sur 0 — un utilisateur restera connecté pendant toute la durée de la session (par exemple, aussi longtemps que la fenêtre/l'onglet du navigateur reste ouvert(e)). Définir cette valeur pour invalider explicitement la session après le nombre de secondes spécifiées.", "online-cutoff": "Minutes après lesquelles l'utilisateur est considéré comme inactif", "online-cutoff-help": "Si l'utilisateur n'effectue aucune action pendant cette durée, il est considéré comme inactif et ne reçoit pas de mises à jour en temps réel.", "registration": "Inscription des utilisateurs", @@ -42,9 +42,9 @@ "registration-type.invite-only": "Uniquement sur invitation", "registration-type.admin-invite-only": "Uniquement sur invitation d'un admin", "registration-type.disabled": "Pas d'inscription", - "registration-type.help": "Normal - Les utilisateurs peuvent s'inscrire à partir de la page d'inscription.
\nInvitation uniquement - Les utilisateurs peuvent inviter d'autres personnes à partir de la page des utilisateurs.
\nInvitation administrateur uniquement - Seuls les administrateurs peuvent inviter d'autres personnes à partir des pages des utilisateurs et des pages d'administration.
\nAucune inscription - Aucune inscription d'utilisateur.
", + "registration-type.help": "Normal - Les utilisateurs peuvent s'inscrire à partir de la page d'inscription.
\nUniquement sur invitation - Les utilisateurs peuvent inviter d'autres personnes à partir de la page des utilisateurs.
\nInvitation administrateur uniquement - Seuls les administrateurs peuvent inviter d'autres personnes à partir des pages des utilisateurs et des pages d'administration.
\nAucune inscription - Aucune inscription d'utilisateur.
", "registration-approval-type.help": "Normal - Les utilisateurs sont enregistrés immédiatement.
\nApprobation de l'administrateur - Les inscriptions des utilisateurs sont placées dans une file d'attente d'approbation pour les administrateurs.
\nApprobation par adresses IP pour les nouveaux utilisateurs, Approbation de l'administrateur pour les adresses IP ayant déjà un compte.
", - "registration-queue-auto-approve-time": "Durée d'approbation automatique", + "registration-queue-auto-approve-time": "Délai d'approbation automatique", "registration-queue-auto-approve-time-help": "Heures avant l'approbation automatique de l'utilisateur. 0 pour désactiver.", "registration-queue-show-average-time": "Afficher aux utilisateurs le temps moyen nécessaire d'approbation", "registration.max-invites": "Nombre maximum d'invitations par utilisateur", @@ -52,11 +52,11 @@ "max-invites-help": "0 pour supprimer cette restriction. Les admins n'ont aucune restriction
Valable uniquement pour \"Uniquement sur invitation\"", "invite-expiration": "Expiration des invitations", "invite-expiration-help": "nombre de jours avant que l'invitation n'expire.", - "min-username-length": "Longueur minimum du nom d'utilisateur", - "max-username-length": "Longueur maximum du nom d'utilisateur", - "min-password-length": "Longueur minimum du mot de passe", + "min-username-length": "Longueur minimale du nom d'utilisateur", + "max-username-length": "Longueur maximale du nom d'utilisateur", + "min-password-length": "Longueur minimale du mot de passe", "min-password-strength": "Sécurité minimale du mot de passe", - "max-about-me-length": "Longueur maximum du À propos de moi", + "max-about-me-length": "Longueur maximale du À propos de moi", "terms-of-use": "Conditions générales d'utilisation du forum (Laisser vide pour désactiver)", "user-search": "Rechercher un utilisateur", "user-search-results-per-page": "Nombre d'utilisateurs à afficher dans les résultats de recherche", @@ -67,14 +67,14 @@ "outgoing-new-tab": "Ouvrir les liens sortants dans un nouvel onglet", "topic-search": "Activer la recherche au sein des sujets", "update-url-with-post-index": "Mettre à jour l'URL avec l'index des articles", - "digest-freq": "S'inscrire aux comptes rendus", + "digest-freq": "S'inscrire aux comptes rendus d'activité", "digest-freq.off": "Désactivé", "digest-freq.daily": "Quotidien", "digest-freq.weekly": "Hebdomadaire", - "digest-freq.biweekly": "Deux fois par semaine", + "digest-freq.biweekly": "Bihebdomadaire", "digest-freq.monthly": "Mensuel", "email-chat-notifs": "Envoyer un e-mail si un nouveau message de chat arrive lorsque je ne suis pas en ligne", - "email-post-notif": "Envoyer un e-mail lors de réponses envoyées aux sujets auxquels que je suis", + "email-post-notif": "Envoyer un e-mail lorsque de nouvelles réponses sont ajoutées aux sujets que je suis", "follow-created-topics": "S'abonner aux sujets que vous créez", "follow-replied-topics": "S'abonner aux sujets auxquels vous répondez", "default-notification-settings": "Paramètres des notifications par défaut", From d906097a22f3abdcf9013143db77c91b0c360fba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Sat, 16 Sep 2023 20:46:54 -0400 Subject: [PATCH 045/275] feat: add composerActions for chat rooms --- install/package.json | 2 +- public/openapi/read/user/userslug/chats/roomid.yaml | 3 +++ src/messaging/rooms.js | 1 + 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index 189aed4414..b8e13b90f6 100644 --- a/install/package.json +++ b/install/package.json @@ -95,7 +95,7 @@ "nodebb-plugin-2factor": "7.2.2", "nodebb-plugin-composer-default": "10.2.23", "nodebb-plugin-dbsearch": "6.2.2", - "nodebb-plugin-emoji": "5.1.5", + "nodebb-plugin-emoji": "5.1.6", "nodebb-plugin-emoji-android": "4.0.0", "nodebb-plugin-markdown": "12.2.4", "nodebb-plugin-mentions": "4.3.5", diff --git a/public/openapi/read/user/userslug/chats/roomid.yaml b/public/openapi/read/user/userslug/chats/roomid.yaml index cb350aa2e0..24bd0cb90b 100644 --- a/public/openapi/read/user/userslug/chats/roomid.yaml +++ b/public/openapi/read/user/userslug/chats/roomid.yaml @@ -496,4 +496,7 @@ get: type: string bodyClasses: type: array + composerActions: + type: array + description: A list of buttons that are added next to the send message button by plugins - $ref: ../../../../components/schemas/CommonProps.yaml#/CommonProps \ No newline at end of file diff --git a/src/messaging/rooms.js b/src/messaging/rooms.js index c78be73671..a1312bf3a8 100644 --- a/src/messaging/rooms.js +++ b/src/messaging/rooms.js @@ -534,6 +534,7 @@ module.exports = function (Messaging) { room.isAdmin = isAdmin; room.notificationOptions = notifOptions.options; room.notificationOptionsIcon = notifOptions.selectedIcon; + room.composerActions = []; const payload = await plugins.hooks.fire('filter:messaging.loadRoom', { uid, data, room }); return payload.room; From b7d8fd1e36f3d0edf2c7324f81971f3ff4312b85 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Sat, 16 Sep 2023 20:50:43 -0400 Subject: [PATCH 046/275] chore: up themes --- install/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/install/package.json b/install/package.json index b8e13b90f6..29801ea3e1 100644 --- a/install/package.json +++ b/install/package.json @@ -102,10 +102,10 @@ "nodebb-plugin-ntfy": "1.6.1", "nodebb-plugin-spam-be-gone": "2.1.1", "nodebb-rewards-essentials": "0.2.3", - "nodebb-theme-harmony": "1.1.61", + "nodebb-theme-harmony": "1.1.62", "nodebb-theme-lavender": "7.1.3", "nodebb-theme-peace": "2.1.19", - "nodebb-theme-persona": "13.2.30", + "nodebb-theme-persona": "13.2.31", "nodebb-widget-essentials": "7.0.13", "nodemailer": "6.9.5", "nprogress": "0.2.0", From 7568be3c7d5c465f3f123b5e7d5a1c317aaedc72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Sat, 16 Sep 2023 20:53:14 -0400 Subject: [PATCH 047/275] chore: up emoji --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index 29801ea3e1..6697abad77 100644 --- a/install/package.json +++ b/install/package.json @@ -95,7 +95,7 @@ "nodebb-plugin-2factor": "7.2.2", "nodebb-plugin-composer-default": "10.2.23", "nodebb-plugin-dbsearch": "6.2.2", - "nodebb-plugin-emoji": "5.1.6", + "nodebb-plugin-emoji": "5.1.7", "nodebb-plugin-emoji-android": "4.0.0", "nodebb-plugin-markdown": "12.2.4", "nodebb-plugin-mentions": "4.3.5", From 6553e45408bb99686a4eb7dd8f3b4e37b0bd29c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Sat, 16 Sep 2023 21:07:18 -0400 Subject: [PATCH 048/275] fix: remaining text, when sending with send button --- public/src/client/chats/messages.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/public/src/client/chats/messages.js b/public/src/client/chats/messages.js index 3a39352392..446d4ce31b 100644 --- a/public/src/client/chats/messages.js +++ b/public/src/client/chats/messages.js @@ -17,20 +17,21 @@ define('forum/chats/messages', [ const chatContent = inputEl.parents(`[component="chat/messages"][data-roomid="${roomId}"]`); inputEl.val('').trigger('input'); - messages.updateRemainingLength(inputEl.parent()); + const chatComposer = inputEl.parents('[component="chat/composer"]'); + messages.updateRemainingLength(chatComposer); messages.updateTextAreaHeight(chatContent); const payload = { roomId, message }; ({ roomId, message } = await hooks.fire('filter:chat.send', payload)); - const replyToEl = inputEl.parents('[component="chat/composer"]') - .find('[component="chat/composer/replying-to"]'); + const replyToEl = chatComposer.find('[component="chat/composer/replying-to"]'); const toMid = replyToEl.attr('data-tomid'); + api.post(`/chats/${roomId}`, { message, toMid: toMid }).then(() => { hooks.fire('action:chat.sent', { roomId, message }); replyToEl.addClass('hidden'); replyToEl.attr('data-tomid', ''); }).catch((err) => { inputEl.val(message).trigger('input'); - messages.updateRemainingLength(inputEl.parent()); + messages.updateRemainingLength(chatComposer); messages.updateTextAreaHeight(chatContent); if (err.message === '[[error:email-not-confirmed-chat]]') { return messagesModule.showEmailConfirmWarning(err.message); From d92a96ed454b60d6ae3bbf681a9188f951358287 Mon Sep 17 00:00:00 2001 From: Misty Release Bot Date: Sun, 17 Sep 2023 09:18:41 +0000 Subject: [PATCH 049/275] Latest translations and fallbacks --- public/language/fr/admin/admin.json | 2 +- .../language/fr/admin/advanced/database.json | 2 +- .../fr/admin/appearance/customise.json | 4 +- .../language/fr/admin/appearance/skins.json | 30 +++++------ .../language/fr/admin/appearance/themes.json | 2 +- public/language/fr/admin/dashboard.json | 6 +-- public/language/fr/admin/extend/plugins.json | 6 +-- public/language/fr/admin/extend/widgets.json | 6 +-- .../language/fr/admin/manage/admins-mods.json | 2 +- .../language/fr/admin/manage/categories.json | 10 ++-- public/language/fr/admin/manage/digest.json | 2 +- public/language/fr/admin/manage/groups.json | 2 +- .../language/fr/admin/manage/privileges.json | 4 +- public/language/fr/admin/menu.json | 8 +-- public/language/fr/admin/settings/email.json | 4 +- .../language/fr/admin/settings/general.json | 4 +- public/language/fr/admin/settings/post.json | 8 +-- public/language/fr/admin/settings/user.json | 2 +- .../fr/admin/settings/web-crawler.json | 2 +- public/language/fr/email.json | 22 ++++---- public/language/fr/error.json | 20 ++++---- public/language/fr/flags.json | 8 +-- public/language/fr/global.json | 2 +- public/language/fr/ip-blacklist.json | 8 +-- public/language/fr/modules.json | 26 +++++----- public/language/fr/notifications.json | 18 +++---- public/language/fr/post-queue.json | 6 +-- public/language/fr/register.json | 4 +- public/language/fr/reset_password.json | 4 +- public/language/fr/themes/harmony.json | 4 +- public/language/fr/topic.json | 8 +-- public/language/fr/uploads.json | 6 +-- public/language/fr/user.json | 50 +++++++++---------- public/language/fr/users.json | 8 +-- 34 files changed, 150 insertions(+), 150 deletions(-) diff --git a/public/language/fr/admin/admin.json b/public/language/fr/admin/admin.json index fcb1689664..7a1e3d8e1d 100644 --- a/public/language/fr/admin/admin.json +++ b/public/language/fr/admin/admin.json @@ -1,5 +1,5 @@ { - "alert.confirm-rebuild-and-restart": "Êtes-vous sûr de vouloir reconstruire et redémarrer NodeBB ?", + "alert.confirm-rebuild-and-restart": "Êtes-vous sûr de vouloir régénérer et redémarrer NodeBB ?", "alert.confirm-restart": "Êtes-vous sûr de vouloir redémarrer NodeBB ?", "acp-title": "%1 | Panneau d'administration NodeBB", diff --git a/public/language/fr/admin/advanced/database.json b/public/language/fr/admin/advanced/database.json index 7d83d83fa2..d8ed6fc1b0 100644 --- a/public/language/fr/admin/advanced/database.json +++ b/public/language/fr/admin/advanced/database.json @@ -22,7 +22,7 @@ "mongo.bytes-out": "Données sorties", "mongo.num-requests": "Nombre de requêtes", "mongo.raw-info": "Informations brutes MongoDB", - "mongo.unauthorized": "NodeBB n'a pas pu interroger la base de données MongoDB pour obtenir des statistiques pertinentes. Assurez-vous que l'utilisateur utilisé par NodeBB contient le message "clusterMonitor" pour le rôle "admin" des bases de données.", + "mongo.unauthorized": "NodeBB n'a pas pu interroger la base de données MongoDB pour obtenir des statistiques pertinentes. Assurez-vous que l'utilisateur utilisé par NodeBB contient le message \"clusterMonitor\" pour le rôle \"admin\" des bases de données.", "redis": "Redis", "redis.version": "Version de Redis", diff --git a/public/language/fr/admin/appearance/customise.json b/public/language/fr/admin/appearance/customise.json index c673596d66..b948e3b53e 100644 --- a/public/language/fr/admin/appearance/customise.json +++ b/public/language/fr/admin/appearance/customise.json @@ -9,12 +9,12 @@ "custom-js.enable": "Activer le Javascript personnalisé", "custom-header": "En-tête personnalisé", - "custom-header.description": "Saisir du code HTML personnalisé ici (par exemple, les balises Meta, etc.), qui sera ajouté à la section <head> du balisage de votre forum. Les mots clés sont autorisés, mais sont déconseillés, dans la mesure où le Javascript personnalisé est disponible.", + "custom-header.description": "Saisir du code HTML personnalisé ici (par exemple, les balises Meta, etc.), qui sera ajouté à la section du balisage de votre forum. Les mots clés sont autorisés, mais sont déconseillés, dans la mesure où le Javascript personnalisé est disponible.", "custom-header.enable": "Activer les en-têtes personnalisés", "custom-css.livereload": "Activer le rechargement en direct", "custom-css.livereload.description": "Activer cette option pour forcer toutes les sessions sur chaque appareil connecté à votre compte à se rafraichir lorsque vous cliquez sur Enregistrer.", "bsvariables": "_variables.scss", - "bsvariables.description": "Remplacer les variables de lancement ici. Vous pouvez également utiliser un outil comme bootstrap.build et copier coller le code ici.
Les modifications nécessitent une reconstruction et un redémarrage.", + "bsvariables.description": "Remplacer les variables de lancement ici. Vous pouvez également utiliser un outil comme bootstrap.build et copier coller le code ici.
Les modifications nécessitent une régénération et un redémarrage.", "bsvariables.enable": "Activer _variables.scss" } \ No newline at end of file diff --git a/public/language/fr/admin/appearance/skins.json b/public/language/fr/admin/appearance/skins.json index 6294c8470e..f9f3098d5e 100644 --- a/public/language/fr/admin/appearance/skins.json +++ b/public/language/fr/admin/appearance/skins.json @@ -1,18 +1,18 @@ { - "skins": "Skins", - "bootswatch-skins": "Skins de lancement", - "custom-skins": "Skins personnalisés", - "add-skin": "Ajouter un Skin", - "save-custom-skins": "Sauvegarder les skins personnalisés", - "save-custom-skins-success": "Skins personnalisés sauvegardé avec succès", - "custom-skin-name": "Nom du skin personnalisé", - "custom-skin-variables": "Variables du skin personnalisé", - "loading": "Chargements des skins…", + "skins": "Habillages", + "bootswatch-skins": "Habillages de lancement", + "custom-skins": "Habillages personnalisés", + "add-skin": "Ajouter un habillage", + "save-custom-skins": "Sauvegarder les habillages personnalisés", + "save-custom-skins-success": "Habillages personnalisés sauvegardé avec succès", + "custom-skin-name": "Nom de l'habillage personnalisé", + "custom-skin-variables": "Variables de l'habillage personnalisé", + "loading": "Chargements des habillages…", "homepage": "Page d'accueil", - "select-skin": "Sélectionner le skin", - "revert-skin": "Rétablir le skin", - "current-skin": "Skin actuel", - "skin-updated": "Skin mis à jour", - "applied-success": "Le skin %1 a été appliqué avec succès.", - "revert-success": "Couleurs du skin remises par défaut" + "select-skin": "Sélectionner l'habillage", + "revert-skin": "Rétablir l'habillage", + "current-skin": "Habillage actuel", + "skin-updated": "Habillage mis à jour", + "applied-success": "L'habillage %1 a été appliqué avec succès.", + "revert-success": "Couleurs de l'habillage remises par défaut" } \ No newline at end of file diff --git a/public/language/fr/admin/appearance/themes.json b/public/language/fr/admin/appearance/themes.json index 7504113c23..9fbb9122c5 100644 --- a/public/language/fr/admin/appearance/themes.json +++ b/public/language/fr/admin/appearance/themes.json @@ -9,5 +9,5 @@ "revert-confirm": "Êtes-vous sûr de vouloir restaurer le thème NodeBB par défaut ?", "theme-changed": "Thème changé", "revert-success": "Vous avez restauré avec succès le thème par défaut de NodeBB.", - "restart-to-activate": "Veuillez reconstruire et redémarrer votre NodeBB pour activer ce thème." + "restart-to-activate": "Veuillez régénérer et redémarrer votre NodeBB pour activer ce thème." } \ No newline at end of file diff --git a/public/language/fr/admin/dashboard.json b/public/language/fr/admin/dashboard.json index 33bc4bbc4e..dfa794d085 100644 --- a/public/language/fr/admin/dashboard.json +++ b/public/language/fr/admin/dashboard.json @@ -42,10 +42,10 @@ "search-plugin-tooltip": "Installer un plugin de recherche depuis la page des plugins pour activer la fonctionnalité de recherche", "control-panel": "Contrôle du système", - "rebuild-and-restart": "Reconstruire & Redémarrer", + "rebuild-and-restart": "Régénérer & Redémarrer", "restart": "Redémarrer", - "restart-warning": "Reconstruire ou redémarrer NodeBB coupera toutes les connexions existantes pendant quelques secondes. ", - "restart-disabled": "La reconstruction et le redémarrage de votre forum ont été désactivés car vous ne semblez pas les exécuter à l'aide du serveur approprié.", + "restart-warning": "Régénérer ou redémarrer NodeBB coupera toutes les connexions existantes pendant quelques secondes. ", + "restart-disabled": "La régénération et le redémarrage de votre forum ont été désactivés car vous ne semblez pas les exécuter à l'aide du serveur approprié.", "maintenance-mode": "Mode maintenance", "maintenance-mode-title": "Cliquer ici pour passer NodeBB en mode maintenance", "dark-mode": "Mode sombre", diff --git a/public/language/fr/admin/extend/plugins.json b/public/language/fr/admin/extend/plugins.json index 5d0a55fddb..ee8e3b5083 100644 --- a/public/language/fr/admin/extend/plugins.json +++ b/public/language/fr/admin/extend/plugins.json @@ -40,9 +40,9 @@ "alert.upgraded": "Plugin mis à jour", "alert.installed": "Plugin installé", "alert.uninstalled": "Plugin désinstallé", - "alert.activate-success": "Veuillez reconstruire et redémarrer votre NodeBB pour activer complètement ce plugin", + "alert.activate-success": "Veuillez régénérer et redémarrer votre NodeBB pour activer complètement ce plugin", "alert.deactivate-success": "Plugin désactivé avec succès", - "alert.upgrade-success": "Veuillez reconstruire et redémarrer votre NodeBB pour finaliser la mise à jour de ce plugin.", + "alert.upgrade-success": "Veuillez régénérer et redémarrer votre NodeBB pour finaliser la mise à jour de ce plugin.", "alert.install-success": "Plugin installé avec succès, veuillez maintenant l'activer.", "alert.uninstall-success": "Le plugin a été désactivé et désinstallé avec succès.", "alert.suggest-error": "

NodeBB n'a pas pu joindre le gestionnaire de paquets, procéder à l'installation de la dernière version ?

Le serveur a répondu (%1) : %2
", @@ -50,7 +50,7 @@ "alert.incompatible": "

Votre version de NodeBB (v%1) ne peut mettre à jour que vers la version v%2 de ce plugin. Veuillez mettre à jour NodeBB si vous souhaitez installer une version plus récente de ce plugin.

", "alert.possibly-incompatible": "

Aucune information de compatibilité trouvée

Ce plugin n'a pas spécifié de version pour une installation sur votre version de NodeBB. Aucune compatibilité ne peut être garantie et ce plugin pourrait empêcher NodeBB de démarrer correctement.

Dans l'éventualité où NodeBB ne pourrait pas démarrer proprement :

$ ./nodebb reset plugin=\"%1\"

Voulez-vous continuer l'installation de ce plugin ?

", "alert.reorder": "Réorganiser les plugins", - "alert.reorder-success": "Veuillez reconstruire et redémarrer votre NodeBB pour finaliser le processus.", + "alert.reorder-success": "Veuillez régénérer et redémarrer votre NodeBB pour finaliser le processus.", "license.title": "Information sur la licence du plugin", "license.intro": "Le plugin %1 est sous licence %2. Veuillez lire et comprendre les termes de la licence avant d’activer ce plugin.", diff --git a/public/language/fr/admin/extend/widgets.json b/public/language/fr/admin/extend/widgets.json index 4941355755..81c29e09f7 100644 --- a/public/language/fr/admin/extend/widgets.json +++ b/public/language/fr/admin/extend/widgets.json @@ -1,11 +1,11 @@ { "widgets": "Widgets", "available": "Widgets disponibles", - "explanation": "Sélectionner un widget depuis le menu puis le glisser-déposer dans une zone template du widget à gauche.", + "explanation": "Sélectionner un widget depuis le menu puis glissez & déposez-le dans une zone template du widget à gauche.", "none-installed": "Aucun widget trouvé ! Activez le plugin Widget Essentials dans le panneau de configuration des plugins.", "clone-from": "Cloner le widget", "containers.available": "Conteneurs disponibles", - "containers.explanation": "Glisser-déposer sur n'importe quel widget actif", + "containers.explanation": "Glisser & déposer sur n'importe quel widget actif", "containers.none": "Aucun", "container.well": "Well", "container.jumbotron": "Jombotron", @@ -24,7 +24,7 @@ "title": "Titre", "title.placeholder": "Titre (indiqué uniquement sur certains blocs)", "container": "Bloc", - "container.placeholder": "Glisser et déposer un bloc ou entrer HTML ici.", + "container.placeholder": "Glisser & déposer un bloc ou entrer HTML ici.", "show-to-groups": "Visible pour les groupes", "hide-from-groups": "Masquer pour les groupes", "start-date": "Date de début", diff --git a/public/language/fr/admin/manage/admins-mods.json b/public/language/fr/admin/manage/admins-mods.json index 6a6c195983..8130f0e7e4 100644 --- a/public/language/fr/admin/manage/admins-mods.json +++ b/public/language/fr/admin/manage/admins-mods.json @@ -1,5 +1,5 @@ { - "manage-admins-and-mods": "Gérer les admins et les modos", + "manage-admins-and-mods": "Gérer les Admins & les Modos", "administrators": "Administrateurs", "global-moderators": "Modérateurs Globaux", "moderators": "Modérateurs", diff --git a/public/language/fr/admin/manage/categories.json b/public/language/fr/admin/manage/categories.json index a0e18e5845..f349bdda06 100644 --- a/public/language/fr/admin/manage/categories.json +++ b/public/language/fr/admin/manage/categories.json @@ -22,7 +22,7 @@ "upload": "Envoi", "delete-image": "Enlever", "category-image": "Image de la catégorie", - "image-and-icon": "Image et icône", + "image-and-icon": "Image & Icône", "parent-category": "Catégorie parente", "optional-parent-category": "Catégorie parente (optionnel)", "top-level": "Vers le haut", @@ -71,10 +71,10 @@ "analytics.back": "Revenir à la liste des catégories", "analytics.title": "Statistiques pour la catégorie \"%1\"", - "analytics.pageviews-hourly": "Image 1 – Pages vues par heure pour cette catégorie", - "analytics.pageviews-daily": "Image 2 – Pages vues par jour pour cette catégorie", - "analytics.topics-daily": "Image 3 – Sujets créés par jour dans catégorie", - "analytics.posts-daily": "Image 4 – Messages par jour postés dans cette catégorie", + "analytics.pageviews-hourly": "Image 1 - Pages vues par heure pour cette catégorie", + "analytics.pageviews-daily": "Image 2 - Pages vues par jour pour cette catégorie", + "analytics.topics-daily": "Image 3 - Sujets créés par jour dans catégorie", + "analytics.posts-daily": "Image 4 - Messages par jour postés dans cette catégorie", "alert.created": "Créée", "alert.create-success": "Catégorie créée avec succès !", diff --git a/public/language/fr/admin/manage/digest.json b/public/language/fr/admin/manage/digest.json index 3b8a9b9eb1..6f9728bfdc 100644 --- a/public/language/fr/admin/manage/digest.json +++ b/public/language/fr/admin/manage/digest.json @@ -7,7 +7,7 @@ "subscription": "Type d'abonnement", "last-delivery": "Dernier envoi réussi", "default": "Valeur par défaut", - "default-help": "La valeur par défaut signifie que l'utilisateur n'a pas explicitement modifié les paramètres pour les lettres d'activités, qui sont : "%1"", + "default-help": "La valeur par défaut signifie que l'utilisateur n'a pas explicitement modifié les paramètres pour les lettres d'activités, qui sont : \"%1\"", "resend": "Renvoi", "resend-all-confirm": "Voulez-vous vraiment exécuter manuellement cet envoi ?", "resent-single": "Lettre d'activité envoyée", diff --git a/public/language/fr/admin/manage/groups.json b/public/language/fr/admin/manage/groups.json index f3322895e7..4dc13f6cbf 100644 --- a/public/language/fr/admin/manage/groups.json +++ b/public/language/fr/admin/manage/groups.json @@ -4,7 +4,7 @@ "edit-group": "modifier un groupe", "back-to-groups": "Retour aux groupes", "view-group": "Voir le groupe", - "icon-and-title": "Icône & titre", + "icon-and-title": "Icône & Titre", "name": "Nom du groupe", "badge": "Badge", "properties": "Propriétés", diff --git a/public/language/fr/admin/manage/privileges.json b/public/language/fr/admin/manage/privileges.json index fb2eee78a6..94776fc493 100644 --- a/public/language/fr/admin/manage/privileges.json +++ b/public/language/fr/admin/manage/privileges.json @@ -43,13 +43,13 @@ "admin-categories": "Catégories", "admin-privileges": "Privilèges", "admin-users": "Utilisateurs", - "admin-admins-mods": "Admin & Modo", + "admin-admins-mods": "Admins & Modos", "admin-groups": "Groupes", "admin-tags": "Mots-clés", "admin-settings": "Paramètres", "alert.confirm-moderate": "Voulez-vous vraiment accorder le privilège de modération à ce groupe d'utilisateurs ? Ce groupe est public et tous les utilisateurs peuvent le rejoindre.", - "alert.confirm-admins-mods": "Voulez-vous vraiment attribuer les droits d'administration et de modération à cet utilisateur / groupe ? Les utilisateurs disposant de ce privilège peuvent promouvoir et rétrograder d'autres utilisateurs à des rôles privilégiés, y compris le super administrateur", + "alert.confirm-admins-mods": "Voulez-vous vraiment attribuer les droits d'administration et de modération à cet utilisateur ou ce groupe ? Les utilisateurs disposant de ce privilège peuvent promouvoir et rétrograder d'autres utilisateurs à des rôles privilégiés, y compris le super administrateur", "alert.confirm-save": "Veuillez confirmer votre intention de sauvegarder ces privilèges", "alert.confirm-discard": "Êtes-vous sûr de vouloir annuler vos modifications de privilèges ?", "alert.discarded": "Modification des privilèges annulée", diff --git a/public/language/fr/admin/menu.json b/public/language/fr/admin/menu.json index 5e6e1205f2..a3b607115b 100644 --- a/public/language/fr/admin/menu.json +++ b/public/language/fr/admin/menu.json @@ -12,7 +12,7 @@ "manage/privileges": "Privilèges", "manage/tags": "Mots-clés", "manage/users": "Utilisateurs", - "manage/admins-mods": "Modération", + "manage/admins-mods": "Admins & Modos", "manage/registration": "File d'inscription", "manage/flagged-content": "Contenu signalé", "manage/post-queue": "File d’attente des messages", @@ -25,7 +25,7 @@ "settings/general": "Général", "settings/homepage": "Page d'accueil", "settings/navigation": "Navigation", - "settings/reputation": "Réputation", + "settings/reputation": "Réputation & Signalements", "settings/email": "Email", "settings/user": "Utilisateurs", "settings/group": "Groupes", @@ -49,7 +49,7 @@ "section-appearance": "Apparence", "appearance/themes": "Thèmes", - "appearance/skins": "Apparence", + "appearance/skins": "habillages", "appearance/customise": "Contenu personnalisé (HTML/JS/CSS)", "section-extend": "Extensions", @@ -73,7 +73,7 @@ "development/info": "Info", "rebuild-and-restart-forum": "Régénérer & Redémarrer votre forum", - "rebuild-and-restart": "Reconstruire & Redémarrer", + "rebuild-and-restart": "Régénérer & Redémarrer", "restart-forum": "Redémarrer le forum", "restart": "Redémarrer", "logout": "Déconnexion ", diff --git a/public/language/fr/admin/settings/email.json b/public/language/fr/admin/settings/email.json index 750faa1889..d0e4c85f22 100644 --- a/public/language/fr/admin/settings/email.json +++ b/public/language/fr/admin/settings/email.json @@ -13,8 +13,8 @@ "smtp-transport-help": "Vous pouvez sélectionner depuis une liste de services ou entrer un service personnalisé.", "smtp-transport.service": "Sélectionner un service", "smtp-transport.service-custom": "Service personnalisé", - "smtp-transport.service-help": "Sélectionnez un nom de service ci-dessus afin d'utiliser les informations connues à son sujet. Vous pouvez également sélectionner un service personnalisé et entrer les détails ci-dessous.", - "smtp-transport.gmail-warning1": "Si vous utilisez Gmail comme fournisseur de messagerie, vous devrez générer un mot de passe d'application afin que NodeBB s'authentifie avec succès. Vous pouvez en générer un sur la page Mots de passe .", + "smtp-transport.service-help": "Sélectionnez un nom de service ci-dessus afin d'utiliser les informations connues à son sujet. Vous pouvez également sélectionner un \"Service personnalisé\" et entrer les détails ci-dessous.", + "smtp-transport.gmail-warning1": "Si vous utilisez Gmail comme fournisseur de messagerie, vous devrez générer un \"Mot de passe d'application\" afin que NodeBB s'authentifie avec succès. Vous pouvez en générer un sur la page Mots de passe .", "smtp-transport.gmail-warning2": "Pour plus d'information sur cette solution de contournement, veuillez consulter cet article de NodeMailer sur le problème. Une alternative serait d'utiliser un plugin tiers d'envoi d'e-mail tel que SendGrid, Mailgun, etc. Parcourez les plugins disponibles ici.", "smtp-transport.auto-enable-toast": "Il semble que vous configurez un serveur SMTP. Nous avons activé l'option \" SMTP\" pour vous.", "smtp-transport.host": "Host SMTP", diff --git a/public/language/fr/admin/settings/general.json b/public/language/fr/admin/settings/general.json index 614f65365d..522ce1e182 100644 --- a/public/language/fr/admin/settings/general.json +++ b/public/language/fr/admin/settings/general.json @@ -13,12 +13,12 @@ "browser-title": "Titre dans le navigateur", "browser-title-help": "Si aucun titre dans le navigateur n'est spécifié, le titre du site sera utilisé", "title-layout": "Disposition du titre", - "title-layout-help": "Définir la manière dont le titre est structuré dans le navigateur ex : pageTitle | browserTitle", + "title-layout-help": "Définir la manière dont le titre est structuré dans le navigateur ex : {pageTitle} | {browserTitle}", "description.placeholder": "Une courte description de votre communauté", "description": "Description du site", "keywords": "Mots-clés du site", "keywords-placeholder": "Mots-clés décrivant votre communauté, séparés par des virgules", - "logo-and-icons": "Logo et icônes du site", + "logo-and-icons": "Logo & Icônes du site", "logo.image": "Image", "logo.image-placeholder": "Chemin vers un logo à afficher dans l'en-tête du forum", "logo.upload": "Téléverser", diff --git a/public/language/fr/admin/settings/post.json b/public/language/fr/admin/settings/post.json index 93af7bc7a9..8207fc0bde 100644 --- a/public/language/fr/admin/settings/post.json +++ b/public/language/fr/admin/settings/post.json @@ -30,17 +30,17 @@ "restrictions.stale-help": "Si un sujet est considéré comme \"périmé\", un message sera affiché aux utilisateurs tentant de répondre au sujet", "timestamp": "Horodatage", "timestamp.cut-off": "Date de coupure (en jours)", - "timestamp.cut-off-help": "Les dates et heures seront affichées de façon relative (par exemple \"il y a 3 heures\", \"il y a 5 jours\"), et localisées. Après un certain temps, le texte peut afficher la date elle-même (par exemple 5 Novembre 2016, 15:30).
(Défaut : 30, ou un mois). Régler à 0 pour toujours afficher des dates, laisser vide pour toujours afficher des dates relatives.", + "timestamp.cut-off-help": "Dates & heures seront affichées de façon relative (par exemple \"il y a 3 heures\", \"il y a 5 jours\"), et localisées. Après un certain temps, le texte peut afficher la date elle-même (par exemple 5 Novembre 2016, 15:30).
(Défaut : 30, ou un mois). Régler à 0 pour toujours afficher des dates, laisser vide pour toujours afficher des dates relatives.", "timestamp.necro-threshold": "Seuil d'archivage (en jours)", "timestamp.necro-threshold-help": "Un message sera affiché entre les messages si le temps qui les sépare est plus long que le seuil d'archivage. (Par défaut : 7 ou une semaine). Définissez sur 0 pour désactiver.", "timestamp.topic-views-interval": "Incrément du nombre de vues du sujet (en minutes)", "timestamp.topic-views-interval-help": "Les consultations de sujet ne s'incrémenteront qu'une fois toutes les X minutes, comme défini par ce paramètre.", "teaser": "Message d'aperçu", - "teaser.last-post": "Dernier – Affiche le dernier message, ou celui d'origine, si il n'y a pas de réponse", - "teaser.last-reply": "Dernier – Affiche le dernier message, ou \"Aucune réponse\" si il n'y a pas de réponse", + "teaser.last-post": "Dernier - Affiche le dernier message, ou celui d'origine, si il n'y a pas de réponse", + "teaser.last-reply": "Dernier - Affiche le dernier message, ou \"Aucune réponse\" si il n'y a pas de réponse", "teaser.first": "Premier", "showPostPreviewsOnHover": "Afficher un aperçu des messages au survol de la souris", - "unread-and-recent": "Paramètres non lus et récents", + "unread-and-recent": "Paramètres Non lus & Récents", "unread.cutoff": "Nombre de jours pour les messages non-lus", "unread.min-track-last": "Nombre minimum de messages dans le sujet avant de garder en mémoire le dernier message lu", "recent.max-topics": "Maximum de sujets sur la page /Récents", diff --git a/public/language/fr/admin/settings/user.json b/public/language/fr/admin/settings/user.json index 19c6a1e114..c9ff10127c 100644 --- a/public/language/fr/admin/settings/user.json +++ b/public/language/fr/admin/settings/user.json @@ -16,7 +16,7 @@ "hide-email": "Masquer les e-mails aux utilisateurs", "show-fullname-as-displayname": "Afficher le nom complet de l'utilisateur en tant que nom d'affichage si disponible", "themes": "Thèmes", - "disable-user-skins": "Empêcher les utilisateurs de choisir un skin personnalisé", + "disable-user-skins": "Empêcher les utilisateurs de choisir un habillage personnalisé", "account-protection": "Protection du compte", "admin-relogin-duration": "Temps de reconnexion pour le compte administrateur (en minutes)", "admin-relogin-duration-help": "Après un certain temps, l'accessibilité à la section d'administration nécessitera une reconnexion, fixer le nombre à 0 pour désactiver cet effet.", diff --git a/public/language/fr/admin/settings/web-crawler.json b/public/language/fr/admin/settings/web-crawler.json index 2c8c2fa771..e002970e53 100644 --- a/public/language/fr/admin/settings/web-crawler.json +++ b/public/language/fr/admin/settings/web-crawler.json @@ -1,7 +1,7 @@ { "crawlability-settings": "Réglages de navigation", "robots-txt": "Fichier Robots.txt personnalisé Laissez vide pour utiliser le fichier par défaut", - "sitemap-feed-settings": "Réglages du sitemap et du flux", + "sitemap-feed-settings": "Réglages du Sitemap & du flux", "disable-rss-feeds": "Désactiver les flux RSS", "disable-sitemap-xml": "Désactiver le fichier sitemap.xml", "sitemap-topics": "Nombre de sujets à afficher dans le sitemap", diff --git a/public/language/fr/email.json b/public/language/fr/email.json index b56776f745..a6096f7855 100644 --- a/public/language/fr/email.json +++ b/public/language/fr/email.json @@ -6,19 +6,19 @@ "greeting_no_name": "Bonjour", "greeting_with_name": "Bonjour %1", "email.verify-your-email.subject": "Veuillez vérifier votre e-mail", - "email.verify.text1": "Vous avez demandé que nous modifiions ou confirmions votre adresse mail", - "email.verify.text2": "Pour des raisons de sécurité, nous ne modifions ou ne confirmons l'adresse mail enregistrée qu'une sa propriété confirmée. Si vous ne l'avez pas demandé, aucune action n'est requise de votre part.", - "email.verify.text3": "Une fois que vous aurez confirmé ce mail, nous remplacerons votre adresse e-mail actuelle par celle-ci (%1).", + "email.verify.text1": "Vous avez demandé que nous modifions ou confirmions votre adresse mail", + "email.verify.text2": "Pour des raisons de sécurité, nous ne modifions ou ne confirmons l'adresse mail enregistrée que lorsque son propriétaire l'a confirmée. Si vous ne l'avez pas demandé, aucune action n'est requise de votre part.", + "email.verify.text3": "Une fois que vous aurez confirmé cette adresse, nous remplacerons votre adresse e-mail actuelle par celle-ci (%1).", "welcome.text1": "Merci de vous être inscrit sur %1!", - "welcome.text2": "Pour activer totalement votre compte, nous devons vérifier que vous êtes bien propriétaire de l'adresse email que vous avez utilisé pour vous inscrire.", + "welcome.text2": "Pour activer totalement votre compte, nous devons vérifier que vous êtes bien propriétaire de l'adresse email que vous avez utilisée pour vous inscrire.", "welcome.text3": "Un administrateur a accepté votre demande d'inscription. Vous pouvez maintenant vous connecter avec vos identifiants/mots de passe.", - "welcome.cta": "Cliquez ici pour confirmer votre adresse e-mail", + "welcome.cta": "Cliquer ici pour confirmer votre adresse e-mail", "invitation.text1": "%1 vous a invité à rejoindre %2", "invitation.text2": "Votre invitation va expirer dans %1 jours.", - "invitation.cta": "Cliquez ici pour créer votre compte.", + "invitation.cta": "Cliquer ici pour créer votre compte.", "reset.text1": "Nous avons reçu une demande de réinitialisation de votre mot de passe, probablement parce que vous l'avez oublié. Si ce n'est pas le cas, veuillez ignorer cet e-mail.", "reset.text2": "Pour confirmer la réinitialisation de votre mot de passe, veuillez cliquer sur le lien suivant :", - "reset.cta": "Cliquez ici pour réinitialiser votre mot de passe", + "reset.cta": "Cliquer ici pour réinitialiser votre mot de passe", "reset.notify.subject": "Mot de passe modifié", "reset.notify.text1": "Nous vous informons que le %1, votre mot de passe a été modifié.", "reset.notify.text2": "Si vous n'avez pas autorisé ceci, veuillez contacter immédiatement un administrateur.", @@ -28,7 +28,7 @@ "digest.top-topics": "Meilleurs sujets de %1", "digest.popular-topics": "Sujets populaires de %1", "digest.cta": "Cliquer ici pour aller sur %1", - "digest.unsub.info": "Ce message vous a été envoyé en raison de vos paramètres d'abonnement.", + "digest.unsub.info": "Cette lettre d'actualité vous a été envoyée en raison de vos paramètres d'abonnement.", "digest.day": "jour", "digest.week": "semaine", "digest.month": "mois", @@ -37,7 +37,7 @@ "digest.title.week": "Votre lettre d'activité hebdomadaire", "digest.title.month": "Votre lettre d'activité mensuel", "notif.chat.subject": "Nouveau message de chat reçu de %1", - "notif.chat.public-chat-subject": "Nouveau message de %1 dans la discussion %2", + "notif.chat.public-chat-subject": "Nouveau message de %1 dans le salon %2", "notif.chat.cta": "Cliquer ici pour continuer la conversation", "notif.chat.unsub.info": "Cette notification de chat a été envoyé en raison de vos paramètres d'abonnement.", "notif.post.unsub.info": "La notification de ce message vous a été envoyé en raison de vos paramètres d'abonnement.", @@ -47,12 +47,12 @@ "notif.cta-new-chat": "Voir les discussions", "notif.test.short": "Tester les notifications", "notif.test.long": "Ceci est un test de notifications de mail. Envoyez de l'aide !", - "test.text1": "Ceci est un e-mail de test pour vérifier que l'e-mailer est correctement configuré pour NodeBB.", + "test.text1": "Ceci est un e-mail de test pour vérifier que leur envoi est correctement configuré pour NodeBB.", "unsub.cta": "Cliquer ici pour modifier ces paramètres", "unsubscribe": "Se désinscrire", "unsub.success": "Vous ne recevrez plus d'e-mails de la liste de diffusion %1", "unsub.failure.title": "Impossible de se désinscrire", - "unsub.failure.message": "Malheureusement, nous n'avons pas pu vous désinscrire de la liste de diffusion, car il y avait un problème avec le lien. Cependant, vous pouvez modifier vos préférences de messagerie en accédant à vos paramètres utilisateur.

(erreur: %1)", + "unsub.failure.message": "Malheureusement, nous n'avons pas pu vous désinscrire de la liste de diffusion, car il y avait un problème avec le lien. Cependant, vous pouvez modifier vos préférences de messagerie en accédant à vos paramètres utilisateur.

(erreur : %1)", "banned.subject": "Vous avez été banni de %1", "banned.text1": "L'utilisateur %1 a été banni de %2.", "banned.text2": "Ce ban est effectif jusqu'au %1.", diff --git a/public/language/fr/error.json b/public/language/fr/error.json index 4761fdd9c8..c6b35ca78d 100644 --- a/public/language/fr/error.json +++ b/public/language/fr/error.json @@ -1,7 +1,7 @@ { "invalid-data": "Données invalides", "invalid-json": "JSON invalide", - "wrong-parameter-type": "Une valeur de type %3 était attendue pour la propriété `%1`, mais %2 a été reçue à la place", + "wrong-parameter-type": "Une valeur de type %3 était attendue pour la propriété `%1`, mais %2 a été reçu à la place", "required-parameters-missing": "Les paramètres requis étaient manquants dans cet appel d'API : %1", "not-logged-in": "Vous ne semblez pas être connecté.", "account-locked": "Votre compte a été temporairement suspendu", @@ -14,7 +14,7 @@ "invalid-mid": "ID de message de discussion invalide", "invalid-date": "Une date valide doit être fournie", "invalid-username": "Nom d'utilisateur invalide", - "invalid-email": "Email invalide", + "invalid-email": "E-mail invalide", "invalid-fullname": "Nom erroné ", "invalid-location": "Localisation erronée ", "invalid-birthday": "Date d'anniversaire erronée", @@ -31,8 +31,8 @@ "invalid-path": "Chemin invalide", "folder-exists": "Le dossier existe", "invalid-pagination-value": "Valeur de pagination invalide. Celle-ci doit être comprise entre %1 et %2.", - "username-taken": "Nom d’utilisateur déjà utilisé", - "email-taken": "Email déjà utilisé", + "username-taken": "Ce nom d'utilisateur est déjà pris", + "email-taken": "E-mail déjà utilisé", "email-nochange": "Le mail saisi est déjà enregistré.", "email-invited": "Cet utilisateur a déjà été invité.", "email-not-confirmed": "La publication dans certaines catégories ou sujets sera activée après confirmation de l'e-mail, veuillez cliquer ici pour envoyer un e-mail de confirmation.", @@ -106,7 +106,7 @@ "upload-ratelimit-reached": "Vous avez envoyé trop de fichiers à la fois. Veuillez réessayer plus tard.", "upload-error-fallback": "Impossible de téléverser l'image — %1", "scheduling-to-past": "Veuillez sélectionner une date ultérieure.", - "invalid-schedule-date": "Veuillez saisir une date et une heure valide.", + "invalid-schedule-date": "Veuillez saisir une date et une heure valides.", "cant-pin-scheduled": "Les sujets planifiés ne peuvent pas être (dés)épinglés.", "cant-merge-scheduled": "Les sujets planifiés ne peuvent pas être fusionnés.", "cant-move-posts-to-scheduled": "Impossible de déplacer les messages vers un sujet planifié.", @@ -114,9 +114,9 @@ "already-bookmarked": "Vous avez déjà mis un marque-page", "already-unbookmarked": "Vous avez déjà retiré un marque-page", "cant-ban-other-admins": "Vous ne pouvez pas bannir les autres administrateurs !", - "cant-mute-other-admins": "Vous ne pouvez pas désactiver les autres administrateurs !", - "user-muted-for-hours": "Vous avez été mis en silencieux, vous pourrez publier dans %1 heure(s)", - "user-muted-for-minutes": "Vous avez été mis en silencieux, vous pourrez publier dans %1 minute(s)", + "cant-mute-other-admins": "Vous ne pouvez pas mettre en sourdine les autres administrateurs !", + "user-muted-for-hours": "Vous avez été mis en sourdine, vous pourrez publier dans %1 heure(s)", + "user-muted-for-minutes": "Vous avez été mis en sourdine, vous pourrez publier dans %1 minute(s)", "cant-make-banned-users-admin": "Vous ne pouvez pas mettre des utilisateurs bannis en administrateur.", "cant-remove-last-admin": "Vous êtes le seul administrateur. Ajoutez un autre utilisateur en tant qu'administrateur avant de vous retirer.", "account-deletion-disabled": "La suppression du compte est désactivée", @@ -217,7 +217,7 @@ "already-unblocked": "Cet utilisateur est déjà débloqué", "no-connection": "Il semble y avoir un problème avec votre connexion internet", "socket-reconnect-failed": "Serveur inaccessible pour le moment. Cliquez ici pour réessayer ou réessayez plus tard", - "plugin-not-whitelisted": "Impossible d'installer le plugin – seuls les plugins mis en liste blanche dans le gestionnaire de packages NodeBB peuvent être installés via l'ACP", + "plugin-not-whitelisted": "Impossible d'installer le plugin, seuls les plugins mis en liste blanche dans le gestionnaire de packages NodeBB peuvent être installés via l'ACP", "plugins-set-in-configuration": "Vous n'êtes pas autorisé à modifier l'état des plugins car ils sont définis au moment de l'exécution (config.json, variables d'environnement ou arguments de terminal), veuillez plutôt modifier la configuration.", "theme-not-set-in-configuration": "Lors de la définition des plugins actifs, le changement de thème nécessite d'ajouter le nouveau thème à la liste des plugins actifs avant de le mettre à jour dans l'ACP", "topic-event-unrecognized": "Événement du sujet '%1' non reconnu", @@ -232,6 +232,6 @@ "api.429": "Vous avez fait trop de demandes, veuillez réessayer plus tard", "api.500": "Une erreur inattendue s'est produite lors de la tentative de traitement de votre demande.", "api.501": "L'accès n'est pas encore fonctionnel, veuillez réessayer demain", - "api.503": "L'accès n'est pas disponible actuellement en raison d'une configuration de serveur", + "api.503": "L'accès n'est pas disponible actuellement en raison de la configuration du serveur", "api.reauth-required": "La ressource à laquelle vous tentez d'accéder nécessite une (ré-)authentification." } \ No newline at end of file diff --git a/public/language/fr/flags.json b/public/language/fr/flags.json index b2a33fcaab..f8227cff1d 100644 --- a/public/language/fr/flags.json +++ b/public/language/fr/flags.json @@ -9,7 +9,7 @@ "updated": "Mis à jour", "resolved": "Résolu", "target-purged": "Le rapport pour ce signalement a été supprimé et n'est plus accessible", - "target-aboutme-empty": "Cet utilisateur n'a pas de "À propos de moi".", + "target-aboutme-empty": "Cet utilisateur n'a pas de \"À propos de moi\".", "graph-label": "Signalements du jour", "quick-filters": "Filtres rapides", @@ -48,14 +48,14 @@ "notes": "Notes de signalement", "add-note": "Ajouter une note", "edit-note": "Editer la Note", - "no-notes": "Aucune note partagée", + "no-notes": "Aucune note partagée.", "delete-note-confirm": "Êtes-vous sûr de bien vouloir supprimer cette note de signalement ?", "delete-flag-confirm": "Êtes-vous sûr de bien vouloir supprimer ce signalement ?", "note-added": "Note ajoutée", "note-deleted": "Note supprimée", "flag-deleted": "Signalement supprimé", - "history": "Compte & Historique des signalements", + "history": "Compte & Historique des signalements", "no-history": "Aucun historique de signalements", "state-all": "Tous les états", @@ -84,7 +84,7 @@ "modal-submit": "Soumettre", "modal-submit-success": "Le contenu a été soumis pour examen.", - "bulk-actions": "Actions", + "bulk-actions": "Actions en vrac", "bulk-resolve": "Signalement(s) résolu(s)", "bulk-success": "%1 signalements mis à jour", "flagged-timeago-readable": "Signalé (%2)", diff --git a/public/language/fr/global.json b/public/language/fr/global.json index e4e2ab7bf1..2bcae2b567 100644 --- a/public/language/fr/global.json +++ b/public/language/fr/global.json @@ -127,7 +127,7 @@ "uploads": "Fichiers envoyés", "allowed-file-types": "Les types de fichiers autorisés sont : %1", "unsaved-changes": "Vous avez des modifications non sauvegardées. Êtes-vous sûr de vouloir naviguer tout de même ?", - "reconnecting-message": "Il semble que votre connexion ait été perdue, veuillez patienter pendant que nous vous reconnectons.", + "reconnecting-message": "Il semble que votre connexion à %1 ait été perdue, veuillez patienter pendant que nous vous reconnectons.", "play": "Lire", "cookies.message": "Ce site utilise des cookies pour vous permettre d'avoir la meilleure expérience possible.", "cookies.accept": "Compris !", diff --git a/public/language/fr/ip-blacklist.json b/public/language/fr/ip-blacklist.json index bf87222b0c..e2602158d6 100644 --- a/public/language/fr/ip-blacklist.json +++ b/public/language/fr/ip-blacklist.json @@ -6,14 +6,14 @@ "apply": "Appliquer la liste noire", "hints": "Astuces de syntaxe", "hint-1": "Définissez une seule adresse IP par ligne. Vous pouvez ajouter des blocs IP, du moment qu'ils respectent le format CIDR (par ex. 192.168.100.0/22).", - "hint-2": "Vous pouvez ajouter en commentaire en commençant la ligne par le symbole #.", + "hint-2": "Vous pouvez ajouter un commentaire en commençant la ligne par le symbole #.", "validate.x-valid": "%1 sur %2 règle(s) valide(s).", - "validate.x-invalid": "Les règles suivantes %1 sont invalides:", + "validate.x-invalid": "Les règles suivantes %1 sont invalides :", "alerts.applied-success": "Liste noire appliquée", - "analytics.blacklist-hourly": "Image 1 – Nombre de visites de la liste noire par heure", - "analytics.blacklist-daily": "Image 2 – Nombre de visites de la liste noire par jour", + "analytics.blacklist-hourly": "Image 1 - Nombre de visites de la liste noire par heure", + "analytics.blacklist-daily": "Image 2 - Nombre de visites de la liste noire par jour", "ip-banned": "IP bannies" } \ No newline at end of file diff --git a/public/language/fr/modules.json b/public/language/fr/modules.json index f018d03f60..8a1d0b2301 100644 --- a/public/language/fr/modules.json +++ b/public/language/fr/modules.json @@ -15,7 +15,7 @@ "chat.user_typing_n": "%1, %2 et %3 autres sont en train d'écrire...", "chat.user_has_messaged_you": "%1 vous a envoyé un message.", "chat.replying-to": "En réponse à %1", - "chat.see_all": "Tous les chats", + "chat.see_all": "Toutes les discussions", "chat.mark_all_read": "Marquer tout comme lu", "chat.no-messages": "Veuillez sélectionner un destinataire pour voir l'historique des discussions", "chat.no-users-in-room": "Aucun participant à cette discussion", @@ -23,7 +23,7 @@ "chat.contacts": "Contacts", "chat.message-history": "Historique des messages", "chat.message-deleted": "Message supprimé", - "chat.options": "Options", + "chat.options": "Options de discussion", "chat.pop-out": "Afficher la discussion", "chat.minimize": "Réduire", "chat.maximize": "Agrandir", @@ -31,7 +31,7 @@ "chat.thirty_days": "30 Jours", "chat.three_months": "3 Mois", "chat.delete_message_confirm": "Êtes-vous sûr de vouloir supprimer ce message ?", - "chat.retrieving-users": "Ajouter des utilisateurs ...", + "chat.retrieving-users": "Ajouter des utilisateurs...", "chat.view-users-list": "Afficher la liste d'utilisateurs", "chat.pinned-messages": "Messages épinglés", "chat.no-pinned-messages": "Il n'y a aucun message épinglé", @@ -46,7 +46,7 @@ "chat.manage-room": "Gérer l'espace de discussion", "chat.add-user": "Ajouter un utilisateur", "chat.notification-settings": "Paramètres de notification", - "chat.default-notification-setting": "Paramètres des notifications par défaut", + "chat.default-notification-setting": "Paramètres de notification par défaut", "chat.notification-setting-room-default": "Salon par défaut", "chat.notification-setting-none": "Aucune notification", "chat.notification-setting-at-mention-only": "@mention seulement", @@ -54,7 +54,7 @@ "chat.select-groups": "Sélectionner des groupes", "chat.add-user-help": "Rechercher des utilisateurs ici. Lorsque cette option est sélectionnée, l'utilisateur sera ajouté à l'espace de discussion. Le nouvel utilisateur ne pourra pas visualiser les échanges avant d'être ajouté à la conversation. Seuls les propriétaires de l'espace de discussion () peuvent supprimer des utilisateurs.", "chat.confirm-chat-with-dnd-user": "Cet utilisateur a son statut en mode \"Ne pas déranger\". Voulez-vous quand même discuter avec lui ?", - "chat.room-name-optional": "Renommer l'espace de discussion (optionnel)", + "chat.room-name-optional": "Nommer l'espace de discussion (optionnel)", "chat.rename-room": "Renommer l'espace de discussion ", "chat.rename-placeholder": "Entrer le nom ici ", "chat.rename-help": "Le nom de l'espace de discussion défini ici sera visible par tous les participants à la discussion.", @@ -85,13 +85,13 @@ "composer.uploading": "Envoi en cours %1", "composer.formatting.bold": "Gras", "composer.formatting.italic": "Italique", - "composer.formatting.heading": "Heading", - "composer.formatting.heading1": "Heading 1", - "composer.formatting.heading2": "Heading 2", - "composer.formatting.heading3": "Heading 3", - "composer.formatting.heading4": "Heading 4", - "composer.formatting.heading5": "Heading 5", - "composer.formatting.heading6": "Heading 6", + "composer.formatting.heading": "Titre", + "composer.formatting.heading1": "Titre 1", + "composer.formatting.heading2": "Titre 2", + "composer.formatting.heading3": "Titre 3", + "composer.formatting.heading4": "Titre 4", + "composer.formatting.heading5": "Titre 5", + "composer.formatting.heading6": "Titre 6", "composer.formatting.list": "Liste", "composer.formatting.strikethrough": "Barré", "composer.formatting.code": "Code", @@ -101,7 +101,7 @@ "composer.upload-file": "Envoyer un fichier", "composer.zen_mode": "Mode Zen", "composer.select_category": "Sélectionner une catégorie", - "composer.textarea.placeholder": "Saisir le contenu de votre message ici, faites glisser et déposez les images", + "composer.textarea.placeholder": "Saisir le contenu de votre message ici, glisser & déposer des images", "composer.post-queue-alert": "Bonjour👋 ! Ce forum utilise un système de file d'attente des publications, puisque vous êtes un nouvel utilisateur, votre message sera masqué jusqu'à ce qu'il soit approuvé par notre équipe de modération.", "composer.schedule-for": "Planifier le sujet pour", "composer.schedule-date": "Date", diff --git a/public/language/fr/notifications.json b/public/language/fr/notifications.json index c9c37c73e4..776bc1eae3 100644 --- a/public/language/fr/notifications.json +++ b/public/language/fr/notifications.json @@ -2,7 +2,7 @@ "title": "Notifications", "no_notifs": "Vous n'avez aucune notification", "see_all": "Toutes les notifications", - "mark_all_read": "Marquer tous comme lu", + "mark_all_read": "Marquer tout comme lu", "back_to_home": "Revenir à %1", "outgoing_link": "Lien sortant", "outgoing_link_message": "Vous quittez %1", @@ -19,7 +19,7 @@ "follows": "Suivis", "upvote": "Votes positifs", "new-flags": "Nouveaux signalements", - "my-flags": "Signalement qui me sont assignés", + "my-flags": "Signalements qui me sont assignés", "bans": "Bannissements", "new_message_from": "Nouveau message de %1", "user_posted_in_public_room": "%1 a écrit dans %3", @@ -39,17 +39,17 @@ "user_flagged_user": "%1 a signalé un profil utilisateur (%2)", "user_flagged_user_dual": "%1 et %2 ont signalé un profil utilisateur (%3)", "user_flagged_user_triple": "%1, %2 et %3 ont signalé un profil utilisateur (%4)", - "user_flagged_user_multiple": "%1, %2 et %3 autres ont signalé un profil utilisateur (%4)", + "user_flagged_user_multiple": "%1, %2 et %3 autres ont signalé un profil utilisateur (%4)", "user_posted_to": "%1 a répondu à : %2", "user_posted_to_dual": "%1 et %2 ont posté une réponse à : %3", - "user_posted_to_triple": "%1, %2 et %3 ont publié des réponses à : %4", - "user_posted_to_multiple": "%1, %2 et %3 autres ont posté des réponses dans : %4", - "user_posted_topic": "%1 a posté un nouveau sujet: %2.", + "user_posted_to_triple": "%1, %2 et %3 ont publié des réponses à : %4", + "user_posted_to_multiple": "%1, %2 et %3 autres ont posté des réponses dans : %4", + "user_posted_topic": "%1 a posté un nouveau sujet: %2", "user_edited_post": "%1 a édité un message dans %2", "user_started_following_you": "%1 vous suit.", "user_started_following_you_dual": "%1 et %2 se sont abonnés à votre compte.", - "user_started_following_you_triple": "%1, %2 et %3 ont commencé à vous suivre.", - "user_started_following_you_multiple": "%1, %2 et %3 autres ont commencé à vous suivre.", + "user_started_following_you_triple": "%1, %2 et %3 ont commencé à vous suivre.", + "user_started_following_you_multiple": "%1, %2 et %3 autres ont commencé à vous suivre.", "new_register": "%1 a envoyé une demande d'incription.", "new_register_multiple": "%1 inscription(s) est en attente de validation.", "flag_assigned_to_you": "Signalement %1 vous a été assigné", @@ -68,7 +68,7 @@ "none": "aucun", "notification_only": "Seulement une notification", "email_only": "Seulement un e-mail", - "notification_and_email": "Notification et e-mail", + "notification_and_email": "Notification & E-mail", "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", diff --git a/public/language/fr/post-queue.json b/public/language/fr/post-queue.json index 8a37ad5ab0..1ec28108fe 100644 --- a/public/language/fr/post-queue.json +++ b/public/language/fr/post-queue.json @@ -3,7 +3,7 @@ "post-queue": "File d’attente des messages", "no-queued-posts": "Il n'y a pas de messages dans la file d'attente des messages.", "no-single-post": "Le sujet ou le message que vous recherchez n'est plus dans la file d'attente. Il a probablement déjà été approuvé ou supprimé.", - "enabling-help": "Pour activer cette fonctionnalité, accédez à Paramètres → Message → File d'attente et activez la file d'attente.", + "enabling-help": "Pour activer cette fonctionnalité, accédez à Paramètres → Message → File d'attente et activez la file d'attente.", "back-to-list": "Retour à la file d'attente", "user": "Utilisateur", "when": "Quand", @@ -24,12 +24,12 @@ "notify-user": "Notifier l'utilisateur", "confirm-reject": "Voulez vous réellement rejeter ce message ?", "confirm-remove": "Voulez-vous supprimer ce message ?", - "bulk-actions": "Actions", + "bulk-actions": "Actions en vrac", "accept-all": "Tout accepter", "accept-selected": "Acceptation sélectionnée", "reject-all": "Tout rejeter", "reject-all-confirm": "Voulez vous réellement rejeter tous ces messages ?", - "reject-selected": "Rejets sélectionnés", + "reject-selected": "Rejet sélectionné", "reject-selected-confirm": "Voulez vous réellement rejeter ces %1 messages ?", "remove-all": "Supprimer tout", "remove-all-confirm": "Voulez-vous supprimer tous les messages ?", diff --git a/public/language/fr/register.json b/public/language/fr/register.json index 9ca9004f40..fa42eab3b2 100644 --- a/public/language/fr/register.json +++ b/public/language/fr/register.json @@ -21,8 +21,8 @@ "registration-added-to-queue": "Votre inscription a été ajoutée à la liste d'approbation. Vous recevrez un e-mail quand celle-ci sera acceptée par un administrateur.", "registration-queue-average-time": "Le temps moyen d'approbation des adhésions est de %1 heures %2 minutes.", "registration-queue-auto-approve-time": "Votre adhésion à ce forum sera entièrement activée dans un délai maximum de %1 heures.", - "interstitial.intro": "Nous aimerions avoir des informations supplémentaires afin de mettre à jour votre compte…", - "interstitial.intro-new": "Nous aimerions avoir des informations supplémentaires avant de pouvoir créer votre compte…", + "interstitial.intro": "Nous aimerions avoir des informations supplémentaires afin de mettre à jour votre compte...", + "interstitial.intro-new": "Nous aimerions avoir des informations supplémentaires avant de pouvoir créer votre compte...", "interstitial.errors-found": "Veuillez vérifier les informations saisies :", "gdpr_agree_data": "J'accepte la collecte et le traitement de mes données personnelles sur ce site.", "gdpr_agree_email": "J'accepte de recevoir des courriels et des notifications de ce site Web.", diff --git a/public/language/fr/reset_password.json b/public/language/fr/reset_password.json index cd950e731b..787d370760 100644 --- a/public/language/fr/reset_password.json +++ b/public/language/fr/reset_password.json @@ -4,12 +4,12 @@ "password_changed.title": "Mot de passe modifié", "password_changed.message": "

Votre mot de passe a bien été réinitialisé, veuillez vous reconnecter.", "wrong_reset_code.title": "Code de réinitialisation incorrect", - "wrong_reset_code.message": "Le code de réinitialisation est incorrect. Veuillez réessayer, ou demander un nouveau code de réinitialisation.", + "wrong_reset_code.message": "Le code de réinitialisation est incorrect. Veuillez réessayer ou demander un nouveau code de réinitialisation.", "new_password": "Nouveau mot de passe", "repeat_password": "Confirmer le mot de passe", "changing_password": "Changer le mot de passe", "enter_email": "Veuillez entrer votre adresse e-mail pour recevoir un e-mail contenant les instructions permettant de réinitialiser votre compte.", - "enter_email_address": "Entrer votre adresse email", + "enter_email_address": "Entrer votre adresse e-mail", "password_reset_sent": "Si l'adresse spécifiée correspond à un compte d'utilisateur existant, un e-mail de réinitialisation de mot de passe va être envoyé. Veuillez noter qu'un seul e-mail sera envoyé par minute.", "invalid_email": "E-mail invalide / L'e-mail n'existe pas !", "password_too_short": "Le mot de passe est trop court, veuillez entrer un mot de passe différent.", diff --git a/public/language/fr/themes/harmony.json b/public/language/fr/themes/harmony.json index 12cd9130c6..c7b7b1b96e 100644 --- a/public/language/fr/themes/harmony.json +++ b/public/language/fr/themes/harmony.json @@ -1,11 +1,11 @@ { "theme-name": "Thème Harmony", - "skins": "Apparence", + "skins": "Habillages", "collapse": "Réduire", "expand": "Développer", "login-register-to-search": "Connectez-vous ou inscrivez-vous pour faire une recherche.", "settings.title": "Configuration du thème", - "settings.enableQuickReply": "Activer les réponses rapide", + "settings.enableQuickReply": "Activer les réponses rapides", "settings.centerHeaderElements": "Centrer les éléments d'en-tête", "settings.mobileTopicTeasers": "Afficher les teasers de sujet sur mobile", "settings.stickyToolbar": "Barre d'outils", diff --git a/public/language/fr/topic.json b/public/language/fr/topic.json index 7f8d9ad923..6dbd968faa 100644 --- a/public/language/fr/topic.json +++ b/public/language/fr/topic.json @@ -102,7 +102,7 @@ "thread_tools.change_owner": "Changer de propriétaire", "thread_tools.select_category": "Sélectionner une catégorie", "thread_tools.fork": "Scinder le sujet", - "thread_tools.tag": "Mots-clé de sujet", + "thread_tools.tag": "Mot-clé de sujet", "thread_tools.delete": "Supprimer le sujet", "thread_tools.delete-posts": "Supprimer les messages", "thread_tools.delete_confirm": "Êtes-vous sûr de bien vouloir supprimer ce sujet ?", @@ -132,12 +132,12 @@ "copy-permalink": "Copier le permalien", "loading_more_posts": "Charger plus de messages", "move_topic": "Déplacer le sujet", - "move_topics": "Déplacer des sujets", + "move_topics": "Déplacer les sujets", "move_post": "Déplacer", "post_moved": "Message déplacé !", "fork_topic": "Scinder le sujet", "enter-new-topic-title": "Entrer un nouveau titre de sujet", - "fork_topic_instruction": "Cliquez sur les messages que vous souhaitez scinder, entrez un titre pour le nouveau sujet et cliquez sur scinder", + "fork_topic_instruction": "Cliquer sur les messages que vous souhaitez scinder, entrer un titre pour le nouveau sujet et cliquer sur scinder", "fork_no_pids": "Aucun post sélectionné !", "no-posts-selected": "Aucun message sélectionné !", "x-posts-selected": "%1 message(s) sélectionné(s)", @@ -188,7 +188,7 @@ "stale.reply_anyway": "Répondre à ce sujet quand même", "link_back": "Re : [%1](%2)", "diffs.title": "Historique", - "diffs.description": "Cet article a %1 révisions. Cliquez sur l'une des révisions ci-dessous pour voir le contenu du message.", + "diffs.description": "Cet article a %1 révisions. Cliquer sur l'une des révisions ci-dessous pour voir le contenu du message.", "diffs.no-revisions-description": "Cet article a %1 révisions.", "diffs.current-revision": "Révision en cours", "diffs.original-revision": "Révision originale", diff --git a/public/language/fr/uploads.json b/public/language/fr/uploads.json index 43f9e8f4b3..bf73de69db 100644 --- a/public/language/fr/uploads.json +++ b/public/language/fr/uploads.json @@ -1,9 +1,9 @@ { "uploading-file": "Envoi d'un fichier…", - "select-file-to-upload": "Sélectionnez un ficher à envoyer", + "select-file-to-upload": "Sélectionner un ficher à envoyer", "upload-success": "Fichier envoyé", - "maximum-file-size": "%1 Ko maximum", - "no-uploads-found": "Aucun fichiers envoyés", + "maximum-file-size": "%1 ko maximum", + "no-uploads-found": "Aucun fichier envoyé", "public-uploads-info": "Les téléchargements sont publics, tous les visiteurs peuvent les voir.", "private-uploads-info": "Les envois sont privés, seuls les utilisateurs connectés peuvent les voir." } \ No newline at end of file diff --git a/public/language/fr/user.json b/public/language/fr/user.json index e2c68556e3..e90213aefb 100644 --- a/public/language/fr/user.json +++ b/public/language/fr/user.json @@ -6,8 +6,8 @@ "username": "Nom d'utilisateur", "joindate": "Date d'inscription", "postcount": "Nombre de messages", - "email": "Email", - "confirm_email": "Confirmer l'adresse email", + "email": "E-mail", + "confirm_email": "Confirmer l'adresse e-mail", "account_info": "Informations du compte", "admin_actions_label": "Modération", "ban_account": "Bannir le compte", @@ -19,10 +19,10 @@ "delete_account_as_admin": "Supprimer le compte", "delete_content": "Supprimer le contenu du compte", "delete_all": "Supprimer le compte et le contenu", - "delete_account_confirm": "Êtes-vous sûr de vouloir supprimer votre compte?
Cette action est irréversible et vous ne pourrez récupérer aucune de vos données

Entrez votre mot de passe pour confirmer que vous souhaitez détruire ce compte.", - "delete_this_account_confirm": "Êtes-vous sûr de vouloir supprimer ce compte?
Cette action est irréversible, les messages deviendront anonymes et vous ne pourrez pas restaurer les messages associés avec le compte supprimé.

", - "delete_account_content_confirm": "Êtes-vous sûr de vouloir supprimer le contenu de ce compte (messages / sujets / fichiers envoyés)?
Cette action est irréversible et vous ne pourrez récupérer aucune donnée.

", - "delete_all_confirm": "Êtes-vous sûr de vouloir supprimer ce compte et tout son contenu (messages / sujets / fichiers envoyés)?
Cette action est irréversible et vous ne pourrez récupérer aucune donnée.

", + "delete_account_confirm": "Êtes-vous sûr de vouloir supprimer votre compte ?
Cette action est irréversible et vous ne pourrez récupérer aucune de vos données

Entrez votre mot de passe pour confirmer que vous souhaitez détruire ce compte.", + "delete_this_account_confirm": "Êtes-vous sûr de vouloir supprimer ce compte ?
Cette action est irréversible, les messages deviendront anonymes et vous ne pourrez pas restaurer les messages associés avec le compte supprimé.

", + "delete_account_content_confirm": "Êtes-vous sûr de vouloir supprimer le contenu de ce compte (messages / sujets / fichiers envoyés) ?
Cette action est irréversible et vous ne pourrez récupérer aucune donnée.

", + "delete_all_confirm": "Êtes-vous sûr de vouloir supprimer ce compte et tout son contenu (messages / sujets / fichiers envoyés) ?
Cette action est irréversible et vous ne pourrez récupérer aucune donnée.

", "account-deleted": "Compte supprimé", "account-content-deleted": "Contenu du compte supprimé", "fullname": "Nom", @@ -62,7 +62,7 @@ "change_username": "Changer le nom d'utilisateur", "change_email": "Changer l'e-mail", "email-updated": "E-mail mis à jour", - "email_same_as_password": "Veuillez entrer votre mot de passe actuel pour continuer – vous devez saisir à nouveau votre email", + "email_same_as_password": "Veuillez entrer votre mot de passe actuel pour continuer - vous devez saisir à nouveau votre e-mail", "edit": "Éditer", "edit-profile": "Éditer le profil", "default_picture": "Icône par défaut", @@ -92,11 +92,11 @@ "upload_cropped_picture": "Découper et envoyer", "avatar-background-colour": "Couleur d'arrière plan", "settings": "Paramètres", - "show_email": "Afficher mon email", + "show_email": "Afficher mon e-mail", "show_fullname": "Afficher mon nom complet", "restrict_chats": "Autoriser la réception de messages ne provenant que des personnes auxquelles je suis abonné", "digest_label": "S’inscrire aux lettres de suivi d'activités", - "digest_description": "S'abonner par email aux mises à jours de ce forum (nouvelles notifications et nouveaux sujets) selon le planning sélectionné.", + "digest_description": "S'abonner par e-mail aux mises à jours de ce forum (nouvelles notifications et nouveaux sujets) selon le planning sélectionné.", "digest_off": "Désactivé", "digest_daily": "Quotidien", "digest_weekly": "Hebdomadaire", @@ -113,7 +113,7 @@ "has_no_downvoted_posts": "Cet utilisateur n'a pas donné d'avis négatifs", "has_no_controversial_posts": "Cet utilisateur n'a pas encore d'avis négatif.", "has_no_blocks": "Vous n'avez bloqué aucun utilisateur.", - "email_hidden": "Email masqué", + "email_hidden": "E-mail masqué", "hidden": "masqué", "paginate_description": "Utiliser la pagination des sujets et des messages à la place du défilement infini", "topics_per_page": "Sujets par page", @@ -139,19 +139,19 @@ "follow_topics_you_reply_to": "S'abonner aux sujets auxquels vous répondez", "follow_topics_you_create": "S'abonner aux sujets que vous créez", "grouptitle": "Nom du groupe", - "group-order-help": "Sélectionnez un groupe et utilisez les flèches pour organiser les titres", + "group-order-help": "Sélectionner un groupe et utiliser les flèches pour organiser les titres", "no-group-title": "Aucun titre de groupe", - "select-skin": "Sélectionner une apparence", + "select-skin": "Sélectionner un habillage", "default": "Défaut (%1)", - "no-skin": "Aucun Skin", + "no-skin": "Aucun habillage", "select-homepage": "Sélectionner une page d'accueil", "homepage": "Page d'accueil", - "homepage_description": "Sélectionnez une page à utiliser comme page d'accueil du forum, ou \"Aucune\" pour utiliser la page d'accueil par défaut.", + "homepage_description": "Sélectionner une page à utiliser comme page d'accueil du forum, ou \"Aucune\" pour utiliser la page d'accueil par défaut.", "custom_route": "Chemin personnalisé de la page d'accueil", - "custom_route_help": "Saisissez un nom de chemin ici, sans barre oblique précédente (par exemple, \"récent\" ou \"catégorie/2/discussion-générale\")", + "custom_route_help": "Saisir un nom de chemin ici, sans barre oblique précédente (par exemple, \"récent\" ou \"catégorie/2/discussion-générale\")", "sso.title": "Services d'authentification unique", "sso.associated": "Associé avec", - "sso.not-associated": "Cliquez ici pour associer", + "sso.not-associated": "Cliquer ici pour associer", "sso.dissociate": "Dissocier", "sso.dissociate-confirm-title": "Confirmer la dissociation", "sso.dissociate-confirm": "Êtes-vous sûr de vouloir dissocier votre compte de %1 ?", @@ -166,7 +166,7 @@ "info.banned-no-reason": "Aucune raison donnée", "info.mute-history": "Historique de mise en sourdine récente", "info.no-mute-history": "Cet utilisateur n'a jamais été mis en sourdine", - "info.muted-until": "Muet jusqu'à %1", + "info.muted-until": "Mis en sourdine jusqu'à %1", "info.muted-expiry": "Date d'expiration", "info.muted-no-reason": "Aucune raison donnée.", "info.username-history": "Historique des noms d'utilisateur", @@ -179,20 +179,20 @@ "browser-version-on-platform": "%1 %2 sur %3", "consent.title": "Vos données personnelles", "consent.lead": "Ce forum collecte et traite vos informations personnelles.", - "consent.intro": "Nous utilisons ces informations strictement pour personnaliser votre expérience dans cette communauté, ainsi que pour associer les messages que vous publiez à votre compte utilisateur. Lors de l'étape d'enregistrement, vous avez été invité à fournir un nom d'utilisateur et une adresse e-mail. Vous pouvez également fournir des informations supplémentaires pour compléter votre profil.

Nous conservons ces informations durant la durée de vie de votre compte utilisateur. À tout moment vous pouvez supprimer votre compte. À tout moment, vous pouvez demander une copie de vos contributions, via la page de vos données personnelles.

Si vous avez des questions ou préoccupations, nous vous encourageons à contacter l'équipe d'administration de ce forum.", + "consent.intro": "Nous utilisons ces informations strictement pour personnaliser votre expérience dans cette communauté, ainsi que pour associer les messages que vous publiez à votre compte utilisateur. Lors de l'étape d'enregistrement, vous avez été invité à fournir un nom d'utilisateur et une adresse e-mail. Vous pouvez également fournir des informations supplémentaires pour compléter votre profil.

Nous conservons ces informations durant la durée de vie de votre compte utilisateur. À tout moment vous pouvez supprimer votre compte. À tout moment, vous pouvez demander une copie de vos contributions, via la page de \"Vos données personnelles\".

Si vous avez des questions ou préoccupations, nous vous encourageons à contacter l'équipe d'administration de ce forum.", "consent.email_intro": "Occasionnellement, nous pouvons envoyer des courriels afin de fournir des mises à jour et / ou de vous informer de toute nouvelle activité qui vous concerne. Vous pouvez personnaliser la fréquence d'envoi (y compris la désactiver), ainsi que sélectionner les types de notifications à recevoir, via vos paramètres utilisateur.", - "consent.digest_frequency": "Par défaut, ce forum délivre des lettres d'activités tous les %1.", - "consent.digest_off": "Actuellement, ce forum n'envoi pas de lettre d'activités", + "consent.digest_frequency": "Par défaut, ce forum délivre des lettres d'activité tous les %1.", + "consent.digest_off": "Actuellement, ce forum n’envoie pas de lettre d'activité", "consent.received": "Vous avez donné votre accord pour que ce site collecte et traite vos informations. Aucune action supplémentaire n'est requise.", "consent.not_received": "Vous n'avez pas donné votre accord pour la collecte et le traitement des données. A tout moment, l'équipe d'administration de ce site peut choisir de supprimer votre compte afin de se conformer au règlement général sur la protection des données.", "consent.give": "Donner son accord", - "consent.right_of_access": "Vous avez le droit d'accès", + "consent.right_of_access": "Vous disposez d'un droit d’accès", "consent.right_of_access_description": "Vous avez la possibilité d'accéder à toutes les données collectées par ce site sur demande. Vous pouvez récupérer une copie de ces données en cliquant sur le bouton ci-dessous.", - "consent.right_to_rectification": "Vous avez le droit de rectification", + "consent.right_to_rectification": "Vous disposez d’un droit de rectification", "consent.right_to_rectification_description": "Vous avez la possibilité de modifier ou de mettre à jour les données inexactes qui nous sont fournies. Votre profil peut être mis à jour en modifiant votre profil, et le contenu de l'article peut toujours être modifié. Si ce n'est pas le cas, veuillez contacter l'équipe d'administration.", - "consent.right_to_erasure": "Vous avez le droit d'effacer", + "consent.right_to_erasure": "Vous disposez du droit d'effacer", "consent.right_to_erasure_description": "Vous pouvez à tout moment révoquer votre accord à la collecte et/ou aux traitements de données en supprimant votre compte. Votre profil individuel peut être supprimé, bien que le contenu que vous avez publié restera affiché. Si vous souhaitez supprimer à la fois votre compte et votre contenu, veuillez contacter l'équipe administrative pour ce site.", - "consent.right_to_data_portability": "Vous avez la possibilité de portabilité des données.", + "consent.right_to_data_portability": "Vous disposez du droit de portabilité des données", "consent.right_to_data_portability_description": "Vous pouvez exporter de toutes vos données collectées. Vous pouvez le faire en cliquant sur le bouton ci-dessous.", "consent.export_profile": "Exporter Profile (.json)", "consent.export-profile-success": "Exportation du profil, vous recevrez une notification lorsqu'elle sera terminée.", @@ -203,7 +203,7 @@ "emailUpdate.intro": "Veuillez renseigner votre adresse mail. Ce forum utilise votre adresse mail pour suivre l'activité et les notifications programmées, ainsi que pour la récupération de compte en cas de perte de mot de passe.", "emailUpdate.optional": "Ce champ est facultatif. Vous n'êtes pas obligé de fournir votre adresse e-mail, mais sans e-mail validé, vous ne pourrez pas récupérer votre compte ou vous connecter avec votre e-mail.", "emailUpdate.required": "Ce champ est requis.", - "emailUpdate.change-instructions": "Un e-mail de confirmation sera envoyé à l'adresse mail saisie avec un lien unique. L'accès à ce lien confirmera votre propriété d'e-mail et elle deviendra active sur votre compte. À tout moment, vous pouvez mettre à jour votre e-mail enregistré depuis la page de votre compte.", + "emailUpdate.change-instructions": "Un e-mail de confirmation avec un lien unique sera envoyé à l'adresse mail saisie. L'accès à ce lien confirmera qu'il s'agit bien de votre e-mail et celui-ci deviendra actif sur votre compte. À tout moment, vous pouvez mettre à jour votre e-mail enregistré depuis la page de votre compte.", "emailUpdate.password-challenge": "Veuillez entrer votre mot de passe pour confirmer la propriété du compte.", "emailUpdate.pending": "Votre adresse e-mail n'a pas encore été confirmée, mais un e-mail a été envoyé pour demander une confirmation. Si vous souhaitez annuler cette demande et renvoyer une demande de confirmation, veuillez remplir le formulaire ci-dessous." } \ No newline at end of file diff --git a/public/language/fr/users.json b/public/language/fr/users.json index 36b9dd9a45..393e7ed478 100644 --- a/public/language/fr/users.json +++ b/public/language/fr/users.json @@ -5,16 +5,16 @@ "most_reputation": "Meilleur Réputation", "most_flags": "Les plus signalés", "search": "Rechercher", - "enter_username": "Entrez le nom d'un utilisateur", + "enter_username": "Entrer le nom d'un utilisateur", "search-user-for-chat": "Rechercher un utilisateur pour démarrer la discussion", "load_more": "Charger la suite", "users-found-search-took": "%1 utilisateur(s) trouvé(s)! La recherche a pris %2 secondes.", "filter-by": "Filtrer par", "online-only": "En ligne uniquement", "invite": "Invitation", - "prompt-email": "Emails:", - "groups-to-join": "Groupes à rejoindre lorsque l'invitation est acceptée:", - "invitation-email-sent": "Un email d'invitation a été envoyé à %1", + "prompt-email": "E-mails :", + "groups-to-join": "Groupes à rejoindre lorsque l'invitation est acceptée :", + "invitation-email-sent": "Un e-mail d'invitation a été envoyé à %1", "user_list": "Liste d'utilisateurs", "recent_topics": "Sujets Récents", "popular_topics": "Sujets Populaires", From 805aaa5ec3f82c0eb26cba69c9ba6b3ac9471a5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Sun, 17 Sep 2023 09:05:56 -0400 Subject: [PATCH 050/275] chore: up emoji --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index 6697abad77..f8b196b21f 100644 --- a/install/package.json +++ b/install/package.json @@ -95,7 +95,7 @@ "nodebb-plugin-2factor": "7.2.2", "nodebb-plugin-composer-default": "10.2.23", "nodebb-plugin-dbsearch": "6.2.2", - "nodebb-plugin-emoji": "5.1.7", + "nodebb-plugin-emoji": "5.1.8", "nodebb-plugin-emoji-android": "4.0.0", "nodebb-plugin-markdown": "12.2.4", "nodebb-plugin-mentions": "4.3.5", From 9f5362c8a444897a28cd54f823485db4eb182b16 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 18 Sep 2023 15:32:17 -0400 Subject: [PATCH 051/275] fix(deps): update dependency cropperjs to v1.6.1 (#12013) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index f8b196b21f..5e2e18120d 100644 --- a/install/package.json +++ b/install/package.json @@ -59,7 +59,7 @@ "connect-redis": "7.1.0", "cookie-parser": "1.4.6", "cron": "2.4.3", - "cropperjs": "1.6.0", + "cropperjs": "1.6.1", "csrf-sync": "4.0.1", "daemon": "1.1.0", "diff": "5.1.0", From 6fa6f73b99f9cc10769a57aacfda54ecf2766318 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 18 Sep 2023 15:32:32 -0400 Subject: [PATCH 052/275] chore(deps): update postgres docker tag to v16 (#12012) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/test.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 0e424e4edd..b6e3ed72c0 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -48,7 +48,7 @@ jobs: services: postgres: - image: 'postgres:15-alpine' + image: 'postgres:16-alpine' env: POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres From 5bfcd34c2529211f8efb51a239c99cde511af692 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 18 Sep 2023 15:32:47 -0400 Subject: [PATCH 053/275] fix(deps): update dependency mongodb to v5.9.0 (#12008) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index 5e2e18120d..16ddda7b43 100644 --- a/install/package.json +++ b/install/package.json @@ -87,7 +87,7 @@ "lru-cache": "10.0.1", "mime": "3.0.0", "mkdirp": "3.0.1", - "mongodb": "5.8.1", + "mongodb": "5.9.0", "morgan": "1.10.0", "mousetrap": "1.6.5", "multiparty": "4.2.3", From 5a003acb13deee36d618b4532288c549ac78403c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 18 Sep 2023 15:32:59 -0400 Subject: [PATCH 054/275] fix(deps): update dependency ace-builds to v1.26.0 (#12010) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index 16ddda7b43..dd88310930 100644 --- a/install/package.json +++ b/install/package.json @@ -34,7 +34,7 @@ "@fortawesome/fontawesome-free": "6.4.2", "@isaacs/ttlcache": "1.4.1", "@popperjs/core": "2.11.8", - "ace-builds": "1.25.1", + "ace-builds": "1.26.0", "archiver": "6.0.1", "async": "3.2.4", "autoprefixer": "10.4.15", From 4e834a2ef47b8025cd4ab4c21c5878c76fca6e36 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 18 Sep 2023 15:33:08 -0400 Subject: [PATCH 055/275] fix(deps): update dependency nodebb-plugin-ntfy to v1.7.1 (#12011) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index dd88310930..8510137a3e 100644 --- a/install/package.json +++ b/install/package.json @@ -99,7 +99,7 @@ "nodebb-plugin-emoji-android": "4.0.0", "nodebb-plugin-markdown": "12.2.4", "nodebb-plugin-mentions": "4.3.5", - "nodebb-plugin-ntfy": "1.6.1", + "nodebb-plugin-ntfy": "1.7.1", "nodebb-plugin-spam-be-gone": "2.1.1", "nodebb-rewards-essentials": "0.2.3", "nodebb-theme-harmony": "1.1.62", From ba894a04d621885cecba8470baaa4a3f66060487 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 18 Sep 2023 15:33:18 -0400 Subject: [PATCH 056/275] fix(deps): update dependency rtlcss to v4.1.1 (#12014) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index 8510137a3e..4fa5340a7f 100644 --- a/install/package.json +++ b/install/package.json @@ -123,7 +123,7 @@ "request-promise-native": "1.0.9", "rimraf": "5.0.1", "rss": "1.2.2", - "rtlcss": "4.1.0", + "rtlcss": "4.1.1", "sanitize-html": "2.11.0", "sass": "1.67.0", "semver": "7.5.4", From 5081ff485e7f2e5281405516e318a44db97c9179 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Tue, 19 Sep 2023 10:57:16 -0400 Subject: [PATCH 057/275] chore: up emoji --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index 4fa5340a7f..43e58d0ae5 100644 --- a/install/package.json +++ b/install/package.json @@ -95,7 +95,7 @@ "nodebb-plugin-2factor": "7.2.2", "nodebb-plugin-composer-default": "10.2.23", "nodebb-plugin-dbsearch": "6.2.2", - "nodebb-plugin-emoji": "5.1.8", + "nodebb-plugin-emoji": "5.1.9", "nodebb-plugin-emoji-android": "4.0.0", "nodebb-plugin-markdown": "12.2.4", "nodebb-plugin-mentions": "4.3.5", From 7dbc66683a4471f9daa3c50121719b794a87193a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 19 Sep 2023 10:57:44 -0400 Subject: [PATCH 058/275] fix(deps): update dependency postcss to v8.4.30 (#12015) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index 43e58d0ae5..2b595843c0 100644 --- a/install/package.json +++ b/install/package.json @@ -114,7 +114,7 @@ "passport-local": "1.0.0", "pg": "8.11.3", "pg-cursor": "2.10.3", - "postcss": "8.4.29", + "postcss": "8.4.30", "postcss-clean": "1.2.0", "progress-webpack-plugin": "1.0.16", "prompt": "1.3.0", From f838498bfc9862ea44916f5b54d11b5107151dc0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 19 Sep 2023 10:58:05 -0400 Subject: [PATCH 059/275] fix(deps): update dependency sharp to v0.32.6 (#12016) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index 2b595843c0..e87614201e 100644 --- a/install/package.json +++ b/install/package.json @@ -128,7 +128,7 @@ "sass": "1.67.0", "semver": "7.5.4", "serve-favicon": "2.5.0", - "sharp": "0.32.5", + "sharp": "0.32.6", "sitemap": "7.1.1", "socket.io": "4.7.2", "socket.io-client": "4.7.2", From 16fe4fdecf65d859e75ddcc7e9e7bbd356161b34 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 19 Sep 2023 13:11:36 -0400 Subject: [PATCH 060/275] fix(deps): update dependency nodebb-plugin-emoji to v5.1.10 (#12018) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index e87614201e..fe60255b19 100644 --- a/install/package.json +++ b/install/package.json @@ -95,7 +95,7 @@ "nodebb-plugin-2factor": "7.2.2", "nodebb-plugin-composer-default": "10.2.23", "nodebb-plugin-dbsearch": "6.2.2", - "nodebb-plugin-emoji": "5.1.9", + "nodebb-plugin-emoji": "5.1.10", "nodebb-plugin-emoji-android": "4.0.0", "nodebb-plugin-markdown": "12.2.4", "nodebb-plugin-mentions": "4.3.5", From f73ed6dd508f3cefa27ac7bcfbebd2d8824fb6f0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 19 Sep 2023 13:11:57 -0400 Subject: [PATCH 061/275] fix(deps): update dependency ace-builds to v1.27.0 (#12019) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index fe60255b19..e3273d0326 100644 --- a/install/package.json +++ b/install/package.json @@ -34,7 +34,7 @@ "@fortawesome/fontawesome-free": "6.4.2", "@isaacs/ttlcache": "1.4.1", "@popperjs/core": "2.11.8", - "ace-builds": "1.26.0", + "ace-builds": "1.27.0", "archiver": "6.0.1", "async": "3.2.4", "autoprefixer": "10.4.15", From 581bac4144e0691dad430bbe0b5a5f28c8c1eb13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Tue, 19 Sep 2023 14:00:26 -0400 Subject: [PATCH 062/275] bump emoji --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index e3273d0326..3166aeb448 100644 --- a/install/package.json +++ b/install/package.json @@ -95,7 +95,7 @@ "nodebb-plugin-2factor": "7.2.2", "nodebb-plugin-composer-default": "10.2.23", "nodebb-plugin-dbsearch": "6.2.2", - "nodebb-plugin-emoji": "5.1.10", + "nodebb-plugin-emoji": "5.1.11", "nodebb-plugin-emoji-android": "4.0.0", "nodebb-plugin-markdown": "12.2.4", "nodebb-plugin-mentions": "4.3.5", From 86de8cb296fd5516495e62d0b39a8a7454b728c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Tue, 19 Sep 2023 19:10:48 -0400 Subject: [PATCH 063/275] chore: up emoji --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index 3166aeb448..506cb6948f 100644 --- a/install/package.json +++ b/install/package.json @@ -95,7 +95,7 @@ "nodebb-plugin-2factor": "7.2.2", "nodebb-plugin-composer-default": "10.2.23", "nodebb-plugin-dbsearch": "6.2.2", - "nodebb-plugin-emoji": "5.1.11", + "nodebb-plugin-emoji": "5.1.12", "nodebb-plugin-emoji-android": "4.0.0", "nodebb-plugin-markdown": "12.2.4", "nodebb-plugin-mentions": "4.3.5", From 00dd0cb30bde1fc66015270d187da0545f742007 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Tue, 19 Sep 2023 19:46:59 -0400 Subject: [PATCH 064/275] chore: up emoji --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index 506cb6948f..0e2568e790 100644 --- a/install/package.json +++ b/install/package.json @@ -95,7 +95,7 @@ "nodebb-plugin-2factor": "7.2.2", "nodebb-plugin-composer-default": "10.2.23", "nodebb-plugin-dbsearch": "6.2.2", - "nodebb-plugin-emoji": "5.1.12", + "nodebb-plugin-emoji": "5.1.13", "nodebb-plugin-emoji-android": "4.0.0", "nodebb-plugin-markdown": "12.2.4", "nodebb-plugin-mentions": "4.3.5", From 293b460a63fc7ddf67bae31813e2934d291e1e32 Mon Sep 17 00:00:00 2001 From: Misty Release Bot Date: Wed, 20 Sep 2023 09:20:01 +0000 Subject: [PATCH 065/275] Latest translations and fallbacks --- public/language/it/modules.json | 14 +++++------ .../language/sl/admin/appearance/skins.json | 8 +++---- public/language/sl/admin/manage/users.json | 24 +++++++++---------- public/language/sl/global.json | 10 ++++---- 4 files changed, 28 insertions(+), 28 deletions(-) diff --git a/public/language/it/modules.json b/public/language/it/modules.json index 37bddceea7..e49210015b 100644 --- a/public/language/it/modules.json +++ b/public/language/it/modules.json @@ -85,13 +85,13 @@ "composer.uploading": "Caricamento %1", "composer.formatting.bold": "Grassetto", "composer.formatting.italic": "Corsivo", - "composer.formatting.heading": "Heading", - "composer.formatting.heading1": "Heading 1", - "composer.formatting.heading2": "Heading 2", - "composer.formatting.heading3": "Heading 3", - "composer.formatting.heading4": "Heading 4", - "composer.formatting.heading5": "Heading 5", - "composer.formatting.heading6": "Heading 6", + "composer.formatting.heading": "Titolo", + "composer.formatting.heading1": "Titolo 1", + "composer.formatting.heading2": "Titolo 2", + "composer.formatting.heading3": "Titolo 3", + "composer.formatting.heading4": "Titolo 4", + "composer.formatting.heading5": "Titolo 5", + "composer.formatting.heading6": "Titolo 6", "composer.formatting.list": "Lista", "composer.formatting.strikethrough": "Barrato", "composer.formatting.code": "Codice", diff --git a/public/language/sl/admin/appearance/skins.json b/public/language/sl/admin/appearance/skins.json index 62f1b40941..d30c3295ad 100644 --- a/public/language/sl/admin/appearance/skins.json +++ b/public/language/sl/admin/appearance/skins.json @@ -1,8 +1,8 @@ { - "skins": "Skins", + "skins": "Preobleke", "bootswatch-skins": "Bootswatch Skins", - "custom-skins": "Custom Skins", - "add-skin": "Add Skin", + "custom-skins": "Preobleke po meri", + "add-skin": "Dodaj preobleko", "save-custom-skins": "Save Custom Skins", "save-custom-skins-success": "Custom skins saved successfully", "custom-skin-name": "Custom Skin Name", @@ -10,7 +10,7 @@ "loading": "Nalagam preobleke...", "homepage": "Domača stran", "select-skin": "Izberi preobleko", - "revert-skin": "Revert Skin", + "revert-skin": "Povrni preobleko", "current-skin": "Trenutna preobleka", "skin-updated": "Preobleka je posodobljena", "applied-success": "%1 preobleke je bilo uspešno uveljavljene", diff --git a/public/language/sl/admin/manage/users.json b/public/language/sl/admin/manage/users.json index b03aee6b12..45570ccade 100644 --- a/public/language/sl/admin/manage/users.json +++ b/public/language/sl/admin/manage/users.json @@ -1,14 +1,14 @@ { - "manage-users": "Manage Users", + "manage-users": "Upravljaj uporabnike", "users": "Uporabniki", "edit": "Dejanja", "make-admin": "Nastavi kot skrbnika", "remove-admin": "Odstrani kot skrbnika", - "change-email": "Change Email", - "new-email": "New Email", + "change-email": "Spremeni e-poštni naslov", + "new-email": "Nov e-poštni naslov", "validate-email": "Potrdite e-poštni naslov", "send-validation-email": "Pošljite potrditveno e-sporočilo", - "change-password": "Change Password", + "change-password": "Spremeni geslo", "password-reset-email": "Pošljite e-poštno sporočilo za ponastavitev gesla", "force-password-reset": "Vsilite ponastavitev gesla in odjavo uporabnika", "ban": "Ban", @@ -18,15 +18,15 @@ "reset-lockout": "Ponastavitev zaklepanja", "reset-flags": "Reset Flags", "delete": "Delete", - "delete-users": "Delete User(s)", + "delete-users": "Izbrišite uporabnika(e)", "delete-content": "Izbrišite Vsebino uporabnika(ov)", "purge": "Izbrišiteuporabnika(e) in vsebino", "download-csv": "Prenesite CSV", "manage-groups": "Upravljaj skupine", "set-reputation": "Set Reputation", "add-group": "Dodaj skupino", - "create": "Create User", - "invite": "Invite by Email", + "create": "Ustvari uporabnika", + "invite": "Povabi preko e-pošte", "new": "Nov uporabnik", "filter-by": "Filtriraj po", "pills.unvalidated": "Nepotrjeno", @@ -86,7 +86,7 @@ "alerts.button-ban-x": "Ban %1 user(s)", "alerts.unban-success": "User(s) unbanned!", "alerts.lockout-reset-success": "Lockout(s) reset!", - "alerts.password-change-success": "Password(s) changed!", + "alerts.password-change-success": "Geslo(a) spremenjeno(a)!", "alerts.flag-reset-success": "Flags(s) reset!", "alerts.no-remove-yourself-admin": "Sebe kot skrbnika ne morete odstraniti!", "alerts.make-admin-success": "Uporabnik je sedaj skrbnik.", @@ -112,7 +112,7 @@ "alerts.create": "Ustvari uporabnika", "alerts.button-create": "Ustvari", "alerts.button-cancel": "Prekliči", - "alerts.button-change": "Change", + "alerts.button-change": "Spremeni", "alerts.error-passwords-different": "Gesli se morata ujemati!", "alerts.error-x": "Napaka

%1

", "alerts.create-success": "Uporabnik je ustvarjen!", @@ -123,7 +123,7 @@ "alerts.select-a-single-user-to-change-email": "Select a single user to change email", "export-users-started": "Izvoz uporabnikov kot CSV lahko traja nekaj časa. Ko bo končano, boste prejeli obvestilo.", "export-users-completed": "Uporabniki, izvoženi kot CSV, kliknite tukaj za prenos.", - "email": "Email", - "password": "Password", - "manage": "Manage" + "email": "E-poštni naslov", + "password": "Geslo", + "manage": "Upravljaj" } \ No newline at end of file diff --git a/public/language/sl/global.json b/public/language/sl/global.json index 3e1aa48afa..102fb50661 100644 --- a/public/language/sl/global.json +++ b/public/language/sl/global.json @@ -4,7 +4,7 @@ "buttons.close": "Zapri", "403.title": "Dostop zavrnjen", "403.message": "Kaže, da ste naleteli na stran, za katero nimate dovoljenja.", - "403.login": "Perhaps you should try logging in?", + "403.login": "Morda bi se morali poskusiti prijaviti?", "404.title": "Tega ni bilo mogoče najti.", "404.message": "You seem to have stumbled upon a page that does not exist.
Return to the home page.
", "500.title": "Interna napaka", @@ -20,8 +20,8 @@ "you_have_successfully_logged_in": "Uspešno ste se prijavili.", "save_changes": "Shrani spremembe.", "save": "Shrani", - "create": "Create", - "cancel": "Cancel", + "create": "Ustvari", + "cancel": "Prekliči", "close": "Zapri", "pagination": "Oštevilčenje strani", "pagination.out_of": "%1 od %2", @@ -39,10 +39,10 @@ "header.notifications": "Obvestila", "header.search": "Iskanje", "header.profile": "Profil", - "header.account": "Account", + "header.account": "Račun", "header.navigation": "Krmarjenje", "header.manage": "Manage", - "header.drafts": "Drafts", + "header.drafts": "Osnutki", "notifications.loading": "Nalaganje obvestil", "chats.loading": "Nalaganje klepetov", "drafts.loading": "Loading Drafts", From a7517d886f83703dc158c0e2327542156b539eb6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Wed, 20 Sep 2023 09:48:45 -0400 Subject: [PATCH 066/275] feat: add new hook action:chat.onMessagesAddedToDom fires whenever new messages are added to dom * receive new message * added by scrolling up to load old messages --- public/src/client/chats/messages.js | 1 + 1 file changed, 1 insertion(+) diff --git a/public/src/client/chats/messages.js b/public/src/client/chats/messages.js index 446d4ce31b..89a14dff81 100644 --- a/public/src/client/chats/messages.js +++ b/public/src/client/chats/messages.js @@ -116,6 +116,7 @@ define('forum/chats/messages', [ messageEls.find('img:not(.emoji)').each(function () { images.wrapImageInLink($(this)); }); + hooks.fire('action:chat.onMessagesAddedToDom', { messageEls }); }; messages.parseMessage = function (data, callback) { From 5dc368a95b264aca253fdcb68841a01472c25d4a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 20 Sep 2023 18:28:32 -0400 Subject: [PATCH 067/275] fix(deps): update dependency bootswatch to v5.3.2 (#12020) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index 0e2568e790..9d18c074e6 100644 --- a/install/package.json +++ b/install/package.json @@ -43,7 +43,7 @@ "body-parser": "1.20.2", "bootbox": "6.0.0", "bootstrap": "5.3.2", - "bootswatch": "5.3.1", + "bootswatch": "5.3.2", "chalk": "4.1.2", "chart.js": "2.9.4", "cli-graph": "3.2.2", From 639fb33fd3adbdc348da7eb34ab901ac996c4b14 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 20 Sep 2023 18:28:38 -0400 Subject: [PATCH 068/275] fix(deps): update dependency nodebb-plugin-2factor to v7.3.0 (#12021) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index 9d18c074e6..b8f467d906 100644 --- a/install/package.json +++ b/install/package.json @@ -92,7 +92,7 @@ "mousetrap": "1.6.5", "multiparty": "4.2.3", "nconf": "0.12.0", - "nodebb-plugin-2factor": "7.2.2", + "nodebb-plugin-2factor": "7.3.0", "nodebb-plugin-composer-default": "10.2.23", "nodebb-plugin-dbsearch": "6.2.2", "nodebb-plugin-emoji": "5.1.13", From f6b6e6c7151206603a048db1fba550c2d205bff5 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 20 Sep 2023 18:28:47 -0400 Subject: [PATCH 069/275] fix(deps): update dependency autoprefixer to v10.4.16 (#12022) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index b8f467d906..5d6ff5415d 100644 --- a/install/package.json +++ b/install/package.json @@ -37,7 +37,7 @@ "ace-builds": "1.27.0", "archiver": "6.0.1", "async": "3.2.4", - "autoprefixer": "10.4.15", + "autoprefixer": "10.4.16", "bcryptjs": "2.4.3", "benchpressjs": "2.5.1", "body-parser": "1.20.2", From be600a84f7676642033921192161ca74c26a0491 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 21 Sep 2023 00:04:26 -0400 Subject: [PATCH 070/275] fix(deps): update dependency sass to v1.68.0 (#12023) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index 5d6ff5415d..9d5e50261a 100644 --- a/install/package.json +++ b/install/package.json @@ -125,7 +125,7 @@ "rss": "1.2.2", "rtlcss": "4.1.1", "sanitize-html": "2.11.0", - "sass": "1.67.0", + "sass": "1.68.0", "semver": "7.5.4", "serve-favicon": "2.5.0", "sharp": "0.32.6", From 615b2f0fa06232dae2194bbcac72051bbf5b4674 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Thu, 21 Sep 2023 11:13:11 -0400 Subject: [PATCH 071/275] fix: on shutdown clear locks --- src/start.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/start.js b/src/start.js index 94a785bcc7..b546c1ffc8 100644 --- a/src/start.js +++ b/src/start.js @@ -137,7 +137,9 @@ async function shutdown(code) { winston.info('[app] Web server closed to connections.'); await require('./analytics').writeData(); winston.info('[app] Live analytics saved.'); - await require('./database').close(); + const db = require('./database'); + await db.delete('locks'); + await db.close(); winston.info('[app] Database connection closed.'); winston.info('[app] Shutdown complete.'); process.exit(code || 0); From 6c578d6cd481f97a2b4c99bcd1f2264111919969 Mon Sep 17 00:00:00 2001 From: Misty Release Bot Date: Fri, 22 Sep 2023 09:19:16 +0000 Subject: [PATCH 072/275] Latest translations and fallbacks --- public/language/fr/admin/manage/digest.json | 10 +++++----- public/language/fr/admin/settings/user.json | 2 +- public/language/fr/email.json | 8 ++++---- public/language/fr/user.json | 4 ++-- public/language/sr/modules.json | 14 +++++++------- 5 files changed, 19 insertions(+), 19 deletions(-) diff --git a/public/language/fr/admin/manage/digest.json b/public/language/fr/admin/manage/digest.json index 6f9728bfdc..d3fd7a9e92 100644 --- a/public/language/fr/admin/manage/digest.json +++ b/public/language/fr/admin/manage/digest.json @@ -10,11 +10,11 @@ "default-help": "La valeur par défaut signifie que l'utilisateur n'a pas explicitement modifié les paramètres pour les lettres d'activités, qui sont : \"%1\"", "resend": "Renvoi", "resend-all-confirm": "Voulez-vous vraiment exécuter manuellement cet envoi ?", - "resent-single": "Lettre d'activité envoyée", - "resent-day": "Lettre d'activité quotidienne envoyée", - "resent-week": "Lettre d'activité hebdomadaire envoyée", - "resent-biweek": "Lettre d'activité bihebdomadaire envoyée", - "resent-month": "Lettre d'activité mensuelle envoyée", + "resent-single": "Lettre d'activités envoyée", + "resent-day": "Lettre d'activités quotidienne envoyée", + "resent-week": "Lettre d'activités hebdomadaire envoyée", + "resent-biweek": "Lettre d'activités bihebdomadaire envoyée", + "resent-month": "Lettre d'activités mensuelle envoyée", "null": "Jamais", "manual-run": "Lancer manuellement l'envoi :", diff --git a/public/language/fr/admin/settings/user.json b/public/language/fr/admin/settings/user.json index c9ff10127c..4989da31f9 100644 --- a/public/language/fr/admin/settings/user.json +++ b/public/language/fr/admin/settings/user.json @@ -67,7 +67,7 @@ "outgoing-new-tab": "Ouvrir les liens sortants dans un nouvel onglet", "topic-search": "Activer la recherche au sein des sujets", "update-url-with-post-index": "Mettre à jour l'URL avec l'index des articles", - "digest-freq": "S'inscrire aux comptes rendus d'activité", + "digest-freq": "S'inscrire aux comptes rendus d'activités", "digest-freq.off": "Désactivé", "digest-freq.daily": "Quotidien", "digest-freq.weekly": "Hebdomadaire", diff --git a/public/language/fr/email.json b/public/language/fr/email.json index a6096f7855..f826554285 100644 --- a/public/language/fr/email.json +++ b/public/language/fr/email.json @@ -28,14 +28,14 @@ "digest.top-topics": "Meilleurs sujets de %1", "digest.popular-topics": "Sujets populaires de %1", "digest.cta": "Cliquer ici pour aller sur %1", - "digest.unsub.info": "Cette lettre d'actualité vous a été envoyée en raison de vos paramètres d'abonnement.", + "digest.unsub.info": "Cette lettre d'activités vous a été envoyée en raison de vos paramètres d'abonnement.", "digest.day": "jour", "digest.week": "semaine", "digest.month": "mois", "digest.subject": "Lettre d'activités de %1", - "digest.title.day": "Votre lettre d'activité quotidienne", - "digest.title.week": "Votre lettre d'activité hebdomadaire", - "digest.title.month": "Votre lettre d'activité mensuel", + "digest.title.day": "Votre lettre d'activités quotidienne", + "digest.title.week": "Votre lettre d'activités hebdomadaire", + "digest.title.month": "Votre lettre d'activités mensuel", "notif.chat.subject": "Nouveau message de chat reçu de %1", "notif.chat.public-chat-subject": "Nouveau message de %1 dans le salon %2", "notif.chat.cta": "Cliquer ici pour continuer la conversation", diff --git a/public/language/fr/user.json b/public/language/fr/user.json index e90213aefb..fe8099f03c 100644 --- a/public/language/fr/user.json +++ b/public/language/fr/user.json @@ -181,8 +181,8 @@ "consent.lead": "Ce forum collecte et traite vos informations personnelles.", "consent.intro": "Nous utilisons ces informations strictement pour personnaliser votre expérience dans cette communauté, ainsi que pour associer les messages que vous publiez à votre compte utilisateur. Lors de l'étape d'enregistrement, vous avez été invité à fournir un nom d'utilisateur et une adresse e-mail. Vous pouvez également fournir des informations supplémentaires pour compléter votre profil.

Nous conservons ces informations durant la durée de vie de votre compte utilisateur. À tout moment vous pouvez supprimer votre compte. À tout moment, vous pouvez demander une copie de vos contributions, via la page de \"Vos données personnelles\".

Si vous avez des questions ou préoccupations, nous vous encourageons à contacter l'équipe d'administration de ce forum.", "consent.email_intro": "Occasionnellement, nous pouvons envoyer des courriels afin de fournir des mises à jour et / ou de vous informer de toute nouvelle activité qui vous concerne. Vous pouvez personnaliser la fréquence d'envoi (y compris la désactiver), ainsi que sélectionner les types de notifications à recevoir, via vos paramètres utilisateur.", - "consent.digest_frequency": "Par défaut, ce forum délivre des lettres d'activité tous les %1.", - "consent.digest_off": "Actuellement, ce forum n’envoie pas de lettre d'activité", + "consent.digest_frequency": "Par défaut, ce forum délivre des lettres d'activités tous les %1.", + "consent.digest_off": "Actuellement, ce forum n’envoie pas de lettre d'activités", "consent.received": "Vous avez donné votre accord pour que ce site collecte et traite vos informations. Aucune action supplémentaire n'est requise.", "consent.not_received": "Vous n'avez pas donné votre accord pour la collecte et le traitement des données. A tout moment, l'équipe d'administration de ce site peut choisir de supprimer votre compte afin de se conformer au règlement général sur la protection des données.", "consent.give": "Donner son accord", diff --git a/public/language/sr/modules.json b/public/language/sr/modules.json index 2bdee7a590..de512a835c 100644 --- a/public/language/sr/modules.json +++ b/public/language/sr/modules.json @@ -85,13 +85,13 @@ "composer.uploading": "Отпремање %1", "composer.formatting.bold": "Подебљано", "composer.formatting.italic": "Курзив", - "composer.formatting.heading": "Heading", - "composer.formatting.heading1": "Heading 1", - "composer.formatting.heading2": "Heading 2", - "composer.formatting.heading3": "Heading 3", - "composer.formatting.heading4": "Heading 4", - "composer.formatting.heading5": "Heading 5", - "composer.formatting.heading6": "Heading 6", + "composer.formatting.heading": "Наслов", + "composer.formatting.heading1": "Наслов 1", + "composer.formatting.heading2": "Наслов 2", + "composer.formatting.heading3": "Наслов 3", + "composer.formatting.heading4": "Наслов 4", + "composer.formatting.heading5": "Наслов 5", + "composer.formatting.heading6": "Наслов 6", "composer.formatting.list": "Листа", "composer.formatting.strikethrough": "Прецртано", "composer.formatting.code": "Код", From 360d3257f6ebaffd5a001439a111b00a4443a654 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 22 Sep 2023 09:14:39 -0400 Subject: [PATCH 073/275] fix(deps): update dependency nodebb-plugin-ntfy to v1.7.2 (#12024) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index 9d5e50261a..e864ba4480 100644 --- a/install/package.json +++ b/install/package.json @@ -99,7 +99,7 @@ "nodebb-plugin-emoji-android": "4.0.0", "nodebb-plugin-markdown": "12.2.4", "nodebb-plugin-mentions": "4.3.5", - "nodebb-plugin-ntfy": "1.7.1", + "nodebb-plugin-ntfy": "1.7.2", "nodebb-plugin-spam-be-gone": "2.1.1", "nodebb-rewards-essentials": "0.2.3", "nodebb-theme-harmony": "1.1.62", From d29ea026de3853accb02fe6cc022300187dde62d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 22 Sep 2023 09:15:05 -0400 Subject: [PATCH 074/275] fix(deps): update dependency nodebb-plugin-2factor to v7.3.1 (#12026) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index e864ba4480..2c696984eb 100644 --- a/install/package.json +++ b/install/package.json @@ -92,7 +92,7 @@ "mousetrap": "1.6.5", "multiparty": "4.2.3", "nconf": "0.12.0", - "nodebb-plugin-2factor": "7.3.0", + "nodebb-plugin-2factor": "7.3.1", "nodebb-plugin-composer-default": "10.2.23", "nodebb-plugin-dbsearch": "6.2.2", "nodebb-plugin-emoji": "5.1.13", From b8e43143cd594e66e56e3c3a43b660916e6393a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Fri, 22 Sep 2023 09:55:02 -0400 Subject: [PATCH 075/275] fix: closes #12007, parseInt notification fields --- src/notifications.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/notifications.js b/src/notifications.js index 85fd2be0e1..74f17642ca 100644 --- a/src/notifications.js +++ b/src/notifications.js @@ -41,6 +41,8 @@ Notifications.privilegedTypes = [ const notificationPruneCutoff = 2592000000; // one month +const intFields = ['datetime', 'from', 'important', 'tid', 'pid', 'roomId']; + Notifications.getAllNotificationTypes = async function () { const results = await plugins.hooks.fire('filter:user.notificationTypes', { types: Notifications.baseTypes.slice(), @@ -72,6 +74,11 @@ Notifications.getMultiple = async function (nids) { notifications.forEach((notification, index) => { if (notification) { + intFields.forEach((field) => { + if (notification.hasOwnProperty(field)) { + notification[field] = parseInt(notification[field], 10) || 0; + } + }); if (notification.path && !notification.path.startsWith('http')) { notification.path = nconf.get('relative_path') + notification.path; } From 3262923a3fbb78050fd43c90c4996f2d0e41e46f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 22 Sep 2023 09:55:53 -0400 Subject: [PATCH 076/275] fix(deps): update dependency ace-builds to v1.28.0 (#12028) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index 2c696984eb..b74ac51cc2 100644 --- a/install/package.json +++ b/install/package.json @@ -34,7 +34,7 @@ "@fortawesome/fontawesome-free": "6.4.2", "@isaacs/ttlcache": "1.4.1", "@popperjs/core": "2.11.8", - "ace-builds": "1.27.0", + "ace-builds": "1.28.0", "archiver": "6.0.1", "async": "3.2.4", "autoprefixer": "10.4.16", From 8041f4d185188d34ed6923347adf0de748799635 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Fri, 22 Sep 2023 10:15:34 -0400 Subject: [PATCH 077/275] fix: field name importance --- src/notifications.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/notifications.js b/src/notifications.js index 74f17642ca..86e2f37ba9 100644 --- a/src/notifications.js +++ b/src/notifications.js @@ -41,7 +41,7 @@ Notifications.privilegedTypes = [ const notificationPruneCutoff = 2592000000; // one month -const intFields = ['datetime', 'from', 'important', 'tid', 'pid', 'roomId']; +const intFields = ['datetime', 'from', 'importance', 'tid', 'pid', 'roomId']; Notifications.getAllNotificationTypes = async function () { const results = await plugins.hooks.fire('filter:user.notificationTypes', { From e452c097d010f1e98773e578081581ee6e1304fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Fri, 22 Sep 2023 11:44:32 -0400 Subject: [PATCH 078/275] refactor: get rid of some async.waterfall/series/parallel calls --- test/authentication.js | 44 ++++-------- test/categories.js | 153 +++++++++++++---------------------------- test/notifications.js | 152 ++++++++++++++-------------------------- 3 files changed, 112 insertions(+), 237 deletions(-) diff --git a/test/authentication.js b/test/authentication.js index 60be72e457..12afc00c15 100644 --- a/test/authentication.js +++ b/test/authentication.js @@ -552,36 +552,22 @@ describe('authentication', () => { }); }); - it('should lockout account on 3 failed login attempts', (done) => { + it('should lockout account on 3 failed login attempts', async () => { meta.config.loginAttempts = 3; - let uid; - async.waterfall([ - function (next) { - user.create({ username: 'lockme', password: '123456' }, next); - }, - async (_uid) => { - uid = _uid; - return helpers.loginUser('lockme', 'abcdef'); - }, - async data => helpers.loginUser('lockme', 'abcdef'), - async data => helpers.loginUser('lockme', 'abcdef'), - async data => helpers.loginUser('lockme', 'abcdef'), - async (data) => { - meta.config.loginAttempts = 5; - assert.equal(data.res.statusCode, 403); - assert.equal(data.body, '[[error:account-locked]]'); - return helpers.loginUser('lockme', 'abcdef'); - }, - function (data, next) { - assert.equal(data.res.statusCode, 403); - assert.equal(data.body, '[[error:account-locked]]'); - db.exists(`lockout:${uid}`, next); - }, - function (locked, next) { - assert(locked); - next(); - }, - ], done); + const uid = await user.create({ username: 'lockme', password: '123456' }); + await helpers.loginUser('lockme', 'abcdef'); + await helpers.loginUser('lockme', 'abcdef'); + await helpers.loginUser('lockme', 'abcdef'); + let data = await helpers.loginUser('lockme', 'abcdef'); + + meta.config.loginAttempts = 5; + assert.equal(data.res.statusCode, 403); + assert.equal(data.body, '[[error:account-locked]]'); + data = await helpers.loginUser('lockme', 'abcdef'); + assert.equal(data.res.statusCode, 403); + assert.equal(data.body, '[[error:account-locked]]'); + const locked = await db.exists(`lockout:${uid}`); + assert(locked); }); it('should clear all reset tokens upon successful login', async () => { diff --git a/test/categories.js b/test/categories.js index bbff6f2466..4e4920a777 100644 --- a/test/categories.js +++ b/test/categories.js @@ -1,7 +1,5 @@ 'use strict'; - -const async = require('async'); const assert = require('assert'); const nconf = require('nconf'); const request = require('request'); @@ -18,20 +16,10 @@ describe('Categories', () => { let posterUid; let adminUid; - before((done) => { - async.series({ - posterUid: function (next) { - User.create({ username: 'poster' }, next); - }, - adminUid: function (next) { - User.create({ username: 'admin' }, next); - }, - }, (err, results) => { - assert.ifError(err); - posterUid = results.posterUid; - adminUid = results.adminUid; - groups.join('administrators', adminUid, done); - }); + before(async () => { + posterUid = await User.create({ username: 'poster' }); + adminUid = await User.create({ username: 'admin' }); + await groups.join('administrators', adminUid); }); @@ -156,32 +144,22 @@ describe('Categories', () => { describe('Categories.moveRecentReplies', () => { let moveCid; let moveTid; - before((done) => { - async.parallel({ - category: function (next) { - Categories.create({ - name: 'Test Category 2', - description: 'Test category created by testing script', - }, next); - }, - topic: function (next) { - Topics.post({ - uid: posterUid, - cid: categoryObj.cid, - title: 'Test Topic Title', - content: 'The content of test topic', - }, next); - }, - }, (err, results) => { - if (err) { - return done(err); - } - moveCid = results.category.cid; - moveTid = results.topic.topicData.tid; - Topics.reply({ uid: posterUid, content: 'test post', tid: moveTid }, (err) => { - done(err); - }); - }); + before(async () => { + const [category, topic] = await Promise.all([ + Categories.create({ + name: 'Test Category 2', + description: 'Test category created by testing script', + }), + Topics.post({ + uid: posterUid, + cid: categoryObj.cid, + title: 'Test Topic Title', + content: 'The content of test topic', + }), + ]); + moveCid = category.cid; + moveTid = topic.topicData.tid; + await Topics.reply({ uid: posterUid, content: 'test post', tid: moveTid }); }); it('should move posts from one category to another', (done) => { @@ -526,52 +504,24 @@ describe('Categories', () => { assert(canDelete); }); - it('should create category with settings from', (done) => { - let child1Cid; - let parentCid; - async.waterfall([ - function (next) { - Categories.create({ name: 'copy from', description: 'copy me' }, next); - }, - function (category, next) { - parentCid = category.cid; - Categories.create({ name: 'child1', description: 'will be gone', cloneFromCid: parentCid }, next); - }, - function (category, next) { - child1Cid = category.cid; - assert.equal(category.description, 'copy me'); - next(); - }, - ], done); + it('should create category with settings from', async () => { + const category = await Categories.create({ name: 'copy from', description: 'copy me' }); + const parentCid = category.cid; + const childCategory = await Categories.create({ name: 'child1', description: 'will be gone', cloneFromCid: parentCid }); + assert.equal(childCategory.description, 'copy me'); }); - it('should copy settings from', (done) => { - let child1Cid; - let parentCid; - async.waterfall([ - function (next) { - Categories.create({ name: 'parent', description: 'copy me' }, next); - }, - function (category, next) { - parentCid = category.cid; - Categories.create({ name: 'child1' }, next); - }, - function (category, next) { - child1Cid = category.cid; - socketCategories.copySettingsFrom( - { uid: adminUid }, - { fromCid: parentCid, toCid: child1Cid, copyParent: true }, - next - ); - }, - function (destinationCategory, next) { - Categories.getCategoryField(child1Cid, 'description', next); - }, - function (description, next) { - assert.equal(description, 'copy me'); - next(); - }, - ], done); + it('should copy settings from', async () => { + const category = await Categories.create({ name: 'parent', description: 'copy me' }); + const parentCid = category.cid; + const childCategory = await Categories.create({ name: 'child1' }); + const child1Cid = childCategory.cid; + const destinationCategory = await socketCategories.copySettingsFrom( + { uid: adminUid }, + { fromCid: parentCid, toCid: child1Cid, copyParent: true }, + ); + const description = await Categories.getCategoryField(child1Cid, 'description'); + assert.equal(description, 'copy me'); }); it('should copy privileges from another category', async () => { @@ -852,19 +802,12 @@ describe('Categories', () => { }); }); - it('should not fail when there are multiple groups', (done) => { - async.series([ - async.apply(groups.create, { name: 'testGroup2' }), - async.apply(groups.join, 'cid:1:privileges:groups:moderate', 'testGroup2'), - async.apply(groups.join, 'testGroup2', 1), - function (next) { - Categories.getModeratorUids([cid, 2], (err, uids) => { - assert.ifError(err); - assert(uids[0].includes('1')); - next(); - }); - }, - ], done); + it('should not fail when there are multiple groups', async () => { + await groups.create({ name: 'testGroup2' }); + await groups.join('cid:1:privileges:groups:moderate', 'testGroup2'); + await groups.join('testGroup2', 1); + const uids = await Categories.getModeratorUids([cid, 2]); + assert(uids[0].includes('1')); }); it('should not return moderators of disabled categories', async () => { @@ -875,13 +818,11 @@ describe('Categories', () => { assert(!uids[0].includes('1')); }); - after((done) => { - async.series([ - async.apply(groups.leave, `cid:${cid}:privileges:groups:moderate`, 'testGroup'), - async.apply(groups.leave, `cid:${cid}:privileges:groups:moderate`, 'testGroup2'), - async.apply(groups.destroy, 'testGroup'), - async.apply(groups.destroy, 'testGroup2'), - ], done); + after(async () => { + await groups.leave(`cid:${cid}:privileges:groups:moderate`, 'testGroup'); + await groups.leave(`cid:${cid}:privileges:groups:moderate`, 'testGroup2'); + await groups.destroy('testGroup'); + await groups.destroy('testGroup2'); }); }); }); diff --git a/test/notifications.js b/test/notifications.js index 96894e7606..0fdcc7f117 100644 --- a/test/notifications.js +++ b/test/notifications.js @@ -2,18 +2,19 @@ const assert = require('assert'); -const async = require('async'); const nconf = require('nconf'); +const util = require('util'); const db = require('./mocks/databasemock'); const meta = require('../src/meta'); const user = require('../src/user'); const topics = require('../src/topics'); const categories = require('../src/categories'); -const groups = require('../src/groups'); const notifications = require('../src/notifications'); const socketNotifications = require('../src/socket.io/notifications'); +const sleep = util.promisify(setTimeout); + describe('Notifications', () => { let uid; let notification; @@ -226,73 +227,39 @@ describe('Notifications', () => { }); }); - it('should link to the first unread post in a watched topic', (done) => { - const categories = require('../src/categories'); - const topics = require('../src/topics'); - let watcherUid; - let cid; - let tid; - let pid; - - async.waterfall([ - function (next) { - user.create({ username: 'watcher' }, next); - }, - function (_watcherUid, next) { - watcherUid = _watcherUid; - - categories.create({ - name: 'Test Category', - description: 'Test category created by testing script', - }, next); - }, - function (category, next) { - cid = category.cid; - - topics.post({ - uid: watcherUid, - cid: cid, - title: 'Test Topic Title', - content: 'The content of test topic', - }, next); - }, - function (topic, next) { - tid = topic.topicData.tid; - - topics.follow(tid, watcherUid, next); - }, - function (next) { - topics.reply({ - uid: uid, - content: 'This is the first reply.', - tid: tid, - }, next); - }, - function (post, next) { - pid = post.pid; - - topics.reply({ - uid: uid, - content: 'This is the second reply.', - tid: tid, - }, next); - }, - function (post, next) { - // notifications are sent asynchronously with a 1 second delay. - setTimeout(next, 3000); - }, - function (next) { - user.notifications.get(watcherUid, next); - }, - function (notifications, next) { - assert.equal(notifications.unread.length, 1, 'there should be 1 unread notification'); - assert.equal(`${nconf.get('relative_path')}/post/${pid}`, notifications.unread[0].path, 'the notification should link to the first unread post'); - next(); - }, - ], (err) => { - assert.ifError(err); - done(); + it('should link to the first unread post in a watched topic', async () => { + const watcherUid = await user.create({ username: 'watcher' }); + const { cid } = await categories.create({ + name: 'Test Category', + description: 'Test category created by testing script', }); + + const { topicData } = await topics.post({ + uid: watcherUid, + cid: cid, + title: 'Test Topic Title', + content: 'The content of test topic', + }); + const { tid } = topicData; + + await topics.follow(tid, watcherUid); + + const { pid } = await topics.reply({ + uid: uid, + content: 'This is the first reply.', + tid: tid, + }); + + await topics.reply({ + uid: uid, + content: 'This is the second reply.', + tid: tid, + }); + // notifications are sent asynchronously with a 1 second delay. + await sleep(3000); + const notifications = await user.notifications.get(watcherUid); + assert.equal(notifications.unread.length, 1, 'there should be 1 unread notification'); + assert.equal(`${nconf.get('relative_path')}/post/${pid}`, notifications.unread[0].path, 'the notification should link to the first unread post'); }); it('should get notification by nid', (done) => { @@ -403,41 +370,22 @@ describe('Notifications', () => { }); }); - it('should send notification to followers of user when he posts', (done) => { - let followerUid; - async.waterfall([ - function (next) { - user.create({ username: 'follower' }, next); - }, - function (_followerUid, next) { - followerUid = _followerUid; - user.follow(followerUid, uid, next); - }, - function (next) { - categories.create({ - name: 'Test Category', - description: 'Test category created by testing script', - }, next); - }, - function (category, next) { - topics.post({ - uid: uid, - cid: category.cid, - title: 'Test Topic Title', - content: 'The content of test topic', - }, next); - }, - function (data, next) { - setTimeout(next, 1100); - }, - function (next) { - user.notifications.getAll(followerUid, '', next); - }, - ], (err, data) => { - assert.ifError(err); - assert(data); - done(); + it('should send notification to followers of user when he posts', async () => { + const followerUid = await user.create({ username: 'follower' }); + await user.follow(followerUid, uid); + const { cid } = await categories.create({ + name: 'Test Category', + description: 'Test category created by testing script', }); + await topics.post({ + uid: uid, + cid: cid, + title: 'Test Topic Title', + content: 'The content of test topic', + }); + await sleep(1100); + const data = await user.notifications.getAll(followerUid, ''); + assert(data); }); it('should send welcome notification', (done) => { From b518e0367141e6fd055727c8ef8c4b2446e09995 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Sun, 24 Sep 2023 20:08:49 -0400 Subject: [PATCH 079/275] fix: #12032, truncate long category names --- public/src/modules/helpers.common.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/src/modules/helpers.common.js b/public/src/modules/helpers.common.js index d8ab1025fe..cb2a7c6200 100644 --- a/public/src/modules/helpers.common.js +++ b/public/src/modules/helpers.common.js @@ -102,7 +102,7 @@ module.exports = function (utils, Benchpress, relative_path) { return ''; } - return ` + return ` ${category.icon && category.icon !== 'fa-nbb-none' ? `` : ''} ${category.name} `; From 650510669fa5e954a1eb21391ed61f8e7439aac9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 25 Sep 2023 10:23:42 -0400 Subject: [PATCH 080/275] chore(deps): update dependency eslint to v8.50.0 (#12029) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index b74ac51cc2..5989cd28e9 100644 --- a/install/package.json +++ b/install/package.json @@ -156,7 +156,7 @@ "@commitlint/cli": "17.7.1", "@commitlint/config-angular": "17.7.0", "coveralls": "3.1.1", - "eslint": "8.49.0", + "eslint": "8.50.0", "eslint-config-nodebb": "0.2.1", "eslint-plugin-import": "2.28.1", "grunt": "1.6.1", From fe42fd4ebcc338f56eb3cd80809fa6d4fe956d33 Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Thu, 21 Sep 2023 17:05:45 -0400 Subject: [PATCH 081/275] fix: #12025, validity checking on user-provided toPid value --- src/posts/create.js | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/posts/create.js b/src/posts/create.js index c95ba3535e..ae9ebdbc85 100644 --- a/src/posts/create.js +++ b/src/posts/create.js @@ -9,6 +9,7 @@ const user = require('../user'); const topics = require('../topics'); const categories = require('../categories'); const groups = require('../groups'); +const privileges = require('../privileges'); const utils = require('../utils'); module.exports = function (Posts) { @@ -24,8 +25,17 @@ module.exports = function (Posts) { throw new Error('[[error:invalid-uid]]'); } - if (data.toPid && !utils.isNumber(data.toPid)) { - throw new Error('[[error:invalid-pid]]'); + if (data.toPid) { + const toPidExists = await Posts.exists(data.toPid); + const toPidDeleted = await Posts.getPostField(data.toPid, 'deleted'); + const canViewToPid = await privileges.posts.can('posts:view_deleted', data.toPid, uid); + + if ( + !utils.isNumber(data.toPid) || !toPidExists || + (toPidDeleted && !canViewToPid) + ) { + throw new Error('[[error:invalid-pid]]'); + } } const pid = await db.incrObjectField('global', 'nextPid'); From ce7403014a2ad33664933e5ec4ea4a21c35d6a4a Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Fri, 22 Sep 2023 16:50:29 -0400 Subject: [PATCH 082/275] test: added tests for new logic paths (toPid validation on post creation) re: #12025 --- test/topics.js | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/test/topics.js b/test/topics.js index 07af567b25..f40925103a 100644 --- a/test/topics.js +++ b/test/topics.js @@ -20,6 +20,7 @@ const privileges = require('../src/privileges'); const meta = require('../src/meta'); const User = require('../src/user'); const groups = require('../src/groups'); +const utils = require('../src/utils'); const helpers = require('./helpers'); const socketPosts = require('../src/socket.io/posts'); const socketTopics = require('../src/socket.io/topics'); @@ -324,6 +325,51 @@ describe('Topic\'s', () => { }); }); + it('should fail to create new reply with toPid that has been purged', async () => { + const { postData } = await topics.post({ + uid: topic.userId, + cid: topic.categoryId, + title: utils.generateUUID(), + content: utils.generateUUID(), + }); + await posts.purge(postData.pid, topic.userId); + + await assert.rejects( + topics.reply({ uid: topic.userId, content: 'test post', tid: postData.topic.tid, toPid: postData.pid }), + { message: '[[error:invalid-pid]]' } + ); + }); + + it('should fail to create a new reply with toPid that has been deleted (user cannot view_deleted)', async () => { + const { postData } = await topics.post({ + uid: topic.userId, + cid: topic.categoryId, + title: utils.generateUUID(), + content: utils.generateUUID(), + }); + await posts.delete(postData.pid, topic.userId); + const uid = await User.create({ username: utils.generateUUID().slice(0, 10) }); + + await assert.rejects( + topics.reply({ uid, content: 'test post', tid: postData.topic.tid, toPid: postData.pid }), + { message: '[[error:invalid-pid]]' } + ); + }); + + it('should properly create a new reply with toPid that has been deleted (user\'s own deleted post)', async () => { + const { postData } = await topics.post({ + uid: topic.userId, + cid: topic.categoryId, + title: utils.generateUUID(), + content: utils.generateUUID(), + }); + await posts.delete(postData.pid, topic.userId); + const uid = await User.create({ username: utils.generateUUID().slice(0, 10) }); + + const { pid } = await topics.reply({ uid: topic.userId, content: 'test post', tid: postData.topic.tid, toPid: postData.pid }); + assert(pid); + }); + it('should delete nested relies properly', async () => { const result = await topics.post({ uid: fooUid, title: 'nested test', content: 'main post', cid: topic.categoryId }); const reply1 = await topics.reply({ uid: fooUid, content: 'reply post 1', tid: result.topicData.tid }); From 8895b152c2c53b2ca04c1e2d4d8f989c1dd92c64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Mon, 25 Sep 2023 11:08:09 -0400 Subject: [PATCH 083/275] refactor: get rid of exists db call, use promise.parallel --- src/posts/create.js | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/src/posts/create.js b/src/posts/create.js index ae9ebdbc85..b248f04a36 100644 --- a/src/posts/create.js +++ b/src/posts/create.js @@ -10,7 +10,6 @@ const topics = require('../topics'); const categories = require('../categories'); const groups = require('../groups'); const privileges = require('../privileges'); -const utils = require('../utils'); module.exports = function (Posts) { Posts.create = async function (data) { @@ -26,16 +25,7 @@ module.exports = function (Posts) { } if (data.toPid) { - const toPidExists = await Posts.exists(data.toPid); - const toPidDeleted = await Posts.getPostField(data.toPid, 'deleted'); - const canViewToPid = await privileges.posts.can('posts:view_deleted', data.toPid, uid); - - if ( - !utils.isNumber(data.toPid) || !toPidExists || - (toPidDeleted && !canViewToPid) - ) { - throw new Error('[[error:invalid-pid]]'); - } + await checkToPid(data.toPid); } const pid = await db.incrObjectField('global', 'nextPid'); @@ -90,4 +80,15 @@ module.exports = function (Posts) { db.incrObjectField(`post:${postData.toPid}`, 'replies'), ]); } + + async function checkToPid(toPid, uid) { + const [toPost, canViewToPid] = await Promise.all([ + Posts.getPostFields(toPid, ['pid', 'deleted']), + privileges.posts.can('posts:view_deleted', toPid, uid), + ]); + const toPidExists = !!toPost.pid; + if (!toPidExists || (toPost.deleted && !canViewToPid)) { + throw new Error('[[error:invalid-pid]]'); + } + } }; From d50473dfeb11cf707399af56507ec2c57ddee802 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Mon, 25 Sep 2023 11:20:21 -0400 Subject: [PATCH 084/275] fix: pass in missing uid --- src/posts/create.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/posts/create.js b/src/posts/create.js index b248f04a36..d541564c2e 100644 --- a/src/posts/create.js +++ b/src/posts/create.js @@ -25,7 +25,7 @@ module.exports = function (Posts) { } if (data.toPid) { - await checkToPid(data.toPid); + await checkToPid(data.toPid, uid); } const pid = await db.incrObjectField('global', 'nextPid'); From c1f873b302b47548a508c7fcc403942db43ea690 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 25 Sep 2023 11:53:18 -0400 Subject: [PATCH 085/275] fix(deps): update dependency cron to v2.4.4 (#12033) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index 8580422fdf..fe3476dec9 100644 --- a/install/package.json +++ b/install/package.json @@ -58,7 +58,7 @@ "connect-pg-simple": "9.0.0", "connect-redis": "7.1.0", "cookie-parser": "1.4.6", - "cron": "2.4.3", + "cron": "2.4.4", "cropperjs": "1.6.1", "csrf-sync": "4.0.1", "daemon": "1.1.0", From f1a80d48cc45877fcbadf34c2345dd9709722c7f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Mon, 25 Sep 2023 20:42:18 -0400 Subject: [PATCH 086/275] 10411 (#12037) * feat: add type to privilege maps deprecate old hooks that are used for adding new privileges, new hooks are static:privileges.global.init/static:privileges.categories.init * deprecate admin priv hooks * fix: if type doesnt exist default to 'other' * remove filter * fix: copy privilege functions to use new filter instead of indices allow static hooks to use sync functions * fix: openapi * test: fix template helper --- .../read/admin/manage/privileges/cid.yaml | 14 + .../write/categories/cid/moderator/uid.yaml | 17 + .../write/categories/cid/privileges.yaml | 14 + .../categories/cid/privileges/privilege.yaml | 28 ++ public/src/admin/manage/privileges.js | 39 +-- public/src/modules/helpers.common.js | 5 +- src/categories/create.js | 12 +- src/plugins/hooks.js | 157 ++++++--- src/privileges/admin.js | 35 +- src/privileges/categories.js | 60 ++-- src/privileges/global.js | 58 ++-- src/privileges/helpers.js | 18 ++ .../admin/partials/privileges/category.tpl | 298 +++++++++--------- .../admin/partials/privileges/global.tpl | 244 +++++++------- test/template-helpers.js | 10 +- 15 files changed, 607 insertions(+), 402 deletions(-) diff --git a/public/openapi/read/admin/manage/privileges/cid.yaml b/public/openapi/read/admin/manage/privileges/cid.yaml index 75aad276fc..d4b0ed43da 100644 --- a/public/openapi/read/admin/manage/privileges/cid.yaml +++ b/public/openapi/read/admin/manage/privileges/cid.yaml @@ -34,6 +34,17 @@ get: items: type: string description: Language key of the privilege name's user-friendly name + labelData: + type: array + items: + type: object + properties: + label: + type: string + description: the name of the privilege displayed in the ACP dashboard + type: + type: string + description: type of the privilege (one of viewing, posting, moderation or other) keys: type: object properties: @@ -73,6 +84,9 @@ get: additionalProperties: type: boolean description: Each privilege will have a key in this object + types: + type: object + description: Each privilege will have a key in this object, the value will be the type of the privilege (viewing, posting, moderation or other) isPrivate: type: boolean isSystem: diff --git a/public/openapi/write/categories/cid/moderator/uid.yaml b/public/openapi/write/categories/cid/moderator/uid.yaml index 189c431e0b..3cbcd4951b 100644 --- a/public/openapi/write/categories/cid/moderator/uid.yaml +++ b/public/openapi/write/categories/cid/moderator/uid.yaml @@ -44,6 +44,17 @@ put: items: type: string description: Language key of the privilege name's user-friendly name + labelData: + type: array + items: + type: object + properties: + label: + type: string + description: the name of the privilege displayed in the ACP dashboard + type: + type: string + description: type of the privilege (one of viewing, posting, moderation or other) users: type: array items: @@ -87,6 +98,9 @@ put: additionalProperties: type: boolean description: A set of privileges with either true or false + types: + type: object + description: Each privilege will have a key in this object, the value will be the type of the privilege (viewing, posting, moderation or other) groups: type: array items: @@ -101,6 +115,9 @@ put: additionalProperties: type: boolean description: A set of privileges with either true or false + types: + type: object + description: Each privilege will have a key in this object, the value will be the type of the privilege (viewing, posting, moderation or other) isPrivate: type: boolean isSystem: diff --git a/public/openapi/write/categories/cid/privileges.yaml b/public/openapi/write/categories/cid/privileges.yaml index 209b0ad051..6ed7c6fbf8 100644 --- a/public/openapi/write/categories/cid/privileges.yaml +++ b/public/openapi/write/categories/cid/privileges.yaml @@ -37,6 +37,17 @@ get: items: type: string description: Language key of the privilege name's user-friendly name + labelData: + type: array + items: + type: object + properties: + label: + type: string + description: the name of the privilege displayed in the ACP dashboard + type: + type: string + description: type of the privilege (one of viewing, posting, moderation or other) users: type: array items: @@ -69,6 +80,9 @@ get: additionalProperties: type: boolean description: A set of privileges with either true or false + types: + type: object + description: Each privilege will have a key in this object, the value will be the type of the privilege (viewing, posting, moderation or other) isPrivate: type: boolean isSystem: diff --git a/public/openapi/write/categories/cid/privileges/privilege.yaml b/public/openapi/write/categories/cid/privileges/privilege.yaml index 6cc1ff7336..d6985f27f3 100644 --- a/public/openapi/write/categories/cid/privileges/privilege.yaml +++ b/public/openapi/write/categories/cid/privileges/privilege.yaml @@ -54,6 +54,17 @@ put: items: type: string description: Language key of the privilege name's user-friendly name + labelData: + type: array + items: + type: object + properties: + label: + type: string + description: the name of the privilege displayed in the ACP dashboard + type: + type: string + description: type of the privilege (one of viewing, posting, moderation or other) users: type: array items: @@ -111,6 +122,9 @@ put: additionalProperties: type: boolean description: A set of privileges with either true or false + types: + type: object + description: Each privilege will have a key in this object, the value will be the type of the privilege (viewing, posting, moderation or other) isPrivate: type: boolean isSystem: @@ -190,6 +204,17 @@ delete: items: type: string description: Language key of the privilege name's user-friendly name + labelData: + type: array + items: + type: object + properties: + label: + type: string + description: the name of the privilege displayed in the ACP dashboard + type: + type: string + description: type of the privilege (one of viewing, posting, moderation or other) users: type: array items: @@ -247,6 +272,9 @@ delete: additionalProperties: type: boolean description: A set of privileges with either true or false + types: + type: object + description: Each privilege will have a key in this object, the value will be the type of the privilege (viewing, posting, moderation or other) isPrivate: type: boolean isSystem: diff --git a/public/src/admin/manage/privileges.js b/public/src/admin/manage/privileges.js index 3e3a0a9b8d..7e9e644acb 100644 --- a/public/src/admin/manage/privileges.js +++ b/public/src/admin/manage/privileges.js @@ -17,8 +17,6 @@ define('admin/manage/privileges', [ const Privileges = {}; let cid; - // number of columns to skip in category privilege tables - const SKIP_PRIV_COLS = 3; Privileges.init = function () { cid = isNaN(parseInt(ajaxify.data.selectedCategory.cid, 10)) ? 'admin' : ajaxify.data.selectedCategory.cid; @@ -296,7 +294,7 @@ define('admin/manage/privileges', [ }; Privileges.copyPrivilegesToChildren = function (cid, group) { - const filter = getPrivilegeFilter(); + const filter = getGroupPrivilegeFilter(); socket.emit('admin.categories.copyPrivilegesToChildren', { cid, group, filter }, function (err) { if (err) { return alerts.error(err.message); @@ -319,7 +317,7 @@ define('admin/manage/privileges', [ onSubmit: function (selectedCategory) { socket.emit('admin.categories.copyPrivilegesFrom', { toCid: cid, - filter: getPrivilegeFilter(), + filter: getGroupPrivilegeFilter(), fromCid: selectedCategory.cid, group: group, }, function (err) { @@ -333,7 +331,7 @@ define('admin/manage/privileges', [ }; Privileges.copyPrivilegesToAllCategories = function (cid, group) { - const filter = getPrivilegeFilter(); + const filter = getGroupPrivilegeFilter(); socket.emit('admin.categories.copyPrivilegesToAllCategories', { cid, group, filter }, function (err) { if (err) { return alerts.error(err); @@ -480,30 +478,21 @@ define('admin/manage/privileges', [ } function filterPrivileges(ev) { - const [startIdx, endIdx] = ev.target.getAttribute('data-filter').split(',').map(i => parseInt(i, 10)); - const rows = $(ev.target).closest('table')[0].querySelectorAll('thead tr:last-child, tbody tr '); - rows.forEach((tr) => { - tr.querySelectorAll('td, th').forEach((el, idx) => { - const offset = el.tagName.toUpperCase() === 'TH' ? 1 : 0; - if (idx < (SKIP_PRIV_COLS - offset)) { - return; - } - el.classList.toggle('hidden', !(idx >= (startIdx - offset) && idx <= (endIdx - offset))); - }); + const btn = $(ev.target); + const filter = btn.attr('data-filter'); + const rows = btn.closest('table').find('thead tr:last-child, tbody tr'); + rows.each((i, tr) => { + $(tr).find('[data-type]').addClass('hidden'); + $(tr).find(`[data-type="${filter}"]`).removeClass('hidden'); }); + checkboxRowSelector.updateAll(); - $(ev.target).siblings('button').toArray().forEach(btn => btn.classList.remove('btn-warning')); - ev.target.classList.add('btn-warning'); + btn.siblings('button').removeClass('btn-warning'); + btn.addClass('btn-warning'); } - function getPrivilegeFilter() { - const indices = document.querySelector('.privilege-filters .btn-warning') - .getAttribute('data-filter') - .split(',') - .map(i => parseInt(i, 10)); - indices[0] -= SKIP_PRIV_COLS; - indices[1] = indices[1] - SKIP_PRIV_COLS + 1; - return indices; + function getGroupPrivilegeFilter() { + return $('[component="privileges/groups/filters"] .btn-warning').attr('data-filter'); } function getPrivilegeSubset() { diff --git a/public/src/modules/helpers.common.js b/public/src/modules/helpers.common.js index cb2a7c6200..00b6a3fe74 100644 --- a/public/src/modules/helpers.common.js +++ b/public/src/modules/helpers.common.js @@ -173,13 +173,14 @@ module.exports = function (utils, Benchpress, relative_path) { return ''; } - function spawnPrivilegeStates(member, privileges) { + function spawnPrivilegeStates(member, privileges, types) { const states = []; for (const priv in privileges) { if (privileges.hasOwnProperty(priv)) { states.push({ name: priv, state: privileges[priv], + type: types[priv], }); } } @@ -193,7 +194,7 @@ module.exports = function (utils, Benchpress, relative_path) { (member === 'Global Moderators' && globalModDisabled.includes(priv.name)); return ` - +
diff --git a/src/categories/create.js b/src/categories/create.js index 403c492215..c4aa403425 100644 --- a/src/categories/create.js +++ b/src/categories/create.js @@ -213,16 +213,14 @@ module.exports = function (Categories) { cache.del(`cid:${toCid}:tag:whitelist`); } - Categories.copyPrivilegesFrom = async function (fromCid, toCid, group, filter = []) { + Categories.copyPrivilegesFrom = async function (fromCid, toCid, group, filter) { group = group || ''; - let privsToCopy; + let privsToCopy = privileges.categories.getPrivilegesByFilter(filter); + if (group) { - const groupPrivilegeList = await privileges.categories.getGroupPrivilegeList(); - privsToCopy = groupPrivilegeList.slice(...filter); + privsToCopy = privsToCopy.map(priv => `groups:${priv}`); } else { - const privs = await privileges.categories.getPrivilegeList(); - const halfIdx = privs.length / 2; - privsToCopy = privs.slice(0, halfIdx).slice(...filter).concat(privs.slice(halfIdx).slice(...filter)); + privsToCopy = privsToCopy.concat(privsToCopy.map(priv => `groups:${priv}`)); } const data = await plugins.hooks.fire('filter:categories.copyPrivilegesFrom', { diff --git a/src/plugins/hooks.js b/src/plugins/hooks.js index 68d0ee2768..2282e8fe4c 100644 --- a/src/plugins/hooks.js +++ b/src/plugins/hooks.js @@ -1,6 +1,5 @@ 'use strict'; -const util = require('util'); const winston = require('winston'); const plugins = require('.'); const utils = require('../utils'); @@ -38,6 +37,67 @@ Hooks._deprecated = new Map([ since: 'v2.7.0', until: 'v3.0.0', }], + ['filter:privileges.global.list', { + new: 'static:privileges.global.init', + since: 'v3.5.0', + until: 'v4.0.0', + }], + ['filter:privileges.global.groups.list', { + new: 'static:privileges.global.init', + since: 'v3.5.0', + until: 'v4.0.0', + }], + ['filter:privileges.global.list_human', { + new: 'static:privileges.global.init', + since: 'v3.5.0', + until: 'v4.0.0', + }], + ['filter:privileges.global.groups.list_human', { + new: 'static:privileges.global.init', + since: 'v3.5.0', + until: 'v4.0.0', + }], + ['filter:privileges.list', { + new: 'static:privileges.categories.init', + since: 'v3.5.0', + until: 'v4.0.0', + }], + ['filter:privileges.groups.list', { + new: 'static:privileges.categories.init', + since: 'v3.5.0', + until: 'v4.0.0', + }], + ['filter:privileges.list_human', { + new: 'static:privileges.categories.init', + since: 'v3.5.0', + until: 'v4.0.0', + }], + ['filter:privileges.groups.list_human', { + new: 'static:privileges.categories.init', + since: 'v3.5.0', + until: 'v4.0.0', + }], + + ['filter:privileges.admin.list', { + new: 'static:privileges.admin.init', + since: 'v3.5.0', + until: 'v4.0.0', + }], + ['filter:privileges.admin.groups.list', { + new: 'static:privileges.admin.init', + since: 'v3.5.0', + until: 'v4.0.0', + }], + ['filter:privileges.admin.list_human', { + new: 'static:privileges.admin.init', + since: 'v3.5.0', + until: 'v4.0.0', + }], + ['filter:privileges.admin.groups.list_human', { + new: 'static:privileges.admin.init', + since: 'v3.5.0', + until: 'v4.0.0', + }], ]); Hooks.internals = { @@ -213,41 +273,6 @@ async function fireActionHook(hook, hookList, params) { } } -async function fireStaticHook(hook, hookList, params) { - if (!Array.isArray(hookList) || !hookList.length) { - return; - } - // don't bubble errors from these hooks, so bad plugins don't stop startup - const noErrorHooks = ['static:app.load', 'static:assets.prepare', 'static:app.preload']; - - for (const hookObj of hookList) { - if (typeof hookObj.method !== 'function') { - if (global.env === 'development') { - winston.warn(`[plugins] Expected method for hook '${hook}' in plugin '${hookObj.id}' not found, skipping.`); - } - } else { - let hookFn = hookObj.method; - if (hookFn.constructor && hookFn.constructor.name !== 'AsyncFunction') { - hookFn = util.promisify(hookFn); - } - - try { - // eslint-disable-next-line - await timeout(hookFn(params), 10000, 'timeout'); - } catch (err) { - if (err && err.message === 'timeout') { - winston.warn(`[plugins] Callback timed out, hook '${hook}' in plugin '${hookObj.id}'`); - } else { - winston.error(`[plugins] Error executing '${hook}' in plugin '${hookObj.id}'\n${err.stack}`); - if (!noErrorHooks.includes(hook)) { - throw err; - } - } - } - } - } -} - // https://advancedweb.hu/how-to-add-timeout-to-a-promise-in-javascript/ const timeout = (prom, time, error) => { let timer; @@ -259,6 +284,66 @@ const timeout = (prom, time, error) => { ]).finally(() => clearTimeout(timer)); }; +async function fireStaticHook(hook, hookList, params) { + if (!Array.isArray(hookList) || !hookList.length) { + return; + } + // don't bubble errors from these hooks, so bad plugins don't stop startup + const noErrorHooks = ['static:app.load', 'static:assets.prepare', 'static:app.preload']; + + async function fireMethod(hookObj, params) { + if (typeof hookObj.method !== 'function') { + if (global.env === 'development') { + winston.warn(`[plugins] Expected method for hook '${hook}' in plugin '${hookObj.id}' not found, skipping.`); + } + return params; + } + + if (hookObj.method.constructor && hookObj.method.constructor.name === 'AsyncFunction') { + return timeout(hookObj.method(params), 10000, 'timeout'); + } + + return new Promise((resolve, reject) => { + let resolved = false; + function _resolve(result) { + if (resolved) { + return; + } + resolved = true; + resolve(result); + } + const returned = hookObj.method(params, (err, result) => { + if (err) reject(err); else _resolve(result); + }); + + if (utils.isPromise(returned)) { + returned.then( + payload => _resolve(payload), + err => reject(err) + ); + return; + } + _resolve(); + }); + } + + for (const hookObj of hookList) { + try { + // eslint-disable-next-line + await fireMethod(hookObj, params); + } catch (err) { + if (err && err.message === 'timeout') { + winston.warn(`[plugins] Callback timed out, hook '${hook}' in plugin '${hookObj.id}'`); + } else { + winston.error(`[plugins] Error executing '${hook}' in plugin '${hookObj.id}'\n${err.stack}`); + if (!noErrorHooks.includes(hook)) { + throw err; + } + } + } + } +} + async function fireResponseHook(hook, hookList, params) { if (!Array.isArray(hookList) || !hookList.length) { return; diff --git a/src/privileges/admin.js b/src/privileges/admin.js index e77d2e9982..35a71e5f02 100644 --- a/src/privileges/admin.js +++ b/src/privileges/admin.js @@ -17,16 +17,28 @@ const privsAdmin = module.exports; * in to your listener. */ const _privilegeMap = new Map([ - ['admin:dashboard', { label: '[[admin/manage/privileges:admin-dashboard]]' }], - ['admin:categories', { label: '[[admin/manage/privileges:admin-categories]]' }], - ['admin:privileges', { label: '[[admin/manage/privileges:admin-privileges]]' }], - ['admin:admins-mods', { label: '[[admin/manage/privileges:admin-admins-mods]]' }], - ['admin:users', { label: '[[admin/manage/privileges:admin-users]]' }], - ['admin:groups', { label: '[[admin/manage/privileges:admin-groups]]' }], - ['admin:tags', { label: '[[admin/manage/privileges:admin-tags]]' }], - ['admin:settings', { label: '[[admin/manage/privileges:admin-settings]]' }], + ['admin:dashboard', { label: '[[admin/manage/privileges:admin-dashboard]]', type: 'admin' }], + ['admin:categories', { label: '[[admin/manage/privileges:admin-categories]]', type: 'admin' }], + ['admin:privileges', { label: '[[admin/manage/privileges:admin-privileges]]', type: 'admin' }], + ['admin:admins-mods', { label: '[[admin/manage/privileges:admin-admins-mods]]', type: 'admin' }], + ['admin:users', { label: '[[admin/manage/privileges:admin-users]]', type: 'admin' }], + ['admin:groups', { label: '[[admin/manage/privileges:admin-groups]]', type: 'admin' }], + ['admin:tags', { label: '[[admin/manage/privileges:admin-tags]]', type: 'admin' }], + ['admin:settings', { label: '[[admin/manage/privileges:admin-settings]]', type: 'admin' }], ]); +privsAdmin.init = async () => { + await plugins.hooks.fire('static:privileges.admin.init', { + privileges: _privilegeMap, + }); + + for (const [, value] of _privilegeMap) { + if (value && !value.type) { + value.type = 'other'; + } + } +}; + privsAdmin.getUserPrivilegeList = async () => await plugins.hooks.fire('filter:privileges.admin.list', Array.from(_privilegeMap.keys())); privsAdmin.getGroupPrivilegeList = async () => await plugins.hooks.fire('filter:privileges.admin.groups.list', Array.from(_privilegeMap.keys()).map(privilege => `groups:${privilege}`)); privsAdmin.getPrivilegeList = async () => { @@ -37,12 +49,6 @@ privsAdmin.getPrivilegeList = async () => { return user.concat(group); }; -privsAdmin.init = async () => { - await plugins.hooks.fire('static:privileges.admin.init', { - privileges: _privilegeMap, - }); -}; - // Mapping for a page route (via direct match or regexp) to a privilege privsAdmin.routeMap = { dashboard: 'admin:dashboard', @@ -152,6 +158,7 @@ privsAdmin.list = async function (uid) { const payload = await utils.promiseParallel({ labels, + labelData: Array.from(_privilegeMap.values()), users: helpers.getUserPrivileges(0, keys.users), groups: helpers.getGroupPrivileges(0, keys.groups), }); diff --git a/src/privileges/categories.js b/src/privileges/categories.js index ae0d285766..98eaf09c7c 100644 --- a/src/privileges/categories.js +++ b/src/privileges/categories.js @@ -18,26 +18,44 @@ const privsCategories = module.exports; * in to your listener. */ const _privilegeMap = new Map([ - ['find', { label: '[[admin/manage/privileges:find-category]]' }], - ['read', { label: '[[admin/manage/privileges:access-category]]' }], - ['topics:read', { label: '[[admin/manage/privileges:access-topics]]' }], - ['topics:create', { label: '[[admin/manage/privileges:create-topics]]' }], - ['topics:reply', { label: '[[admin/manage/privileges:reply-to-topics]]' }], - ['topics:schedule', { label: '[[admin/manage/privileges:schedule-topics]]' }], - ['topics:tag', { label: '[[admin/manage/privileges:tag-topics]]' }], - ['posts:edit', { label: '[[admin/manage/privileges:edit-posts]]' }], - ['posts:history', { label: '[[admin/manage/privileges:view-edit-history]]' }], - ['posts:delete', { label: '[[admin/manage/privileges:delete-posts]]' }], - ['posts:upvote', { label: '[[admin/manage/privileges:upvote-posts]]' }], - ['posts:downvote', { label: '[[admin/manage/privileges:downvote-posts]]' }], - ['topics:delete', { label: '[[admin/manage/privileges:delete-topics]]' }], - ['posts:view_deleted', { label: '[[admin/manage/privileges:view_deleted]]' }], - ['purge', { label: '[[admin/manage/privileges:purge]]' }], - ['moderate', { label: '[[admin/manage/privileges:moderate]]' }], + ['find', { label: '[[admin/manage/privileges:find-category]]', type: 'viewing' }], + ['read', { label: '[[admin/manage/privileges:access-category]]', type: 'viewing' }], + ['topics:read', { label: '[[admin/manage/privileges:access-topics]]', type: 'viewing' }], + ['topics:create', { label: '[[admin/manage/privileges:create-topics]]', type: 'posting' }], + ['topics:reply', { label: '[[admin/manage/privileges:reply-to-topics]]', type: 'posting' }], + ['topics:schedule', { label: '[[admin/manage/privileges:schedule-topics]]', type: 'posting' }], + ['topics:tag', { label: '[[admin/manage/privileges:tag-topics]]', type: 'posting' }], + ['posts:edit', { label: '[[admin/manage/privileges:edit-posts]]', type: 'posting' }], + ['posts:history', { label: '[[admin/manage/privileges:view-edit-history]]', type: 'posting' }], + ['posts:delete', { label: '[[admin/manage/privileges:delete-posts]]', type: 'posting' }], + ['posts:upvote', { label: '[[admin/manage/privileges:upvote-posts]]', type: 'posting' }], + ['posts:downvote', { label: '[[admin/manage/privileges:downvote-posts]]', type: 'posting' }], + ['topics:delete', { label: '[[admin/manage/privileges:delete-topics]]', type: 'posting' }], + ['posts:view_deleted', { label: '[[admin/manage/privileges:view_deleted]]', type: 'moderation' }], + ['purge', { label: '[[admin/manage/privileges:purge]]', type: 'moderation' }], + ['moderate', { label: '[[admin/manage/privileges:moderate]]', type: 'moderation' }], ]); +privsCategories.init = async () => { + privsCategories._coreSize = _privilegeMap.size; + await plugins.hooks.fire('static:privileges.categories.init', { + privileges: _privilegeMap, + }); + for (const [, value] of _privilegeMap) { + if (value && !value.type) { + value.type = 'other'; + } + } +}; + +privsCategories.getType = function (privilege) { + const priv = _privilegeMap.get(privilege); + return priv && priv.type ? priv.type : ''; +}; + privsCategories.getUserPrivilegeList = async () => await plugins.hooks.fire('filter:privileges.list', Array.from(_privilegeMap.keys())); privsCategories.getGroupPrivilegeList = async () => await plugins.hooks.fire('filter:privileges.groups.list', Array.from(_privilegeMap.keys()).map(privilege => `groups:${privilege}`)); + privsCategories.getPrivilegeList = async () => { const [user, group] = await Promise.all([ privsCategories.getUserPrivilegeList(), @@ -46,11 +64,10 @@ privsCategories.getPrivilegeList = async () => { return user.concat(group); }; -privsCategories.init = async () => { - privsCategories._coreSize = _privilegeMap.size; - await plugins.hooks.fire('static:privileges.categories.init', { - privileges: _privilegeMap, - }); +privsCategories.getPrivilegesByFilter = function (filter) { + return Array.from(_privilegeMap.entries()) + .filter(priv => priv[1] && (!filter || priv[1].type === filter)) + .map(priv => priv[0]); }; // Method used in admin/category controller to show all users/groups with privs in that given cid @@ -68,6 +85,7 @@ privsCategories.list = async function (cid) { const payload = await utils.promiseParallel({ labels, + labelData: Array.from(_privilegeMap.values()), users: helpers.getUserPrivileges(cid, keys.users), groups: helpers.getGroupPrivileges(cid, keys.groups), }); diff --git a/src/privileges/global.js b/src/privileges/global.js index 3cfe50e522..33bade9c6b 100644 --- a/src/privileges/global.js +++ b/src/privileges/global.js @@ -17,24 +17,42 @@ const privsGlobal = module.exports; * in to your listener. */ const _privilegeMap = new Map([ - ['chat', { label: '[[admin/manage/privileges:chat]]' }], - ['upload:post:image', { label: '[[admin/manage/privileges:upload-images]]' }], - ['upload:post:file', { label: '[[admin/manage/privileges:upload-files]]' }], - ['signature', { label: '[[admin/manage/privileges:signature]]' }], - ['invite', { label: '[[admin/manage/privileges:invite]]' }], - ['group:create', { label: '[[admin/manage/privileges:allow-group-creation]]' }], - ['search:content', { label: '[[admin/manage/privileges:search-content]]' }], - ['search:users', { label: '[[admin/manage/privileges:search-users]]' }], - ['search:tags', { label: '[[admin/manage/privileges:search-tags]]' }], - ['view:users', { label: '[[admin/manage/privileges:view-users]]' }], - ['view:tags', { label: '[[admin/manage/privileges:view-tags]]' }], - ['view:groups', { label: '[[admin/manage/privileges:view-groups]]' }], - ['local:login', { label: '[[admin/manage/privileges:allow-local-login]]' }], - ['ban', { label: '[[admin/manage/privileges:ban]]' }], - ['mute', { label: '[[admin/manage/privileges:mute]]' }], - ['view:users:info', { label: '[[admin/manage/privileges:view-users-info]]' }], + ['chat', { label: '[[admin/manage/privileges:chat]]', type: 'posting' }], + ['upload:post:image', { label: '[[admin/manage/privileges:upload-images]]', type: 'posting' }], + ['upload:post:file', { label: '[[admin/manage/privileges:upload-files]]', type: 'posting' }], + ['signature', { label: '[[admin/manage/privileges:signature]]', type: 'posting' }], + ['invite', { label: '[[admin/manage/privileges:invite]]', type: 'posting' }], + ['group:create', { label: '[[admin/manage/privileges:allow-group-creation]]', type: 'posting' }], + ['search:content', { label: '[[admin/manage/privileges:search-content]]', type: 'viewing' }], + ['search:users', { label: '[[admin/manage/privileges:search-users]]', type: 'viewing' }], + ['search:tags', { label: '[[admin/manage/privileges:search-tags]]', type: 'viewing' }], + ['view:users', { label: '[[admin/manage/privileges:view-users]]', type: 'viewing' }], + ['view:tags', { label: '[[admin/manage/privileges:view-tags]]', type: 'viewing' }], + ['view:groups', { label: '[[admin/manage/privileges:view-groups]]', type: 'viewing' }], + ['local:login', { label: '[[admin/manage/privileges:allow-local-login]]', type: 'viewing' }], + ['ban', { label: '[[admin/manage/privileges:ban]]', type: 'moderation' }], + ['mute', { label: '[[admin/manage/privileges:mute]]', type: 'moderation' }], + ['view:users:info', { label: '[[admin/manage/privileges:view-users-info]]', type: 'moderation' }], ]); +privsGlobal.init = async () => { + privsGlobal._coreSize = _privilegeMap.size; + await plugins.hooks.fire('static:privileges.global.init', { + privileges: _privilegeMap, + }); + + for (const [, value] of _privilegeMap) { + if (value && !value.type) { + value.type = 'other'; + } + } +}; + +privsGlobal.getType = function (privilege) { + const priv = _privilegeMap.get(privilege); + return priv && priv.type ? priv.type : ''; +}; + privsGlobal.getUserPrivilegeList = async () => await plugins.hooks.fire('filter:privileges.global.list', Array.from(_privilegeMap.keys())); privsGlobal.getGroupPrivilegeList = async () => await plugins.hooks.fire('filter:privileges.global.groups.list', Array.from(_privilegeMap.keys()).map(privilege => `groups:${privilege}`)); privsGlobal.getPrivilegeList = async () => { @@ -45,13 +63,6 @@ privsGlobal.getPrivilegeList = async () => { return user.concat(group); }; -privsGlobal.init = async () => { - privsGlobal._coreSize = _privilegeMap.size; - await plugins.hooks.fire('static:privileges.global.init', { - privileges: _privilegeMap, - }); -}; - privsGlobal.list = async function () { async function getLabels() { const labels = Array.from(_privilegeMap.values()).map(data => data.label); @@ -68,6 +79,7 @@ privsGlobal.list = async function () { const payload = await utils.promiseParallel({ labels: getLabels(), + labelData: Array.from(_privilegeMap.values()), users: helpers.getUserPrivileges(0, keys.users), groups: helpers.getGroupPrivileges(0, keys.groups), }); diff --git a/src/privileges/helpers.js b/src/privileges/helpers.js index b8c45dfdb3..58df456ea9 100644 --- a/src/privileges/helpers.js +++ b/src/privileges/helpers.js @@ -116,6 +116,11 @@ helpers.getUserPrivileges = async function (cid, userPrivileges) { for (let x = 0, numPrivs = userPrivileges.length; x < numPrivs; x += 1) { member.privileges[userPrivileges[x]] = memberSets[x].includes(parseInt(member.uid, 10)); } + const types = {}; + for (const [key] of Object.entries(member.privileges)) { + types[key] = getType(key); + } + member.types = types; }); return memberData; @@ -149,10 +154,15 @@ helpers.getGroupPrivileges = async function (cid, groupPrivileges) { for (let x = 0, numPrivs = groupPrivileges.length; x < numPrivs; x += 1) { memberPrivs[groupPrivileges[x]] = memberSets[x].includes(member); } + const types = {}; + for (const [key] of Object.entries(memberPrivs)) { + types[key] = getType(key); + } return { name: validator.escape(member), nameEscaped: translator.escape(validator.escape(member)), privileges: memberPrivs, + types: types, isPrivate: groupData[index] && !!groupData[index].private, isSystem: groupData[index] && !!groupData[index].system, }; @@ -160,6 +170,14 @@ helpers.getGroupPrivileges = async function (cid, groupPrivileges) { return memberData; }; + +function getType(privilege) { + privilege = privilege.replace(/^groups:/, ''); + const global = require('./global'); + const categories = require('./categories'); + return global.getType(privilege) || categories.getType(privilege) || 'other'; +} + function moveToFront(groupNames, groupToMove) { const index = groupNames.indexOf(groupToMove); if (index !== -1) { diff --git a/src/views/admin/partials/privileges/category.tpl b/src/views/admin/partials/privileges/category.tpl index fc1c067d8c..8bc73d4522 100644 --- a/src/views/admin/partials/privileges/category.tpl +++ b/src/views/admin/partials/privileges/category.tpl @@ -1,154 +1,154 @@ - -
- - - - - - - - - {{{ each privileges.labels.groups }}} - - {{{ end }}} - - - - {{{ each privileges.groups }}} - - - - - {function.spawnPrivilegeStates, privileges.groups.name, ../privileges} - - {{{ end }}} - - - - - - - -
-
- - - - {{{ if privileges.columnCountGroupOther }}} - - {{{ end }}} -
-
[[admin/manage/categories:privileges.section-group]][[admin/manage/privileges:select-clear-all]]{@value}
- {{{ if privileges.groups.isPrivate }}} - {{{ if (privileges.groups.name == "banned-users") }}} - - {{{ else }}} - - {{{ end }}} - {{{ else }}} - - {{{ end }}} - {privileges.groups.name} - - - -
- -
-
-
- - - - -
-
+ +
+ + + + + + + + + {{{ each privileges.labelData }}} + + {{{ end }}} + + + + {{{ each privileges.groups }}} + + + + + {function.spawnPrivilegeStates, privileges.groups.name, ../privileges, ../types} + + {{{ end }}} + + + + + + + +
+
+ + + + {{{ if privileges.columnCountGroupOther }}} + + {{{ end }}}
-
- [[admin/manage/categories:privileges.inherit]] +
[[admin/manage/categories:privileges.section-group]][[admin/manage/privileges:select-clear-all]]{./label}
+ {{{ if privileges.groups.isPrivate }}} + {{{ if (privileges.groups.name == "banned-users") }}} + + {{{ else }}} + + {{{ end }}} + {{{ else }}} + + {{{ end }}} + {privileges.groups.name} + + + +
+ +
+
+
+ + + + +
+
+
+
+ [[admin/manage/categories:privileges.inherit]] +
-
+
- -
- - - - - - - - - {{{ each privileges.labels.users }}} - - {{{ end }}} - - - - {{{ each privileges.users }}} - - - - - {function.spawnPrivilegeStates, privileges.users.username, ../privileges} - - {{{ end }}} - - - - - - - -
-
- - - - {{{ if privileges.columnCountUserOther }}} - - {{{ end }}} -
-
[[admin/manage/categories:privileges.section-user]][[admin/manage/privileges:select-clear-all]]{@value}
- {buildAvatar(privileges.users, "24px", true)} - {{{ if privileges.users.banned }}} - - {{{ end }}} - {privileges.users.username} - - - -
- -
-
-
- -
-
+ +
+ + + + + + + + + {{{ each privileges.labelData }}} + + {{{ end }}} + + + + {{{ each privileges.users }}} + + + + + {function.spawnPrivilegeStates, privileges.users.username, ../privileges, ../types} + + {{{ end }}} + + + + + + + +
+
+ + + + {{{ if privileges.columnCountUserOther }}} + + {{{ end }}}
+
[[admin/manage/categories:privileges.section-user]][[admin/manage/privileges:select-clear-all]]{./label}
+ {buildAvatar(privileges.users, "24px", true)} + {{{ if privileges.users.banned }}} + + {{{ end }}} + {privileges.users.username} + + + +
+ +
+
+
+ +
+
+
diff --git a/src/views/admin/partials/privileges/global.tpl b/src/views/admin/partials/privileges/global.tpl index 37953ba2dc..1bff0786bb 100644 --- a/src/views/admin/partials/privileges/global.tpl +++ b/src/views/admin/partials/privileges/global.tpl @@ -1,125 +1,125 @@ - -
- - - {{{ if !isAdminPriv }}} - - - - {{{ end }}} - - - - {{{ each privileges.labels.groups }}} - - {{{ end }}} - - - - {{{ each privileges.groups }}} - - - - - {function.spawnPrivilegeStates, privileges.groups.name, ../privileges} - - {{{ end }}} - - - - - - - -
-
- - - - {{{ if privileges.columnCountGroupOther }}} - - {{{ end }}} -
-
[[admin/manage/categories:privileges.section-group]][[admin/manage/privileges:select-clear-all]]{@value}
- {{{ if privileges.groups.isPrivate }}} - {{{ if (privileges.groups.name == "banned-users") }}} - - {{{ else }}} - - {{{ end }}} - {{{ else }}} - - {{{ end }}} - {privileges.groups.name} -
-
- -
-
+ +
+ + + {{{ if !isAdminPriv }}} + + + + {{{ end }}} + + + + {{{ each privileges.labelData }}} + + {{{ end }}} + + + + {{{ each privileges.groups }}} + + + + + {function.spawnPrivilegeStates, privileges.groups.name, ../privileges, ../types} + + {{{ end }}} + + + + + + + +
+
+ + + + {{{ if privileges.columnCountGroupOther }}} + + {{{ end }}}
-
- [[admin/manage/categories:privileges.inherit]] +
[[admin/manage/categories:privileges.section-group]][[admin/manage/privileges:select-clear-all]]{./label}
+ {{{ if privileges.groups.isPrivate }}} + {{{ if (privileges.groups.name == "banned-users") }}} + + {{{ else }}} + + {{{ end }}} + {{{ else }}} + + {{{ end }}} + {privileges.groups.name} +
+
+
-
- -
- - - {{{ if !isAdminPriv }}} - - - - {{{ end }}} - - - - {{{ each privileges.labels.users }}} - - {{{ end }}} - - - - {{{ each privileges.users }}} - - - - - {function.spawnPrivilegeStates, privileges.users.username, ../privileges} - - {{{ end }}} - - - - - - - -
-
- - - - {{{ if privileges.columnCountUserOther }}} - - {{{ end }}} -
-
[[admin/manage/categories:privileges.section-user]][[admin/manage/privileges:select-clear-all]]{@value}
- {buildAvatar(privileges.users, "24px", true)} - {{{ if privileges.users.banned }}} - - {{{ end }}} - {privileges.users.username} - - -
-
- -
-
+
+
+
+ [[admin/manage/categories:privileges.inherit]] +
+
+ +
+ + + {{{ if !isAdminPriv }}} + + + + {{{ end }}} + + + + {{{ each privileges.labelData }}} + + {{{ end }}} + + + + {{{ each privileges.users }}} + + + + + {function.spawnPrivilegeStates, privileges.users.username, ../privileges, ../types} + + {{{ end }}} + + + + + + + +
+
+ + + + {{{ if privileges.columnCountUserOther }}} + + {{{ end }}}
+
[[admin/manage/categories:privileges.section-user]][[admin/manage/privileges:select-clear-all]]{./label}
+ {buildAvatar(privileges.users, "24px", true)} + {{{ if privileges.users.banned }}} + + {{{ end }}} + {privileges.users.username} + + +
+
+ +
+
+
diff --git a/test/template-helpers.js b/test/template-helpers.js index 25829587f7..ded2717d94 100644 --- a/test/template-helpers.js +++ b/test/template-helpers.js @@ -147,15 +147,19 @@ describe('helpers', () => { find: true, read: true, }; - const html = helpers.spawnPrivilegeStates('guests', privs); + const types = { + find: 'viewing', + read: 'viewing', + }; + const html = helpers.spawnPrivilegeStates('guests', privs, types); assert.equal(html, ` - +
\t\t\t - +
From 8b25aff79a72f146a5885b5317fbc30480b3c0cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Tue, 26 Sep 2023 10:48:58 -0400 Subject: [PATCH 087/275] feat: add workerpool for password, closes #10326 (#12038) --- install/package.json | 1 + src/password.js | 61 ++++++------------------------------------ src/password_worker.js | 18 +++++++++++++ 3 files changed, 27 insertions(+), 53 deletions(-) create mode 100644 src/password_worker.js diff --git a/install/package.json b/install/package.json index fe3476dec9..be67fae93f 100644 --- a/install/package.json +++ b/install/package.json @@ -146,6 +146,7 @@ "webpack": "5.88.2", "webpack-merge": "5.9.0", "winston": "3.10.0", + "workerpool": "6.5.0", "xml": "1.0.1", "xregexp": "5.1.1", "yargs": "17.7.2", diff --git a/src/password.js b/src/password.js index d1b6fc2df5..7c0d01931c 100644 --- a/src/password.js +++ b/src/password.js @@ -2,31 +2,17 @@ const path = require('path'); const crypto = require('crypto'); -const util = require('util'); +const workerpool = require('workerpool'); -const bcrypt = require('bcryptjs'); - -const fork = require('./meta/debugFork'); - -function forkChild(message, callback) { - const child = fork(path.join(__dirname, 'password')); - - child.on('message', (msg) => { - callback(msg.err ? new Error(msg.err) : null, msg.result); - }); - child.on('error', (err) => { - console.error(err.stack); - callback(err); - }); - - child.send(message); -} - -const forkChildAsync = util.promisify(forkChild); +const pool = workerpool.pool( + path.join(__dirname, '/password_worker.js'), { + minWorkers: 1, + } +); exports.hash = async function (rounds, password) { password = crypto.createHash('sha512').update(password).digest('hex'); - return await forkChildAsync({ type: 'hash', rounds: rounds, password: password }); + return await pool.exec('hash', [password, rounds]); }; exports.compare = async function (password, hash, shaWrapped) { @@ -35,8 +21,7 @@ exports.compare = async function (password, hash, shaWrapped) { if (shaWrapped) { password = crypto.createHash('sha512').update(password).digest('hex'); } - - return await forkChildAsync({ type: 'compare', password: password, hash: hash || fakeHash }); + return await pool.exec('compare', [password, hash || fakeHash]); }; let fakeHashCache; @@ -48,34 +33,4 @@ async function getFakeHash() { return fakeHashCache; } -// child process -process.on('message', (msg) => { - if (msg.type === 'hash') { - tryMethod(hashPassword, msg); - } else if (msg.type === 'compare') { - tryMethod(compare, msg); - } -}); - -async function tryMethod(method, msg) { - try { - const result = await method(msg); - process.send({ result: result }); - } catch (err) { - process.send({ err: err.message }); - } finally { - process.disconnect(); - } -} - -async function hashPassword(msg) { - const salt = await bcrypt.genSalt(parseInt(msg.rounds, 10)); - const hash = await bcrypt.hash(msg.password, salt); - return hash; -} - -async function compare(msg) { - return await bcrypt.compare(String(msg.password || ''), String(msg.hash || '')); -} - require('./promisify')(exports); diff --git a/src/password_worker.js b/src/password_worker.js new file mode 100644 index 0000000000..650cd3236d --- /dev/null +++ b/src/password_worker.js @@ -0,0 +1,18 @@ +'use strict'; + +const workerpool = require('workerpool'); +const bcrypt = require('bcryptjs'); + +async function hash(password, rounds) { + const salt = await bcrypt.genSalt(parseInt(rounds, 10)); + return await bcrypt.hash(password, salt); +} + +async function compare(password, hash) { + return await bcrypt.compare(String(password || ''), String(hash || '')); +} + +workerpool.worker({ + hash: hash, + compare: compare, +}); From 84648db21ded998deb18a661c017cf283e6330ea Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 26 Sep 2023 10:50:00 -0400 Subject: [PATCH 088/275] fix(deps): update dependency nodebb-plugin-spam-be-gone to v2.2.0 (#12039) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index be67fae93f..c65159e253 100644 --- a/install/package.json +++ b/install/package.json @@ -100,7 +100,7 @@ "nodebb-plugin-markdown": "12.2.4", "nodebb-plugin-mentions": "4.3.5", "nodebb-plugin-ntfy": "1.7.2", - "nodebb-plugin-spam-be-gone": "2.1.1", + "nodebb-plugin-spam-be-gone": "2.2.0", "nodebb-rewards-essentials": "0.2.3", "nodebb-theme-harmony": "1.1.62", "nodebb-theme-lavender": "7.1.3", From e0b29ba9bdae164d318d843623141f5451ff8142 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Tue, 26 Sep 2023 12:20:46 -0400 Subject: [PATCH 089/275] chore: up themes --- install/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/install/package.json b/install/package.json index c65159e253..cdc4a869fe 100644 --- a/install/package.json +++ b/install/package.json @@ -102,10 +102,10 @@ "nodebb-plugin-ntfy": "1.7.2", "nodebb-plugin-spam-be-gone": "2.2.0", "nodebb-rewards-essentials": "0.2.3", - "nodebb-theme-harmony": "1.1.62", + "nodebb-theme-harmony": "1.1.63", "nodebb-theme-lavender": "7.1.3", "nodebb-theme-peace": "2.1.19", - "nodebb-theme-persona": "13.2.31", + "nodebb-theme-persona": "13.2.32", "nodebb-widget-essentials": "7.0.13", "nodemailer": "6.9.5", "nprogress": "0.2.0", From 74902e4a7bfa9f6e40bfabdb90f845dfb8417089 Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Mon, 25 Sep 2023 14:35:26 -0400 Subject: [PATCH 090/275] fix: #11808, reduce zeal of middleware.registrationComplete Now will judiciously check whether the target category or topic is restricted to verified users before redirecting unverified users to the email confirmation interstitial --- src/middleware/user.js | 59 +++++++++++++++++++++++++++++++++--------- 1 file changed, 47 insertions(+), 12 deletions(-) diff --git a/src/middleware/user.js b/src/middleware/user.js index 710c121d52..63caafaf1e 100644 --- a/src/middleware/user.js +++ b/src/middleware/user.js @@ -8,7 +8,10 @@ const util = require('util'); const meta = require('../meta'); const user = require('../user'); +const groups = require('../groups'); +const topics = require('../topics'); const privileges = require('../privileges'); +const privilegeHelpers = require('../privileges/helpers'); const plugins = require('../plugins'); const helpers = require('./helpers'); const auth = require('../routes/authentication'); @@ -239,18 +242,12 @@ module.exports = function (middleware) { */ const path = req.path.startsWith('/api/') ? req.path.replace('/api', '') : req.path; - if (req.uid > 0 && !(path.endsWith('/edit/email') || path.startsWith('/confirm/'))) { - const [confirmed, isAdmin] = await Promise.all([ - user.getUserField(req.uid, 'email:confirmed'), - user.isAdministrator(req.uid), - ]); - if (meta.config.requireEmailAddress && !confirmed && !isAdmin) { - req.session.registration = { - ...req.session.registration, - uid: req.uid, - updateEmail: true, - }; - } + if (meta.config.requireEmailAddress && await requiresEmailConfirmation(req)) { + req.session.registration = { + ...req.session.registration, + uid: req.uid, + updateEmail: true, + }; } if (!req.session.hasOwnProperty('registration')) { @@ -269,4 +266,42 @@ module.exports = function (middleware) { controllers.helpers.redirect(res, '/register/complete'); }; + + async function requiresEmailConfirmation(req) { + /** + * N.B. THIS IS NOT AN AUTHENTICATION MECHANISM + * + * It merely decides whether or not the accessed category is restricted to + * verified users only, and renders a decision (Boolean) based on whether + * the calling user is verified or not. + */ + if (req.uid <= 0) { + return false; + } + + // Extract tid or cid + const [confirmed, isAdmin] = await Promise.all([ + groups.isMember(req.uid, 'verified-users'), + user.isAdministrator(req.uid), + ]); + if (confirmed || isAdmin) { + return false; + } + + let cid; + if (req.params.hasOwnProperty('category_id')) { + cid = req.params.category_id; + } else if (req.params.hasOwnProperty('topic_id')) { + cid = await topics.getTopicField(req.params.topic_id, 'cid'); + } else { + return false; // not a category or topic url, no check required + } + + const [registeredAllowed, verifiedAllowed] = await Promise.all([ + privilegeHelpers.isAllowedTo(['read'], 'registered-users', cid), + privilegeHelpers.isAllowedTo(['read'], 'verified-users', cid), + ]); + + return !registeredAllowed.pop() && verifiedAllowed.pop(); + } }; From bdc221eb375e33284917002cdc904a3642ad3179 Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Tue, 26 Sep 2023 13:37:15 -0400 Subject: [PATCH 091/275] fix: clear interstitial data if there are no additional interstitials on abort --- src/controllers/authentication.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/controllers/authentication.js b/src/controllers/authentication.js index 82eec9f566..aa36381f9d 100644 --- a/src/controllers/authentication.js +++ b/src/controllers/authentication.js @@ -218,6 +218,7 @@ authenticationController.registerAbort = async (req, res) => { const { interstitials } = await user.interstitials.get(req, req.session.registration); if (!interstitials.length) { + delete req.session.registration; return res.redirect(nconf.get('relative_path') + (req.session.returnTo || '/')); } } From d7e9f32412490e2be977d6d176a0c36596aeca48 Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Tue, 26 Sep 2023 13:37:43 -0400 Subject: [PATCH 092/275] test: additional tests for #12034 --- src/middleware/user.js | 7 +++-- test/controllers.js | 66 ++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 69 insertions(+), 4 deletions(-) diff --git a/src/middleware/user.js b/src/middleware/user.js index 63caafaf1e..b8ebb06d15 100644 --- a/src/middleware/user.js +++ b/src/middleware/user.js @@ -289,17 +289,20 @@ module.exports = function (middleware) { } let cid; + let privilege; if (req.params.hasOwnProperty('category_id')) { cid = req.params.category_id; + privilege = 'read'; } else if (req.params.hasOwnProperty('topic_id')) { cid = await topics.getTopicField(req.params.topic_id, 'cid'); + privilege = 'topics:read'; } else { return false; // not a category or topic url, no check required } const [registeredAllowed, verifiedAllowed] = await Promise.all([ - privilegeHelpers.isAllowedTo(['read'], 'registered-users', cid), - privilegeHelpers.isAllowedTo(['read'], 'verified-users', cid), + privilegeHelpers.isAllowedTo([privilege], 'registered-users', cid), + privilegeHelpers.isAllowedTo([privilege], 'verified-users', cid), ]); return !registeredAllowed.pop() && verifiedAllowed.pop(); diff --git a/test/controllers.js b/test/controllers.js index 87e7a460d7..fbe1901191 100644 --- a/test/controllers.js +++ b/test/controllers.js @@ -21,6 +21,7 @@ const translator = require('../src/translator'); const privileges = require('../src/privileges'); const plugins = require('../src/plugins'); const utils = require('../src/utils'); +const slugify = require('../src/slugify'); const helpers = require('./helpers'); const sleep = util.promisify(setTimeout); @@ -571,15 +572,27 @@ describe('Controllers', () => { describe('blocking access for unconfirmed emails', () => { let jar; let token; + const username = utils.generateUUID().slice(0, 10); before(async () => { jar = await helpers.registerUser({ - username: utils.generateUUID().slice(0, 10), + username, password: utils.generateUUID(), }); token = await helpers.getCsrfToken(jar); }); + async function abortInterstitial() { + await requestAsync(`${nconf.get('url')}/register/abort`, { + method: 'post', + jar, + simple: false, + headers: { + 'x-csrf-token': token, + }, + }); + } + it('should not apply if requireEmailAddress is not enabled', async () => { meta.config.requireEmailAddress = 0; @@ -600,11 +613,12 @@ describe('Controllers', () => { }, }); + console.log(res.headers.location); assert.strictEqual(res.headers.location, `${nconf.get('relative_path')}/`); meta.config.requireEmailAddress = 1; }); - it('should continue to redirect back to interstitial after an email is entered, as it is not confirmed', async () => { + it('should allow access to regular resources after an email is entered, even if unconfirmed', async () => { const res = await requestAsync(`${nconf.get('url')}/recent`, { jar, json: true, @@ -613,8 +627,56 @@ describe('Controllers', () => { simple: false, }); + assert.strictEqual(res.statusCode, 200); + }); + + it('should redirect back to interstitial for categories requiring validated email', async () => { + const name = utils.generateUUID(); + const { cid } = await categories.create({ name }); + await privileges.categories.rescind(['groups:read'], cid, ['registered-users']); + await privileges.categories.give(['groups:read'], cid, ['verified-users']); + const res = await requestAsync(`${nconf.get('url')}/category/${cid}/${slugify(name)}`, { + jar, + json: true, + resolveWithFullResponse: true, + followRedirect: false, + simple: false, + }); + assert.strictEqual(res.statusCode, 307); assert.strictEqual(res.headers.location, `${nconf.get('relative_path')}/register/complete`); + await abortInterstitial(); + }); + + it('should redirect back to interstitial for topics requiring validated email', async () => { + const name = utils.generateUUID(); + const { cid } = await categories.create({ name }); + await privileges.categories.rescind(['groups:topics:read'], cid, 'registered-users'); + await privileges.categories.give(['groups:topics:read'], cid, 'verified-users'); + const res = await requestAsync(`${nconf.get('url')}/category/${cid}/${slugify(name)}`, { + jar, + json: true, + resolveWithFullResponse: true, + followRedirect: false, + simple: false, + }); + + assert.strictEqual(res.statusCode, 200); + + const title = utils.generateUUID(); + const uid = await user.getUidByUsername(username); + const { topicData } = await topics.post({ uid, cid, title, content: utils.generateUUID() }); + const res2 = await requestAsync(`${nconf.get('url')}/topic/${topicData.tid}/${slugify(title)}`, { + jar, + json: true, + resolveWithFullResponse: true, + followRedirect: false, + simple: false, + }); + assert.strictEqual(res2.statusCode, 307); + assert.strictEqual(res2.headers.location, `${nconf.get('relative_path')}/register/complete`); + await abortInterstitial(); + await topics.purge(topicData.tid, uid); }); }); }); From cf50b0fe49da698437f7ab6bd89caaf0b95d1069 Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Wed, 27 Sep 2023 10:22:06 -0400 Subject: [PATCH 093/275] fix: change `notificationSendDelay` to default to 10 seconds instead of 60, #11445 --- install/data/defaults.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/data/defaults.json b/install/data/defaults.json index 92bac0b2b7..fe7fc97e66 100644 --- a/install/data/defaults.json +++ b/install/data/defaults.json @@ -22,7 +22,7 @@ "chatDeleteDuration": 0, "chatMessageDelay": 2000, "newbieChatMessageDelay": 120000, - "notificationSendDelay": 60, + "notificationSendDelay": 10, "newbiePostDelayThreshold": 3, "postQueue": 0, "postQueueReputationThreshold": 0, From 40d290c1a96b139851c3aaaa60fb77de262158ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Wed, 27 Sep 2023 10:57:00 -0400 Subject: [PATCH 094/275] Tag follow (#12041) * feat: tag follow * on tag delete remove it from following users * feat: on tag rename update user followed tags and move the * add new filter on /notifications * feat: openapi updates * chore: up themes * chore: up peace * refactor: remove unused title --- install/package.json | 6 +- public/language/en-GB/notifications.json | 8 ++ public/language/en-GB/pages.json | 1 + public/language/en-GB/tags.json | 8 +- public/language/en-GB/user.json | 1 + .../components/schemas/SettingsObj.yaml | 3 + .../components/schemas/UserObject.yaml | 2 + public/openapi/read.yaml | 2 + public/openapi/read/tags/tag.yaml | 3 + public/openapi/read/user/userslug/tags.yaml | 30 +++++ public/openapi/write.yaml | 2 + public/openapi/write/tags/tag/follow.yaml | 52 +++++++++ public/src/client/account/tags.js | 56 ++++++++++ public/src/client/tag.js | 56 +++++++++- src/api/index.js | 2 +- src/api/tags.js | 13 +++ src/controllers/accounts.js | 1 + src/controllers/accounts/helpers.js | 1 + src/controllers/accounts/notifications.js | 1 + src/controllers/accounts/tags.js | 25 +++++ src/controllers/tags.js | 4 +- src/controllers/write/index.js | 1 + src/controllers/write/tags.js | 17 +++ src/notifications.js | 15 +-- src/routes/user.js | 1 + src/routes/write/index.js | 1 + src/routes/write/tags.js | 17 +++ src/topics/create.js | 3 +- src/topics/tags.js | 104 +++++++++++++++++- src/user/delete.js | 26 ++++- 30 files changed, 443 insertions(+), 19 deletions(-) create mode 100644 public/openapi/read/user/userslug/tags.yaml create mode 100644 public/openapi/write/tags/tag/follow.yaml create mode 100644 public/src/client/account/tags.js create mode 100644 src/api/tags.js create mode 100644 src/controllers/accounts/tags.js create mode 100644 src/controllers/write/tags.js create mode 100644 src/routes/write/tags.js diff --git a/install/package.json b/install/package.json index cdc4a869fe..8d5ef5ba24 100644 --- a/install/package.json +++ b/install/package.json @@ -102,10 +102,10 @@ "nodebb-plugin-ntfy": "1.7.2", "nodebb-plugin-spam-be-gone": "2.2.0", "nodebb-rewards-essentials": "0.2.3", - "nodebb-theme-harmony": "1.1.63", + "nodebb-theme-harmony": "1.1.64", "nodebb-theme-lavender": "7.1.3", - "nodebb-theme-peace": "2.1.19", - "nodebb-theme-persona": "13.2.32", + "nodebb-theme-peace": "2.1.20", + "nodebb-theme-persona": "13.2.33", "nodebb-widget-essentials": "7.0.13", "nodemailer": "6.9.5", "nprogress": "0.2.0", diff --git a/public/language/en-GB/notifications.json b/public/language/en-GB/notifications.json index 040117fcd0..a6de1bf3fe 100644 --- a/public/language/en-GB/notifications.json +++ b/public/language/en-GB/notifications.json @@ -14,6 +14,7 @@ "all": "All", "topics": "Topics", + "tags": "Tags", "replies": "Replies", "chat": "Chats", "group-chat": "Group Chats", @@ -50,6 +51,12 @@ "user_posted_to_multiple" : "%1, %2 and %3 others have posted replies to: %4", "user_posted_topic": "%1 has posted a new topic: %2", "user_edited_post" : "%1 has edited a post in %2", + + "user_posted_topic_with_tag": "%1 has posted a new topic with tag %2", + "user_posted_topic_with_tag_dual": "%1 has posted a new topic with tags %2 and %3", + "user_posted_topic_with_tag_triple": "%1 has posted a new topic with tags %2, %3 and %4", + "user_posted_topic_with_tag_multiple": "%1 has posted a new topic with tags %2", + "user_started_following_you": "%1 started following you.", "user_started_following_you_dual": "%1 and %2 started following you.", "user_started_following_you_triple": "%1, %2 and %3 started following you.", @@ -77,6 +84,7 @@ "notification_and_email": "Notification & Email", "notificationType_upvote": "When someone upvotes your post", "notificationType_new-topic": "When someone you follow posts a topic", + "notificationType_new-topic-with-tag": "When a topic is posted with a tag you follow", "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", diff --git a/public/language/en-GB/pages.json b/public/language/en-GB/pages.json index aebfd7f1fb..5cc791d7ad 100644 --- a/public/language/en-GB/pages.json +++ b/public/language/en-GB/pages.json @@ -54,6 +54,7 @@ "account/topics": "Topics created by %1", "account/groups": "%1's Groups", "account/watched_categories": "%1's Watched Categories", + "account/watched-tags": "%1's Watched Tags", "account/bookmarks": "%1's Bookmarked Posts", "account/settings": "User Settings", "account/settings-of": "Changing settings of %1", diff --git a/public/language/en-GB/tags.json b/public/language/en-GB/tags.json index 7159d4f542..f720a32140 100644 --- a/public/language/en-GB/tags.json +++ b/public/language/en-GB/tags.json @@ -7,5 +7,11 @@ "enter_tags_here_short": "Enter tags...", "no_tags": "There are no tags yet.", "select_tags": "Select Tags", - "tag-whitelist": "Tag Whitelist" + "tag-whitelist": "Tag Whitelist", + "watching": "Watching", + "not-watching": "Not Watching", + "watching.description": "Notify me of new topics.", + "not-watching.description": "Do not notify me of new topics.", + "following-tag.message": "You will now be receiving notifications when somebody posts a topic with this tag.", + "not-following-tag.message": "You will not receive notifications when somebody posts a topic with this tag." } \ No newline at end of file diff --git a/public/language/en-GB/user.json b/public/language/en-GB/user.json index e56cdfd4c1..a82c32cb9f 100644 --- a/public/language/en-GB/user.json +++ b/public/language/en-GB/user.json @@ -38,6 +38,7 @@ "reputation": "Reputation", "bookmarks":"Bookmarks", "watched_categories": "Watched categories", + "watched-tags": "Watched tags", "change_all": "Change All", "watched": "Watched", "ignored": "Ignored", diff --git a/public/openapi/components/schemas/SettingsObj.yaml b/public/openapi/components/schemas/SettingsObj.yaml index 3adba108b0..f12d0888a1 100644 --- a/public/openapi/components/schemas/SettingsObj.yaml +++ b/public/openapi/components/schemas/SettingsObj.yaml @@ -80,6 +80,9 @@ Settings: notificationType_new-topic: type: string description: Notification type for new topics + notificationType_new-topic-with-tag: + type: string + description: Notification type for new topics with followed tag notificationType_follow: type: string description: Notification type for another user following you diff --git a/public/openapi/components/schemas/UserObject.yaml b/public/openapi/components/schemas/UserObject.yaml index c2b3177637..cd7c33ddd1 100644 --- a/public/openapi/components/schemas/UserObject.yaml +++ b/public/openapi/components/schemas/UserObject.yaml @@ -391,6 +391,8 @@ UserObjectFull: type: number categoriesWatched: type: number + tagsWatched: + type: number downvoted: type: number followers: diff --git a/public/openapi/read.yaml b/public/openapi/read.yaml index 34326163bd..e8567b5a1f 100644 --- a/public/openapi/read.yaml +++ b/public/openapi/read.yaml @@ -262,6 +262,8 @@ paths: $ref: 'read/user/userslug/followers.yaml' "/api/user/{userslug}/categories": $ref: 'read/user/userslug/categories.yaml' + "/api/user/{userslug}/tags": + $ref: 'read/user/userslug/tags.yaml' "/api/user/{userslug}/posts": $ref: 'read/user/userslug/posts.yaml' "/api/user/{userslug}/topics": diff --git a/public/openapi/read/tags/tag.yaml b/public/openapi/read/tags/tag.yaml index cae02d0082..c9a49c5160 100644 --- a/public/openapi/read/tags/tag.yaml +++ b/public/openapi/read/tags/tag.yaml @@ -229,6 +229,9 @@ get: type: string canPost: type: boolean + isFollowing: + type: boolean + description: true is user is following this tag showSelect: type: boolean showTopicTools: diff --git a/public/openapi/read/user/userslug/tags.yaml b/public/openapi/read/user/userslug/tags.yaml new file mode 100644 index 0000000000..c13f8c337b --- /dev/null +++ b/public/openapi/read/user/userslug/tags.yaml @@ -0,0 +1,30 @@ +get: + tags: + - users + summary: Get user's watched tags + description: This route retrieves the list of tags the user is watching + parameters: + - name: userslug + in: path + required: true + schema: + type: string + example: admin + responses: + "200": + description: "" + content: + application/json: + schema: + allOf: + - $ref: ../../../components/schemas/UserObject.yaml#/UserObjectFull + - type: object + properties: + tags: + type: array + items: + type: string + title: + type: string + - $ref: ../../../components/schemas/Breadcrumbs.yaml#/Breadcrumbs + - $ref: ../../../components/schemas/CommonProps.yaml#/CommonProps \ No newline at end of file diff --git a/public/openapi/write.yaml b/public/openapi/write.yaml index a9a546e779..6207546cee 100644 --- a/public/openapi/write.yaml +++ b/public/openapi/write.yaml @@ -146,6 +146,8 @@ paths: $ref: 'write/topics/tid/read.yaml' /topics/{tid}/bump: $ref: 'write/topics/tid/bump.yaml' + /tags/{tag}/follow: + $ref: 'write/tags/tag/follow.yaml' /posts/{pid}: $ref: 'write/posts/pid.yaml' /posts/{pid}/index: diff --git a/public/openapi/write/tags/tag/follow.yaml b/public/openapi/write/tags/tag/follow.yaml new file mode 100644 index 0000000000..9eb211ec01 --- /dev/null +++ b/public/openapi/write/tags/tag/follow.yaml @@ -0,0 +1,52 @@ +put: + tags: + - tags + summary: follow a tag + description: This operation follows (or watches) a tag. + parameters: + - in: path + name: tag + schema: + type: string + required: true + description: a valid tag name + example: plugins + responses: + '200': + description: Tag successfully followed + content: + application/json: + schema: + type: object + properties: + status: + $ref: ../../../components/schemas/Status.yaml#/Status + response: + type: object + properties: {} +delete: + tags: + - tags + summary: unfollow a tag + description: This operation unfollows (or unwatches) a tag. + parameters: + - in: path + name: tag + schema: + type: string + required: true + description: a valid tag name + example: plugins + responses: + '200': + description: Tag successfully unwatched + content: + application/json: + schema: + type: object + properties: + status: + $ref: ../../../components/schemas/Status.yaml#/Status + response: + type: object + properties: {} \ No newline at end of file diff --git a/public/src/client/account/tags.js b/public/src/client/account/tags.js new file mode 100644 index 0000000000..c834732116 --- /dev/null +++ b/public/src/client/account/tags.js @@ -0,0 +1,56 @@ +'use strict'; + + +define('forum/account/tags', [ + 'forum/account/header', 'alerts', 'api', 'hooks', 'autocomplete', +], function (header, alerts, api, hooks, autocomplete) { + const Tags = {}; + + Tags.init = function () { + header.init(); + + const tagEl = $('[component="tags/watch"]'); + tagEl.tagsinput({ + tagClass: 'badge bg-info', + confirmKeys: [13, 44], + trimValue: true, + }); + const input = tagEl.siblings('.bootstrap-tagsinput').find('input'); + autocomplete.tag(input); + + ajaxify.data.tags.forEach(function (tag) { + tagEl.tagsinput('add', tag); + }); + + tagEl.on('itemAdded', function (event) { + if (input.length) { + input.autocomplete('close'); + } + api.put(`/tags/${event.item}/follow`, {}).then(() => { + alerts.alert({ + alert_id: 'follow_tag', + message: '[[tags:following-tag.message]]', + type: 'success', + timeout: 5000, + }); + + hooks.fire('action:tags.changeWatching', { tag: ajaxify.data.tag, type: 'follow' }); + }).catch(err => alerts.error(err)); + }); + + tagEl.on('itemRemoved', function (event) { + api.del(`/tags/${event.item}/follow`, {}).then(() => { + alerts.alert({ + alert_id: 'follow_tag', + message: '[[tags:not-following-tag.message]]', + type: 'info', + timeout: 5000, + }); + + hooks.fire('action:tags.changeWatching', { tag: ajaxify.data.tag, type: 'unfollow' }); + }).catch(err => alerts.error(err)); + }); + }; + + return Tags; +}); diff --git a/public/src/client/tag.js b/public/src/client/tag.js index 4d4a048a2c..199aaa362b 100644 --- a/public/src/client/tag.js +++ b/public/src/client/tag.js @@ -1,12 +1,66 @@ 'use strict'; -define('forum/tag', ['topicList', 'forum/infinitescroll'], function (topicList) { +define('forum/tag', [ + 'topicList', 'api', 'alerts', 'hooks', 'translator', 'bootstrap', 'components', +], function (topicList, api, alerts, hooks, translator, bootstrap, components) { const Tag = {}; Tag.init = function () { app.enterRoom('tags'); topicList.init('tag'); + + $('[component="tag/following"]').on('click', function () { + changeWatching('follow', 'put'); + }); + + $('[component="tag/not-following"]').on('click', function () { + changeWatching('unfollow', 'del'); + }); + + function changeWatching(type, method) { + api[method](`/tags/${ajaxify.data.tag}/follow`, {}).then(() => { + let message = ''; + if (type === 'follow') { + message = '[[tags:following-tag.message]]'; + } else if (type === 'unfollow') { + message = '[[tags:not-following-tag.message]]'; + } + + setFollowState(type); + + alerts.alert({ + alert_id: 'follow_tag', + message: message, + type: type === 'follow' ? 'success' : 'info', + timeout: 5000, + }); + + hooks.fire('action:tags.changeWatching', { tag: ajaxify.data.tag, type: type }); + }).catch(err => alerts.error(err)); + } + + function setFollowState(state) { + const titles = { + follow: '[[tags:watching]]', + unfollow: '[[tags:not-watching]]', + }; + + translator.translate(titles[state], function (translatedTitle) { + const tooltip = bootstrap.Tooltip.getInstance('[component="tag/watch"]'); + if (tooltip) { + tooltip.setContent({ '.tooltip-inner': translatedTitle }); + } + }); + + let menu = components.get('tag/following/menu'); + menu.toggleClass('hidden', state !== 'follow'); + components.get('tag/following/check').toggleClass('fa-check', state === 'follow'); + + menu = components.get('tag/not-following/menu'); + menu.toggleClass('hidden', state !== 'unfollow'); + components.get('tag/not-following/check').toggleClass('fa-check', state === 'unfollow'); + } }; return Tag; diff --git a/src/api/index.js b/src/api/index.js index 7c6a4e7552..9e5446c325 100644 --- a/src/api/index.js +++ b/src/api/index.js @@ -5,11 +5,11 @@ module.exports = { users: require('./users'), groups: require('./groups'), topics: require('./topics'), + tags: require('./tags'), posts: require('./posts'), chats: require('./chats'), categories: require('./categories'), flags: require('./flags'), files: require('./files'), - utils: require('./utils'), }; diff --git a/src/api/tags.js b/src/api/tags.js new file mode 100644 index 0000000000..8776e7a2b3 --- /dev/null +++ b/src/api/tags.js @@ -0,0 +1,13 @@ +'use strict'; + +const topics = require('../topics'); + +const tagsAPI = module.exports; + +tagsAPI.follow = async function (caller, data) { + await topics.followTag(data.tag, caller.uid); +}; + +tagsAPI.unfollow = async function (caller, data) { + await topics.unfollowTag(data.tag, caller.uid); +}; diff --git a/src/controllers/accounts.js b/src/controllers/accounts.js index eb2911dce3..603fff587d 100644 --- a/src/controllers/accounts.js +++ b/src/controllers/accounts.js @@ -5,6 +5,7 @@ const accountsController = { edit: require('./accounts/edit'), info: require('./accounts/info'), categories: require('./accounts/categories'), + tags: require('./accounts/tags'), settings: require('./accounts/settings'), groups: require('./accounts/groups'), follow: require('./accounts/follow'), diff --git a/src/controllers/accounts/helpers.js b/src/controllers/accounts/helpers.js index 592d3011db..98cbdac66d 100644 --- a/src/controllers/accounts/helpers.js +++ b/src/controllers/accounts/helpers.js @@ -178,6 +178,7 @@ async function getCounts(userData, callerUID) { promises.bookmarks = db.sortedSetCard(`uid:${uid}:bookmarks`); promises.uploaded = db.sortedSetCard(`uid:${uid}:uploads`); promises.categoriesWatched = user.getWatchedCategories(uid); + promises.tagsWatched = db.sortedSetCard(`uid:${uid}:followed_tags`); promises.blocks = user.getUserField(userData.uid, 'blocksCount'); } const counts = await utils.promiseParallel(promises); diff --git a/src/controllers/accounts/notifications.js b/src/controllers/accounts/notifications.js index ff9a21a550..ac983dd0e4 100644 --- a/src/controllers/accounts/notifications.js +++ b/src/controllers/accounts/notifications.js @@ -12,6 +12,7 @@ notificationsController.get = async function (req, res, next) { { name: '[[notifications:all]]', filter: '' }, { name: '[[global:topics]]', filter: 'new-topic' }, { name: '[[notifications:replies]]', filter: 'new-reply' }, + { name: '[[notifications:tags]]', filter: 'new-topic-with-tag' }, { name: '[[notifications:chat]]', filter: 'new-chat' }, { name: '[[notifications:group-chat]]', filter: 'new-group-chat' }, { name: '[[notifications:public-chat]]', filter: 'new-public-chat' }, diff --git a/src/controllers/accounts/tags.js b/src/controllers/accounts/tags.js new file mode 100644 index 0000000000..736b67aae0 --- /dev/null +++ b/src/controllers/accounts/tags.js @@ -0,0 +1,25 @@ +'use strict'; + +const db = require('../../database'); +const user = require('../../user'); +const helpers = require('../helpers'); + +const tagsController = module.exports; + +tagsController.get = async function (req, res) { + if (req.uid !== res.locals.uid) { + return helpers.notAllowed(req, res); + } + const { username, userslug } = await user.getUserFields(res.locals.uid, ['username', 'userslug']); + const tagData = await db.getSortedSetRange(`uid:${res.locals.uid}:followed_tags`, 0, -1); + + const payload = {}; + payload.tags = tagData; + payload.title = `[[pages:account/watched-tags, ${username}]]`; + payload.breadcrumbs = helpers.buildBreadcrumbs([ + { text: username, url: `/user/${userslug}` }, + { text: '[[pages:tags]]' }, + ]); + + res.render('account/tags', payload); +}; diff --git a/src/controllers/tags.js b/src/controllers/tags.js index 1b1d1a98f2..9c25051b8a 100644 --- a/src/controllers/tags.js +++ b/src/controllers/tags.js @@ -25,12 +25,13 @@ tagsController.getTag = async function (req, res) { breadcrumbs: helpers.buildBreadcrumbs([{ text: '[[tags:tags]]', url: '/tags' }, { text: tag }]), title: `[[pages:tag, ${tag}]]`, }; - const [settings, cids, categoryData, canPost, isPrivileged] = await Promise.all([ + const [settings, cids, categoryData, canPost, isPrivileged, isFollowing] = await Promise.all([ user.getSettings(req.uid), cid || categories.getCidsByPrivilege('categories:cid', req.uid, 'topics:read'), helpers.getSelectedCategory(cid), privileges.categories.canPostTopic(req.uid), user.isPrivileged(req.uid), + topics.isFollowingTag(req.params.tag, req.uid), ]); const start = Math.max(0, (page - 1) * settings.topicsPerPage); const stop = start + settings.topicsPerPage - 1; @@ -44,6 +45,7 @@ tagsController.getTag = async function (req, res) { templateData.canPost = canPost; templateData.showSelect = isPrivileged; templateData.showTopicTools = isPrivileged; + templateData.isFollowing = isFollowing; templateData.allCategoriesUrl = `tags/${tag}${helpers.buildQueryString(req.query, 'cid', '')}`; templateData.selectedCategory = categoryData.selectedCategory; templateData.selectedCids = categoryData.selectedCids; diff --git a/src/controllers/write/index.js b/src/controllers/write/index.js index ad797c212c..46a8dd8110 100644 --- a/src/controllers/write/index.js +++ b/src/controllers/write/index.js @@ -6,6 +6,7 @@ Write.users = require('./users'); Write.groups = require('./groups'); Write.categories = require('./categories'); Write.topics = require('./topics'); +Write.tags = require('./tags'); Write.posts = require('./posts'); Write.chats = require('./chats'); Write.flags = require('./flags'); diff --git a/src/controllers/write/tags.js b/src/controllers/write/tags.js new file mode 100644 index 0000000000..75c73cf2bb --- /dev/null +++ b/src/controllers/write/tags.js @@ -0,0 +1,17 @@ +'use strict'; + +const api = require('../../api'); + +const helpers = require('../helpers'); + +const Tags = module.exports; + +Tags.follow = async (req, res) => { + await api.tags.follow(req, req.params); + helpers.formatApiResponse(200, res); +}; + +Tags.unfollow = async (req, res) => { + await api.tags.unfollow(req, req.params); + helpers.formatApiResponse(200, res); +}; diff --git a/src/notifications.js b/src/notifications.js index 86e2f37ba9..725bd85fbc 100644 --- a/src/notifications.js +++ b/src/notifications.js @@ -21,6 +21,7 @@ const Notifications = module.exports; Notifications.baseTypes = [ 'notificationType_upvote', 'notificationType_new-topic', + 'notificationType_new-topic-with-tag', 'notificationType_new-reply', 'notificationType_post-edit', 'notificationType_follow', @@ -395,10 +396,10 @@ Notifications.merge = async function (notifications) { }, []); differentiators.forEach((differentiator) => { - function typeFromUsernames(usernames) { - if (usernames.length === 2) { + function typeFromLength(items) { + if (items.length === 2) { return 'dual'; - } else if (usernames.length === 3) { + } else if (items.length === 3) { return 'triple'; } return 'multiple'; @@ -419,9 +420,9 @@ Notifications.merge = async function (notifications) { case 'notifications:user_posted_in_public_room': { const usernames = _.uniq(set.map(notifObj => notifObj && notifObj.user && notifObj.user.displayname)); if (usernames.length === 2 || usernames.length === 3) { - notifObj.bodyShort = `[[${mergeId}_${typeFromUsernames(usernames)}, ${usernames.join(', ')}, ${notifObj.roomIcon}, ${notifObj.roomName}]]`; + notifObj.bodyShort = `[[${mergeId}_${typeFromLength(usernames)}, ${usernames.join(', ')}, ${notifObj.roomIcon}, ${notifObj.roomName}]]`; } else if (usernames.length > 3) { - notifObj.bodyShort = `[[${mergeId}_${typeFromUsernames(usernames)}, ${usernames.slice(0, 2).join(', ')}, ${usernames.length - 2}, ${notifObj.roomIcon}, ${notifObj.roomName}]]`; + notifObj.bodyShort = `[[${mergeId}_${typeFromLength(usernames)}, ${usernames.slice(0, 2).join(', ')}, ${usernames.length - 2}, ${notifObj.roomIcon}, ${notifObj.roomName}]]`; } notifObj.path = set[set.length - 1].path; @@ -440,9 +441,9 @@ Notifications.merge = async function (notifications) { titleEscaped = titleEscaped ? (`, ${titleEscaped}`) : ''; if (numUsers === 2 || numUsers === 3) { - notifications[modifyIndex].bodyShort = `[[${mergeId}_${typeFromUsernames(usernames)}, ${usernames.join(', ')}${titleEscaped}]]`; + notifications[modifyIndex].bodyShort = `[[${mergeId}_${typeFromLength(usernames)}, ${usernames.join(', ')}${titleEscaped}]]`; } else if (numUsers > 2) { - notifications[modifyIndex].bodyShort = `[[${mergeId}_${typeFromUsernames(usernames)}, ${usernames.slice(0, 2).join(', ')}, ${numUsers - 2}${titleEscaped}]]`; + notifications[modifyIndex].bodyShort = `[[${mergeId}_${typeFromLength(usernames)}, ${usernames.slice(0, 2).join(', ')}, ${numUsers - 2}${titleEscaped}]]`; } notifications[modifyIndex].path = set[set.length - 1].path; diff --git a/src/routes/user.js b/src/routes/user.js index 9825fa58ea..3c953fa34e 100644 --- a/src/routes/user.js +++ b/src/routes/user.js @@ -27,6 +27,7 @@ module.exports = function (app, name, middleware, controllers) { setupPageRoute(app, `/${name}/:userslug/groups`, middlewares, controllers.accounts.groups.get); setupPageRoute(app, `/${name}/:userslug/categories`, accountMiddlewares, controllers.accounts.categories.get); + setupPageRoute(app, `/${name}/:userslug/tags`, accountMiddlewares, controllers.accounts.tags.get); setupPageRoute(app, `/${name}/:userslug/bookmarks`, accountMiddlewares, controllers.accounts.posts.getBookmarks); setupPageRoute(app, `/${name}/:userslug/watched`, accountMiddlewares, controllers.accounts.posts.getWatchedTopics); setupPageRoute(app, `/${name}/:userslug/ignored`, accountMiddlewares, controllers.accounts.posts.getIgnoredTopics); diff --git a/src/routes/write/index.js b/src/routes/write/index.js index 2209aefbda..8e29c3ddd1 100644 --- a/src/routes/write/index.js +++ b/src/routes/write/index.js @@ -37,6 +37,7 @@ Write.reload = async (params) => { router.use('/api/v3/groups', require('./groups')()); router.use('/api/v3/categories', require('./categories')()); router.use('/api/v3/topics', require('./topics')()); + router.use('/api/v3/tags', require('./tags')()); router.use('/api/v3/posts', require('./posts')()); router.use('/api/v3/chats', require('./chats')()); router.use('/api/v3/flags', require('./flags')()); diff --git a/src/routes/write/tags.js b/src/routes/write/tags.js new file mode 100644 index 0000000000..8e77ed0f2d --- /dev/null +++ b/src/routes/write/tags.js @@ -0,0 +1,17 @@ +'use strict'; + +const router = require('express').Router(); +const middleware = require('../../middleware'); +const controllers = require('../../controllers'); +const routeHelpers = require('../helpers'); + +const { setupApiRoute } = routeHelpers; + +module.exports = function () { + const middlewares = [middleware.ensureLoggedIn]; + + setupApiRoute(router, 'put', '/:tag/follow', [...middlewares], controllers.write.tags.follow); + setupApiRoute(router, 'delete', '/:tag/follow', [...middlewares], controllers.write.tags.unfollow); + + return router; +}; diff --git a/src/topics/create.js b/src/topics/create.js index 44755ec7ee..7ce913a7a2 100644 --- a/src/topics/create.js +++ b/src/topics/create.js @@ -152,6 +152,7 @@ module.exports = function (Topics) { if (parseInt(uid, 10) && !topicData.scheduled) { user.notifications.sendTopicNotificationToFollowers(uid, topicData, postData); + Topics.notifyTagFollowers(postData, uid); } return { @@ -229,7 +230,7 @@ module.exports = function (Topics) { topicInfo, ] = await Promise.all([ posts.getUserInfoForPosts([postData.uid], uid), - Topics.getTopicFields(tid, ['tid', 'uid', 'title', 'slug', 'cid', 'postcount', 'mainPid', 'scheduled']), + Topics.getTopicFields(tid, ['tid', 'uid', 'title', 'slug', 'cid', 'postcount', 'mainPid', 'scheduled', 'tags']), Topics.addParentPosts([postData]), Topics.syncBacklinks(postData), posts.parsePost(postData), diff --git a/src/topics/tags.js b/src/topics/tags.js index 1f4b140ded..fc5828aad4 100644 --- a/src/topics/tags.js +++ b/src/topics/tags.js @@ -10,6 +10,9 @@ const meta = require('../meta'); const user = require('../user'); const categories = require('../categories'); const plugins = require('../plugins'); +const privileges = require('../privileges'); +const notifications = require('../notifications'); +const translator = require('../translator'); const utils = require('../utils'); const batch = require('../batch'); const cache = require('../cache'); @@ -165,6 +168,18 @@ module.exports = function (Topics) { topicData.map(t => [`topic:${t.tid}`, { tags: t.tags.join(',') }]), ); }, {}); + const followers = await db.getSortedSetRangeWithScores(`tag:${tag}:followers`, 0, -1); + if (followers.length) { + const userKeys = followers.map(item => `uid:${item.value}:followed_tags`); + const scores = await db.sortedSetsScore(userKeys, tag); + await db.sortedSetsRemove(userKeys, tag); + await db.sortedSetsAdd(userKeys, scores, newTagName); + await db.sortedSetAdd( + `tag:${newTagName}:followers`, + followers.map(item => item.score), + followers.map(item => item.value), + ); + } await Topics.deleteTag(tag); await updateTagCount(newTagName); await Topics.updateCategoryTagsCount(Object.keys(allCids), [newTagName]); @@ -207,7 +222,10 @@ module.exports = function (Topics) { if (!Array.isArray(tags) || !tags.length) { return; } - await removeTagsFromTopics(tags); + await Promise.all([ + removeTagsFromTopics(tags), + removeTagsFromUsers(tags), + ]); const keys = tags.map(tag => `tag:${tag}:topics`); await db.deleteAll(keys); await db.sortedSetRemove('tags:topic:count', tags); @@ -219,6 +237,7 @@ module.exports = function (Topics) { const deleteKeys = []; tags.forEach((tag) => { deleteKeys.push(`tag:${tag}`); + deleteKeys.push(`tag:${tag}:followers`); cids.forEach((cid) => { deleteKeys.push(`cid:${cid}:tag:${tag}:topics`); }); @@ -245,6 +264,13 @@ module.exports = function (Topics) { }); } + async function removeTagsFromUsers(tags) { + await async.eachLimit(tags, 50, async (tag) => { + const uids = await db.getSortedSetRange(`tag:${tag}:followers`, 0, -1); + await db.sortedSetsRemove(uids.map(uid => `uid:${uid}:followed_tags`), tag); + }); + } + Topics.deleteTag = async function (tag) { await Topics.deleteTags([tag]); }; @@ -528,4 +554,80 @@ module.exports = function (Topics) { const topics = await Topics.getTopics(tids, uid); return topics.filter(t => t && !t.deleted && parseInt(t.uid, 10) !== parseInt(uid, 10)); }; + + Topics.isFollowingTag = async function (tag, uid) { + return await db.isSortedSetMember(`tag:${tag}:followers`, uid); + }; + + Topics.getTagFollowers = async function (tag, start = 0, stop = -1) { + return await db.getSortedSetRange(`tag:${tag}:followers`, start, stop); + }; + + Topics.followTag = async (tag, uid) => { + if (!(parseInt(uid, 10) > 0)) { + throw new Error('[[error:not-logged-in]]'); + } + const now = Date.now(); + await db.sortedSetAddBulk([ + [`tag:${tag}:followers`, now, uid], + [`uid:${uid}:followed_tags`, now, tag], + ]); + plugins.hooks.fire('action:tags.follow', { tag, uid }); + }; + + Topics.unfollowTag = async (tag, uid) => { + if (!(parseInt(uid, 10) > 0)) { + throw new Error('[[error:not-logged-in]]'); + } + await db.sortedSetRemoveBulk([ + [`tag:${tag}:followers`, uid], + [`uid:${uid}:followed_tags`, tag], + ]); + plugins.hooks.fire('action:tags.unfollow', { tag, uid }); + }; + + Topics.notifyTagFollowers = async function (postData, exceptUid) { + let { tags } = postData.topic; + if (!tags.length) { + return; + } + tags = tags.map(tag => tag.value); + + const [followersOfPoster, allFollowers] = await Promise.all([ + db.getSortedSetRange(`followers:${exceptUid}`, 0, -1), + db.getSortedSetRange(tags.map(tag => `tag:${tag}:followers`), 0, -1), + ]); + const followerSet = new Set(followersOfPoster); + // filter out followers of the poster since they get a notification already + let followers = _.uniq(allFollowers).filter(uid => !followerSet.has(uid) && uid !== String(exceptUid)); + followers = await privileges.topics.filterUids('topics:read', postData.topic.tid, followers); + if (!followers.length) { + return; + } + + const { displayname } = postData.user; + + const notifBase = 'notifications:user_posted_topic_with_tag'; + let bodyShort = translator.compile(notifBase, displayname, tags[0]); + if (tags.length === 2) { + bodyShort = translator.compile(`${notifBase}_dual`, displayname, tags[0], tags[1]); + } else if (tags.length === 3) { + bodyShort = translator.compile(`${notifBase}_triple`, displayname, tags[0], tags[1], tags[2]); + } else if (tags.length > 3) { + bodyShort = translator.compile(`${notifBase}_multiple`, displayname, tags.join(', ')); + } + + const notification = await notifications.create({ + type: 'new-topic-with-tag', + nid: `new_topic:tid:${postData.topic.tid}:uid:${exceptUid}`, + subject: bodyShort, + bodyShort: bodyShort, + bodyLong: postData.content, + pid: postData.pid, + path: `/post/${postData.pid}`, + tid: postData.topic.tid, + from: exceptUid, + }); + notifications.push(notification, followers); + }; }; diff --git a/src/user/delete.js b/src/user/delete.js index 1362df1621..681eabeec1 100644 --- a/src/user/delete.js +++ b/src/user/delete.js @@ -108,8 +108,6 @@ module.exports = function (User) { `uid:${uid}:bookmarks`, `uid:${uid}:tids_read`, `uid:${uid}:tids_unread`, - `uid:${uid}:followed_tids`, - `uid:${uid}:ignored_tids`, `uid:${uid}:blocked_uids`, `user:${uid}:settings`, `user:${uid}:usernames`, @@ -147,17 +145,39 @@ module.exports = function (User) { db.setRemove('invitation:uids', uid), deleteUserIps(uid), deleteUserFromFollowers(uid), + deleteUserFromFollowedTopics(uid), + deleteUserFromIgnoredTopics(uid), + deleteUserFromFollowedTags(uid), deleteImages(uid), groups.leaveAllGroups(uid), flags.resolveFlag('user', uid, uid), User.reset.cleanByUid(uid), User.email.expireValidation(uid), ]); - await db.deleteAll([`followers:${uid}`, `following:${uid}`, `user:${uid}`]); + await db.deleteAll([ + `followers:${uid}`, `following:${uid}`, `user:${uid}`, + `uid:${uid}:followed_tags`, `uid:${uid}:followed_tids`, + `uid:${uid}:ignored_tids`, + ]); delete deletesInProgress[uid]; return userData; }; + async function deleteUserFromFollowedTopics(uid) { + const tids = await db.getSortedSetRange(`uid:${uid}:followed_tids`, 0, -1); + await db.setsRemove(tids.map(tid => `tid:${tid}:followers`), uid); + } + + async function deleteUserFromIgnoredTopics(uid) { + const tids = await db.getSortedSetRange(`uid:${uid}:ignored_tids`, 0, -1); + await db.setsRemove(tids.map(tid => `tid:${tid}:ignorers`), uid); + } + + async function deleteUserFromFollowedTags(uid) { + const tags = await db.getSortedSetRange(`uid:${uid}:followed_tags`, 0, -1); + await db.sortedSetsRemove(tags.map(tag => `tag:${tag}:followers`), uid); + } + async function deleteVotes(uid) { const [upvotedPids, downvotedPids] = await Promise.all([ db.getSortedSetRange(`uid:${uid}:upvote`, 0, -1), From 339481cae31118843a6b1bb5e4886cd8ba4eeb88 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 27 Sep 2023 10:57:54 -0400 Subject: [PATCH 095/275] fix(deps): update dependency nodebb-theme-persona to v13.2.34 (#12043) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index 8d5ef5ba24..e2b29358d4 100644 --- a/install/package.json +++ b/install/package.json @@ -105,7 +105,7 @@ "nodebb-theme-harmony": "1.1.64", "nodebb-theme-lavender": "7.1.3", "nodebb-theme-peace": "2.1.20", - "nodebb-theme-persona": "13.2.33", + "nodebb-theme-persona": "13.2.34", "nodebb-widget-essentials": "7.0.13", "nodemailer": "6.9.5", "nprogress": "0.2.0", From 3549fbdd337a7275f6601f5f460b79e1092c8b04 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 27 Sep 2023 10:58:01 -0400 Subject: [PATCH 096/275] fix(deps): update dependency rimraf to v5.0.5 (#12036) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index e2b29358d4..459c083873 100644 --- a/install/package.json +++ b/install/package.json @@ -121,7 +121,7 @@ "ioredis": "5.3.2", "request": "2.88.2", "request-promise-native": "1.0.9", - "rimraf": "5.0.1", + "rimraf": "5.0.5", "rss": "1.2.2", "rtlcss": "4.1.1", "sanitize-html": "2.11.0", From 690304b4c955a5e75d3425634819ee4671b7f14e Mon Sep 17 00:00:00 2001 From: Misty Release Bot Date: Wed, 27 Sep 2023 15:00:33 +0000 Subject: [PATCH 097/275] chore: incrementing version number - v3.4.3 --- install/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/install/package.json b/install/package.json index bb792382bf..eea063f2cf 100644 --- a/install/package.json +++ b/install/package.json @@ -2,7 +2,7 @@ "name": "nodebb", "license": "GPL-3.0", "description": "NodeBB Forum", - "version": "3.4.2", + "version": "3.4.3", "homepage": "https://www.nodebb.org", "repository": { "type": "git", @@ -194,4 +194,4 @@ "url": "https://github.com/barisusakli" } ] -} +} \ No newline at end of file From 08949be9304fc0f920a00e0a4af134ae268fa4a7 Mon Sep 17 00:00:00 2001 From: Misty Release Bot Date: Wed, 27 Sep 2023 15:00:34 +0000 Subject: [PATCH 098/275] chore: update changelog for v3.4.3 --- CHANGELOG.md | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 82097ed85b..3fc1496142 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,47 @@ +#### v3.4.3 (2023-09-27) + +##### Chores + +* incrementing version number - v3.4.2 (3f0dac38) +* update changelog for v3.4.2 (f9323de6) +* incrementing version number - v3.4.1 (01e69574) +* incrementing version number - v3.4.0 (fd9247c5) +* incrementing version number - v3.3.9 (5805e770) +* incrementing version number - v3.3.8 (a5603565) +* incrementing version number - v3.3.7 (b26f1744) +* incrementing version number - v3.3.6 (7fb38792) +* incrementing version number - v3.3.4 (a67f84ea) +* incrementing version number - v3.3.3 (f94d239b) +* incrementing version number - v3.3.2 (ec9dac97) +* incrementing version number - v3.3.1 (151cc68f) +* incrementing version number - v3.3.0 (fc1ad70f) +* incrementing version number - v3.2.3 (b06d3e63) +* incrementing version number - v3.2.2 (758ecfcd) +* incrementing version number - v3.2.1 (20145074) +* incrementing version number - v3.2.0 (9ecac38e) +* incrementing version number - v3.1.7 (0b4e81ab) +* incrementing version number - v3.1.6 (b3a3b130) +* incrementing version number - v3.1.5 (ec19343a) +* incrementing version number - v3.1.4 (2452783c) +* incrementing version number - v3.1.3 (3b4e9d3f) +* incrementing version number - v3.1.2 (40fa3489) +* incrementing version number - v3.1.1 (40250733) +* incrementing version number - v3.1.0 (0cb386bd) +* incrementing version number - v3.0.1 (26f6ea49) +* incrementing version number - v3.0.0 (224e08cd) + +##### Bug Fixes + +* change priv to topics:read (cddac03a) +* #12035, filter tids in mark all read (77d6d0ab) +* properly wrap promise to callback-style function (#12030) (aff19a6c) +* #12009, check if suggested/current versions are valid (7ca37bd6) +* **deps:** update dependency nodebb-plugin-2factor to v7.3.0 (#12021) (c805824f) + +##### Refactors + +* remove nested promise (379ed0e2) + #### v3.4.2 (2023-09-12) ##### Chores From 2627e9742a77aa0ceaf6b534d2b989197adfa784 Mon Sep 17 00:00:00 2001 From: Misty Release Bot Date: Wed, 27 Sep 2023 14:58:09 +0000 Subject: [PATCH 099/275] chore(i18n): fallback strings for new resources: nodebb.notifications, nodebb.pages, nodebb.tags, nodebb.user --- public/language/ar/notifications.json | 14 ++++++++++---- public/language/ar/pages.json | 1 + public/language/ar/tags.json | 8 +++++++- public/language/ar/user.json | 1 + public/language/bg/notifications.json | 14 ++++++++++---- public/language/bg/pages.json | 1 + public/language/bg/tags.json | 8 +++++++- public/language/bg/user.json | 1 + public/language/bn/notifications.json | 14 ++++++++++---- public/language/bn/pages.json | 1 + public/language/bn/tags.json | 8 +++++++- public/language/bn/user.json | 1 + public/language/cs/notifications.json | 14 ++++++++++---- public/language/cs/pages.json | 1 + public/language/cs/tags.json | 8 +++++++- public/language/cs/user.json | 1 + public/language/da/notifications.json | 14 ++++++++++---- public/language/da/pages.json | 1 + public/language/da/tags.json | 8 +++++++- public/language/da/user.json | 1 + public/language/de/notifications.json | 14 ++++++++++---- public/language/de/pages.json | 1 + public/language/de/tags.json | 8 +++++++- public/language/de/user.json | 1 + public/language/el/notifications.json | 14 ++++++++++---- public/language/el/pages.json | 1 + public/language/el/tags.json | 8 +++++++- public/language/el/user.json | 1 + public/language/en-US/notifications.json | 14 ++++++++++---- public/language/en-US/pages.json | 1 + public/language/en-US/tags.json | 8 +++++++- public/language/en-US/user.json | 1 + public/language/en-x-pirate/notifications.json | 14 ++++++++++---- public/language/en-x-pirate/pages.json | 1 + public/language/en-x-pirate/tags.json | 8 +++++++- public/language/en-x-pirate/user.json | 1 + public/language/es/notifications.json | 14 ++++++++++---- public/language/es/pages.json | 1 + public/language/es/tags.json | 8 +++++++- public/language/es/user.json | 1 + public/language/et/notifications.json | 14 ++++++++++---- public/language/et/pages.json | 1 + public/language/et/tags.json | 8 +++++++- public/language/et/user.json | 1 + public/language/fa-IR/notifications.json | 14 ++++++++++---- public/language/fa-IR/pages.json | 1 + public/language/fa-IR/tags.json | 8 +++++++- public/language/fa-IR/user.json | 1 + public/language/fi/notifications.json | 14 ++++++++++---- public/language/fi/pages.json | 1 + public/language/fi/tags.json | 8 +++++++- public/language/fi/user.json | 1 + public/language/fr/notifications.json | 14 ++++++++++---- public/language/fr/pages.json | 1 + public/language/fr/tags.json | 8 +++++++- public/language/fr/user.json | 1 + public/language/gl/notifications.json | 14 ++++++++++---- public/language/gl/pages.json | 1 + public/language/gl/tags.json | 8 +++++++- public/language/gl/user.json | 1 + public/language/he/notifications.json | 14 ++++++++++---- public/language/he/pages.json | 1 + public/language/he/tags.json | 8 +++++++- public/language/he/user.json | 1 + public/language/hr/notifications.json | 14 ++++++++++---- public/language/hr/pages.json | 1 + public/language/hr/tags.json | 8 +++++++- public/language/hr/user.json | 1 + public/language/hu/notifications.json | 14 ++++++++++---- public/language/hu/pages.json | 1 + public/language/hu/tags.json | 8 +++++++- public/language/hu/user.json | 1 + public/language/hy/notifications.json | 14 ++++++++++---- public/language/hy/pages.json | 1 + public/language/hy/tags.json | 8 +++++++- public/language/hy/user.json | 1 + public/language/id/notifications.json | 14 ++++++++++---- public/language/id/pages.json | 1 + public/language/id/tags.json | 8 +++++++- public/language/id/user.json | 1 + public/language/it/notifications.json | 14 ++++++++++---- public/language/it/pages.json | 1 + public/language/it/tags.json | 8 +++++++- public/language/it/user.json | 1 + public/language/ja/notifications.json | 14 ++++++++++---- public/language/ja/pages.json | 1 + public/language/ja/tags.json | 8 +++++++- public/language/ja/user.json | 1 + public/language/ko/notifications.json | 14 ++++++++++---- public/language/ko/pages.json | 1 + public/language/ko/tags.json | 8 +++++++- public/language/ko/user.json | 1 + public/language/lt/notifications.json | 14 ++++++++++---- public/language/lt/pages.json | 1 + public/language/lt/tags.json | 8 +++++++- public/language/lt/user.json | 1 + public/language/lv/notifications.json | 14 ++++++++++---- public/language/lv/pages.json | 1 + public/language/lv/tags.json | 8 +++++++- public/language/lv/user.json | 1 + public/language/ms/notifications.json | 14 ++++++++++---- public/language/ms/pages.json | 1 + public/language/ms/tags.json | 8 +++++++- public/language/ms/user.json | 1 + public/language/nb/notifications.json | 14 ++++++++++---- public/language/nb/pages.json | 1 + public/language/nb/tags.json | 8 +++++++- public/language/nb/user.json | 1 + public/language/nl/notifications.json | 14 ++++++++++---- public/language/nl/pages.json | 1 + public/language/nl/tags.json | 8 +++++++- public/language/nl/user.json | 1 + public/language/pl/notifications.json | 14 ++++++++++---- public/language/pl/pages.json | 1 + public/language/pl/tags.json | 8 +++++++- public/language/pl/user.json | 1 + public/language/pt-BR/notifications.json | 14 ++++++++++---- public/language/pt-BR/pages.json | 1 + public/language/pt-BR/tags.json | 8 +++++++- public/language/pt-BR/user.json | 1 + public/language/pt-PT/notifications.json | 14 ++++++++++---- public/language/pt-PT/pages.json | 1 + public/language/pt-PT/tags.json | 8 +++++++- public/language/pt-PT/user.json | 1 + public/language/ro/notifications.json | 14 ++++++++++---- public/language/ro/pages.json | 1 + public/language/ro/tags.json | 8 +++++++- public/language/ro/user.json | 1 + public/language/ru/notifications.json | 14 ++++++++++---- public/language/ru/pages.json | 1 + public/language/ru/tags.json | 8 +++++++- public/language/ru/user.json | 1 + public/language/rw/notifications.json | 14 ++++++++++---- public/language/rw/pages.json | 1 + public/language/rw/tags.json | 8 +++++++- public/language/rw/user.json | 1 + public/language/sc/notifications.json | 14 ++++++++++---- public/language/sc/pages.json | 1 + public/language/sc/tags.json | 8 +++++++- public/language/sc/user.json | 1 + public/language/sk/notifications.json | 14 ++++++++++---- public/language/sk/pages.json | 1 + public/language/sk/tags.json | 8 +++++++- public/language/sk/user.json | 1 + public/language/sl/notifications.json | 14 ++++++++++---- public/language/sl/pages.json | 1 + public/language/sl/tags.json | 8 +++++++- public/language/sl/user.json | 1 + public/language/sq-AL/notifications.json | 14 ++++++++++---- public/language/sq-AL/pages.json | 1 + public/language/sq-AL/tags.json | 8 +++++++- public/language/sq-AL/user.json | 1 + public/language/sr/notifications.json | 14 ++++++++++---- public/language/sr/pages.json | 1 + public/language/sr/tags.json | 8 +++++++- public/language/sr/user.json | 1 + public/language/sv/notifications.json | 14 ++++++++++---- public/language/sv/pages.json | 1 + public/language/sv/tags.json | 8 +++++++- public/language/sv/user.json | 1 + public/language/th/notifications.json | 14 ++++++++++---- public/language/th/pages.json | 1 + public/language/th/tags.json | 8 +++++++- public/language/th/user.json | 1 + public/language/tr/notifications.json | 14 ++++++++++---- public/language/tr/pages.json | 1 + public/language/tr/tags.json | 8 +++++++- public/language/tr/user.json | 1 + public/language/uk/notifications.json | 14 ++++++++++---- public/language/uk/pages.json | 1 + public/language/uk/tags.json | 8 +++++++- public/language/uk/user.json | 1 + public/language/vi/notifications.json | 14 ++++++++++---- public/language/vi/pages.json | 1 + public/language/vi/tags.json | 8 +++++++- public/language/vi/user.json | 1 + public/language/zh-CN/notifications.json | 14 ++++++++++---- public/language/zh-CN/pages.json | 1 + public/language/zh-CN/tags.json | 8 +++++++- public/language/zh-CN/user.json | 1 + public/language/zh-TW/notifications.json | 14 ++++++++++---- public/language/zh-TW/pages.json | 1 + public/language/zh-TW/tags.json | 8 +++++++- public/language/zh-TW/user.json | 1 + 184 files changed, 874 insertions(+), 230 deletions(-) diff --git a/public/language/ar/notifications.json b/public/language/ar/notifications.json index 520c62c76d..1d26c714ba 100644 --- a/public/language/ar/notifications.json +++ b/public/language/ar/notifications.json @@ -12,6 +12,7 @@ "you_have_unread_notifications": "لديك تنبيهات غير مقروءة.", "all": "الكل", "topics": "مواضيع", + "tags": "Tags", "replies": "ردود", "chat": "محادثات", "group-chat": "Group Chats", @@ -22,10 +23,10 @@ "my-flags": "Flags assigned to me", "bans": "الحظر", "new_message_from": "رسالة جديدة من %1", - "user_posted_in_public_room": "%1 wrote in %3", - "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", - "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", - "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", + "user_posted_in_public_room": "%1 wrote in %3", + "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", + "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", + "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", "upvoted_your_post_in": "%1 أضاف صوتًا إيجابيا إلى مشاركتك في %2.", "upvoted_your_post_in_dual": "%1 and %2 have upvoted your post in %3.", "upvoted_your_post_in_triple": "%1, %2 and %3 have upvoted your post in %4.", @@ -46,6 +47,10 @@ "user_posted_to_multiple": "%1, %2 and %3 others have posted replies to: %4", "user_posted_topic": "%1 أنشأ موضوعًا جديدًا: %2", "user_edited_post": "%1 has edited a post in %2", + "user_posted_topic_with_tag": "%1 has posted a new topic with tag %2", + "user_posted_topic_with_tag_dual": "%1 has posted a new topic with tags %2 and %3", + "user_posted_topic_with_tag_triple": "%1 has posted a new topic with tags %2, %3 and %4", + "user_posted_topic_with_tag_multiple": "%1 has posted a new topic with tags %2", "user_started_following_you": "%1 صار يتابعك.", "user_started_following_you_dual": "%1 and %2 started following you.", "user_started_following_you_triple": "%1, %2 and %3 started following you.", @@ -71,6 +76,7 @@ "notification_and_email": "التنبيهات والبريد اﻻلكتروني", "notificationType_upvote": "عندما يوافقك احدهم على منشورك", "notificationType_new-topic": "When someone you follow posts a topic", + "notificationType_new-topic-with-tag": "When a topic is posted with a tag you follow", "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", diff --git a/public/language/ar/pages.json b/public/language/ar/pages.json index 37f507800d..f01b500e3c 100644 --- a/public/language/ar/pages.json +++ b/public/language/ar/pages.json @@ -48,6 +48,7 @@ "account/topics": "Topics created by %1", "account/groups": "%1's Groups", "account/watched_categories": "%1's Watched Categories", + "account/watched-tags": "%1's Watched Tags", "account/bookmarks": "%1's Bookmarked Posts", "account/settings": "خيارات المستخدم", "account/settings-of": "Changing settings of %1", diff --git a/public/language/ar/tags.json b/public/language/ar/tags.json index 635e3249f5..1769dba59f 100644 --- a/public/language/ar/tags.json +++ b/public/language/ar/tags.json @@ -7,5 +7,11 @@ "enter_tags_here_short": "أدخل الكلمات الدلالية...", "no_tags": "لا يوجد كلمات دلالية بعد.", "select_tags": "Select Tags", - "tag-whitelist": "Tag Whitelist" + "tag-whitelist": "Tag Whitelist", + "watching": "Watching", + "not-watching": "Not Watching", + "watching.description": "Notify me of new topics.", + "not-watching.description": "Do not notify me of new topics.", + "following-tag.message": "You will now be receiving notifications when somebody posts a topic with this tag.", + "not-following-tag.message": "You will not receive notifications when somebody posts a topic with this tag." } \ No newline at end of file diff --git a/public/language/ar/user.json b/public/language/ar/user.json index 88a1c4f632..b1ea6cfd26 100644 --- a/public/language/ar/user.json +++ b/public/language/ar/user.json @@ -36,6 +36,7 @@ "reputation": "السمعة", "bookmarks": "المفضلات", "watched_categories": "الأقسام المُتابعة", + "watched-tags": "Watched tags", "change_all": "غير الكل", "watched": "متابع", "ignored": "تم تجاهله", diff --git a/public/language/bg/notifications.json b/public/language/bg/notifications.json index 67b9ca8072..50fd2c747b 100644 --- a/public/language/bg/notifications.json +++ b/public/language/bg/notifications.json @@ -12,6 +12,7 @@ "you_have_unread_notifications": "Имате непрочетени известия", "all": "Всички", "topics": "Теми", + "tags": "Tags", "replies": "Отговори", "chat": "Разговори", "group-chat": "Групови разговори", @@ -22,10 +23,10 @@ "my-flags": "Докладвания, назначени на мен", "bans": "Блокирания", "new_message_from": "Ново съобщение от %1", - "user_posted_in_public_room": "%1 писа в %3", - "user_posted_in_public_room_dual": "%1 и %2 писаха в %4", - "user_posted_in_public_room_triple": "%1, %2 и %3 писаха в %5", - "user_posted_in_public_room_multiple": "%1, %2 и %3 други писаха в %5", + "user_posted_in_public_room": "%1 wrote in %3", + "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", + "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", + "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", "upvoted_your_post_in": "%1 гласува положително за Ваша публикация в %2.", "upvoted_your_post_in_dual": "%1 и %2 гласуваха положително за Ваша публикация в %3.", "upvoted_your_post_in_triple": "%1, %2 и %3 гласуваха положително за Ваша публикация в %4.", @@ -46,6 +47,10 @@ "user_posted_to_multiple": "%1, %2 и %3 други публикуваха отговори на: %4", "user_posted_topic": "%1 публикува нова тема: %2", "user_edited_post": "%1 редактира публикация в %2", + "user_posted_topic_with_tag": "%1 has posted a new topic with tag %2", + "user_posted_topic_with_tag_dual": "%1 has posted a new topic with tags %2 and %3", + "user_posted_topic_with_tag_triple": "%1 has posted a new topic with tags %2, %3 and %4", + "user_posted_topic_with_tag_multiple": "%1 has posted a new topic with tags %2", "user_started_following_you": "%1 започна да Ви следва.", "user_started_following_you_dual": "%1 и %2 започнаха да Ви следват.", "user_started_following_you_triple": "%1, %2 и %3 започнаха да Ви следват.", @@ -71,6 +76,7 @@ "notification_and_email": "Известие и е-писмо", "notificationType_upvote": "Когато някой гласува положително за Ваша публикация", "notificationType_new-topic": "Когато някой, когото следвате, публикува тема", + "notificationType_new-topic-with-tag": "When a topic is posted with a tag you follow", "notificationType_new-reply": "Когато бъде публикуван нов отговор в тема, която следвате", "notificationType_post-edit": "Когато бъде редактирана публикация в тема, която следите", "notificationType_follow": "Когато някой започне да Ви следва", diff --git a/public/language/bg/pages.json b/public/language/bg/pages.json index fff997d182..0be7793c8e 100644 --- a/public/language/bg/pages.json +++ b/public/language/bg/pages.json @@ -48,6 +48,7 @@ "account/topics": "Теми, създадени от %1", "account/groups": "Групите на %1", "account/watched_categories": "Следените категории на %1", + "account/watched-tags": "%1's Watched Tags", "account/bookmarks": "Отметнатите публикации на %1", "account/settings": "Потребителски настройки", "account/settings-of": "Променят се настройките на %1", diff --git a/public/language/bg/tags.json b/public/language/bg/tags.json index c7617fe056..da566605a9 100644 --- a/public/language/bg/tags.json +++ b/public/language/bg/tags.json @@ -7,5 +7,11 @@ "enter_tags_here_short": "Въведете етикети...", "no_tags": "Все още няма етикети.", "select_tags": "Изберете етикети", - "tag-whitelist": "Списък от разрешени етикети" + "tag-whitelist": "Списък от разрешени етикети", + "watching": "Watching", + "not-watching": "Not Watching", + "watching.description": "Notify me of new topics.", + "not-watching.description": "Do not notify me of new topics.", + "following-tag.message": "You will now be receiving notifications when somebody posts a topic with this tag.", + "not-following-tag.message": "You will not receive notifications when somebody posts a topic with this tag." } \ No newline at end of file diff --git a/public/language/bg/user.json b/public/language/bg/user.json index ca9ab4bba6..c802da0d55 100644 --- a/public/language/bg/user.json +++ b/public/language/bg/user.json @@ -36,6 +36,7 @@ "reputation": "Репутация", "bookmarks": "Отметки", "watched_categories": "Следени категории", + "watched-tags": "Watched tags", "change_all": "Промяна на всички", "watched": "Следени", "ignored": "Пренебрегвани", diff --git a/public/language/bn/notifications.json b/public/language/bn/notifications.json index 1af531bfa8..9cd56fcd2a 100644 --- a/public/language/bn/notifications.json +++ b/public/language/bn/notifications.json @@ -12,6 +12,7 @@ "you_have_unread_notifications": "আপনার অপঠিত বিজ্ঞপ্তি আছে।", "all": "All", "topics": "Topics", + "tags": "Tags", "replies": "Replies", "chat": "Chats", "group-chat": "Group Chats", @@ -22,10 +23,10 @@ "my-flags": "Flags assigned to me", "bans": "Bans", "new_message_from": "%1 থেকে নতুন বার্তা", - "user_posted_in_public_room": "%1 wrote in %3", - "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", - "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", - "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", + "user_posted_in_public_room": "%1 wrote in %3", + "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", + "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", + "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", "upvoted_your_post_in": "%1 , %2 এ আপানার পোষ্টকে আপভোট করেছেন। ", "upvoted_your_post_in_dual": "%1 and %2 have upvoted your post in %3.", "upvoted_your_post_in_triple": "%1, %2 and %3 have upvoted your post in %4.", @@ -46,6 +47,10 @@ "user_posted_to_multiple": "%1, %2 and %3 others have posted replies to: %4", "user_posted_topic": "%1 has posted a new topic: %2", "user_edited_post": "%1 has edited a post in %2", + "user_posted_topic_with_tag": "%1 has posted a new topic with tag %2", + "user_posted_topic_with_tag_dual": "%1 has posted a new topic with tags %2 and %3", + "user_posted_topic_with_tag_triple": "%1 has posted a new topic with tags %2, %3 and %4", + "user_posted_topic_with_tag_multiple": "%1 has posted a new topic with tags %2", "user_started_following_you": "%1 আপনাকে অনুসরন করা শুরু করেছেন।", "user_started_following_you_dual": "%1 and %2 started following you.", "user_started_following_you_triple": "%1, %2 and %3 started following you.", @@ -71,6 +76,7 @@ "notification_and_email": "Notification & Email", "notificationType_upvote": "When someone upvotes your post", "notificationType_new-topic": "When someone you follow posts a topic", + "notificationType_new-topic-with-tag": "When a topic is posted with a tag you follow", "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", diff --git a/public/language/bn/pages.json b/public/language/bn/pages.json index 7ae4b12b33..928fb7fb92 100644 --- a/public/language/bn/pages.json +++ b/public/language/bn/pages.json @@ -48,6 +48,7 @@ "account/topics": "Topics created by %1", "account/groups": "%1's Groups", "account/watched_categories": "%1's Watched Categories", + "account/watched-tags": "%1's Watched Tags", "account/bookmarks": "%1's Bookmarked Posts", "account/settings": "User Settings", "account/settings-of": "Changing settings of %1", diff --git a/public/language/bn/tags.json b/public/language/bn/tags.json index af42dd9385..9690a75c4c 100644 --- a/public/language/bn/tags.json +++ b/public/language/bn/tags.json @@ -7,5 +7,11 @@ "enter_tags_here_short": "ট্যাগ বসান", "no_tags": "এখন পর্যন্ত কোন ট্যাগ নেই", "select_tags": "Select Tags", - "tag-whitelist": "Tag Whitelist" + "tag-whitelist": "Tag Whitelist", + "watching": "Watching", + "not-watching": "Not Watching", + "watching.description": "Notify me of new topics.", + "not-watching.description": "Do not notify me of new topics.", + "following-tag.message": "You will now be receiving notifications when somebody posts a topic with this tag.", + "not-following-tag.message": "You will not receive notifications when somebody posts a topic with this tag." } \ No newline at end of file diff --git a/public/language/bn/user.json b/public/language/bn/user.json index 82cf041f46..37c7cf1f02 100644 --- a/public/language/bn/user.json +++ b/public/language/bn/user.json @@ -36,6 +36,7 @@ "reputation": "সন্মাননা", "bookmarks": "Bookmarks", "watched_categories": "Watched categories", + "watched-tags": "Watched tags", "change_all": "Change All", "watched": "দেখা হয়েছে", "ignored": "Ignored", diff --git a/public/language/cs/notifications.json b/public/language/cs/notifications.json index 943998ccb7..3c9136fd40 100644 --- a/public/language/cs/notifications.json +++ b/public/language/cs/notifications.json @@ -12,6 +12,7 @@ "you_have_unread_notifications": "Máte nepřečtená upozornění.", "all": "Vše", "topics": "Témata", + "tags": "Tags", "replies": "Odpovědi", "chat": "Konverzace", "group-chat": "Skupinová konverzace", @@ -22,10 +23,10 @@ "my-flags": "Označení přiřazené mě", "bans": "Blokace", "new_message_from": "Nová zpráva od %1", - "user_posted_in_public_room": "%1 wrote in %3", - "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", - "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", - "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", + "user_posted_in_public_room": "%1 wrote in %3", + "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", + "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", + "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", "upvoted_your_post_in": "%1 souhlasil s vaším příspěvkem v %2.", "upvoted_your_post_in_dual": "%1 a %2 souhlasili s vaším příspěvkem v %3.", "upvoted_your_post_in_triple": "%1, %2 and %3 have upvoted your post in %4.", @@ -46,6 +47,10 @@ "user_posted_to_multiple": "%1, %2 and %3 others have posted replies to: %4", "user_posted_topic": "%1 založil nové téma: %2", "user_edited_post": "Příspěvek %2 byl upraven uživatelem %1 ", + "user_posted_topic_with_tag": "%1 has posted a new topic with tag %2", + "user_posted_topic_with_tag_dual": "%1 has posted a new topic with tags %2 and %3", + "user_posted_topic_with_tag_triple": "%1 has posted a new topic with tags %2, %3 and %4", + "user_posted_topic_with_tag_multiple": "%1 has posted a new topic with tags %2", "user_started_following_you": "%1 vás začal sledovat.", "user_started_following_you_dual": "%1 a %2 vás začali sledovat.", "user_started_following_you_triple": "%1, %2 and %3 started following you.", @@ -71,6 +76,7 @@ "notification_and_email": "Oznámení a e-mail", "notificationType_upvote": "Jakmile někdo vyjádří souhlas s vaším příspěvkem", "notificationType_new-topic": "Jakmile někdo koho sledujete vytvoří nové téma", + "notificationType_new-topic-with-tag": "When a topic is posted with a tag you follow", "notificationType_new-reply": "Jakmile je přidán nový příspěvek v tématu, které sledujete", "notificationType_post-edit": "Jakmile je upraven příspěvek v tématu, které sledujete", "notificationType_follow": "Jakmile vás někdo začne sledovat", diff --git a/public/language/cs/pages.json b/public/language/cs/pages.json index 54237bb782..412c2bb117 100644 --- a/public/language/cs/pages.json +++ b/public/language/cs/pages.json @@ -48,6 +48,7 @@ "account/topics": "Příspěvky vytvořeny uživatelem %1", "account/groups": "%1's skupiny", "account/watched_categories": "%1's sledovaných kategorii", + "account/watched-tags": "%1's Watched Tags", "account/bookmarks": "%1's zazáložkované příspěvky", "account/settings": "Uživatelské nastavení", "account/settings-of": "Changing settings of %1", diff --git a/public/language/cs/tags.json b/public/language/cs/tags.json index 756a1a1be4..d02ea2eb88 100644 --- a/public/language/cs/tags.json +++ b/public/language/cs/tags.json @@ -7,5 +7,11 @@ "enter_tags_here_short": "Zadejte označení…", "no_tags": "Zatím tu není žádné označení.", "select_tags": "Select Tags", - "tag-whitelist": "Tag Whitelist" + "tag-whitelist": "Tag Whitelist", + "watching": "Watching", + "not-watching": "Not Watching", + "watching.description": "Notify me of new topics.", + "not-watching.description": "Do not notify me of new topics.", + "following-tag.message": "You will now be receiving notifications when somebody posts a topic with this tag.", + "not-following-tag.message": "You will not receive notifications when somebody posts a topic with this tag." } \ No newline at end of file diff --git a/public/language/cs/user.json b/public/language/cs/user.json index 8e13670021..234c2410d9 100644 --- a/public/language/cs/user.json +++ b/public/language/cs/user.json @@ -36,6 +36,7 @@ "reputation": "Reputace", "bookmarks": "Záložky", "watched_categories": "Sledované kategorie", + "watched-tags": "Watched tags", "change_all": "Změnit vše", "watched": "Sledován", "ignored": "Ignorován", diff --git a/public/language/da/notifications.json b/public/language/da/notifications.json index 0451ef8fb6..772c90ba06 100644 --- a/public/language/da/notifications.json +++ b/public/language/da/notifications.json @@ -12,6 +12,7 @@ "you_have_unread_notifications": "Du har ulæste notifikationer.", "all": "All", "topics": "Topics", + "tags": "Tags", "replies": "Replies", "chat": "Chats", "group-chat": "Group Chats", @@ -22,10 +23,10 @@ "my-flags": "Flags assigned to me", "bans": "Bans", "new_message_from": "Ny besked fra %1", - "user_posted_in_public_room": "%1 wrote in %3", - "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", - "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", - "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", + "user_posted_in_public_room": "%1 wrote in %3", + "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", + "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", + "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", "upvoted_your_post_in": "%1 har upvotet dit indlæg i %2.", "upvoted_your_post_in_dual": "%1 og %2 har syntes godt om dit indlæg i %3.", "upvoted_your_post_in_triple": "%1, %2 and %3 have upvoted your post in %4.", @@ -46,6 +47,10 @@ "user_posted_to_multiple": "%1, %2 and %3 others have posted replies to: %4", "user_posted_topic": "%1 har oprettet en ny tråd: %2", "user_edited_post": "%1 has edited a post in %2", + "user_posted_topic_with_tag": "%1 has posted a new topic with tag %2", + "user_posted_topic_with_tag_dual": "%1 has posted a new topic with tags %2 and %3", + "user_posted_topic_with_tag_triple": "%1 has posted a new topic with tags %2, %3 and %4", + "user_posted_topic_with_tag_multiple": "%1 has posted a new topic with tags %2", "user_started_following_you": "%1 har valgt at følge dig.", "user_started_following_you_dual": "%1 og %2 har valgt at følge dig.", "user_started_following_you_triple": "%1, %2 and %3 started following you.", @@ -71,6 +76,7 @@ "notification_and_email": "Notification & Email", "notificationType_upvote": "When someone upvotes your post", "notificationType_new-topic": "When someone you follow posts a topic", + "notificationType_new-topic-with-tag": "When a topic is posted with a tag you follow", "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", diff --git a/public/language/da/pages.json b/public/language/da/pages.json index 942e192c1f..b009ab79cc 100644 --- a/public/language/da/pages.json +++ b/public/language/da/pages.json @@ -48,6 +48,7 @@ "account/topics": "Tråde lavet af %1", "account/groups": "%1s grupper", "account/watched_categories": "%1's Watched Categories", + "account/watched-tags": "%1's Watched Tags", "account/bookmarks": "%1's Bookmarked Posts", "account/settings": "Bruger instillinger", "account/settings-of": "Changing settings of %1", diff --git a/public/language/da/tags.json b/public/language/da/tags.json index b72f18ad8c..c391a7fb37 100644 --- a/public/language/da/tags.json +++ b/public/language/da/tags.json @@ -7,5 +7,11 @@ "enter_tags_here_short": "Skriv tags", "no_tags": "Der er ingen tags endnu.", "select_tags": "Select Tags", - "tag-whitelist": "Tag Whitelist" + "tag-whitelist": "Tag Whitelist", + "watching": "Watching", + "not-watching": "Not Watching", + "watching.description": "Notify me of new topics.", + "not-watching.description": "Do not notify me of new topics.", + "following-tag.message": "You will now be receiving notifications when somebody posts a topic with this tag.", + "not-following-tag.message": "You will not receive notifications when somebody posts a topic with this tag." } \ No newline at end of file diff --git a/public/language/da/user.json b/public/language/da/user.json index ae67c9911e..020dde51f4 100644 --- a/public/language/da/user.json +++ b/public/language/da/user.json @@ -36,6 +36,7 @@ "reputation": "Omdømme", "bookmarks": "Bogmærker", "watched_categories": "Watched categories", + "watched-tags": "Watched tags", "change_all": "Change All", "watched": "Set", "ignored": "Ignored", diff --git a/public/language/de/notifications.json b/public/language/de/notifications.json index 34437ab9e1..8f79af9692 100644 --- a/public/language/de/notifications.json +++ b/public/language/de/notifications.json @@ -12,6 +12,7 @@ "you_have_unread_notifications": "Du hast ungelesene Benachrichtigungen.", "all": "Alle", "topics": "Themen", + "tags": "Tags", "replies": "Antworten", "chat": "Chats", "group-chat": "Gruppenchats", @@ -22,10 +23,10 @@ "my-flags": "Mir zugewiesene Markierungen", "bans": "Verbannungen", "new_message_from": "Neue Nachricht von %1", - "user_posted_in_public_room": "%1 wrote in %3", - "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", - "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", - "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", + "user_posted_in_public_room": "%1 wrote in %3", + "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", + "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", + "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", "upvoted_your_post_in": "%1 hat deinen Beitrag in %2 positiv bewertet.", "upvoted_your_post_in_dual": "%1 und %2 haben deinen Beitrag in %3 positiv bewertet.", "upvoted_your_post_in_triple": "%1, %2 and %3 have upvoted your post in %4.", @@ -46,6 +47,10 @@ "user_posted_to_multiple": "%1, %2 and %3 others have posted replies to: %4", "user_posted_topic": "%1 hat ein neues Thema erstellt: %2", "user_edited_post": "%1 hat einen Post in %2 bearbeitet", + "user_posted_topic_with_tag": "%1 has posted a new topic with tag %2", + "user_posted_topic_with_tag_dual": "%1 has posted a new topic with tags %2 and %3", + "user_posted_topic_with_tag_triple": "%1 has posted a new topic with tags %2, %3 and %4", + "user_posted_topic_with_tag_multiple": "%1 has posted a new topic with tags %2", "user_started_following_you": "%1 folgt dir jetzt.", "user_started_following_you_dual": "%1 und %2 folgen dir jetzt.", "user_started_following_you_triple": "%1, %2 and %3 started following you.", @@ -71,6 +76,7 @@ "notification_and_email": "Benachrichtigungen & Emails", "notificationType_upvote": "Wenn jemand deinen beitrag positiv bewertet", "notificationType_new-topic": "Wenn jemand, dem du folgst, einen Beitrag erstellt", + "notificationType_new-topic-with-tag": "When a topic is posted with a tag you follow", "notificationType_new-reply": "Wenn es eine neue Antwort auf ein Thema das du beobachtest gibt", "notificationType_post-edit": "Wenn ein Post bearbeitet wurde, in einem Thema welches du beobachtest", "notificationType_follow": "Wenn dir jemand neues folgt", diff --git a/public/language/de/pages.json b/public/language/de/pages.json index 07d2c7e72c..83e67688ca 100644 --- a/public/language/de/pages.json +++ b/public/language/de/pages.json @@ -48,6 +48,7 @@ "account/topics": "Von %1 verfasste Themen", "account/groups": "Gruppen von %1", "account/watched_categories": "Beobachtete Kategorien von %1", + "account/watched-tags": "%1's Watched Tags", "account/bookmarks": "Lesezeichen von %1", "account/settings": "Benutzer-Einstellungen", "account/settings-of": "Einstellungen von %1 ändern", diff --git a/public/language/de/tags.json b/public/language/de/tags.json index 2f309b93f3..5cb6ed6254 100644 --- a/public/language/de/tags.json +++ b/public/language/de/tags.json @@ -7,5 +7,11 @@ "enter_tags_here_short": "Schlagworte eingeben...", "no_tags": "Es gibt noch keine Schlagworte.", "select_tags": "Schlagworte auswählen", - "tag-whitelist": "Tag Whitelist" + "tag-whitelist": "Tag Whitelist", + "watching": "Watching", + "not-watching": "Not Watching", + "watching.description": "Notify me of new topics.", + "not-watching.description": "Do not notify me of new topics.", + "following-tag.message": "You will now be receiving notifications when somebody posts a topic with this tag.", + "not-following-tag.message": "You will not receive notifications when somebody posts a topic with this tag." } \ No newline at end of file diff --git a/public/language/de/user.json b/public/language/de/user.json index 13f88ddcf9..fe4cd2f713 100644 --- a/public/language/de/user.json +++ b/public/language/de/user.json @@ -36,6 +36,7 @@ "reputation": "Ansehen", "bookmarks": "Lesezeichen", "watched_categories": "Beobachtete Kategorien", + "watched-tags": "Watched tags", "change_all": "Alle ändern", "watched": "Beobachtet", "ignored": "Ignoriert", diff --git a/public/language/el/notifications.json b/public/language/el/notifications.json index 35f03d4cfc..1e345f3405 100644 --- a/public/language/el/notifications.json +++ b/public/language/el/notifications.json @@ -12,6 +12,7 @@ "you_have_unread_notifications": "You have unread notifications.", "all": "All", "topics": "Topics", + "tags": "Tags", "replies": "Replies", "chat": "Chats", "group-chat": "Group Chats", @@ -22,10 +23,10 @@ "my-flags": "Flags assigned to me", "bans": "Bans", "new_message_from": "New message from %1", - "user_posted_in_public_room": "%1 wrote in %3", - "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", - "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", - "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", + "user_posted_in_public_room": "%1 wrote in %3", + "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", + "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", + "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", "upvoted_your_post_in": "%1 has upvoted your post in %2.", "upvoted_your_post_in_dual": "%1 and %2 have upvoted your post in %3.", "upvoted_your_post_in_triple": "%1, %2 and %3 have upvoted your post in %4.", @@ -46,6 +47,10 @@ "user_posted_to_multiple": "%1, %2 and %3 others have posted replies to: %4", "user_posted_topic": "%1 has posted a new topic: %2", "user_edited_post": "%1 has edited a post in %2", + "user_posted_topic_with_tag": "%1 has posted a new topic with tag %2", + "user_posted_topic_with_tag_dual": "%1 has posted a new topic with tags %2 and %3", + "user_posted_topic_with_tag_triple": "%1 has posted a new topic with tags %2, %3 and %4", + "user_posted_topic_with_tag_multiple": "%1 has posted a new topic with tags %2", "user_started_following_you": "%1 started following you.", "user_started_following_you_dual": "%1 and %2 started following you.", "user_started_following_you_triple": "%1, %2 and %3 started following you.", @@ -71,6 +76,7 @@ "notification_and_email": "Notification & Email", "notificationType_upvote": "When someone upvotes your post", "notificationType_new-topic": "When someone you follow posts a topic", + "notificationType_new-topic-with-tag": "When a topic is posted with a tag you follow", "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", diff --git a/public/language/el/pages.json b/public/language/el/pages.json index be37254b9f..60079d1819 100644 --- a/public/language/el/pages.json +++ b/public/language/el/pages.json @@ -48,6 +48,7 @@ "account/topics": "Topics created by %1", "account/groups": "%1's Groups", "account/watched_categories": "%1's Watched Categories", + "account/watched-tags": "%1's Watched Tags", "account/bookmarks": "%1's Bookmarked Posts", "account/settings": "Επιλογές Χρήστη", "account/settings-of": "Changing settings of %1", diff --git a/public/language/el/tags.json b/public/language/el/tags.json index 70140a814d..adb45d110a 100644 --- a/public/language/el/tags.json +++ b/public/language/el/tags.json @@ -7,5 +7,11 @@ "enter_tags_here_short": "Εισαγωγή ετικετών...", "no_tags": "Δεν υπάρχουν ακόμα ετικέτες.", "select_tags": "Select Tags", - "tag-whitelist": "Tag Whitelist" + "tag-whitelist": "Tag Whitelist", + "watching": "Watching", + "not-watching": "Not Watching", + "watching.description": "Notify me of new topics.", + "not-watching.description": "Do not notify me of new topics.", + "following-tag.message": "You will now be receiving notifications when somebody posts a topic with this tag.", + "not-following-tag.message": "You will not receive notifications when somebody posts a topic with this tag." } \ No newline at end of file diff --git a/public/language/el/user.json b/public/language/el/user.json index cac2610157..26417dfa7b 100644 --- a/public/language/el/user.json +++ b/public/language/el/user.json @@ -36,6 +36,7 @@ "reputation": "Φήμη", "bookmarks": "Bookmarks", "watched_categories": "Watched categories", + "watched-tags": "Watched tags", "change_all": "Change All", "watched": "Watched", "ignored": "Ignored", diff --git a/public/language/en-US/notifications.json b/public/language/en-US/notifications.json index 584927194b..55a058ef8a 100644 --- a/public/language/en-US/notifications.json +++ b/public/language/en-US/notifications.json @@ -12,6 +12,7 @@ "you_have_unread_notifications": "You have unread notifications.", "all": "All", "topics": "Topics", + "tags": "Tags", "replies": "Replies", "chat": "Chats", "group-chat": "Group Chats", @@ -22,10 +23,10 @@ "my-flags": "Flags assigned to me", "bans": "Bans", "new_message_from": "New message from %1", - "user_posted_in_public_room": "%1 wrote in %3", - "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", - "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", - "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", + "user_posted_in_public_room": "%1 wrote in %3", + "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", + "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", + "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", "upvoted_your_post_in": "%1 has upvoted your post in %2.", "upvoted_your_post_in_dual": "%1 and %2 have upvoted your post in %3.", "upvoted_your_post_in_triple": "%1, %2 and %3 have upvoted your post in %4.", @@ -46,6 +47,10 @@ "user_posted_to_multiple": "%1, %2 and %3 others have posted replies to: %4", "user_posted_topic": "%1 has posted a new topic: %2", "user_edited_post": "%1 has edited a post in %2", + "user_posted_topic_with_tag": "%1 has posted a new topic with tag %2", + "user_posted_topic_with_tag_dual": "%1 has posted a new topic with tags %2 and %3", + "user_posted_topic_with_tag_triple": "%1 has posted a new topic with tags %2, %3 and %4", + "user_posted_topic_with_tag_multiple": "%1 has posted a new topic with tags %2", "user_started_following_you": "%1 started following you.", "user_started_following_you_dual": "%1 and %2 started following you.", "user_started_following_you_triple": "%1, %2 and %3 started following you.", @@ -71,6 +76,7 @@ "notification_and_email": "Notification & Email", "notificationType_upvote": "When someone upvotes your post", "notificationType_new-topic": "When someone you follow posts a topic", + "notificationType_new-topic-with-tag": "When a topic is posted with a tag you follow", "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", diff --git a/public/language/en-US/pages.json b/public/language/en-US/pages.json index d8ad0278c5..453549d0d7 100644 --- a/public/language/en-US/pages.json +++ b/public/language/en-US/pages.json @@ -48,6 +48,7 @@ "account/topics": "Topics created by %1", "account/groups": "%1's Groups", "account/watched_categories": "%1's Watched Categories", + "account/watched-tags": "%1's Watched Tags", "account/bookmarks": "%1's Bookmarked Posts", "account/settings": "User Settings", "account/settings-of": "Changing settings of %1", diff --git a/public/language/en-US/tags.json b/public/language/en-US/tags.json index 9412cca1b4..ad94664a45 100644 --- a/public/language/en-US/tags.json +++ b/public/language/en-US/tags.json @@ -7,5 +7,11 @@ "enter_tags_here_short": "Enter tags...", "no_tags": "There are no tags yet.", "select_tags": "Select Tags", - "tag-whitelist": "Tag Whitelist" + "tag-whitelist": "Tag Whitelist", + "watching": "Watching", + "not-watching": "Not Watching", + "watching.description": "Notify me of new topics.", + "not-watching.description": "Do not notify me of new topics.", + "following-tag.message": "You will now be receiving notifications when somebody posts a topic with this tag.", + "not-following-tag.message": "You will not receive notifications when somebody posts a topic with this tag." } \ No newline at end of file diff --git a/public/language/en-US/user.json b/public/language/en-US/user.json index a400152e73..79b9772785 100644 --- a/public/language/en-US/user.json +++ b/public/language/en-US/user.json @@ -36,6 +36,7 @@ "reputation": "Reputation", "bookmarks": "Bookmarks", "watched_categories": "Watched categories", + "watched-tags": "Watched tags", "change_all": "Change All", "watched": "Watched", "ignored": "Ignored", diff --git a/public/language/en-x-pirate/notifications.json b/public/language/en-x-pirate/notifications.json index ce989c11a8..d245b7342b 100644 --- a/public/language/en-x-pirate/notifications.json +++ b/public/language/en-x-pirate/notifications.json @@ -12,6 +12,7 @@ "you_have_unread_notifications": "You have unread notifications.", "all": "All", "topics": "Topics", + "tags": "Tags", "replies": "Replies", "chat": "Chats", "group-chat": "Group Chats", @@ -22,10 +23,10 @@ "my-flags": "Flags assigned to me", "bans": "Bans", "new_message_from": "New message from %1", - "user_posted_in_public_room": "%1 wrote in %3", - "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", - "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", - "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", + "user_posted_in_public_room": "%1 wrote in %3", + "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", + "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", + "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", "upvoted_your_post_in": "%1 has upvoted your post in %2.", "upvoted_your_post_in_dual": "%1 and %2 have upvoted your post in %3.", "upvoted_your_post_in_triple": "%1, %2 and %3 have upvoted your post in %4.", @@ -46,6 +47,10 @@ "user_posted_to_multiple": "%1, %2 and %3 others have posted replies to: %4", "user_posted_topic": "%1 has posted a new topic: %2", "user_edited_post": "%1 has edited a post in %2", + "user_posted_topic_with_tag": "%1 has posted a new topic with tag %2", + "user_posted_topic_with_tag_dual": "%1 has posted a new topic with tags %2 and %3", + "user_posted_topic_with_tag_triple": "%1 has posted a new topic with tags %2, %3 and %4", + "user_posted_topic_with_tag_multiple": "%1 has posted a new topic with tags %2", "user_started_following_you": "%1 started following you.", "user_started_following_you_dual": "%1 and %2 started following you.", "user_started_following_you_triple": "%1, %2 and %3 started following you.", @@ -71,6 +76,7 @@ "notification_and_email": "Notification & Email", "notificationType_upvote": "When someone upvotes your post", "notificationType_new-topic": "When someone you follow posts a topic", + "notificationType_new-topic-with-tag": "When a topic is posted with a tag you follow", "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", diff --git a/public/language/en-x-pirate/pages.json b/public/language/en-x-pirate/pages.json index d8ad0278c5..453549d0d7 100644 --- a/public/language/en-x-pirate/pages.json +++ b/public/language/en-x-pirate/pages.json @@ -48,6 +48,7 @@ "account/topics": "Topics created by %1", "account/groups": "%1's Groups", "account/watched_categories": "%1's Watched Categories", + "account/watched-tags": "%1's Watched Tags", "account/bookmarks": "%1's Bookmarked Posts", "account/settings": "User Settings", "account/settings-of": "Changing settings of %1", diff --git a/public/language/en-x-pirate/tags.json b/public/language/en-x-pirate/tags.json index 9412cca1b4..ad94664a45 100644 --- a/public/language/en-x-pirate/tags.json +++ b/public/language/en-x-pirate/tags.json @@ -7,5 +7,11 @@ "enter_tags_here_short": "Enter tags...", "no_tags": "There are no tags yet.", "select_tags": "Select Tags", - "tag-whitelist": "Tag Whitelist" + "tag-whitelist": "Tag Whitelist", + "watching": "Watching", + "not-watching": "Not Watching", + "watching.description": "Notify me of new topics.", + "not-watching.description": "Do not notify me of new topics.", + "following-tag.message": "You will now be receiving notifications when somebody posts a topic with this tag.", + "not-following-tag.message": "You will not receive notifications when somebody posts a topic with this tag." } \ No newline at end of file diff --git a/public/language/en-x-pirate/user.json b/public/language/en-x-pirate/user.json index dac4c8d676..5e1e021756 100644 --- a/public/language/en-x-pirate/user.json +++ b/public/language/en-x-pirate/user.json @@ -36,6 +36,7 @@ "reputation": "Reputation", "bookmarks": "Bookmarks", "watched_categories": "Watched categories", + "watched-tags": "Watched tags", "change_all": "Change All", "watched": "Watched", "ignored": "Ignored", diff --git a/public/language/es/notifications.json b/public/language/es/notifications.json index 8fb125804e..961d694a2b 100644 --- a/public/language/es/notifications.json +++ b/public/language/es/notifications.json @@ -12,6 +12,7 @@ "you_have_unread_notifications": "Tienes notificaciones sin leer.", "all": "Todo", "topics": "Temas", + "tags": "Tags", "replies": "Respuestas", "chat": "Chats", "group-chat": "Group Chats", @@ -22,10 +23,10 @@ "my-flags": "Reportado asignado a mí", "bans": "Baneos", "new_message_from": "Nuevo mensaje de %1", - "user_posted_in_public_room": "%1 wrote in %3", - "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", - "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", - "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", + "user_posted_in_public_room": "%1 wrote in %3", + "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", + "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", + "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", "upvoted_your_post_in": "%1 ha votado positivamente tu respuesta en %2.", "upvoted_your_post_in_dual": "%1 y %2 han votado positivamente tu respuesta en %3.", "upvoted_your_post_in_triple": "%1, %2 and %3 have upvoted your post in %4.", @@ -46,6 +47,10 @@ "user_posted_to_multiple": "%1, %2 and %3 others have posted replies to: %4", "user_posted_topic": "%1 ha publicado un nuevo tema: %2", "user_edited_post": "%1 has edited a post in %2", + "user_posted_topic_with_tag": "%1 has posted a new topic with tag %2", + "user_posted_topic_with_tag_dual": "%1 has posted a new topic with tags %2 and %3", + "user_posted_topic_with_tag_triple": "%1 has posted a new topic with tags %2, %3 and %4", + "user_posted_topic_with_tag_multiple": "%1 has posted a new topic with tags %2", "user_started_following_you": "%1 comenzó a seguirte.", "user_started_following_you_dual": "%1 y %2 comenzaron a seguirte.", "user_started_following_you_triple": "%1, %2 and %3 started following you.", @@ -71,6 +76,7 @@ "notification_and_email": "Notificación & Email", "notificationType_upvote": "Cuando alguien vota positivamente en tu entrada", "notificationType_new-topic": "Cuando alguien a quien sigues comenta en un tema", + "notificationType_new-topic-with-tag": "When a topic is posted with a tag you follow", "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", diff --git a/public/language/es/pages.json b/public/language/es/pages.json index caf8655898..27632c9ae5 100644 --- a/public/language/es/pages.json +++ b/public/language/es/pages.json @@ -48,6 +48,7 @@ "account/topics": "Temas creados por %1", "account/groups": "Grupos de %1", "account/watched_categories": "%1 Categorías seguidas", + "account/watched-tags": "%1's Watched Tags", "account/bookmarks": "%1's Mensajes marcados", "account/settings": "Preferencias", "account/settings-of": "Changing settings of %1", diff --git a/public/language/es/tags.json b/public/language/es/tags.json index bc28f0381a..ce151f4c74 100644 --- a/public/language/es/tags.json +++ b/public/language/es/tags.json @@ -7,5 +7,11 @@ "enter_tags_here_short": "Introduzca las etiquetas...", "no_tags": "Aún no hay etiquetas.", "select_tags": "Seleccionar Etiquetas", - "tag-whitelist": "Tag Whitelist" + "tag-whitelist": "Tag Whitelist", + "watching": "Watching", + "not-watching": "Not Watching", + "watching.description": "Notify me of new topics.", + "not-watching.description": "Do not notify me of new topics.", + "following-tag.message": "You will now be receiving notifications when somebody posts a topic with this tag.", + "not-following-tag.message": "You will not receive notifications when somebody posts a topic with this tag." } \ No newline at end of file diff --git a/public/language/es/user.json b/public/language/es/user.json index c3ce6928a8..fdd5e585d9 100644 --- a/public/language/es/user.json +++ b/public/language/es/user.json @@ -36,6 +36,7 @@ "reputation": "Reputación", "bookmarks": "Marcadores", "watched_categories": "Categorías seguidas", + "watched-tags": "Watched tags", "change_all": "Change All", "watched": "Suscritos", "ignored": "Ignorado", diff --git a/public/language/et/notifications.json b/public/language/et/notifications.json index c44319acce..9b8c633daa 100644 --- a/public/language/et/notifications.json +++ b/public/language/et/notifications.json @@ -12,6 +12,7 @@ "you_have_unread_notifications": "Sul ei ole lugemata teateid.", "all": "All", "topics": "Topics", + "tags": "Tags", "replies": "Replies", "chat": "Chats", "group-chat": "Group Chats", @@ -22,10 +23,10 @@ "my-flags": "Flags assigned to me", "bans": "Bans", "new_message_from": "Uus sõnum kasutajalt %1", - "user_posted_in_public_room": "%1 wrote in %3", - "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", - "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", - "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", + "user_posted_in_public_room": "%1 wrote in %3", + "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", + "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", + "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", "upvoted_your_post_in": "%1 hääletas sinu postituse poolt teemas %2.", "upvoted_your_post_in_dual": "%1 ja %2 kiitsid sinu postituse heaks: %3.", "upvoted_your_post_in_triple": "%1, %2 and %3 have upvoted your post in %4.", @@ -46,6 +47,10 @@ "user_posted_to_multiple": "%1, %2 and %3 others have posted replies to: %4", "user_posted_topic": "%1 on postitanud uue teema: %2", "user_edited_post": "%1 has edited a post in %2", + "user_posted_topic_with_tag": "%1 has posted a new topic with tag %2", + "user_posted_topic_with_tag_dual": "%1 has posted a new topic with tags %2 and %3", + "user_posted_topic_with_tag_triple": "%1 has posted a new topic with tags %2, %3 and %4", + "user_posted_topic_with_tag_multiple": "%1 has posted a new topic with tags %2", "user_started_following_you": "%1 hakkas sind jälgima.", "user_started_following_you_dual": "%1 ja %2 hakkasid sind jälgima.", "user_started_following_you_triple": "%1, %2 and %3 started following you.", @@ -71,6 +76,7 @@ "notification_and_email": "Notification & Email", "notificationType_upvote": "When someone upvotes your post", "notificationType_new-topic": "When someone you follow posts a topic", + "notificationType_new-topic-with-tag": "When a topic is posted with a tag you follow", "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", diff --git a/public/language/et/pages.json b/public/language/et/pages.json index c82767d3c1..47910a8c2c 100644 --- a/public/language/et/pages.json +++ b/public/language/et/pages.json @@ -48,6 +48,7 @@ "account/topics": "Teemad on kirjutanud %1", "account/groups": "Kasutaja %1 grupid", "account/watched_categories": "%1's Watched Categories", + "account/watched-tags": "%1's Watched Tags", "account/bookmarks": "%1's Bookmarked Posts", "account/settings": "Kasutaja sätted", "account/settings-of": "Changing settings of %1", diff --git a/public/language/et/tags.json b/public/language/et/tags.json index 58f900808e..ac9cb8f86c 100644 --- a/public/language/et/tags.json +++ b/public/language/et/tags.json @@ -7,5 +7,11 @@ "enter_tags_here_short": "Sisesta märksõnu...", "no_tags": "Siin ei ole veel ühtegi märksõna.", "select_tags": "Select Tags", - "tag-whitelist": "Tag Whitelist" + "tag-whitelist": "Tag Whitelist", + "watching": "Watching", + "not-watching": "Not Watching", + "watching.description": "Notify me of new topics.", + "not-watching.description": "Do not notify me of new topics.", + "following-tag.message": "You will now be receiving notifications when somebody posts a topic with this tag.", + "not-following-tag.message": "You will not receive notifications when somebody posts a topic with this tag." } \ No newline at end of file diff --git a/public/language/et/user.json b/public/language/et/user.json index 68c81d8ed4..a6ae72e38f 100644 --- a/public/language/et/user.json +++ b/public/language/et/user.json @@ -36,6 +36,7 @@ "reputation": "Reputatsioon", "bookmarks": "Bookmarks", "watched_categories": "Watched categories", + "watched-tags": "Watched tags", "change_all": "Change All", "watched": "Vaadatud", "ignored": "Ignored", diff --git a/public/language/fa-IR/notifications.json b/public/language/fa-IR/notifications.json index 980484e1b4..56faf89a20 100644 --- a/public/language/fa-IR/notifications.json +++ b/public/language/fa-IR/notifications.json @@ -12,6 +12,7 @@ "you_have_unread_notifications": "شما آگاه‌سازی‌‌های نخوانده دارید.", "all": "همه", "topics": "موضوع ها", + "tags": "Tags", "replies": "پاسخ ها", "chat": "گفتگو ها", "group-chat": "چت‌های گروهی", @@ -22,10 +23,10 @@ "my-flags": "گزارش های اختصاص یافته به من", "bans": "اخراجی ها", "new_message_from": "پیام تازه از %1", - "user_posted_in_public_room": "%1 wrote in %3", - "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", - "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", - "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", + "user_posted_in_public_room": "%1 wrote in %3", + "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", + "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", + "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", "upvoted_your_post_in": "%1 امتیاز مثبت به پست شما در %2 داده", "upvoted_your_post_in_dual": "%1 و %2 رای مثبت به پست شما در\n %3.", "upvoted_your_post_in_triple": "%1, %2 and %3 have upvoted your post in %4.", @@ -46,6 +47,10 @@ "user_posted_to_multiple": "%1, %2 and %3 others have posted replies to: %4", "user_posted_topic": "%1 یک موضوع جدید ارسال کرده: %2", "user_edited_post": "%1 پستی را در %2 ویرایش کرد", + "user_posted_topic_with_tag": "%1 has posted a new topic with tag %2", + "user_posted_topic_with_tag_dual": "%1 has posted a new topic with tags %2 and %3", + "user_posted_topic_with_tag_triple": "%1 has posted a new topic with tags %2, %3 and %4", + "user_posted_topic_with_tag_multiple": "%1 has posted a new topic with tags %2", "user_started_following_you": "%1 شروع به دنبال کردن شما کرده", "user_started_following_you_dual": "%1 و %2 شروع به دنبال کردن شما کرده.", "user_started_following_you_triple": "%1, %2 and %3 started following you.", @@ -71,6 +76,7 @@ "notification_and_email": "اعلان و ایمیل", "notificationType_upvote": "هنگامی که شخصی به پست شما رای مثبت می دهد", "notificationType_new-topic": "هنگامی که شخصی که شما دنبال می کنید موضوعی ایجاد نماید", + "notificationType_new-topic-with-tag": "When a topic is posted with a tag you follow", "notificationType_new-reply": "هنگامی که پاسخ جدید در موضوعی که شما پیگیری می کنید فرستاده می شود", "notificationType_post-edit": "وقتی در موضوعی که شما پیگیری می کنید پستی ویرایش می شود", "notificationType_follow": "هنگامی که کسی شما را دنبال می کند", diff --git a/public/language/fa-IR/pages.json b/public/language/fa-IR/pages.json index 88d7fe8ea5..940e421b3e 100644 --- a/public/language/fa-IR/pages.json +++ b/public/language/fa-IR/pages.json @@ -48,6 +48,7 @@ "account/topics": "موضوع های %1", "account/groups": "گروه‌های %1", "account/watched_categories": "دسته بندی های پیگیری شده %1", + "account/watched-tags": "%1's Watched Tags", "account/bookmarks": "%1 پست نشانک گذاری شده است", "account/settings": "تنظیمات کاربر", "account/settings-of": "تغییر تنظیمات از %1", diff --git a/public/language/fa-IR/tags.json b/public/language/fa-IR/tags.json index 36f7bd8100..167f59e616 100644 --- a/public/language/fa-IR/tags.json +++ b/public/language/fa-IR/tags.json @@ -7,5 +7,11 @@ "enter_tags_here_short": "برچسب‌ها را وارد کنید...", "no_tags": "هنوز برچسبی وجود ندارد.", "select_tags": "انتخاب برچسب ها", - "tag-whitelist": "Tag Whitelist" + "tag-whitelist": "Tag Whitelist", + "watching": "Watching", + "not-watching": "Not Watching", + "watching.description": "Notify me of new topics.", + "not-watching.description": "Do not notify me of new topics.", + "following-tag.message": "You will now be receiving notifications when somebody posts a topic with this tag.", + "not-following-tag.message": "You will not receive notifications when somebody posts a topic with this tag." } \ No newline at end of file diff --git a/public/language/fa-IR/user.json b/public/language/fa-IR/user.json index 34f7f02327..ec73e169df 100644 --- a/public/language/fa-IR/user.json +++ b/public/language/fa-IR/user.json @@ -36,6 +36,7 @@ "reputation": "اعتبار", "bookmarks": "نشانک‌ها", "watched_categories": "دسته بندی های پیگیری شده", + "watched-tags": "Watched tags", "change_all": "تغییر همه", "watched": "موضوع های پیگیری شده", "ignored": "نادیده گرفته شده", diff --git a/public/language/fi/notifications.json b/public/language/fi/notifications.json index bbd4bae857..56c3463902 100644 --- a/public/language/fi/notifications.json +++ b/public/language/fi/notifications.json @@ -12,6 +12,7 @@ "you_have_unread_notifications": "Sinulla on lukemattomia ilmoituksia.", "all": "Kaikki", "topics": "Aiheet", + "tags": "Tags", "replies": "Vastaukset", "chat": "Keskustelut", "group-chat": "Group Chats", @@ -22,10 +23,10 @@ "my-flags": "Flags assigned to me", "bans": "Bans", "new_message_from": "Uusi viesti käyttäjältä %1", - "user_posted_in_public_room": "%1 wrote in %3", - "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", - "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", - "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", + "user_posted_in_public_room": "%1 wrote in %3", + "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", + "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", + "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", "upvoted_your_post_in": "%1 käyttäjä tykkäsi viestistäsi aiheessa %2 ", "upvoted_your_post_in_dual": "%1 ja %2 tykkäsivät viestistäsi aiheesssa %3", "upvoted_your_post_in_triple": "%1, %2 and %3 have upvoted your post in %4.", @@ -46,6 +47,10 @@ "user_posted_to_multiple": "%1, %2 and %3 others have posted replies to: %4", "user_posted_topic": "%1 on kirjoittanut uuden aiheen: %2", "user_edited_post": "%1 has edited a post in %2", + "user_posted_topic_with_tag": "%1 has posted a new topic with tag %2", + "user_posted_topic_with_tag_dual": "%1 has posted a new topic with tags %2 and %3", + "user_posted_topic_with_tag_triple": "%1 has posted a new topic with tags %2, %3 and %4", + "user_posted_topic_with_tag_multiple": "%1 has posted a new topic with tags %2", "user_started_following_you": "%1 alkoi seurata sinua.", "user_started_following_you_dual": "%1 ja %2 alkoivat seurata sinua", "user_started_following_you_triple": "%1, %2 and %3 started following you.", @@ -71,6 +76,7 @@ "notification_and_email": "Ilmoitukset & Sähköposti", "notificationType_upvote": "Kun joku tykkää viestistäsi", "notificationType_new-topic": "Kun joku seuraa viestejäsi aiheessa", + "notificationType_new-topic-with-tag": "When a topic is posted with a tag you follow", "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", diff --git a/public/language/fi/pages.json b/public/language/fi/pages.json index 365df06a07..1419a3a8d5 100644 --- a/public/language/fi/pages.json +++ b/public/language/fi/pages.json @@ -48,6 +48,7 @@ "account/topics": "%1 luomat aiheet", "account/groups": "%1 ryhmät", "account/watched_categories": "%1's Watched Categories", + "account/watched-tags": "%1's Watched Tags", "account/bookmarks": "%1's Bookmarked Posts", "account/settings": "Käyttäjän asetukset", "account/settings-of": "Changing settings of %1", diff --git a/public/language/fi/tags.json b/public/language/fi/tags.json index aa3dc2efc8..435d1e75a1 100644 --- a/public/language/fi/tags.json +++ b/public/language/fi/tags.json @@ -7,5 +7,11 @@ "enter_tags_here_short": "Syötä tagit...", "no_tags": "Ei vielä yhtään tagia.", "select_tags": "Select Tags", - "tag-whitelist": "Tag Whitelist" + "tag-whitelist": "Tag Whitelist", + "watching": "Watching", + "not-watching": "Not Watching", + "watching.description": "Notify me of new topics.", + "not-watching.description": "Do not notify me of new topics.", + "following-tag.message": "You will now be receiving notifications when somebody posts a topic with this tag.", + "not-following-tag.message": "You will not receive notifications when somebody posts a topic with this tag." } \ No newline at end of file diff --git a/public/language/fi/user.json b/public/language/fi/user.json index 458b8d8cd1..15315d7f60 100644 --- a/public/language/fi/user.json +++ b/public/language/fi/user.json @@ -36,6 +36,7 @@ "reputation": "Maine", "bookmarks": "Kirjanmerkit", "watched_categories": "Seuratut kategoriat", + "watched-tags": "Watched tags", "change_all": "Muuta kaikki", "watched": "Seurattu", "ignored": "Ohitetut", diff --git a/public/language/fr/notifications.json b/public/language/fr/notifications.json index 776bc1eae3..66845aa504 100644 --- a/public/language/fr/notifications.json +++ b/public/language/fr/notifications.json @@ -12,6 +12,7 @@ "you_have_unread_notifications": "Vous avez des notifications non-lues", "all": "Tout", "topics": "Sujets", + "tags": "Tags", "replies": "Réponses", "chat": "Discussions", "group-chat": "Groupe de discussions", @@ -22,10 +23,10 @@ "my-flags": "Signalements qui me sont assignés", "bans": "Bannissements", "new_message_from": "Nouveau message de %1", - "user_posted_in_public_room": "%1 a écrit dans %3", - "user_posted_in_public_room_dual": "%1 et %2 ont écrit dans %4", - "user_posted_in_public_room_triple": "%1, %2 et %3 ont écrit dans %5", - "user_posted_in_public_room_multiple": "%1, %2 et %3 autres ont écrit dans %5", + "user_posted_in_public_room": "%1 wrote in %3", + "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", + "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", + "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", "upvoted_your_post_in": "%1 a voté pour votre message dans %2.", "upvoted_your_post_in_dual": "%1 et %2 ont voté pour votre message dans %3.", "upvoted_your_post_in_triple": "%1, %2 et %3 ont voté pour votre message dans %4.", @@ -46,6 +47,10 @@ "user_posted_to_multiple": "%1, %2 et %3 autres ont posté des réponses dans : %4", "user_posted_topic": "%1 a posté un nouveau sujet: %2", "user_edited_post": "%1 a édité un message dans %2", + "user_posted_topic_with_tag": "%1 has posted a new topic with tag %2", + "user_posted_topic_with_tag_dual": "%1 has posted a new topic with tags %2 and %3", + "user_posted_topic_with_tag_triple": "%1 has posted a new topic with tags %2, %3 and %4", + "user_posted_topic_with_tag_multiple": "%1 has posted a new topic with tags %2", "user_started_following_you": "%1 vous suit.", "user_started_following_you_dual": "%1 et %2 se sont abonnés à votre compte.", "user_started_following_you_triple": "%1, %2 et %3 ont commencé à vous suivre.", @@ -71,6 +76,7 @@ "notification_and_email": "Notification & E-mail", "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-topic-with-tag": "When a topic is posted with a tag you follow", "notificationType_new-reply": "Lorsqu'une nouvelle réponse est ajoutée dans un sujet que vous suivez", "notificationType_post-edit": "Lorsqu'un article est modifié dans un sujet que vous regardez", "notificationType_follow": "Lorsque quelqu'un commence à vous suivre", diff --git a/public/language/fr/pages.json b/public/language/fr/pages.json index 77d93f09bd..dcb95519ea 100644 --- a/public/language/fr/pages.json +++ b/public/language/fr/pages.json @@ -48,6 +48,7 @@ "account/topics": "Sujets créés par %1", "account/groups": "Groupes auxquels appartient %1", "account/watched_categories": "%1's Catégories surveillées", + "account/watched-tags": "%1's Watched Tags", "account/bookmarks": "Marque-pages de %1", "account/settings": "Paramètres d'utilisateur", "account/settings-of": "Modifier les paramètres de %1", diff --git a/public/language/fr/tags.json b/public/language/fr/tags.json index 93c938947e..b9e386a78f 100644 --- a/public/language/fr/tags.json +++ b/public/language/fr/tags.json @@ -7,5 +7,11 @@ "enter_tags_here_short": "Entrez des mots-clés...", "no_tags": "Il n'y a pas encore de mots-clés.", "select_tags": "Sélectionner les mots-clés", - "tag-whitelist": "Liste blanche de mots-clés" + "tag-whitelist": "Liste blanche de mots-clés", + "watching": "Watching", + "not-watching": "Not Watching", + "watching.description": "Notify me of new topics.", + "not-watching.description": "Do not notify me of new topics.", + "following-tag.message": "You will now be receiving notifications when somebody posts a topic with this tag.", + "not-following-tag.message": "You will not receive notifications when somebody posts a topic with this tag." } \ No newline at end of file diff --git a/public/language/fr/user.json b/public/language/fr/user.json index fe8099f03c..6833f46c5e 100644 --- a/public/language/fr/user.json +++ b/public/language/fr/user.json @@ -36,6 +36,7 @@ "reputation": "Réputation", "bookmarks": "Marque-pages", "watched_categories": "Catégories surveillées", + "watched-tags": "Watched tags", "change_all": "Tout changer", "watched": "Abonnements", "ignored": "Ignorés", diff --git a/public/language/gl/notifications.json b/public/language/gl/notifications.json index 1ebe787f85..262cd988b7 100644 --- a/public/language/gl/notifications.json +++ b/public/language/gl/notifications.json @@ -12,6 +12,7 @@ "you_have_unread_notifications": "Tes notificacións non lidas", "all": "All", "topics": "Topics", + "tags": "Tags", "replies": "Replies", "chat": "Chats", "group-chat": "Group Chats", @@ -22,10 +23,10 @@ "my-flags": "Flags assigned to me", "bans": "Bans", "new_message_from": "Nova mensaxe de %1", - "user_posted_in_public_room": "%1 wrote in %3", - "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", - "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", - "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", + "user_posted_in_public_room": "%1 wrote in %3", + "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", + "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", + "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", "upvoted_your_post_in": "%1 votoute positivo en %2.", "upvoted_your_post_in_dual": "%1 e %2 votaron positivamente a túa mensaxe en %3.", "upvoted_your_post_in_triple": "%1, %2 and %3 have upvoted your post in %4.", @@ -46,6 +47,10 @@ "user_posted_to_multiple": "%1, %2 and %3 others have posted replies to: %4", "user_posted_topic": "%1 publicou un novo tema: %2", "user_edited_post": "%1 has edited a post in %2", + "user_posted_topic_with_tag": "%1 has posted a new topic with tag %2", + "user_posted_topic_with_tag_dual": "%1 has posted a new topic with tags %2 and %3", + "user_posted_topic_with_tag_triple": "%1 has posted a new topic with tags %2, %3 and %4", + "user_posted_topic_with_tag_multiple": "%1 has posted a new topic with tags %2", "user_started_following_you": "%1 comezou a seguirte.", "user_started_following_you_dual": "%1 e %2 comezaron a seguirte.", "user_started_following_you_triple": "%1, %2 and %3 started following you.", @@ -71,6 +76,7 @@ "notification_and_email": "Notification & Email", "notificationType_upvote": "When someone upvotes your post", "notificationType_new-topic": "When someone you follow posts a topic", + "notificationType_new-topic-with-tag": "When a topic is posted with a tag you follow", "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", diff --git a/public/language/gl/pages.json b/public/language/gl/pages.json index d501ec2ec0..9469b5c7e6 100644 --- a/public/language/gl/pages.json +++ b/public/language/gl/pages.json @@ -48,6 +48,7 @@ "account/topics": "Temas de %1", "account/groups": "%1's Grupos", "account/watched_categories": "%1's Watched Categories", + "account/watched-tags": "%1's Watched Tags", "account/bookmarks": "%1's Mensaxes marcadas", "account/settings": "Opcións de Usuario", "account/settings-of": "Changing settings of %1", diff --git a/public/language/gl/tags.json b/public/language/gl/tags.json index 83c7c74cdc..0ed6f405d1 100644 --- a/public/language/gl/tags.json +++ b/public/language/gl/tags.json @@ -7,5 +7,11 @@ "enter_tags_here_short": "Introduce as etiquetas", "no_tags": "Non hai etiquetas todavía.", "select_tags": "Select Tags", - "tag-whitelist": "Tag Whitelist" + "tag-whitelist": "Tag Whitelist", + "watching": "Watching", + "not-watching": "Not Watching", + "watching.description": "Notify me of new topics.", + "not-watching.description": "Do not notify me of new topics.", + "following-tag.message": "You will now be receiving notifications when somebody posts a topic with this tag.", + "not-following-tag.message": "You will not receive notifications when somebody posts a topic with this tag." } \ No newline at end of file diff --git a/public/language/gl/user.json b/public/language/gl/user.json index 94642f50cd..498600070a 100644 --- a/public/language/gl/user.json +++ b/public/language/gl/user.json @@ -36,6 +36,7 @@ "reputation": "Reputación", "bookmarks": "Marcadores", "watched_categories": "Watched categories", + "watched-tags": "Watched tags", "change_all": "Change All", "watched": "Visto", "ignored": "Ignored", diff --git a/public/language/he/notifications.json b/public/language/he/notifications.json index 425c9377bb..ea30c2ea65 100644 --- a/public/language/he/notifications.json +++ b/public/language/he/notifications.json @@ -12,6 +12,7 @@ "you_have_unread_notifications": "יש לך התראות שלא נקראו.", "all": "הכל", "topics": "נושאים", + "tags": "Tags", "replies": "תגובות", "chat": "צ'אטים", "group-chat": "צ'אט קבוצתי", @@ -22,10 +23,10 @@ "my-flags": "דיווחים שהוקצו עבורי", "bans": "הרחקות", "new_message_from": "הודעה חדשה מ %1", - "user_posted_in_public_room": "%1 כתבו ב-%3", - "user_posted_in_public_room_dual": "%1 ו%2 כתבו ב-%4", - "user_posted_in_public_room_triple": "%1, %2 ו%3 כתבו ב-%5", - "user_posted_in_public_room_multiple": "%1, %2 ו-%3 אחרים כתבו ב-%5", + "user_posted_in_public_room": "%1 wrote in %3", + "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", + "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", + "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", "upvoted_your_post_in": "%1 הצביע בעד הפוסט שלך ב %2", "upvoted_your_post_in_dual": "%1 ו%2 הצביעו בעד הפוסט שלך ב%3", "upvoted_your_post_in_triple": "%1, %2 ו%3 הצביעו בעד הפוסט שלך ב-%4.", @@ -46,6 +47,10 @@ "user_posted_to_multiple": "%1, %2 ו-%3 אחרים הגיבו ל: %4", "user_posted_topic": "%1 העלה נושא חדש: %2", "user_edited_post": "%1 ערך פוסט ב: %2", + "user_posted_topic_with_tag": "%1 has posted a new topic with tag %2", + "user_posted_topic_with_tag_dual": "%1 has posted a new topic with tags %2 and %3", + "user_posted_topic_with_tag_triple": "%1 has posted a new topic with tags %2, %3 and %4", + "user_posted_topic_with_tag_multiple": "%1 has posted a new topic with tags %2", "user_started_following_you": "%1 התחיל לעקוב אחריך.", "user_started_following_you_dual": "%1 ו-%2 התחילו לעקוב אחריך.", "user_started_following_you_triple": "%1, %2 ו3% התחילו לעקוב אחריך.", @@ -71,6 +76,7 @@ "notification_and_email": "התראות & דוא\"ל", "notificationType_upvote": "כאשר מישהו מצביע בעד הפוסט שלך", "notificationType_new-topic": "כשמישהו שאתה עוקב אחריו פרסם נושא", + "notificationType_new-topic-with-tag": "When a topic is posted with a tag you follow", "notificationType_new-reply": "כשתגובה חדשה מפורסמת בנושא שאתה עוקב אחריו", "notificationType_post-edit": "כשפוסט נערך בנושא שאתה עוקב אחריו", "notificationType_follow": "כשמישהו מתחיל לעקוב אחריך", diff --git a/public/language/he/pages.json b/public/language/he/pages.json index 7101f0912e..786ec97179 100644 --- a/public/language/he/pages.json +++ b/public/language/he/pages.json @@ -48,6 +48,7 @@ "account/topics": "נושאים שנוצרו על ידי %1", "account/groups": "הקבוצות של %1", "account/watched_categories": "הקטגוריות ש-%1 עוקב אחריהם", + "account/watched-tags": "%1's Watched Tags", "account/bookmarks": "הפוסטים המועדפים של %1", "account/settings": "הגדרות משתמש", "account/settings-of": "שינוי הגדרות של %1", diff --git a/public/language/he/tags.json b/public/language/he/tags.json index 0870f9c7bb..4ca8fd5277 100644 --- a/public/language/he/tags.json +++ b/public/language/he/tags.json @@ -7,5 +7,11 @@ "enter_tags_here_short": "הזן תגיות...", "no_tags": "אין עדיין תגיות.", "select_tags": "בחר תגיות", - "tag-whitelist": "רשימה לבנה של תגיות" + "tag-whitelist": "רשימה לבנה של תגיות", + "watching": "Watching", + "not-watching": "Not Watching", + "watching.description": "Notify me of new topics.", + "not-watching.description": "Do not notify me of new topics.", + "following-tag.message": "You will now be receiving notifications when somebody posts a topic with this tag.", + "not-following-tag.message": "You will not receive notifications when somebody posts a topic with this tag." } \ No newline at end of file diff --git a/public/language/he/user.json b/public/language/he/user.json index aab8c35c80..29229f3ec8 100644 --- a/public/language/he/user.json +++ b/public/language/he/user.json @@ -36,6 +36,7 @@ "reputation": "מוניטין", "bookmarks": "מועדפים", "watched_categories": "קטגוריות במעקב", + "watched-tags": "Watched tags", "change_all": "שנה הכל", "watched": "נצפה", "ignored": "התעלם", diff --git a/public/language/hr/notifications.json b/public/language/hr/notifications.json index 64d3b78e4f..fa9612b097 100644 --- a/public/language/hr/notifications.json +++ b/public/language/hr/notifications.json @@ -12,6 +12,7 @@ "you_have_unread_notifications": "Nepročitane obavijesti.", "all": "Sve", "topics": "Teme", + "tags": "Tags", "replies": "Odgovori", "chat": "Razgovori", "group-chat": "Grupni Chat", @@ -22,10 +23,10 @@ "my-flags": "Zastave označene na mene", "bans": "Blokirani", "new_message_from": "Poruka od %1", - "user_posted_in_public_room": "%1 wrote in %3", - "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", - "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", - "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", + "user_posted_in_public_room": "%1 wrote in %3", + "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", + "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", + "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", "upvoted_your_post_in": "%1 je glasao za u %2.", "upvoted_your_post_in_dual": "%1 i %2 Glasalo je za Vašu objavu in %3.", "upvoted_your_post_in_triple": "%1, %2 and %3 have upvoted your post in %4.", @@ -46,6 +47,10 @@ "user_posted_to_multiple": "%1, %2 and %3 others have posted replies to: %4", "user_posted_topic": "%1 je otvorio novu temu: %2", "user_edited_post": "%1 has edited a post in %2", + "user_posted_topic_with_tag": "%1 has posted a new topic with tag %2", + "user_posted_topic_with_tag_dual": "%1 has posted a new topic with tags %2 and %3", + "user_posted_topic_with_tag_triple": "%1 has posted a new topic with tags %2, %3 and %4", + "user_posted_topic_with_tag_multiple": "%1 has posted a new topic with tags %2", "user_started_following_you": "%1 Vas sada prati.", "user_started_following_you_dual": "%1 i %2 vas sada prate.", "user_started_following_you_triple": "%1, %2 and %3 started following you.", @@ -71,6 +76,7 @@ "notification_and_email": "Obavijest i Email", "notificationType_upvote": "Kada netko ocijeni vašu objavi", "notificationType_new-topic": "When someone you follow posts a topic", + "notificationType_new-topic-with-tag": "When a topic is posted with a tag you follow", "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", diff --git a/public/language/hr/pages.json b/public/language/hr/pages.json index b96c2aa5b1..54350b1a8c 100644 --- a/public/language/hr/pages.json +++ b/public/language/hr/pages.json @@ -48,6 +48,7 @@ "account/topics": "Teme od %1", "account/groups": "%1 grupe", "account/watched_categories": "%1's Watched Categories", + "account/watched-tags": "%1's Watched Tags", "account/bookmarks": "%1 zabilježene objave", "account/settings": "Korisničke postavke", "account/settings-of": "Changing settings of %1", diff --git a/public/language/hr/tags.json b/public/language/hr/tags.json index 4aa7e1d89f..97ddb2bc35 100644 --- a/public/language/hr/tags.json +++ b/public/language/hr/tags.json @@ -7,5 +7,11 @@ "enter_tags_here_short": "Unestie oznake ...", "no_tags": "Još nema oznaka.", "select_tags": "Select Tags", - "tag-whitelist": "Tag Whitelist" + "tag-whitelist": "Tag Whitelist", + "watching": "Watching", + "not-watching": "Not Watching", + "watching.description": "Notify me of new topics.", + "not-watching.description": "Do not notify me of new topics.", + "following-tag.message": "You will now be receiving notifications when somebody posts a topic with this tag.", + "not-following-tag.message": "You will not receive notifications when somebody posts a topic with this tag." } \ No newline at end of file diff --git a/public/language/hr/user.json b/public/language/hr/user.json index 552dc7556d..75d159c28e 100644 --- a/public/language/hr/user.json +++ b/public/language/hr/user.json @@ -36,6 +36,7 @@ "reputation": "Reputacija", "bookmarks": "Zabilješke", "watched_categories": "Watched categories", + "watched-tags": "Watched tags", "change_all": "Change All", "watched": "Gledano", "ignored": "Ignored", diff --git a/public/language/hu/notifications.json b/public/language/hu/notifications.json index 6611e4fb19..584dfb3593 100644 --- a/public/language/hu/notifications.json +++ b/public/language/hu/notifications.json @@ -12,6 +12,7 @@ "you_have_unread_notifications": "Olvasatlan értesítéseid vannak.", "all": "Mind", "topics": "Témakör", + "tags": "Tags", "replies": "Válasz", "chat": "Chat", "group-chat": "Csoport Csevegők", @@ -22,10 +23,10 @@ "my-flags": "Hozzám társított megjelölés", "bans": "Kitiltás", "new_message_from": "Új üzenet, feladó: %1", - "user_posted_in_public_room": "%1 wrote in %3", - "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", - "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", - "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", + "user_posted_in_public_room": "%1 wrote in %3", + "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", + "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", + "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", "upvoted_your_post_in": "%1 kedvelte a hozzászólásod itt: %2.", "upvoted_your_post_in_dual": "%1 és %2 kedvelte a hozzászólásod itt: %3.", "upvoted_your_post_in_triple": "%1, %2 and %3 have upvoted your post in %4.", @@ -46,6 +47,10 @@ "user_posted_to_multiple": "%1, %2 and %3 others have posted replies to: %4", "user_posted_topic": "%1 új témakört hozott létre: %2", "user_edited_post": "%1 has edited a post in %2", + "user_posted_topic_with_tag": "%1 has posted a new topic with tag %2", + "user_posted_topic_with_tag_dual": "%1 has posted a new topic with tags %2 and %3", + "user_posted_topic_with_tag_triple": "%1 has posted a new topic with tags %2, %3 and %4", + "user_posted_topic_with_tag_multiple": "%1 has posted a new topic with tags %2", "user_started_following_you": "%1 elkezdett követni téged.", "user_started_following_you_dual": "%1 és%2 elkezdett követni téged.", "user_started_following_you_triple": "%1, %2 and %3 started following you.", @@ -71,6 +76,7 @@ "notification_and_email": "Értesítés és e-mail", "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-topic-with-tag": "When a topic is posted with a tag you follow", "notificationType_new-reply": "Mikor egy általad figyelt témakörre válasz érkezik", "notificationType_post-edit": "Mikor egy a megfigyelt témakörön belül módosítanak egy bejegyzést", "notificationType_follow": "Mikor valaki elkezd követni téged", diff --git a/public/language/hu/pages.json b/public/language/hu/pages.json index 0f0e9829a6..f623735c25 100644 --- a/public/language/hu/pages.json +++ b/public/language/hu/pages.json @@ -48,6 +48,7 @@ "account/topics": "%1 által létrehozott témakörök", "account/groups": "%1 csoportjai", "account/watched_categories": "%1 megfigyelt kategóriái", + "account/watched-tags": "%1's Watched Tags", "account/bookmarks": "%1 könyvjelzőzött hozzászólásai", "account/settings": "Felhasználói beállítások", "account/settings-of": "%1 beállításainak módosítása", diff --git a/public/language/hu/tags.json b/public/language/hu/tags.json index 4f2af1710c..00c2521e76 100644 --- a/public/language/hu/tags.json +++ b/public/language/hu/tags.json @@ -7,5 +7,11 @@ "enter_tags_here_short": "Címke megadása...", "no_tags": "Még nincsenek címkék.", "select_tags": "Címkék kiválasztása", - "tag-whitelist": "Tag Whitelist" + "tag-whitelist": "Tag Whitelist", + "watching": "Watching", + "not-watching": "Not Watching", + "watching.description": "Notify me of new topics.", + "not-watching.description": "Do not notify me of new topics.", + "following-tag.message": "You will now be receiving notifications when somebody posts a topic with this tag.", + "not-following-tag.message": "You will not receive notifications when somebody posts a topic with this tag." } \ No newline at end of file diff --git a/public/language/hu/user.json b/public/language/hu/user.json index f2a4144672..664f7c0c05 100644 --- a/public/language/hu/user.json +++ b/public/language/hu/user.json @@ -36,6 +36,7 @@ "reputation": "Hírnév", "bookmarks": "Könyvjelzők", "watched_categories": "Megfigyelt kategóriák", + "watched-tags": "Watched tags", "change_all": "Minden megváltoztatása", "watched": "Figyelve", "ignored": "Mellőzve", diff --git a/public/language/hy/notifications.json b/public/language/hy/notifications.json index 3c21462d0a..b2f341ab16 100644 --- a/public/language/hy/notifications.json +++ b/public/language/hy/notifications.json @@ -12,6 +12,7 @@ "you_have_unread_notifications": "Դուք չկարդացված ծանուցումներ ունեք:", "all": "Բոլորը", "topics": "Թեմաներ", + "tags": "Tags", "replies": "Պատասխաններ", "chat": "Զրույցներ", "group-chat": "Խմբային զրույցներ", @@ -22,10 +23,10 @@ "my-flags": "Ինձ հանձնարարված դրոշներ", "bans": "Արգելքներ", "new_message_from": "Նոր հաղորդագրություն %1-ից", - "user_posted_in_public_room": "%1 wrote in %3", - "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", - "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", - "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", + "user_posted_in_public_room": "%1 wrote in %3", + "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", + "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", + "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", "upvoted_your_post_in": "%1-ը դրական է քվեարկել ձեր գրառմանը %2-ում:", "upvoted_your_post_in_dual": "%1-ը և %2-ը դրական են քվեարկել ձեր գրառմանը %3-ում:", "upvoted_your_post_in_triple": "%1, %2 and %3 have upvoted your post in %4.", @@ -46,6 +47,10 @@ "user_posted_to_multiple": "%1, %2 and %3 others have posted replies to: %4", "user_posted_topic": "%1-ը նոր թեմա է տեղադրել՝ %2", "user_edited_post": "%1-ը խմբագրել է գրառում %2-ում", + "user_posted_topic_with_tag": "%1 has posted a new topic with tag %2", + "user_posted_topic_with_tag_dual": "%1 has posted a new topic with tags %2 and %3", + "user_posted_topic_with_tag_triple": "%1 has posted a new topic with tags %2, %3 and %4", + "user_posted_topic_with_tag_multiple": "%1 has posted a new topic with tags %2", "user_started_following_you": "%1 սկսեց հետևել ձեզ", "user_started_following_you_dual": "%1 և %2 սկսեցին հետևել ձեզ:", "user_started_following_you_triple": "%1, %2 and %3 started following you.", @@ -71,6 +76,7 @@ "notification_and_email": "Ծանուցում և էլ.նամակ", "notificationType_upvote": "Երբ ինչ-որ մեկը կողմ է քվեարկում ձեր գրառմանը", "notificationType_new-topic": "Երբ մեկը, ում հետևում եք, թեմա է հրապարակում", + "notificationType_new-topic-with-tag": "When a topic is posted with a tag you follow", "notificationType_new-reply": "Երբ ձեր դիտած թեմայում տեղադրվում է նոր պատասխան", "notificationType_post-edit": "When a post is edited in a topic you are watching", "notificationType_follow": "Երբ ինչ-որ մեկը սկսում է հետևել քեզ", diff --git a/public/language/hy/pages.json b/public/language/hy/pages.json index 50eb6bdd7e..172759665c 100644 --- a/public/language/hy/pages.json +++ b/public/language/hy/pages.json @@ -48,6 +48,7 @@ "account/topics": "%1-ի կողմից ստեղծված թեմաներ", "account/groups": "%1-ի Խմբեր", "account/watched_categories": "%1's Դիտված կատեգորիաներ", + "account/watched-tags": "%1's Watched Tags", "account/bookmarks": "%1-ի էջանշված գրառումները", "account/settings": "Օգտատիրոջ կարգավորումներ", "account/settings-of": "Changing settings of %1", diff --git a/public/language/hy/tags.json b/public/language/hy/tags.json index 4c1c35e063..613a7acb98 100644 --- a/public/language/hy/tags.json +++ b/public/language/hy/tags.json @@ -7,5 +7,11 @@ "enter_tags_here_short": "Մուտքագրեք թեգերը...", "no_tags": "Դեռևս թեգեր չկան", "select_tags": "Ընտրել թեգեր", - "tag-whitelist": "Tag Whitelist" + "tag-whitelist": "Tag Whitelist", + "watching": "Watching", + "not-watching": "Not Watching", + "watching.description": "Notify me of new topics.", + "not-watching.description": "Do not notify me of new topics.", + "following-tag.message": "You will now be receiving notifications when somebody posts a topic with this tag.", + "not-following-tag.message": "You will not receive notifications when somebody posts a topic with this tag." } \ No newline at end of file diff --git a/public/language/hy/user.json b/public/language/hy/user.json index fb446feeae..3568b67f02 100644 --- a/public/language/hy/user.json +++ b/public/language/hy/user.json @@ -36,6 +36,7 @@ "reputation": "վարկանիշ", "bookmarks": "Էջանիշեր", "watched_categories": "Դիտված կատեգորիաներ", + "watched-tags": "Watched tags", "change_all": "Փոխել բոլորը", "watched": "Դիտված", "ignored": "Անտեսված", diff --git a/public/language/id/notifications.json b/public/language/id/notifications.json index f103ddcd9c..56f2518849 100644 --- a/public/language/id/notifications.json +++ b/public/language/id/notifications.json @@ -12,6 +12,7 @@ "you_have_unread_notifications": "Kamu memiliki pemberitahuan yang belum dibaca.", "all": "All", "topics": "Topics", + "tags": "Tags", "replies": "Replies", "chat": "Chats", "group-chat": "Group Chats", @@ -22,10 +23,10 @@ "my-flags": "Flags assigned to me", "bans": "Bans", "new_message_from": "Pesan baru dari %1", - "user_posted_in_public_room": "%1 wrote in %3", - "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", - "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", - "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", + "user_posted_in_public_room": "%1 wrote in %3", + "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", + "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", + "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", "upvoted_your_post_in": "%1 telah melakukan upvote untuk posting kamu di %2.", "upvoted_your_post_in_dual": "%1 and %2 have upvoted your post in %3.", "upvoted_your_post_in_triple": "%1, %2 and %3 have upvoted your post in %4.", @@ -46,6 +47,10 @@ "user_posted_to_multiple": "%1, %2 and %3 others have posted replies to: %4", "user_posted_topic": "%1 telah membuat topik baru: %2", "user_edited_post": "%1 has edited a post in %2", + "user_posted_topic_with_tag": "%1 has posted a new topic with tag %2", + "user_posted_topic_with_tag_dual": "%1 has posted a new topic with tags %2 and %3", + "user_posted_topic_with_tag_triple": "%1 has posted a new topic with tags %2, %3 and %4", + "user_posted_topic_with_tag_multiple": "%1 has posted a new topic with tags %2", "user_started_following_you": "%1 mulai mengikutimu.", "user_started_following_you_dual": "%1 and %2 started following you.", "user_started_following_you_triple": "%1, %2 and %3 started following you.", @@ -71,6 +76,7 @@ "notification_and_email": "Notification & Email", "notificationType_upvote": "When someone upvotes your post", "notificationType_new-topic": "When someone you follow posts a topic", + "notificationType_new-topic-with-tag": "When a topic is posted with a tag you follow", "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", diff --git a/public/language/id/pages.json b/public/language/id/pages.json index c1ed0e5bd6..888858792f 100644 --- a/public/language/id/pages.json +++ b/public/language/id/pages.json @@ -48,6 +48,7 @@ "account/topics": "Topics created by %1", "account/groups": "%1's Groups", "account/watched_categories": "%1's Watched Categories", + "account/watched-tags": "%1's Watched Tags", "account/bookmarks": "%1's Bookmarked Posts", "account/settings": "User Settings", "account/settings-of": "Changing settings of %1", diff --git a/public/language/id/tags.json b/public/language/id/tags.json index b94b98d201..cb9e4829e7 100644 --- a/public/language/id/tags.json +++ b/public/language/id/tags.json @@ -7,5 +7,11 @@ "enter_tags_here_short": "Masukkan tag...", "no_tags": "Belum ada tag.", "select_tags": "Select Tags", - "tag-whitelist": "Tag Whitelist" + "tag-whitelist": "Tag Whitelist", + "watching": "Watching", + "not-watching": "Not Watching", + "watching.description": "Notify me of new topics.", + "not-watching.description": "Do not notify me of new topics.", + "following-tag.message": "You will now be receiving notifications when somebody posts a topic with this tag.", + "not-following-tag.message": "You will not receive notifications when somebody posts a topic with this tag." } \ No newline at end of file diff --git a/public/language/id/user.json b/public/language/id/user.json index 59672763dc..7330cd4bc3 100644 --- a/public/language/id/user.json +++ b/public/language/id/user.json @@ -36,6 +36,7 @@ "reputation": "Reputasi", "bookmarks": "Bookmarks", "watched_categories": "Watched categories", + "watched-tags": "Watched tags", "change_all": "Change All", "watched": "Watched", "ignored": "Ignored", diff --git a/public/language/it/notifications.json b/public/language/it/notifications.json index efd7b92d1e..3ffcdcceb1 100644 --- a/public/language/it/notifications.json +++ b/public/language/it/notifications.json @@ -12,6 +12,7 @@ "you_have_unread_notifications": "Hai notifiche non lette.", "all": "Tutte", "topics": "Discussioni", + "tags": "Tags", "replies": "Risposte", "chat": "Chat", "group-chat": "Chat di gruppo", @@ -22,10 +23,10 @@ "my-flags": "Segnalazioni assegnate a me", "bans": "Espulsioni", "new_message_from": "Nuovo messaggio da %1", - "user_posted_in_public_room": "%1 ha scritto in %3", - "user_posted_in_public_room_dual": "%1 e %2 hanno scritto in %4", - "user_posted_in_public_room_triple": "%1, %2 e %3 hanno scritto in %5", - "user_posted_in_public_room_multiple": "%1, %2 e %3 altri hanno scritto in %5", + "user_posted_in_public_room": "%1 wrote in %3", + "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", + "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", + "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", "upvoted_your_post_in": "%1 ha votato positivamente il tuo post in %2.", "upvoted_your_post_in_dual": "%1 e %2 hanno apprezzato il tuo post in %3.", "upvoted_your_post_in_triple": "%1, %2 e %3 hanno votato positivamente il tuo post in %4.", @@ -46,6 +47,10 @@ "user_posted_to_multiple": "%1, %2 e %3 altri hanno postato risposte a: %4", "user_posted_topic": "%1 ha postato una nuova discussione: %2", "user_edited_post": "%1 ha modificato un post in %2", + "user_posted_topic_with_tag": "%1 has posted a new topic with tag %2", + "user_posted_topic_with_tag_dual": "%1 has posted a new topic with tags %2 and %3", + "user_posted_topic_with_tag_triple": "%1 has posted a new topic with tags %2, %3 and %4", + "user_posted_topic_with_tag_multiple": "%1 has posted a new topic with tags %2", "user_started_following_you": "%1 ha iniziato a seguirti.", "user_started_following_you_dual": "%1 e %2 hanno iniziato a seguirti.", "user_started_following_you_triple": "%1, %2 e %3 hanno iniziato a seguirti.", @@ -71,6 +76,7 @@ "notification_and_email": "Email e Notifica", "notificationType_upvote": "Quando il tuo post riceve un Mi Piace", "notificationType_new-topic": "Quando qualcuno che segui pubblica un argomento", + "notificationType_new-topic-with-tag": "When a topic is posted with a tag you follow", "notificationType_new-reply": "Quando viene pubblicata una nuova risposta in un argomento che stai seguendo", "notificationType_post-edit": "Quando un post viene modificato in un topic che stai guardando", "notificationType_follow": "Quando qualcuno inizia a seguirti", diff --git a/public/language/it/pages.json b/public/language/it/pages.json index b382c770c6..bfe1b36322 100644 --- a/public/language/it/pages.json +++ b/public/language/it/pages.json @@ -48,6 +48,7 @@ "account/topics": "Discussioni create da %1", "account/groups": "Gruppi di %1", "account/watched_categories": "Categorie seguite da %1'", + "account/watched-tags": "%1's Watched Tags", "account/bookmarks": "%1 Post tra i favoriti", "account/settings": "Impostazioni Utente", "account/settings-of": "Modifica impostazioni di %1", diff --git a/public/language/it/tags.json b/public/language/it/tags.json index e7a01422af..43de3980c0 100644 --- a/public/language/it/tags.json +++ b/public/language/it/tags.json @@ -7,5 +7,11 @@ "enter_tags_here_short": "Inserisci i tag...", "no_tags": "Non ci sono ancora tag.", "select_tags": "Seleziona tag", - "tag-whitelist": "Tag Whitelist" + "tag-whitelist": "Tag Whitelist", + "watching": "Watching", + "not-watching": "Not Watching", + "watching.description": "Notify me of new topics.", + "not-watching.description": "Do not notify me of new topics.", + "following-tag.message": "You will now be receiving notifications when somebody posts a topic with this tag.", + "not-following-tag.message": "You will not receive notifications when somebody posts a topic with this tag." } \ No newline at end of file diff --git a/public/language/it/user.json b/public/language/it/user.json index 2f939a0427..50eb87feab 100644 --- a/public/language/it/user.json +++ b/public/language/it/user.json @@ -36,6 +36,7 @@ "reputation": "Reputazione", "bookmarks": "Preferiti", "watched_categories": "Categorie seguite", + "watched-tags": "Watched tags", "change_all": "Cambia Tutto", "watched": "Seguiti", "ignored": "Ignorati", diff --git a/public/language/ja/notifications.json b/public/language/ja/notifications.json index 6564d381d5..7a163f1cb0 100644 --- a/public/language/ja/notifications.json +++ b/public/language/ja/notifications.json @@ -12,6 +12,7 @@ "you_have_unread_notifications": "未読の通知があります。", "all": "全て", "topics": "スレッド", + "tags": "Tags", "replies": "返信", "chat": "チャット", "group-chat": "Group Chats", @@ -22,10 +23,10 @@ "my-flags": "あなたにフラグがつきました", "bans": "Ban", "new_message_from": "%1からの新しいメッセージ", - "user_posted_in_public_room": "%1 wrote in %3", - "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", - "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", - "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", + "user_posted_in_public_room": "%1 wrote in %3", + "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", + "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", + "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", "upvoted_your_post_in": "%1さんが%2に高評価をつけました。", "upvoted_your_post_in_dual": "%1さんと%2さんが%3に高評価をつけました。", "upvoted_your_post_in_triple": "%1, %2 and %3 have upvoted your post in %4.", @@ -46,6 +47,10 @@ "user_posted_to_multiple": "%1, %2 and %3 others have posted replies to: %4", "user_posted_topic": "%1 が新しいスレッドを投稿しました。: %2", "user_edited_post": "%1 has edited a post in %2", + "user_posted_topic_with_tag": "%1 has posted a new topic with tag %2", + "user_posted_topic_with_tag_dual": "%1 has posted a new topic with tags %2 and %3", + "user_posted_topic_with_tag_triple": "%1 has posted a new topic with tags %2, %3 and %4", + "user_posted_topic_with_tag_multiple": "%1 has posted a new topic with tags %2", "user_started_following_you": "%1があなたをフォローしました。", "user_started_following_you_dual": "%1%2 があなたをフォローしました。", "user_started_following_you_triple": "%1, %2 and %3 started following you.", @@ -71,6 +76,7 @@ "notification_and_email": "通知 & メール", "notificationType_upvote": "誰かがあなたの投稿を評価したとき", "notificationType_new-topic": "フォロワーがスレッドを投稿したとき", + "notificationType_new-topic-with-tag": "When a topic is posted with a tag you follow", "notificationType_new-reply": "あなたが見ているトピックに新しい返信が投稿されたとき", "notificationType_post-edit": "When a post is edited in a topic you are watching", "notificationType_follow": "誰かがあなたをフォローしたとき", diff --git a/public/language/ja/pages.json b/public/language/ja/pages.json index 5c5872313e..b0c8f3132a 100644 --- a/public/language/ja/pages.json +++ b/public/language/ja/pages.json @@ -48,6 +48,7 @@ "account/topics": "%1がスレッドを作成しました", "account/groups": "%1 グループ", "account/watched_categories": "%1's Watched Categories", + "account/watched-tags": "%1's Watched Tags", "account/bookmarks": "%1のブックマークされた投稿", "account/settings": "ユーザー設定", "account/settings-of": "Changing settings of %1", diff --git a/public/language/ja/tags.json b/public/language/ja/tags.json index 54f0762f2c..a8120841c5 100644 --- a/public/language/ja/tags.json +++ b/public/language/ja/tags.json @@ -7,5 +7,11 @@ "enter_tags_here_short": "タグを入れます…", "no_tags": "タグがありません", "select_tags": "Select Tags", - "tag-whitelist": "Tag Whitelist" + "tag-whitelist": "Tag Whitelist", + "watching": "Watching", + "not-watching": "Not Watching", + "watching.description": "Notify me of new topics.", + "not-watching.description": "Do not notify me of new topics.", + "following-tag.message": "You will now be receiving notifications when somebody posts a topic with this tag.", + "not-following-tag.message": "You will not receive notifications when somebody posts a topic with this tag." } \ No newline at end of file diff --git a/public/language/ja/user.json b/public/language/ja/user.json index 930f7330bd..9b6e1dc8d4 100644 --- a/public/language/ja/user.json +++ b/public/language/ja/user.json @@ -36,6 +36,7 @@ "reputation": "評価", "bookmarks": "ブックマーク", "watched_categories": "ウォッチ中のカテゴリ", + "watched-tags": "Watched tags", "change_all": "Change All", "watched": "ウォッチ済み", "ignored": "無視済み", diff --git a/public/language/ko/notifications.json b/public/language/ko/notifications.json index 7079a2641f..b85a69084a 100644 --- a/public/language/ko/notifications.json +++ b/public/language/ko/notifications.json @@ -12,6 +12,7 @@ "you_have_unread_notifications": "읽지 않은 알림이 있습니다.", "all": "모든 알림", "topics": "화제", + "tags": "Tags", "replies": "답글", "chat": "채팅", "group-chat": "그룹 채팅", @@ -22,10 +23,10 @@ "my-flags": "내게 배정된 신고", "bans": "차단", "new_message_from": "%1님이 메시지를 보냈습니다.", - "user_posted_in_public_room": "%1 wrote in %3", - "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", - "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", - "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", + "user_posted_in_public_room": "%1 wrote in %3", + "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", + "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", + "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", "upvoted_your_post_in": "%1님이 %2의 내 포스트를 추천했습니다.", "upvoted_your_post_in_dual": "%1님과 %2님이 %3의 내 포스트를 추천했습니다.", "upvoted_your_post_in_triple": "%1, %2 and %3 have upvoted your post in %4.", @@ -46,6 +47,10 @@ "user_posted_to_multiple": "%1, %2 and %3 others have posted replies to: %4", "user_posted_topic": "%1님이 새 게시물을 작성했습니다: %2", "user_edited_post": "%1님이 %2에 속한 포스트를 편집했습니다.", + "user_posted_topic_with_tag": "%1 has posted a new topic with tag %2", + "user_posted_topic_with_tag_dual": "%1 has posted a new topic with tags %2 and %3", + "user_posted_topic_with_tag_triple": "%1 has posted a new topic with tags %2, %3 and %4", + "user_posted_topic_with_tag_multiple": "%1 has posted a new topic with tags %2", "user_started_following_you": "%1님이 나를 팔로우 합니다.", "user_started_following_you_dual": "%1님과 %2님이 나를 팔로우 합니다.", "user_started_following_you_triple": "%1, %2 and %3 started following you.", @@ -71,6 +76,7 @@ "notification_and_email": "알림 & 이메일", "notificationType_upvote": "누군가 내 글을 추천", "notificationType_new-topic": "팔로우 하는 사람이 새로운 화제 작성", + "notificationType_new-topic-with-tag": "When a topic is posted with a tag you follow", "notificationType_new-reply": "관심 화제에 새로운 답글", "notificationType_post-edit": "관심 화제의 포스트 수정", "notificationType_follow": "누군가 나를 팔로우", diff --git a/public/language/ko/pages.json b/public/language/ko/pages.json index a96de2698d..a290a4979d 100644 --- a/public/language/ko/pages.json +++ b/public/language/ko/pages.json @@ -48,6 +48,7 @@ "account/topics": "%1님이 생성한 화제", "account/groups": "%1님의 그룹", "account/watched_categories": "%1님의 관심 카테고리", + "account/watched-tags": "%1's Watched Tags", "account/bookmarks": "%1님의 즐겨찾기 포스트", "account/settings": "사용자 설정", "account/settings-of": "Changing settings of %1", diff --git a/public/language/ko/tags.json b/public/language/ko/tags.json index 2bd736487d..816ae8c002 100644 --- a/public/language/ko/tags.json +++ b/public/language/ko/tags.json @@ -7,5 +7,11 @@ "enter_tags_here_short": "태그 입력...", "no_tags": "아직 태그가 달리지 않았습니다.", "select_tags": "태그 선택", - "tag-whitelist": "Tag Whitelist" + "tag-whitelist": "Tag Whitelist", + "watching": "Watching", + "not-watching": "Not Watching", + "watching.description": "Notify me of new topics.", + "not-watching.description": "Do not notify me of new topics.", + "following-tag.message": "You will now be receiving notifications when somebody posts a topic with this tag.", + "not-following-tag.message": "You will not receive notifications when somebody posts a topic with this tag." } \ No newline at end of file diff --git a/public/language/ko/user.json b/public/language/ko/user.json index 55938c93b7..0105be2093 100644 --- a/public/language/ko/user.json +++ b/public/language/ko/user.json @@ -36,6 +36,7 @@ "reputation": "인지도", "bookmarks": "즐겨찾기", "watched_categories": "관심있는 카테고리", + "watched-tags": "Watched tags", "change_all": "전체 바꾸기", "watched": "관심있는 화제", "ignored": "무시 중인 화제", diff --git a/public/language/lt/notifications.json b/public/language/lt/notifications.json index 9068a8413b..09ca16e29a 100644 --- a/public/language/lt/notifications.json +++ b/public/language/lt/notifications.json @@ -12,6 +12,7 @@ "you_have_unread_notifications": "Jūs turite neperskaitytų pranešimų.", "all": "All", "topics": "Topics", + "tags": "Tags", "replies": "Replies", "chat": "Chats", "group-chat": "Group Chats", @@ -22,10 +23,10 @@ "my-flags": "Flags assigned to me", "bans": "Bans", "new_message_from": "Nauja žinutė nuo %1", - "user_posted_in_public_room": "%1 wrote in %3", - "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", - "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", - "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", + "user_posted_in_public_room": "%1 wrote in %3", + "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", + "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", + "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", "upvoted_your_post_in": "%1 užbalsavo už jūsų pranešima čia %2.", "upvoted_your_post_in_dual": "%1 and %2 have upvoted your post in %3.", "upvoted_your_post_in_triple": "%1, %2 and %3 have upvoted your post in %4.", @@ -46,6 +47,10 @@ "user_posted_to_multiple": "%1, %2 and %3 others have posted replies to: %4", "user_posted_topic": "%1 paskelbė naują temą: %2", "user_edited_post": "%1 has edited a post in %2", + "user_posted_topic_with_tag": "%1 has posted a new topic with tag %2", + "user_posted_topic_with_tag_dual": "%1 has posted a new topic with tags %2 and %3", + "user_posted_topic_with_tag_triple": "%1 has posted a new topic with tags %2, %3 and %4", + "user_posted_topic_with_tag_multiple": "%1 has posted a new topic with tags %2", "user_started_following_you": "%1 pradėjo sekti tave", "user_started_following_you_dual": "%1 and %2 started following you.", "user_started_following_you_triple": "%1, %2 and %3 started following you.", @@ -71,6 +76,7 @@ "notification_and_email": "Notification & Email", "notificationType_upvote": "When someone upvotes your post", "notificationType_new-topic": "When someone you follow posts a topic", + "notificationType_new-topic-with-tag": "When a topic is posted with a tag you follow", "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", diff --git a/public/language/lt/pages.json b/public/language/lt/pages.json index cf13de9a85..bda4cf082e 100644 --- a/public/language/lt/pages.json +++ b/public/language/lt/pages.json @@ -48,6 +48,7 @@ "account/topics": "Temos, kurias sukūrė %1", "account/groups": "%1 Grupės", "account/watched_categories": "%1's Watched Categories", + "account/watched-tags": "%1's Watched Tags", "account/bookmarks": "%1's Bookmarked Posts", "account/settings": "Vartotojo nustatymai", "account/settings-of": "Changing settings of %1", diff --git a/public/language/lt/tags.json b/public/language/lt/tags.json index 274fad70bc..fd46a34fdf 100644 --- a/public/language/lt/tags.json +++ b/public/language/lt/tags.json @@ -7,5 +7,11 @@ "enter_tags_here_short": "Įveskite žymas...", "no_tags": "Žymų kolkas nėra.", "select_tags": "Select Tags", - "tag-whitelist": "Tag Whitelist" + "tag-whitelist": "Tag Whitelist", + "watching": "Watching", + "not-watching": "Not Watching", + "watching.description": "Notify me of new topics.", + "not-watching.description": "Do not notify me of new topics.", + "following-tag.message": "You will now be receiving notifications when somebody posts a topic with this tag.", + "not-following-tag.message": "You will not receive notifications when somebody posts a topic with this tag." } \ No newline at end of file diff --git a/public/language/lt/user.json b/public/language/lt/user.json index fd34bca157..51e4669b4a 100644 --- a/public/language/lt/user.json +++ b/public/language/lt/user.json @@ -36,6 +36,7 @@ "reputation": "Reputacija", "bookmarks": "Žymės", "watched_categories": "Watched categories", + "watched-tags": "Watched tags", "change_all": "Change All", "watched": "Peržiūrėjo", "ignored": "Ignoruojami", diff --git a/public/language/lv/notifications.json b/public/language/lv/notifications.json index 91aebbe955..1e1ea6ab33 100644 --- a/public/language/lv/notifications.json +++ b/public/language/lv/notifications.json @@ -12,6 +12,7 @@ "you_have_unread_notifications": "Ir nelasīti paziņojumi.", "all": "Visi", "topics": "Par tematiem", + "tags": "Tags", "replies": "Par atbildēm", "chat": "Par sarunām", "group-chat": "Group Chats", @@ -22,10 +23,10 @@ "my-flags": "Atzīmes piešķirtas man", "bans": "Bloķēšanas", "new_message_from": "Jauns raksts no %1", - "user_posted_in_public_room": "%1 wrote in %3", - "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", - "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", - "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", + "user_posted_in_public_room": "%1 wrote in %3", + "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", + "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", + "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", "upvoted_your_post_in": "%1 ir balsojis \"par\" Tavu rakstu%2.", "upvoted_your_post_in_dual": "%1 un %2 ir balsojuši \"par\" Tavu rakstu %3.", "upvoted_your_post_in_triple": "%1, %2 and %3 have upvoted your post in %4.", @@ -46,6 +47,10 @@ "user_posted_to_multiple": "%1, %2 and %3 others have posted replies to: %4", "user_posted_topic": "%1 ir ievietojis jaunu tematu: %2", "user_edited_post": "%1 has edited a post in %2", + "user_posted_topic_with_tag": "%1 has posted a new topic with tag %2", + "user_posted_topic_with_tag_dual": "%1 has posted a new topic with tags %2 and %3", + "user_posted_topic_with_tag_triple": "%1 has posted a new topic with tags %2, %3 and %4", + "user_posted_topic_with_tag_multiple": "%1 has posted a new topic with tags %2", "user_started_following_you": "%1 sāka Tev sekot.", "user_started_following_you_dual": "%1 un %2 sāka Tev sekot.", "user_started_following_you_triple": "%1, %2 and %3 started following you.", @@ -71,6 +76,7 @@ "notification_and_email": "Paziņot un sūtīt e-pastu", "notificationType_upvote": "Kad kāds balso \"par\" Tavu rakstu", "notificationType_new-topic": "Kad kāds, kuru Tu seko, publicē rakstu", + "notificationType_new-topic-with-tag": "When a topic is posted with a tag you follow", "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", diff --git a/public/language/lv/pages.json b/public/language/lv/pages.json index ff9e405630..f473188831 100644 --- a/public/language/lv/pages.json +++ b/public/language/lv/pages.json @@ -48,6 +48,7 @@ "account/topics": "Tematus izveidojis(-jusi) %1", "account/groups": "%1 grupas", "account/watched_categories": "%1 novērotās kategorijas", + "account/watched-tags": "%1's Watched Tags", "account/bookmarks": "%1 atzīmētie raksti", "account/settings": "Lietotāja iestatījumi", "account/settings-of": "Changing settings of %1", diff --git a/public/language/lv/tags.json b/public/language/lv/tags.json index 3325895dc0..6e346f70d8 100644 --- a/public/language/lv/tags.json +++ b/public/language/lv/tags.json @@ -7,5 +7,11 @@ "enter_tags_here_short": "Ievadīt birkas...", "no_tags": "Nav birku.", "select_tags": "Select Tags", - "tag-whitelist": "Tag Whitelist" + "tag-whitelist": "Tag Whitelist", + "watching": "Watching", + "not-watching": "Not Watching", + "watching.description": "Notify me of new topics.", + "not-watching.description": "Do not notify me of new topics.", + "following-tag.message": "You will now be receiving notifications when somebody posts a topic with this tag.", + "not-following-tag.message": "You will not receive notifications when somebody posts a topic with this tag." } \ No newline at end of file diff --git a/public/language/lv/user.json b/public/language/lv/user.json index dd587479f7..7ddb4b1dab 100644 --- a/public/language/lv/user.json +++ b/public/language/lv/user.json @@ -36,6 +36,7 @@ "reputation": "Ranga punkti", "bookmarks": "Atzīmētie", "watched_categories": "Novērotās kategorijas", + "watched-tags": "Watched tags", "change_all": "Change All", "watched": "Novērotie", "ignored": "Ignorētie", diff --git a/public/language/ms/notifications.json b/public/language/ms/notifications.json index 3b92b8a466..8924a6279b 100644 --- a/public/language/ms/notifications.json +++ b/public/language/ms/notifications.json @@ -12,6 +12,7 @@ "you_have_unread_notifications": "Ada pemberitahuan yang belum dibaca", "all": "All", "topics": "Topics", + "tags": "Tags", "replies": "Replies", "chat": "Chats", "group-chat": "Group Chats", @@ -22,10 +23,10 @@ "my-flags": "Flags assigned to me", "bans": "Bans", "new_message_from": "Pesanan baru daripada %1", - "user_posted_in_public_room": "%1 wrote in %3", - "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", - "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", - "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", + "user_posted_in_public_room": "%1 wrote in %3", + "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", + "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", + "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", "upvoted_your_post_in": "%1 telah mengundi naik kiriman and di %2.", "upvoted_your_post_in_dual": "%1dan %2 telah menambah undi pada kiriman anda di %3.", "upvoted_your_post_in_triple": "%1, %2 and %3 have upvoted your post in %4.", @@ -46,6 +47,10 @@ "user_posted_to_multiple": "%1, %2 and %3 others have posted replies to: %4", "user_posted_topic": "%1 membuka topik baru : %2", "user_edited_post": "%1 has edited a post in %2", + "user_posted_topic_with_tag": "%1 has posted a new topic with tag %2", + "user_posted_topic_with_tag_dual": "%1 has posted a new topic with tags %2 and %3", + "user_posted_topic_with_tag_triple": "%1 has posted a new topic with tags %2, %3 and %4", + "user_posted_topic_with_tag_multiple": "%1 has posted a new topic with tags %2", "user_started_following_you": "%1 mula mengikut anda.", "user_started_following_you_dual": "%1 dan %2 mula mengikuti anda.", "user_started_following_you_triple": "%1, %2 and %3 started following you.", @@ -71,6 +76,7 @@ "notification_and_email": "Notification & Email", "notificationType_upvote": "When someone upvotes your post", "notificationType_new-topic": "When someone you follow posts a topic", + "notificationType_new-topic-with-tag": "When a topic is posted with a tag you follow", "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", diff --git a/public/language/ms/pages.json b/public/language/ms/pages.json index e538907eb5..c2f4dcc7dc 100644 --- a/public/language/ms/pages.json +++ b/public/language/ms/pages.json @@ -48,6 +48,7 @@ "account/topics": "Topik olej %1", "account/groups": "Kumpulan %1", "account/watched_categories": "%1's Watched Categories", + "account/watched-tags": "%1's Watched Tags", "account/bookmarks": "%1's Bookmarked Posts", "account/settings": "Tetapan Pengguna", "account/settings-of": "Changing settings of %1", diff --git a/public/language/ms/tags.json b/public/language/ms/tags.json index 3993bfd445..10561e4c84 100644 --- a/public/language/ms/tags.json +++ b/public/language/ms/tags.json @@ -7,5 +7,11 @@ "enter_tags_here_short": "Masukkan tag ...", "no_tags": "Belum ada tag.", "select_tags": "Select Tags", - "tag-whitelist": "Tag Whitelist" + "tag-whitelist": "Tag Whitelist", + "watching": "Watching", + "not-watching": "Not Watching", + "watching.description": "Notify me of new topics.", + "not-watching.description": "Do not notify me of new topics.", + "following-tag.message": "You will now be receiving notifications when somebody posts a topic with this tag.", + "not-following-tag.message": "You will not receive notifications when somebody posts a topic with this tag." } \ No newline at end of file diff --git a/public/language/ms/user.json b/public/language/ms/user.json index b72a5c724a..8466c2d0fb 100644 --- a/public/language/ms/user.json +++ b/public/language/ms/user.json @@ -36,6 +36,7 @@ "reputation": "Reputasi", "bookmarks": "Bookmarks", "watched_categories": "Watched categories", + "watched-tags": "Watched tags", "change_all": "Change All", "watched": "Melihat", "ignored": "Ignored", diff --git a/public/language/nb/notifications.json b/public/language/nb/notifications.json index 03fd22fcb6..493e3bffdd 100644 --- a/public/language/nb/notifications.json +++ b/public/language/nb/notifications.json @@ -12,6 +12,7 @@ "you_have_unread_notifications": "Du har uleste varsler.", "all": "Alle", "topics": "Emner", + "tags": "Tags", "replies": "Svar", "chat": "Samtaler", "group-chat": "Gruppesamtaler", @@ -22,10 +23,10 @@ "my-flags": "Flagg som er tildelt til meg", "bans": "Forbud", "new_message_from": "Ny melding fra %1", - "user_posted_in_public_room": "%1 wrote in %3", - "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", - "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", - "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", + "user_posted_in_public_room": "%1 wrote in %3", + "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", + "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", + "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", "upvoted_your_post_in": "%1 har stemt opp innlegget ditt i %2.", "upvoted_your_post_in_dual": "%1 og 2% har stemt opp innlegget ditt i %3.", "upvoted_your_post_in_triple": "%1, %2 and %3 have upvoted your post in %4.", @@ -46,6 +47,10 @@ "user_posted_to_multiple": "%1, %2 and %3 others have posted replies to: %4", "user_posted_topic": "%1 har skrevet en ny tråd: %2", "user_edited_post": "%1 har redigert ett innlegg i %2", + "user_posted_topic_with_tag": "%1 has posted a new topic with tag %2", + "user_posted_topic_with_tag_dual": "%1 has posted a new topic with tags %2 and %3", + "user_posted_topic_with_tag_triple": "%1 has posted a new topic with tags %2, %3 and %4", + "user_posted_topic_with_tag_multiple": "%1 has posted a new topic with tags %2", "user_started_following_you": "%1 begynte å følge deg.", "user_started_following_you_dual": "%1 og 2% har begynt å følge deg. ", "user_started_following_you_triple": "%1, %2 and %3 started following you.", @@ -71,6 +76,7 @@ "notification_and_email": "Notifikasjon og e-post ", "notificationType_upvote": "Når noen stemmer opp innlegget ditt", "notificationType_new-topic": "Når noen du følger følger legger ut et emne", + "notificationType_new-topic-with-tag": "When a topic is posted with a tag you follow", "notificationType_new-reply": "Når et nytt svar er lagt ut i et emne du overvåker", "notificationType_post-edit": "Når et innlegg er redigert i et emne du overvåker", "notificationType_follow": "Når noen starter å følge deg", diff --git a/public/language/nb/pages.json b/public/language/nb/pages.json index 93b9c41cc1..c5b11283bd 100644 --- a/public/language/nb/pages.json +++ b/public/language/nb/pages.json @@ -48,6 +48,7 @@ "account/topics": "Emner opprettet av %1", "account/groups": "%1 sine grupper", "account/watched_categories": "%1's overvåkede kategorier", + "account/watched-tags": "%1's Watched Tags", "account/bookmarks": "%1's bokmerkede innlegg", "account/settings": "Brukerinnstillinger", "account/settings-of": "Changing settings of %1", diff --git a/public/language/nb/tags.json b/public/language/nb/tags.json index 6ee544b319..8b6f450d7b 100644 --- a/public/language/nb/tags.json +++ b/public/language/nb/tags.json @@ -7,5 +7,11 @@ "enter_tags_here_short": "Skriv emneord...", "no_tags": "Det finnes ingen emneord enda.", "select_tags": "Velg kode", - "tag-whitelist": "Tag Whitelist" + "tag-whitelist": "Tag Whitelist", + "watching": "Watching", + "not-watching": "Not Watching", + "watching.description": "Notify me of new topics.", + "not-watching.description": "Do not notify me of new topics.", + "following-tag.message": "You will now be receiving notifications when somebody posts a topic with this tag.", + "not-following-tag.message": "You will not receive notifications when somebody posts a topic with this tag." } \ No newline at end of file diff --git a/public/language/nb/user.json b/public/language/nb/user.json index 9b028e4a73..11590c2c41 100644 --- a/public/language/nb/user.json +++ b/public/language/nb/user.json @@ -36,6 +36,7 @@ "reputation": "Omdømme", "bookmarks": "Bokmerker", "watched_categories": "Overvåkede kategorier", + "watched-tags": "Watched tags", "change_all": "Endre alt", "watched": "Overvåkede", "ignored": "Ignorert", diff --git a/public/language/nl/notifications.json b/public/language/nl/notifications.json index 4069b67a80..afe46004ac 100644 --- a/public/language/nl/notifications.json +++ b/public/language/nl/notifications.json @@ -12,6 +12,7 @@ "you_have_unread_notifications": "U heeft ongelezen notificaties.", "all": "Alles", "topics": "Onderwerpen", + "tags": "Tags", "replies": "Antwoorden", "chat": "Chats", "group-chat": "Groepsgesprekken", @@ -22,10 +23,10 @@ "my-flags": "Markeringen toegewezen aan mij", "bans": "Bans", "new_message_from": "Nieuw bericht van %1", - "user_posted_in_public_room": "%1 wrote in %3", - "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", - "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", - "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", + "user_posted_in_public_room": "%1 wrote in %3", + "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", + "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", + "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", "upvoted_your_post_in": "%1 heeft voor je bericht gestemd in %2.", "upvoted_your_post_in_dual": "%1 en %2 hebben voor je bericht gestemd in %3.", "upvoted_your_post_in_triple": "%1, %2 and %3 have upvoted your post in %4.", @@ -46,6 +47,10 @@ "user_posted_to_multiple": "%1, %2 and %3 others have posted replies to: %4", "user_posted_topic": "%1 heeft een nieuw onderwerp geplaatst: %2", "user_edited_post": "%1 heeft een bericht aangepast in %2", + "user_posted_topic_with_tag": "%1 has posted a new topic with tag %2", + "user_posted_topic_with_tag_dual": "%1 has posted a new topic with tags %2 and %3", + "user_posted_topic_with_tag_triple": "%1 has posted a new topic with tags %2, %3 and %4", + "user_posted_topic_with_tag_multiple": "%1 has posted a new topic with tags %2", "user_started_following_you": "%1 volgt jou nu.", "user_started_following_you_dual": "%1 en %2 volgen jou nu.", "user_started_following_you_triple": "%1, %2 and %3 started following you.", @@ -71,6 +76,7 @@ "notification_and_email": "Notificatie & e-mail", "notificationType_upvote": "Als iemand positief stemt voor je bericht", "notificationType_new-topic": "Wanneer iemand die jij volgt een onderwerp post", + "notificationType_new-topic-with-tag": "When a topic is posted with a tag you follow", "notificationType_new-reply": "Als een nieuwe reactie komt op een onderwerp dat je volgt", "notificationType_post-edit": "Als een bericht wordt aangepast in een onderwerp dat je volgt", "notificationType_follow": "Als iemand begint met jou te volgen", diff --git a/public/language/nl/pages.json b/public/language/nl/pages.json index 33ccca2f79..a226db1fb7 100644 --- a/public/language/nl/pages.json +++ b/public/language/nl/pages.json @@ -48,6 +48,7 @@ "account/topics": "Onderwerpen begonnen door %1", "account/groups": "%1's groepen", "account/watched_categories": "Gevolgde Categorieën van %1", + "account/watched-tags": "%1's Watched Tags", "account/bookmarks": "%1's Favoriete Berichten", "account/settings": "Gebruikersinstellingen", "account/settings-of": "Changing settings of %1", diff --git a/public/language/nl/tags.json b/public/language/nl/tags.json index 5c9ad6a113..791773c84a 100644 --- a/public/language/nl/tags.json +++ b/public/language/nl/tags.json @@ -7,5 +7,11 @@ "enter_tags_here_short": "Voer tags in...", "no_tags": "Er zijn nog geen tags geplaatst", "select_tags": "Selecteer tags", - "tag-whitelist": "Tag Whitelist" + "tag-whitelist": "Tag Whitelist", + "watching": "Watching", + "not-watching": "Not Watching", + "watching.description": "Notify me of new topics.", + "not-watching.description": "Do not notify me of new topics.", + "following-tag.message": "You will now be receiving notifications when somebody posts a topic with this tag.", + "not-following-tag.message": "You will not receive notifications when somebody posts a topic with this tag." } \ No newline at end of file diff --git a/public/language/nl/user.json b/public/language/nl/user.json index b3d917d709..709129a728 100644 --- a/public/language/nl/user.json +++ b/public/language/nl/user.json @@ -36,6 +36,7 @@ "reputation": "Reputatie", "bookmarks": "Favorieten", "watched_categories": "Gevolgde categorieën", + "watched-tags": "Watched tags", "change_all": "Wijzig alles", "watched": "Bekeken", "ignored": "Genegeerd", diff --git a/public/language/pl/notifications.json b/public/language/pl/notifications.json index 1c77b3496c..7e07380238 100644 --- a/public/language/pl/notifications.json +++ b/public/language/pl/notifications.json @@ -12,6 +12,7 @@ "you_have_unread_notifications": "Masz nieprzeczytane powiadomienia.", "all": "Wszystko", "topics": "Tematy", + "tags": "Tags", "replies": "Odpowiedzi", "chat": "Czaty", "group-chat": "Rozmowy grupowe", @@ -22,10 +23,10 @@ "my-flags": "Flagi przypisane mnie", "bans": "Bany", "new_message_from": "Nowa wiadomość od %1", - "user_posted_in_public_room": "%1 wrote in %3", - "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", - "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", - "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", + "user_posted_in_public_room": "%1 wrote in %3", + "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", + "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", + "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", "upvoted_your_post_in": "%1 zagłosował na Twój post w %2", "upvoted_your_post_in_dual": "%1 oraz %2 zagłosowali na Twój post w %3.", "upvoted_your_post_in_triple": "%1, %2 and %3 have upvoted your post in %4.", @@ -46,6 +47,10 @@ "user_posted_to_multiple": "%1, %2 and %3 others have posted replies to: %4", "user_posted_topic": "%1 stworzył nowy temat: %2", "user_edited_post": "%1 edytował post w %2", + "user_posted_topic_with_tag": "%1 has posted a new topic with tag %2", + "user_posted_topic_with_tag_dual": "%1 has posted a new topic with tags %2 and %3", + "user_posted_topic_with_tag_triple": "%1 has posted a new topic with tags %2, %3 and %4", + "user_posted_topic_with_tag_multiple": "%1 has posted a new topic with tags %2", "user_started_following_you": "%1 zaczął Cię obserwować.", "user_started_following_you_dual": "%1 oraz %2 zaczęli Cię obserwować.", "user_started_following_you_triple": "%1, %2 and %3 started following you.", @@ -71,6 +76,7 @@ "notification_and_email": "Powiadomienie oraz e-mail", "notificationType_upvote": "Kiedy ktoś zagłosuje na Twój post", "notificationType_new-topic": "Kiedy ktoś, kogo obserwujesz, utworzy temat", + "notificationType_new-topic-with-tag": "When a topic is posted with a tag you follow", "notificationType_new-reply": "Kiedy ktoś doda nową odpowiedź w temacie, który obserwujesz", "notificationType_post-edit": "Kiedy post jest edytowany w temacie, który obserwujesz", "notificationType_follow": "Kiedy ktoś zacznie Cię obserwować", diff --git a/public/language/pl/pages.json b/public/language/pl/pages.json index ac9c80211a..73e78502ad 100644 --- a/public/language/pl/pages.json +++ b/public/language/pl/pages.json @@ -48,6 +48,7 @@ "account/topics": "Tematy utworzone przez %1", "account/groups": "Grupy %1", "account/watched_categories": "Kategorie obserwowane przez %1", + "account/watched-tags": "%1's Watched Tags", "account/bookmarks": "Posty w zakładkach %1", "account/settings": "Ustawienia użytkownika", "account/settings-of": "Zmiana ustawień %1", diff --git a/public/language/pl/tags.json b/public/language/pl/tags.json index 4dd84e3c6a..2b4f9009e1 100644 --- a/public/language/pl/tags.json +++ b/public/language/pl/tags.json @@ -7,5 +7,11 @@ "enter_tags_here_short": "Wpisz tagi...", "no_tags": "Jeszcze nie ma tagów.", "select_tags": "Wybierz tagi", - "tag-whitelist": "Tag Whitelist" + "tag-whitelist": "Tag Whitelist", + "watching": "Watching", + "not-watching": "Not Watching", + "watching.description": "Notify me of new topics.", + "not-watching.description": "Do not notify me of new topics.", + "following-tag.message": "You will now be receiving notifications when somebody posts a topic with this tag.", + "not-following-tag.message": "You will not receive notifications when somebody posts a topic with this tag." } \ No newline at end of file diff --git a/public/language/pl/user.json b/public/language/pl/user.json index 2a800d57ba..66f53f0429 100644 --- a/public/language/pl/user.json +++ b/public/language/pl/user.json @@ -36,6 +36,7 @@ "reputation": "Reputacja", "bookmarks": "Zakładki", "watched_categories": "Obserwowane kategorie", + "watched-tags": "Watched tags", "change_all": "Zmień wszystko", "watched": "Obserwowane", "ignored": "Zignorowane", diff --git a/public/language/pt-BR/notifications.json b/public/language/pt-BR/notifications.json index e7ee816335..bda3b712db 100644 --- a/public/language/pt-BR/notifications.json +++ b/public/language/pt-BR/notifications.json @@ -12,6 +12,7 @@ "you_have_unread_notifications": "Você possui notificações não lidas.", "all": "Tudo", "topics": "Tópicos", + "tags": "Tags", "replies": "Respostas", "chat": "Conversas", "group-chat": "Group Chats", @@ -22,10 +23,10 @@ "my-flags": "Sinalizações designadas a mim", "bans": "Banimentos", "new_message_from": "Nova mensagem de %1", - "user_posted_in_public_room": "%1 wrote in %3", - "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", - "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", - "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", + "user_posted_in_public_room": "%1 wrote in %3", + "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", + "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", + "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", "upvoted_your_post_in": "%1 deu voto positivo para seu post em %2.", "upvoted_your_post_in_dual": "%1 e %2 deram voto positivo ao seu post em %3.", "upvoted_your_post_in_triple": "%1, %2 and %3 have upvoted your post in %4.", @@ -46,6 +47,10 @@ "user_posted_to_multiple": "%1, %2 and %3 others have posted replies to: %4", "user_posted_topic": "%1 postou um novo tópico: %2", "user_edited_post": "%1 editou um post em %2", + "user_posted_topic_with_tag": "%1 has posted a new topic with tag %2", + "user_posted_topic_with_tag_dual": "%1 has posted a new topic with tags %2 and %3", + "user_posted_topic_with_tag_triple": "%1 has posted a new topic with tags %2, %3 and %4", + "user_posted_topic_with_tag_multiple": "%1 has posted a new topic with tags %2", "user_started_following_you": "%1 começou a seguir você.", "user_started_following_you_dual": "%1 e %2 começaram a lhe acompanhar.", "user_started_following_you_triple": "%1, %2 and %3 started following you.", @@ -71,6 +76,7 @@ "notification_and_email": "Notificações e E-mail", "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-topic-with-tag": "When a topic is posted with a tag you follow", "notificationType_new-reply": "Quando uma nova resposta é postada em um tópico que você está acompanhando", "notificationType_post-edit": "Quando uma postagem é editada em um tópico que você está assistindo", "notificationType_follow": "Quando alguém começar a seguir você", diff --git a/public/language/pt-BR/pages.json b/public/language/pt-BR/pages.json index db5265fcd0..35f83b6661 100644 --- a/public/language/pt-BR/pages.json +++ b/public/language/pt-BR/pages.json @@ -48,6 +48,7 @@ "account/topics": "Tópicos criados por %1", "account/groups": "Grupos de %1", "account/watched_categories": "Categorias Acompanhadas por %1", + "account/watched-tags": "%1's Watched Tags", "account/bookmarks": "Posts Favoritos de %1's", "account/settings": "Configurações de Usuário", "account/settings-of": "Changing settings of %1", diff --git a/public/language/pt-BR/tags.json b/public/language/pt-BR/tags.json index e44cabe24f..4788d379cb 100644 --- a/public/language/pt-BR/tags.json +++ b/public/language/pt-BR/tags.json @@ -7,5 +7,11 @@ "enter_tags_here_short": "Digite tags...", "no_tags": "Ainda não há tags.", "select_tags": "Selecionar Tags", - "tag-whitelist": "Tag Whitelist" + "tag-whitelist": "Tag Whitelist", + "watching": "Watching", + "not-watching": "Not Watching", + "watching.description": "Notify me of new topics.", + "not-watching.description": "Do not notify me of new topics.", + "following-tag.message": "You will now be receiving notifications when somebody posts a topic with this tag.", + "not-following-tag.message": "You will not receive notifications when somebody posts a topic with this tag." } \ No newline at end of file diff --git a/public/language/pt-BR/user.json b/public/language/pt-BR/user.json index 1dd11d2030..516428fad7 100644 --- a/public/language/pt-BR/user.json +++ b/public/language/pt-BR/user.json @@ -36,6 +36,7 @@ "reputation": "Reputação", "bookmarks": "Favoritos", "watched_categories": "Categorias acompanhadas", + "watched-tags": "Watched tags", "change_all": "Mudar Tudo", "watched": "Acompanhado", "ignored": "Ignorado", diff --git a/public/language/pt-PT/notifications.json b/public/language/pt-PT/notifications.json index 96a722c30e..dea3d35192 100644 --- a/public/language/pt-PT/notifications.json +++ b/public/language/pt-PT/notifications.json @@ -12,6 +12,7 @@ "you_have_unread_notifications": "Tens notificações por ler.", "all": "Tudo", "topics": "Tópicos", + "tags": "Tags", "replies": "Respostas", "chat": "Chat", "group-chat": "Group Chats", @@ -22,10 +23,10 @@ "my-flags": "Denúncias atribuídas a mim", "bans": "Banimentos", "new_message_from": "Nova mensagem de %1", - "user_posted_in_public_room": "%1 wrote in %3", - "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", - "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", - "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", + "user_posted_in_public_room": "%1 wrote in %3", + "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", + "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", + "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", "upvoted_your_post_in": "%1 votou de forma favorável na tua publicação em %2.", "upvoted_your_post_in_dual": "%1 e %2 votaram favoravelmente à tua publicação em %3.", "upvoted_your_post_in_triple": "%1, %2 and %3 have upvoted your post in %4.", @@ -46,6 +47,10 @@ "user_posted_to_multiple": "%1, %2 and %3 others have posted replies to: %4", "user_posted_topic": "%1 publicou um novo tópico: %2", "user_edited_post": "%1 editou uma publicação em %2", + "user_posted_topic_with_tag": "%1 has posted a new topic with tag %2", + "user_posted_topic_with_tag_dual": "%1 has posted a new topic with tags %2 and %3", + "user_posted_topic_with_tag_triple": "%1 has posted a new topic with tags %2, %3 and %4", + "user_posted_topic_with_tag_multiple": "%1 has posted a new topic with tags %2", "user_started_following_you": "%1 começou a seguir-te.", "user_started_following_you_dual": "%1 e %2 começaram a seguir-te.", "user_started_following_you_triple": "%1, %2 and %3 started following you.", @@ -71,6 +76,7 @@ "notification_and_email": "Notificação e E-mail", "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-topic-with-tag": "When a topic is posted with a tag you follow", "notificationType_new-reply": "Quando uma nova resposta é publicada num tópico que tu estás a seguir", "notificationType_post-edit": "Quando uma publicação é editada num tópico que estás a seguir", "notificationType_follow": "Quando alguém começa a seguir-te", diff --git a/public/language/pt-PT/pages.json b/public/language/pt-PT/pages.json index f873ec1e25..4d4e278d97 100644 --- a/public/language/pt-PT/pages.json +++ b/public/language/pt-PT/pages.json @@ -48,6 +48,7 @@ "account/topics": "Tópicos criados por %1", "account/groups": "Grupos de %1", "account/watched_categories": "Categorias subscritas por %1", + "account/watched-tags": "%1's Watched Tags", "account/bookmarks": "Publicações marcadas de %1", "account/settings": "Definições de utilizador", "account/settings-of": "Changing settings of %1", diff --git a/public/language/pt-PT/tags.json b/public/language/pt-PT/tags.json index 95150d5693..2bd3c5318b 100644 --- a/public/language/pt-PT/tags.json +++ b/public/language/pt-PT/tags.json @@ -7,5 +7,11 @@ "enter_tags_here_short": "Insere marcadores...", "no_tags": "Ainda não existem marcadores.", "select_tags": "Selecionar Marcadores", - "tag-whitelist": "Tag Whitelist" + "tag-whitelist": "Tag Whitelist", + "watching": "Watching", + "not-watching": "Not Watching", + "watching.description": "Notify me of new topics.", + "not-watching.description": "Do not notify me of new topics.", + "following-tag.message": "You will now be receiving notifications when somebody posts a topic with this tag.", + "not-following-tag.message": "You will not receive notifications when somebody posts a topic with this tag." } \ No newline at end of file diff --git a/public/language/pt-PT/user.json b/public/language/pt-PT/user.json index 4b1ef200c9..8ee22062a0 100644 --- a/public/language/pt-PT/user.json +++ b/public/language/pt-PT/user.json @@ -36,6 +36,7 @@ "reputation": "Reputação", "bookmarks": "Marcadores", "watched_categories": "Categorias subscritas", + "watched-tags": "Watched tags", "change_all": "Change All", "watched": "Subscritos", "ignored": "Ignorados", diff --git a/public/language/ro/notifications.json b/public/language/ro/notifications.json index b640328d56..a388df74b4 100644 --- a/public/language/ro/notifications.json +++ b/public/language/ro/notifications.json @@ -12,6 +12,7 @@ "you_have_unread_notifications": "Ai notificări necitite.", "all": "All", "topics": "Topics", + "tags": "Tags", "replies": "Replies", "chat": "Chats", "group-chat": "Group Chats", @@ -22,10 +23,10 @@ "my-flags": "Flags assigned to me", "bans": "Bans", "new_message_from": "Un mesaj nou de la %1", - "user_posted_in_public_room": "%1 wrote in %3", - "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", - "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", - "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", + "user_posted_in_public_room": "%1 wrote in %3", + "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", + "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", + "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", "upvoted_your_post_in": "%1 a votat pozitiv mesajul tău în %2.", "upvoted_your_post_in_dual": "%1 and %2 have upvoted your post in %3.", "upvoted_your_post_in_triple": "%1, %2 and %3 have upvoted your post in %4.", @@ -46,6 +47,10 @@ "user_posted_to_multiple": "%1, %2 and %3 others have posted replies to: %4", "user_posted_topic": "%1 has posted a new topic: %2", "user_edited_post": "%1 has edited a post in %2", + "user_posted_topic_with_tag": "%1 has posted a new topic with tag %2", + "user_posted_topic_with_tag_dual": "%1 has posted a new topic with tags %2 and %3", + "user_posted_topic_with_tag_triple": "%1 has posted a new topic with tags %2, %3 and %4", + "user_posted_topic_with_tag_multiple": "%1 has posted a new topic with tags %2", "user_started_following_you": "%1 a început să te urmărească.", "user_started_following_you_dual": "%1 and %2 started following you.", "user_started_following_you_triple": "%1, %2 and %3 started following you.", @@ -71,6 +76,7 @@ "notification_and_email": "Notification & Email", "notificationType_upvote": "When someone upvotes your post", "notificationType_new-topic": "When someone you follow posts a topic", + "notificationType_new-topic-with-tag": "When a topic is posted with a tag you follow", "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", diff --git a/public/language/ro/pages.json b/public/language/ro/pages.json index 31d4017292..7b3fe8cd18 100644 --- a/public/language/ro/pages.json +++ b/public/language/ro/pages.json @@ -48,6 +48,7 @@ "account/topics": "Topics created by %1", "account/groups": "%1's Groups", "account/watched_categories": "%1's Watched Categories", + "account/watched-tags": "%1's Watched Tags", "account/bookmarks": "%1's Bookmarked Posts", "account/settings": "User Settings", "account/settings-of": "Changing settings of %1", diff --git a/public/language/ro/tags.json b/public/language/ro/tags.json index e1af0ff586..0c7c245fe5 100644 --- a/public/language/ro/tags.json +++ b/public/language/ro/tags.json @@ -7,5 +7,11 @@ "enter_tags_here_short": "Introdu taguri...", "no_tags": "În acest moment nu există nici un tag.", "select_tags": "Select Tags", - "tag-whitelist": "Tag Whitelist" + "tag-whitelist": "Tag Whitelist", + "watching": "Watching", + "not-watching": "Not Watching", + "watching.description": "Notify me of new topics.", + "not-watching.description": "Do not notify me of new topics.", + "following-tag.message": "You will now be receiving notifications when somebody posts a topic with this tag.", + "not-following-tag.message": "You will not receive notifications when somebody posts a topic with this tag." } \ No newline at end of file diff --git a/public/language/ro/user.json b/public/language/ro/user.json index 3b12561272..65780b5739 100644 --- a/public/language/ro/user.json +++ b/public/language/ro/user.json @@ -36,6 +36,7 @@ "reputation": "Reputație", "bookmarks": "Bookmarks", "watched_categories": "Watched categories", + "watched-tags": "Watched tags", "change_all": "Change All", "watched": "Watched", "ignored": "Ignored", diff --git a/public/language/ru/notifications.json b/public/language/ru/notifications.json index 734dab94be..a760a014bb 100644 --- a/public/language/ru/notifications.json +++ b/public/language/ru/notifications.json @@ -12,6 +12,7 @@ "you_have_unread_notifications": "У вас есть непрочитанные уведомления.", "all": "Все", "topics": "Темы", + "tags": "Tags", "replies": "Ответы", "chat": "Чаты", "group-chat": "Group Chats", @@ -22,10 +23,10 @@ "my-flags": "Назначенные мне жалобы", "bans": "Блокировки", "new_message_from": "Новое сообщение от %1", - "user_posted_in_public_room": "%1 wrote in %3", - "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", - "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", - "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", + "user_posted_in_public_room": "%1 wrote in %3", + "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", + "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", + "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", "upvoted_your_post_in": "Пользователь %1 проголосовал за ваше сообщение в %2.", "upvoted_your_post_in_dual": "Пользователи %1 и %2 проголосовали за ваше сообщение в %3.", "upvoted_your_post_in_triple": "%1, %2 and %3 have upvoted your post in %4.", @@ -46,6 +47,10 @@ "user_posted_to_multiple": "%1, %2 and %3 others have posted replies to: %4", "user_posted_topic": "Пользователь %1 создал новую тему: %2", "user_edited_post": " %1 отредактировал сообщение в %2 ", + "user_posted_topic_with_tag": "%1 has posted a new topic with tag %2", + "user_posted_topic_with_tag_dual": "%1 has posted a new topic with tags %2 and %3", + "user_posted_topic_with_tag_triple": "%1 has posted a new topic with tags %2, %3 and %4", + "user_posted_topic_with_tag_multiple": "%1 has posted a new topic with tags %2", "user_started_following_you": "Пользователь %1 подписался на вас.", "user_started_following_you_dual": "Пользователи %1 и %2 подписались на вас.", "user_started_following_you_triple": "%1, %2 and %3 started following you.", @@ -71,6 +76,7 @@ "notification_and_email": "Уведомление и письмо", "notificationType_upvote": "Когда кто-то проголосовал за ваше сообщение", "notificationType_new-topic": "Когда кто-то, на кого вы подписаны, создаёт новую тему", + "notificationType_new-topic-with-tag": "When a topic is posted with a tag you follow", "notificationType_new-reply": "Когда в теме, за которой вы следите, появляется новое сообщение", "notificationType_post-edit": "Когда сообщение было отредактировано в теме, на которую вы подписаны", "notificationType_follow": "Когда кто-то подписался на вас", diff --git a/public/language/ru/pages.json b/public/language/ru/pages.json index 66f8f3b37d..8f1e8955ee 100644 --- a/public/language/ru/pages.json +++ b/public/language/ru/pages.json @@ -48,6 +48,7 @@ "account/topics": "Темы, созданные %1", "account/groups": "Группы %1", "account/watched_categories": "Категории, которые отслеживает %1", + "account/watched-tags": "%1's Watched Tags", "account/bookmarks": "Закладки %1", "account/settings": "Настройки учётной записи", "account/settings-of": "Changing settings of %1", diff --git a/public/language/ru/tags.json b/public/language/ru/tags.json index 67642cdd4a..a06782b6ad 100644 --- a/public/language/ru/tags.json +++ b/public/language/ru/tags.json @@ -7,5 +7,11 @@ "enter_tags_here_short": "Введите метки...", "no_tags": "Меток пока нет.", "select_tags": "Выберите метки", - "tag-whitelist": "Tag Whitelist" + "tag-whitelist": "Tag Whitelist", + "watching": "Watching", + "not-watching": "Not Watching", + "watching.description": "Notify me of new topics.", + "not-watching.description": "Do not notify me of new topics.", + "following-tag.message": "You will now be receiving notifications when somebody posts a topic with this tag.", + "not-following-tag.message": "You will not receive notifications when somebody posts a topic with this tag." } \ No newline at end of file diff --git a/public/language/ru/user.json b/public/language/ru/user.json index f4af87f96f..805fca1131 100644 --- a/public/language/ru/user.json +++ b/public/language/ru/user.json @@ -36,6 +36,7 @@ "reputation": "Репутация", "bookmarks": "Закладки", "watched_categories": "Отслеживаемые категории", + "watched-tags": "Watched tags", "change_all": "Изменить для всех", "watched": "Отслеживаемые темы", "ignored": "Игнорируемые темы", diff --git a/public/language/rw/notifications.json b/public/language/rw/notifications.json index 9a854eea28..0ffe2d46a3 100644 --- a/public/language/rw/notifications.json +++ b/public/language/rw/notifications.json @@ -12,6 +12,7 @@ "you_have_unread_notifications": "Ufite amatangazo utarasoma. ", "all": "All", "topics": "Topics", + "tags": "Tags", "replies": "Replies", "chat": "Chats", "group-chat": "Group Chats", @@ -22,10 +23,10 @@ "my-flags": "Flags assigned to me", "bans": "Bans", "new_message_from": " %1 yakwandikiye", - "user_posted_in_public_room": "%1 wrote in %3", - "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", - "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", - "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", + "user_posted_in_public_room": "%1 wrote in %3", + "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", + "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", + "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", "upvoted_your_post_in": "%1 yagushimye aguha inota kuri %2 washyizeho.", "upvoted_your_post_in_dual": "%1 and %2 have upvoted your post in %3.", "upvoted_your_post_in_triple": "%1, %2 and %3 have upvoted your post in %4.", @@ -46,6 +47,10 @@ "user_posted_to_multiple": "%1, %2 and %3 others have posted replies to: %4", "user_posted_topic": "%1 yatangije ikiganiro gishya: %2", "user_edited_post": "%1 has edited a post in %2", + "user_posted_topic_with_tag": "%1 has posted a new topic with tag %2", + "user_posted_topic_with_tag_dual": "%1 has posted a new topic with tags %2 and %3", + "user_posted_topic_with_tag_triple": "%1 has posted a new topic with tags %2, %3 and %4", + "user_posted_topic_with_tag_multiple": "%1 has posted a new topic with tags %2", "user_started_following_you": "%1 yatangiye kugukurikira.", "user_started_following_you_dual": "%1 and %2 started following you.", "user_started_following_you_triple": "%1, %2 and %3 started following you.", @@ -71,6 +76,7 @@ "notification_and_email": "Notification & Email", "notificationType_upvote": "When someone upvotes your post", "notificationType_new-topic": "When someone you follow posts a topic", + "notificationType_new-topic-with-tag": "When a topic is posted with a tag you follow", "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", diff --git a/public/language/rw/pages.json b/public/language/rw/pages.json index 7acc40685f..060bf6c010 100644 --- a/public/language/rw/pages.json +++ b/public/language/rw/pages.json @@ -48,6 +48,7 @@ "account/topics": "Ibiganiro byatangijwe na %1", "account/groups": "Amatsinda ya %1", "account/watched_categories": "%1's Watched Categories", + "account/watched-tags": "%1's Watched Tags", "account/bookmarks": "%1's Bookmarked Posts", "account/settings": "Itunganya", "account/settings-of": "Changing settings of %1", diff --git a/public/language/rw/tags.json b/public/language/rw/tags.json index a52e9ab667..fb48ab1da5 100644 --- a/public/language/rw/tags.json +++ b/public/language/rw/tags.json @@ -7,5 +7,11 @@ "enter_tags_here_short": "Shyiraho utumenyetso...", "no_tags": "Nta tumenyetso twari twashyirwaho. ", "select_tags": "Select Tags", - "tag-whitelist": "Tag Whitelist" + "tag-whitelist": "Tag Whitelist", + "watching": "Watching", + "not-watching": "Not Watching", + "watching.description": "Notify me of new topics.", + "not-watching.description": "Do not notify me of new topics.", + "following-tag.message": "You will now be receiving notifications when somebody posts a topic with this tag.", + "not-following-tag.message": "You will not receive notifications when somebody posts a topic with this tag." } \ No newline at end of file diff --git a/public/language/rw/user.json b/public/language/rw/user.json index 5f6eb1cdb4..7d2c4b92bc 100644 --- a/public/language/rw/user.json +++ b/public/language/rw/user.json @@ -36,6 +36,7 @@ "reputation": "Amanota", "bookmarks": "Bookmarks", "watched_categories": "Watched categories", + "watched-tags": "Watched tags", "change_all": "Change All", "watched": "Ibikurikiranwa", "ignored": "Ignored", diff --git a/public/language/sc/notifications.json b/public/language/sc/notifications.json index 88dde2325d..a709c62afa 100644 --- a/public/language/sc/notifications.json +++ b/public/language/sc/notifications.json @@ -12,6 +12,7 @@ "you_have_unread_notifications": "You have unread notifications.", "all": "All", "topics": "Topics", + "tags": "Tags", "replies": "Replies", "chat": "Chats", "group-chat": "Group Chats", @@ -22,10 +23,10 @@ "my-flags": "Flags assigned to me", "bans": "Bans", "new_message_from": "New message from %1", - "user_posted_in_public_room": "%1 wrote in %3", - "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", - "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", - "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", + "user_posted_in_public_room": "%1 wrote in %3", + "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", + "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", + "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", "upvoted_your_post_in": "%1 has upvoted your post in %2.", "upvoted_your_post_in_dual": "%1 and %2 have upvoted your post in %3.", "upvoted_your_post_in_triple": "%1, %2 and %3 have upvoted your post in %4.", @@ -46,6 +47,10 @@ "user_posted_to_multiple": "%1, %2 and %3 others have posted replies to: %4", "user_posted_topic": "%1 has posted a new topic: %2", "user_edited_post": "%1 has edited a post in %2", + "user_posted_topic_with_tag": "%1 has posted a new topic with tag %2", + "user_posted_topic_with_tag_dual": "%1 has posted a new topic with tags %2 and %3", + "user_posted_topic_with_tag_triple": "%1 has posted a new topic with tags %2, %3 and %4", + "user_posted_topic_with_tag_multiple": "%1 has posted a new topic with tags %2", "user_started_following_you": "%1 started following you.", "user_started_following_you_dual": "%1 and %2 started following you.", "user_started_following_you_triple": "%1, %2 and %3 started following you.", @@ -71,6 +76,7 @@ "notification_and_email": "Notification & Email", "notificationType_upvote": "When someone upvotes your post", "notificationType_new-topic": "When someone you follow posts a topic", + "notificationType_new-topic-with-tag": "When a topic is posted with a tag you follow", "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", diff --git a/public/language/sc/pages.json b/public/language/sc/pages.json index be4dcc1d02..022aeb03f5 100644 --- a/public/language/sc/pages.json +++ b/public/language/sc/pages.json @@ -48,6 +48,7 @@ "account/topics": "Topics created by %1", "account/groups": "%1's Groups", "account/watched_categories": "%1's Watched Categories", + "account/watched-tags": "%1's Watched Tags", "account/bookmarks": "%1's Bookmarked Posts", "account/settings": "User Settings", "account/settings-of": "Changing settings of %1", diff --git a/public/language/sc/tags.json b/public/language/sc/tags.json index 9412cca1b4..ad94664a45 100644 --- a/public/language/sc/tags.json +++ b/public/language/sc/tags.json @@ -7,5 +7,11 @@ "enter_tags_here_short": "Enter tags...", "no_tags": "There are no tags yet.", "select_tags": "Select Tags", - "tag-whitelist": "Tag Whitelist" + "tag-whitelist": "Tag Whitelist", + "watching": "Watching", + "not-watching": "Not Watching", + "watching.description": "Notify me of new topics.", + "not-watching.description": "Do not notify me of new topics.", + "following-tag.message": "You will now be receiving notifications when somebody posts a topic with this tag.", + "not-following-tag.message": "You will not receive notifications when somebody posts a topic with this tag." } \ No newline at end of file diff --git a/public/language/sc/user.json b/public/language/sc/user.json index 90d6c8b025..99c9e9e2e9 100644 --- a/public/language/sc/user.json +++ b/public/language/sc/user.json @@ -36,6 +36,7 @@ "reputation": "Nodidos", "bookmarks": "Bookmarks", "watched_categories": "Watched categories", + "watched-tags": "Watched tags", "change_all": "Change All", "watched": "Watched", "ignored": "Ignored", diff --git a/public/language/sk/notifications.json b/public/language/sk/notifications.json index 925bca09d9..9c36ff7fb3 100644 --- a/public/language/sk/notifications.json +++ b/public/language/sk/notifications.json @@ -12,6 +12,7 @@ "you_have_unread_notifications": "Máte neprečítané oznámenia.", "all": "Všetko", "topics": "Témy", + "tags": "Tags", "replies": "Odpovede", "chat": "Konverzácie", "group-chat": "Group Chats", @@ -22,10 +23,10 @@ "my-flags": "Označenia priradené mne", "bans": "Zablokované", "new_message_from": "Nova spáva od %1", - "user_posted_in_public_room": "%1 wrote in %3", - "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", - "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", - "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", + "user_posted_in_public_room": "%1 wrote in %3", + "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", + "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", + "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", "upvoted_your_post_in": "%1 dal hlas Vášmu príspevku v %2.", "upvoted_your_post_in_dual": "%1 a %2 dali hlas Vášmu príspevku v %3.", "upvoted_your_post_in_triple": "%1, %2 and %3 have upvoted your post in %4.", @@ -46,6 +47,10 @@ "user_posted_to_multiple": "%1, %2 and %3 others have posted replies to: %4", "user_posted_topic": "%1 pridal novú tému: %2", "user_edited_post": "%1 has edited a post in %2", + "user_posted_topic_with_tag": "%1 has posted a new topic with tag %2", + "user_posted_topic_with_tag_dual": "%1 has posted a new topic with tags %2 and %3", + "user_posted_topic_with_tag_triple": "%1 has posted a new topic with tags %2, %3 and %4", + "user_posted_topic_with_tag_multiple": "%1 has posted a new topic with tags %2", "user_started_following_you": "%1 Vás začal sledovať.", "user_started_following_you_dual": "%1 a %2 Vás začali sledovať.", "user_started_following_you_triple": "%1, %2 and %3 started following you.", @@ -71,6 +76,7 @@ "notification_and_email": "Oznámenia a E-mail", "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-topic-with-tag": "When a topic is posted with a tag you follow", "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ť", diff --git a/public/language/sk/pages.json b/public/language/sk/pages.json index 2e7b1412e0..bf68ab7ad5 100644 --- a/public/language/sk/pages.json +++ b/public/language/sk/pages.json @@ -48,6 +48,7 @@ "account/topics": "Témy vytvoril %1", "account/groups": "%1 skupiny", "account/watched_categories": "%1's Watched Categories", + "account/watched-tags": "%1's Watched Tags", "account/bookmarks": "%1 príspevky v záložkach", "account/settings": "Užívateľské nastavenia", "account/settings-of": "Changing settings of %1", diff --git a/public/language/sk/tags.json b/public/language/sk/tags.json index 3e42608963..4432048d02 100644 --- a/public/language/sk/tags.json +++ b/public/language/sk/tags.json @@ -7,5 +7,11 @@ "enter_tags_here_short": "Zadajte značky...", "no_tags": "Zatiaľ tu nie sú žiadne značky.", "select_tags": "Select Tags", - "tag-whitelist": "Tag Whitelist" + "tag-whitelist": "Tag Whitelist", + "watching": "Watching", + "not-watching": "Not Watching", + "watching.description": "Notify me of new topics.", + "not-watching.description": "Do not notify me of new topics.", + "following-tag.message": "You will now be receiving notifications when somebody posts a topic with this tag.", + "not-following-tag.message": "You will not receive notifications when somebody posts a topic with this tag." } \ No newline at end of file diff --git a/public/language/sk/user.json b/public/language/sk/user.json index 7b6baef392..1e0136e47f 100644 --- a/public/language/sk/user.json +++ b/public/language/sk/user.json @@ -36,6 +36,7 @@ "reputation": "Reputácia", "bookmarks": "Záložky", "watched_categories": "Watched categories", + "watched-tags": "Watched tags", "change_all": "Change All", "watched": "Sledované", "ignored": "Ignorovaný", diff --git a/public/language/sl/notifications.json b/public/language/sl/notifications.json index 455df5c9fa..2d90b59e5e 100644 --- a/public/language/sl/notifications.json +++ b/public/language/sl/notifications.json @@ -12,6 +12,7 @@ "you_have_unread_notifications": "Imate neprebrana obvestila.", "all": "All", "topics": "Topics", + "tags": "Tags", "replies": "Replies", "chat": "Chats", "group-chat": "Group Chats", @@ -22,10 +23,10 @@ "my-flags": "Flags assigned to me", "bans": "Bans", "new_message_from": "Novo obvestilo od %1", - "user_posted_in_public_room": "%1 wrote in %3", - "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", - "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", - "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", + "user_posted_in_public_room": "%1 wrote in %3", + "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", + "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", + "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", "upvoted_your_post_in": "%1 je glasoval/-a za vašo objavo v %2.", "upvoted_your_post_in_dual": "%1 in %2 sta glasovala/-i za vašo objavo v %3.", "upvoted_your_post_in_triple": "%1, %2 and %3 have upvoted your post in %4.", @@ -46,6 +47,10 @@ "user_posted_to_multiple": "%1, %2 and %3 others have posted replies to: %4", "user_posted_topic": "%1 je odprl/-a novo temo: %2.", "user_edited_post": "%1 has edited a post in %2", + "user_posted_topic_with_tag": "%1 has posted a new topic with tag %2", + "user_posted_topic_with_tag_dual": "%1 has posted a new topic with tags %2 and %3", + "user_posted_topic_with_tag_triple": "%1 has posted a new topic with tags %2, %3 and %4", + "user_posted_topic_with_tag_multiple": "%1 has posted a new topic with tags %2", "user_started_following_you": "%1 te je začel/-a spremljati.", "user_started_following_you_dual": "%1 in %2 sta te začela/-i spremljati.", "user_started_following_you_triple": "%1, %2 and %3 started following you.", @@ -71,6 +76,7 @@ "notification_and_email": "Notification & Email", "notificationType_upvote": "When someone upvotes your post", "notificationType_new-topic": "When someone you follow posts a topic", + "notificationType_new-topic-with-tag": "When a topic is posted with a tag you follow", "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", diff --git a/public/language/sl/pages.json b/public/language/sl/pages.json index d7df209a02..5cbf2a1f4e 100644 --- a/public/language/sl/pages.json +++ b/public/language/sl/pages.json @@ -48,6 +48,7 @@ "account/topics": "Teme, ki jih je ustvaril uporabnik %1", "account/groups": "Skupine uporabnika %1", "account/watched_categories": "%1's Watched Categories", + "account/watched-tags": "%1's Watched Tags", "account/bookmarks": "%1's Bookmarked Posts", "account/settings": "Uporabniške nastavitve", "account/settings-of": "Changing settings of %1", diff --git a/public/language/sl/tags.json b/public/language/sl/tags.json index 72b21268c0..936b8a3e53 100644 --- a/public/language/sl/tags.json +++ b/public/language/sl/tags.json @@ -7,5 +7,11 @@ "enter_tags_here_short": "Vpišite oznake...", "no_tags": "Oznak še ni.", "select_tags": "Select Tags", - "tag-whitelist": "Tag Whitelist" + "tag-whitelist": "Tag Whitelist", + "watching": "Watching", + "not-watching": "Not Watching", + "watching.description": "Notify me of new topics.", + "not-watching.description": "Do not notify me of new topics.", + "following-tag.message": "You will now be receiving notifications when somebody posts a topic with this tag.", + "not-following-tag.message": "You will not receive notifications when somebody posts a topic with this tag." } \ No newline at end of file diff --git a/public/language/sl/user.json b/public/language/sl/user.json index c83d4ddc2a..667e9236b9 100644 --- a/public/language/sl/user.json +++ b/public/language/sl/user.json @@ -36,6 +36,7 @@ "reputation": "Naziv", "bookmarks": "Zaznamki", "watched_categories": "Spremljane kategorije", + "watched-tags": "Watched tags", "change_all": "Spremeni vse", "watched": "Spremljano", "ignored": "Prezrto", diff --git a/public/language/sq-AL/notifications.json b/public/language/sq-AL/notifications.json index 9e85bb7f52..148120097a 100644 --- a/public/language/sq-AL/notifications.json +++ b/public/language/sq-AL/notifications.json @@ -12,6 +12,7 @@ "you_have_unread_notifications": "Ju keni njoftime të palexuara.", "all": "Të gjitha", "topics": "Temat", + "tags": "Tags", "replies": "Përgjigjet", "chat": "Bisedat", "group-chat": "Bisedat në Grup", @@ -22,10 +23,10 @@ "my-flags": "Raportimet u kaluan tek unë", "bans": "Të bllokuar", "new_message_from": "Mesazh i ri nga%1", - "user_posted_in_public_room": "%1 wrote in %3", - "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", - "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", - "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", + "user_posted_in_public_room": "%1 wrote in %3", + "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", + "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", + "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", "upvoted_your_post_in": "%1ka votuar në postin tënd në %2.", "upvoted_your_post_in_dual": "%1 dhe % 2 kanë votuar për postimin tuaj në %3.", "upvoted_your_post_in_triple": "%1, %2 and %3 have upvoted your post in %4.", @@ -46,6 +47,10 @@ "user_posted_to_multiple": "%1, %2 and %3 others have posted replies to: %4", "user_posted_topic": "%1 ka postuar një temë të re: %2", "user_edited_post": "%1 ka redaktuar një postim në %2", + "user_posted_topic_with_tag": "%1 has posted a new topic with tag %2", + "user_posted_topic_with_tag_dual": "%1 has posted a new topic with tags %2 and %3", + "user_posted_topic_with_tag_triple": "%1 has posted a new topic with tags %2, %3 and %4", + "user_posted_topic_with_tag_multiple": "%1 has posted a new topic with tags %2", "user_started_following_you": "%1 filloi t'ju ndjekë.", "user_started_following_you_dual": "% 1 dhe %2 filluan t'ju ndjekin.", "user_started_following_you_triple": "%1, %2 and %3 started following you.", @@ -71,6 +76,7 @@ "notification_and_email": "Njoftim & Email", "notificationType_upvote": "Kur dikush voton pro për postimin tuaj", "notificationType_new-topic": "Kur dikush që ndiqni poston një temë", + "notificationType_new-topic-with-tag": "When a topic is posted with a tag you follow", "notificationType_new-reply": "Kur një përgjigje e re postohet në një temë që po shikoni", "notificationType_post-edit": "Kur një postim redaktohet në një temë që po shikoni", "notificationType_follow": "Kur dikush fillon të të ndjekë", diff --git a/public/language/sq-AL/pages.json b/public/language/sq-AL/pages.json index a1551a1db7..b5ffc7a940 100644 --- a/public/language/sq-AL/pages.json +++ b/public/language/sq-AL/pages.json @@ -48,6 +48,7 @@ "account/topics": "Tema krijuar nga %1", "account/groups": "Grupet e %1", "account/watched_categories": "Kategoritë e para nga %1", + "account/watched-tags": "%1's Watched Tags", "account/bookmarks": "Postimet e shënuara nga %1", "account/settings": "Cilësimet e përdoruesit", "account/settings-of": "Changing settings of %1", diff --git a/public/language/sq-AL/tags.json b/public/language/sq-AL/tags.json index 1cd682ffab..d2079c0fe6 100644 --- a/public/language/sq-AL/tags.json +++ b/public/language/sq-AL/tags.json @@ -7,5 +7,11 @@ "enter_tags_here_short": "Vendos tags...", "no_tags": "Nuk ka ende tags", "select_tags": "Zgjidhni tags", - "tag-whitelist": "Tag Whitelist" + "tag-whitelist": "Tag Whitelist", + "watching": "Watching", + "not-watching": "Not Watching", + "watching.description": "Notify me of new topics.", + "not-watching.description": "Do not notify me of new topics.", + "following-tag.message": "You will now be receiving notifications when somebody posts a topic with this tag.", + "not-following-tag.message": "You will not receive notifications when somebody posts a topic with this tag." } \ No newline at end of file diff --git a/public/language/sq-AL/user.json b/public/language/sq-AL/user.json index 0572fa0edf..852002a5ab 100644 --- a/public/language/sq-AL/user.json +++ b/public/language/sq-AL/user.json @@ -36,6 +36,7 @@ "reputation": "Reputacioni", "bookmarks": "Faqe të ruajtura", "watched_categories": "Kategoritë e kërkuara", + "watched-tags": "Watched tags", "change_all": "Ndrysho të gjitha", "watched": "Shikuar", "ignored": "Injoruar", diff --git a/public/language/sr/notifications.json b/public/language/sr/notifications.json index 6f8e83146d..c2a34dfabc 100644 --- a/public/language/sr/notifications.json +++ b/public/language/sr/notifications.json @@ -12,6 +12,7 @@ "you_have_unread_notifications": "Имате непрочитана обавештења.", "all": "Све", "topics": "Теме", + "tags": "Tags", "replies": "Одговори", "chat": "Ћаскања", "group-chat": "Групна ћаскања", @@ -22,10 +23,10 @@ "my-flags": "Заставице додељене мени", "bans": "Забране", "new_message_from": "Нова порука од %1", - "user_posted_in_public_room": "%1 је написао у %3", - "user_posted_in_public_room_dual": "%1 и %2 су написали у %4", - "user_posted_in_public_room_triple": "%1, %2 и %3 су написали у %5", - "user_posted_in_public_room_multiple": "%1, %2 и осталих %3 су написали у %5", + "user_posted_in_public_room": "%1 wrote in %3", + "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", + "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", + "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", "upvoted_your_post_in": "%1 је гласао за вашу поруку у %2", "upvoted_your_post_in_dual": "%1 и %2 осталих су гласали за вашу поруку у %3.", "upvoted_your_post_in_triple": "%1, %2 и %3 су гласали за вашу објаву у %4.", @@ -46,6 +47,10 @@ "user_posted_to_multiple": "%1, %2 и осталих %3 су објавили одговор: %4", "user_posted_topic": "%1 је поставио нову тему: %2", "user_edited_post": "%1 је уредио поруку у %2", + "user_posted_topic_with_tag": "%1 has posted a new topic with tag %2", + "user_posted_topic_with_tag_dual": "%1 has posted a new topic with tags %2 and %3", + "user_posted_topic_with_tag_triple": "%1 has posted a new topic with tags %2, %3 and %4", + "user_posted_topic_with_tag_multiple": "%1 has posted a new topic with tags %2", "user_started_following_you": "%1 је почео да вас прати.", "user_started_following_you_dual": "%1 и %2 су почели да вас прате.", "user_started_following_you_triple": "%1, %2 и %3 су вас запратили.", @@ -71,6 +76,7 @@ "notification_and_email": "Обавештење и е-пошта", "notificationType_upvote": "Када неко гласа за вашу поруку", "notificationType_new-topic": "Када неко кога пратите постави тему", + "notificationType_new-topic-with-tag": "When a topic is posted with a tag you follow", "notificationType_new-reply": "Када је објављен нови одговор у теми коју надгледате", "notificationType_post-edit": "Када је порука уређена у теми коју надгледате", "notificationType_follow": "Када неко почне да вас прати", diff --git a/public/language/sr/pages.json b/public/language/sr/pages.json index 6a98a054c5..af3f05b134 100644 --- a/public/language/sr/pages.json +++ b/public/language/sr/pages.json @@ -48,6 +48,7 @@ "account/topics": "Теме од %1", "account/groups": "Групе корисника %1", "account/watched_categories": "Надгледане категорије корисника %1", + "account/watched-tags": "%1's Watched Tags", "account/bookmarks": "Омиљене поруке корисника $1", "account/settings": "Корисничка подешавања", "account/settings-of": "Промена подешавања од %1", diff --git a/public/language/sr/tags.json b/public/language/sr/tags.json index 51349f96ff..6b55c19558 100644 --- a/public/language/sr/tags.json +++ b/public/language/sr/tags.json @@ -7,5 +7,11 @@ "enter_tags_here_short": "Унесите ознаке...", "no_tags": "Још увек нема ознака.", "select_tags": "Изабери ознаке", - "tag-whitelist": "Бела листа ознака" + "tag-whitelist": "Бела листа ознака", + "watching": "Watching", + "not-watching": "Not Watching", + "watching.description": "Notify me of new topics.", + "not-watching.description": "Do not notify me of new topics.", + "following-tag.message": "You will now be receiving notifications when somebody posts a topic with this tag.", + "not-following-tag.message": "You will not receive notifications when somebody posts a topic with this tag." } \ No newline at end of file diff --git a/public/language/sr/user.json b/public/language/sr/user.json index ce2d814b2c..00bf5ac212 100644 --- a/public/language/sr/user.json +++ b/public/language/sr/user.json @@ -36,6 +36,7 @@ "reputation": "Репутација", "bookmarks": " Обележивачи", "watched_categories": "Надгледане категорије", + "watched-tags": "Watched tags", "change_all": "Промени све", "watched": "Надгледано", "ignored": "Игнорисано", diff --git a/public/language/sv/notifications.json b/public/language/sv/notifications.json index 8fc30c595a..a357d61178 100644 --- a/public/language/sv/notifications.json +++ b/public/language/sv/notifications.json @@ -12,6 +12,7 @@ "you_have_unread_notifications": "Du har olästa notiser.", "all": "Alla", "topics": "Ämnen", + "tags": "Tags", "replies": "Svar", "chat": "Chattar", "group-chat": "Group Chats", @@ -22,10 +23,10 @@ "my-flags": "Mina tilldelade flaggor", "bans": "Bannlysningar", "new_message_from": "Nytt medelande från %1", - "user_posted_in_public_room": "%1 wrote in %3", - "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", - "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", - "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", + "user_posted_in_public_room": "%1 wrote in %3", + "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", + "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", + "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", "upvoted_your_post_in": "%1 har röstat upp ditt inlägg i %2", "upvoted_your_post_in_dual": "%1 och %2 har röstat upp ditt inlägg i %3.", "upvoted_your_post_in_triple": "%1, %2 and %3 have upvoted your post in %4.", @@ -46,6 +47,10 @@ "user_posted_to_multiple": "%1, %2 and %3 others have posted replies to: %4", "user_posted_topic": "%1 har skapat ett nytt ämne: %2", "user_edited_post": "%1 has edited a post in %2", + "user_posted_topic_with_tag": "%1 has posted a new topic with tag %2", + "user_posted_topic_with_tag_dual": "%1 has posted a new topic with tags %2 and %3", + "user_posted_topic_with_tag_triple": "%1 has posted a new topic with tags %2, %3 and %4", + "user_posted_topic_with_tag_multiple": "%1 has posted a new topic with tags %2", "user_started_following_you": "%1 började följa dig.", "user_started_following_you_dual": "%1 och %2 började följa dig.", "user_started_following_you_triple": "%1, %2 and %3 started following you.", @@ -71,6 +76,7 @@ "notification_and_email": "Notis och e-post", "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-topic-with-tag": "When a topic is posted with a tag you follow", "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", diff --git a/public/language/sv/pages.json b/public/language/sv/pages.json index 83d742cd9b..94ab85687f 100644 --- a/public/language/sv/pages.json +++ b/public/language/sv/pages.json @@ -48,6 +48,7 @@ "account/topics": "Ämnen skapade av %1 ", "account/groups": "%1's grupper", "account/watched_categories": "%1's följda kategorier", + "account/watched-tags": "%1's Watched Tags", "account/bookmarks": "%1'st bokmärkta inlägg", "account/settings": "Avnändarinställningar", "account/settings-of": "Changing settings of %1", diff --git a/public/language/sv/tags.json b/public/language/sv/tags.json index 9af99f679c..b3c250ce76 100644 --- a/public/language/sv/tags.json +++ b/public/language/sv/tags.json @@ -7,5 +7,11 @@ "enter_tags_here_short": "Ange taggar...", "no_tags": "Det finns inga taggar ännu.", "select_tags": "Välj Etiketter", - "tag-whitelist": "Tag Whitelist" + "tag-whitelist": "Tag Whitelist", + "watching": "Watching", + "not-watching": "Not Watching", + "watching.description": "Notify me of new topics.", + "not-watching.description": "Do not notify me of new topics.", + "following-tag.message": "You will now be receiving notifications when somebody posts a topic with this tag.", + "not-following-tag.message": "You will not receive notifications when somebody posts a topic with this tag." } \ No newline at end of file diff --git a/public/language/sv/user.json b/public/language/sv/user.json index 74d494f61e..8ec6887ac0 100644 --- a/public/language/sv/user.json +++ b/public/language/sv/user.json @@ -36,6 +36,7 @@ "reputation": "Rykte", "bookmarks": "Bokmärken", "watched_categories": "Bevakade kategorier", + "watched-tags": "Watched tags", "change_all": "Ändra alla", "watched": "Bevakad", "ignored": "Ignorerad", diff --git a/public/language/th/notifications.json b/public/language/th/notifications.json index b8ee428dcf..03d00bb7fd 100644 --- a/public/language/th/notifications.json +++ b/public/language/th/notifications.json @@ -12,6 +12,7 @@ "you_have_unread_notifications": "คุณมีคำเตือนที่ยังไม่ได้อ่าน", "all": "ทั้งหมด", "topics": "กระทู้", + "tags": "Tags", "replies": "คำตอบ", "chat": "แชท", "group-chat": "Group Chats", @@ -22,10 +23,10 @@ "my-flags": "ธงที่ถูกปักให้ฉัน", "bans": "แบน", "new_message_from": "ข้อความใหม่จาก %1", - "user_posted_in_public_room": "%1 wrote in %3", - "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", - "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", - "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", + "user_posted_in_public_room": "%1 wrote in %3", + "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", + "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", + "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", "upvoted_your_post_in": "%1 ได้โหวตโพสต์ของคุณขึ้นใน %2", "upvoted_your_post_in_dual": "%1 และ %2ได้โหวตโพสต์ของคุณขึ้นใน %3 ", "upvoted_your_post_in_triple": "%1, %2 and %3 have upvoted your post in %4.", @@ -46,6 +47,10 @@ "user_posted_to_multiple": "%1, %2 and %3 others have posted replies to: %4", "user_posted_topic": "%1ได้โพสต์กระทู้ใหม่ : %2", "user_edited_post": "%1 has edited a post in %2", + "user_posted_topic_with_tag": "%1 has posted a new topic with tag %2", + "user_posted_topic_with_tag_dual": "%1 has posted a new topic with tags %2 and %3", + "user_posted_topic_with_tag_triple": "%1 has posted a new topic with tags %2, %3 and %4", + "user_posted_topic_with_tag_multiple": "%1 has posted a new topic with tags %2", "user_started_following_you": "%1 ได้เริ่มติดตามคุณ", "user_started_following_you_dual": "%1และ%2ได้เริ่มติดตามคุณ", "user_started_following_you_triple": "%1, %2 and %3 started following you.", @@ -71,6 +76,7 @@ "notification_and_email": "การแจ้งเตือนและอีเมล", "notificationType_upvote": "เมื่อมีคนโหวตอัพให้โพสต์คุณ", "notificationType_new-topic": "เมื่อมีคนติดตามโพสต์คุณ", + "notificationType_new-topic-with-tag": "When a topic is posted with a tag you follow", "notificationType_new-reply": "เมื่อมีการตอบกลับในโพสต์ที่คุณกำลังติดตาม", "notificationType_post-edit": "When a post is edited in a topic you are watching", "notificationType_follow": "เมื่อมีคนติดตามคุณ", diff --git a/public/language/th/pages.json b/public/language/th/pages.json index 4b7d6be47d..5ea911f155 100644 --- a/public/language/th/pages.json +++ b/public/language/th/pages.json @@ -48,6 +48,7 @@ "account/topics": "กระทู้ถูกสร้างโดย %1", "account/groups": "กลุ่มของ %1", "account/watched_categories": "%1's Watched Categories", + "account/watched-tags": "%1's Watched Tags", "account/bookmarks": "บุ๊กมาร์คโพสต์ของ %1", "account/settings": "การตั้งค่าผู้ใช้", "account/settings-of": "Changing settings of %1", diff --git a/public/language/th/tags.json b/public/language/th/tags.json index a56db67062..8544deefee 100644 --- a/public/language/th/tags.json +++ b/public/language/th/tags.json @@ -7,5 +7,11 @@ "enter_tags_here_short": "ใส่ป้ายคำศัพท์ ...", "no_tags": "ยังไม่มีป้ายคำศัพท์", "select_tags": "Select Tags", - "tag-whitelist": "Tag Whitelist" + "tag-whitelist": "Tag Whitelist", + "watching": "Watching", + "not-watching": "Not Watching", + "watching.description": "Notify me of new topics.", + "not-watching.description": "Do not notify me of new topics.", + "following-tag.message": "You will now be receiving notifications when somebody posts a topic with this tag.", + "not-following-tag.message": "You will not receive notifications when somebody posts a topic with this tag." } \ No newline at end of file diff --git a/public/language/th/user.json b/public/language/th/user.json index 92f518308e..aa6064b562 100644 --- a/public/language/th/user.json +++ b/public/language/th/user.json @@ -36,6 +36,7 @@ "reputation": "ชื่อเสียง", "bookmarks": "ที่คั่นหน้า", "watched_categories": "Watched categories", + "watched-tags": "Watched tags", "change_all": "Change All", "watched": "ดูแล้ว", "ignored": "ยกเว้นแล้ว", diff --git a/public/language/tr/notifications.json b/public/language/tr/notifications.json index 7e467314cd..f8243d8818 100644 --- a/public/language/tr/notifications.json +++ b/public/language/tr/notifications.json @@ -12,6 +12,7 @@ "you_have_unread_notifications": "Okunmamış bildirimleriniz var.", "all": "Hepsi", "topics": "Konular", + "tags": "Tags", "replies": "Yanıtlar", "chat": "Sohbetler", "group-chat": "Grup Sohbetleri", @@ -22,10 +23,10 @@ "my-flags": "Vekil olarak atandığım şikayetler", "bans": "Yasaklamalar", "new_message_from": "%1 size bir mesaj gönderdi", - "user_posted_in_public_room": "%1 wrote in %3", - "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", - "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", - "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", + "user_posted_in_public_room": "%1 wrote in %3", + "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", + "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", + "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", "upvoted_your_post_in": "%1 şu konudaki iletinizi beğendi: %2.", "upvoted_your_post_in_dual": "%1 ve %2 şu konudaki iletinizi beğendi: %3", "upvoted_your_post_in_triple": "%1, %2 and %3 have upvoted your post in %4.", @@ -46,6 +47,10 @@ "user_posted_to_multiple": "%1, %2 and %3 others have posted replies to: %4", "user_posted_topic": "%1 şu yeni konuyu oluşturdu: %2", "user_edited_post": "%1 şu konudaki bir iletiyi değiştirdi: %2", + "user_posted_topic_with_tag": "%1 has posted a new topic with tag %2", + "user_posted_topic_with_tag_dual": "%1 has posted a new topic with tags %2 and %3", + "user_posted_topic_with_tag_triple": "%1 has posted a new topic with tags %2, %3 and %4", + "user_posted_topic_with_tag_multiple": "%1 has posted a new topic with tags %2", "user_started_following_you": "%1 sizi takip etmeye başladı.", "user_started_following_you_dual": "%1 ve %2 sizi takip etmeye başladı.", "user_started_following_you_triple": "%1, %2 and %3 started following you.", @@ -71,6 +76,7 @@ "notification_and_email": "Bildirim & E-posta", "notificationType_upvote": "Biri iletinize artı oy verdiğinde", "notificationType_new-topic": "Takip ettiğiniz biri yeni bir konu oluşturduğunda", + "notificationType_new-topic-with-tag": "When a topic is posted with a tag you follow", "notificationType_new-reply": "Takip ettiğiniz bir konuya yeni bir ileti gönderildiğinde", "notificationType_post-edit": "Takip ettiğiniz bir konudaki bir ileti değiştirildiğinde", "notificationType_follow": "Biri sizi takip etmeye başlayınca", diff --git a/public/language/tr/pages.json b/public/language/tr/pages.json index e5666af929..9ecdfd57bf 100644 --- a/public/language/tr/pages.json +++ b/public/language/tr/pages.json @@ -48,6 +48,7 @@ "account/topics": "%1 tarafından oluşturulan başlıklar", "account/groups": "%1 kullanıcısına ait gruplar", "account/watched_categories": "%1 kullanıcısının takip ettiği kategoriler", + "account/watched-tags": "%1's Watched Tags", "account/bookmarks": "%1 kullanıcısının yer imlerine eklenmiş iletiler", "account/settings": "Kullanıcı Ayarları", "account/settings-of": "%1 ayarları değiştiriliyor", diff --git a/public/language/tr/tags.json b/public/language/tr/tags.json index e544ff8403..d21846f425 100644 --- a/public/language/tr/tags.json +++ b/public/language/tr/tags.json @@ -7,5 +7,11 @@ "enter_tags_here_short": "Etiketleri gir...", "no_tags": "Henüz etiket yok.", "select_tags": "Etiketleri Seç", - "tag-whitelist": "Kullanılabilir etiket listesi" + "tag-whitelist": "Kullanılabilir etiket listesi", + "watching": "Watching", + "not-watching": "Not Watching", + "watching.description": "Notify me of new topics.", + "not-watching.description": "Do not notify me of new topics.", + "following-tag.message": "You will now be receiving notifications when somebody posts a topic with this tag.", + "not-following-tag.message": "You will not receive notifications when somebody posts a topic with this tag." } \ No newline at end of file diff --git a/public/language/tr/user.json b/public/language/tr/user.json index 03dcda3cf9..35dc885a77 100644 --- a/public/language/tr/user.json +++ b/public/language/tr/user.json @@ -36,6 +36,7 @@ "reputation": "Saygınlık", "bookmarks": "Yer İmleri", "watched_categories": "Takip edilen kategoriler", + "watched-tags": "Watched tags", "change_all": "Hepsini Değiştir", "watched": "Takip edilen başlıklar", "ignored": "Susturulan başlıklar", diff --git a/public/language/uk/notifications.json b/public/language/uk/notifications.json index 437e01b04f..2596b186d5 100644 --- a/public/language/uk/notifications.json +++ b/public/language/uk/notifications.json @@ -12,6 +12,7 @@ "you_have_unread_notifications": "У вас немає непрочитаних сповіщень", "all": "Всі", "topics": "Теми", + "tags": "Tags", "replies": "Відповіді", "chat": "Чати", "group-chat": "Group Chats", @@ -22,10 +23,10 @@ "my-flags": "Скарги, подані на мене", "bans": "Бани", "new_message_from": "Нове повідомлення від %1", - "user_posted_in_public_room": "%1 wrote in %3", - "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", - "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", - "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", + "user_posted_in_public_room": "%1 wrote in %3", + "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", + "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", + "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", "upvoted_your_post_in": "%1 проголосував за ваш пост в %2.", "upvoted_your_post_in_dual": "%1 та %2 проголосували за ваш пост в %3.", "upvoted_your_post_in_triple": "%1, %2 and %3 have upvoted your post in %4.", @@ -46,6 +47,10 @@ "user_posted_to_multiple": "%1, %2 and %3 others have posted replies to: %4", "user_posted_topic": "%1 запостив нову тему: %2", "user_edited_post": "%1 has edited a post in %2", + "user_posted_topic_with_tag": "%1 has posted a new topic with tag %2", + "user_posted_topic_with_tag_dual": "%1 has posted a new topic with tags %2 and %3", + "user_posted_topic_with_tag_triple": "%1 has posted a new topic with tags %2, %3 and %4", + "user_posted_topic_with_tag_multiple": "%1 has posted a new topic with tags %2", "user_started_following_you": "%1 почав стежити за вами.", "user_started_following_you_dual": "%1 та %2 почали стежити за вами.", "user_started_following_you_triple": "%1, %2 and %3 started following you.", @@ -71,6 +76,7 @@ "notification_and_email": "Сповіщення та пошта", "notificationType_upvote": "Коли хтось голосує за ваш пост", "notificationType_new-topic": "Коли хтось, кого ви читаєте, публікує тему", + "notificationType_new-topic-with-tag": "When a topic is posted with a tag you follow", "notificationType_new-reply": "Коли з'являється нова відповідь у темі, за якою ви слідкуєте", "notificationType_post-edit": "When a post is edited in a topic you are watching", "notificationType_follow": "Коли хтось починає слідкувати за вами", diff --git a/public/language/uk/pages.json b/public/language/uk/pages.json index 28da12fd53..866bdc5f57 100644 --- a/public/language/uk/pages.json +++ b/public/language/uk/pages.json @@ -48,6 +48,7 @@ "account/topics": "Теми створені %1", "account/groups": "Групи %1", "account/watched_categories": "Категорії, за якими спостерігає %1", + "account/watched-tags": "%1's Watched Tags", "account/bookmarks": "Закладки %1", "account/settings": "Налаштування користувача", "account/settings-of": "Changing settings of %1", diff --git a/public/language/uk/tags.json b/public/language/uk/tags.json index e192101ed6..19116c49e2 100644 --- a/public/language/uk/tags.json +++ b/public/language/uk/tags.json @@ -7,5 +7,11 @@ "enter_tags_here_short": "Введіть тег", "no_tags": "Ще немає тегів", "select_tags": "Select Tags", - "tag-whitelist": "Tag Whitelist" + "tag-whitelist": "Tag Whitelist", + "watching": "Watching", + "not-watching": "Not Watching", + "watching.description": "Notify me of new topics.", + "not-watching.description": "Do not notify me of new topics.", + "following-tag.message": "You will now be receiving notifications when somebody posts a topic with this tag.", + "not-following-tag.message": "You will not receive notifications when somebody posts a topic with this tag." } \ No newline at end of file diff --git a/public/language/uk/user.json b/public/language/uk/user.json index 5952d5285d..79d3428019 100644 --- a/public/language/uk/user.json +++ b/public/language/uk/user.json @@ -36,6 +36,7 @@ "reputation": "Репутація", "bookmarks": "Закладки", "watched_categories": "Категорії, за якими ви спостерігаєте", + "watched-tags": "Watched tags", "change_all": "Змінити Всі", "watched": "Переглянуті", "ignored": "Ігнорується", diff --git a/public/language/vi/notifications.json b/public/language/vi/notifications.json index bfab07fa58..cf16402979 100644 --- a/public/language/vi/notifications.json +++ b/public/language/vi/notifications.json @@ -12,6 +12,7 @@ "you_have_unread_notifications": "Bạn có thông báo chưa đọc", "all": "Tất cả", "topics": "Chủ đề", + "tags": "Tags", "replies": "Phản hồi", "chat": "Trò Chuyện", "group-chat": "Trò Chuyện Nhóm", @@ -22,10 +23,10 @@ "my-flags": "Cảnh báo dành cho tôi", "bans": "Cấm", "new_message_from": "Tin nhắn mới từ %1", - "user_posted_in_public_room": "%1 wrote in %3", - "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", - "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", - "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", + "user_posted_in_public_room": "%1 wrote in %3", + "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", + "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", + "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", "upvoted_your_post_in": "%1 đã bình chọn bài của bạn trong %2.", "upvoted_your_post_in_dual": "%1%2 đã tán thành với bài viết của bạn trong %3.", "upvoted_your_post_in_triple": "%1, %2 and %3 have upvoted your post in %4.", @@ -46,6 +47,10 @@ "user_posted_to_multiple": "%1, %2 and %3 others have posted replies to: %4", "user_posted_topic": "%1 đã đăng một chủ đề mới: %2", "user_edited_post": "%1 đã chỉnh sửa một bài đăng trong %2", + "user_posted_topic_with_tag": "%1 has posted a new topic with tag %2", + "user_posted_topic_with_tag_dual": "%1 has posted a new topic with tags %2 and %3", + "user_posted_topic_with_tag_triple": "%1 has posted a new topic with tags %2, %3 and %4", + "user_posted_topic_with_tag_multiple": "%1 has posted a new topic with tags %2", "user_started_following_you": "%1 đã theo dõi bạn.", "user_started_following_you_dual": "%1%2 đã bắt đầu theo dõi bạn.", "user_started_following_you_triple": "%1, %2 and %3 started following you.", @@ -71,6 +76,7 @@ "notification_and_email": "Thông Báo & Email", "notificationType_upvote": "Khi ai đó ủng hộ bài viết của bạn", "notificationType_new-topic": "Khi người bạn theo dõi đăng một chủ đề", + "notificationType_new-topic-with-tag": "When a topic is posted with a tag you follow", "notificationType_new-reply": "Khi một câu trả lời mới được đăng trong một chủ đề bạn đang xem", "notificationType_post-edit": "Khi bài viết được chỉnh sửa trong chủ đề bạn đang xem", "notificationType_follow": "Khi ai đó bắt đầu theo dõi bạn", diff --git a/public/language/vi/pages.json b/public/language/vi/pages.json index e611dedf4f..004f1c73f7 100644 --- a/public/language/vi/pages.json +++ b/public/language/vi/pages.json @@ -48,6 +48,7 @@ "account/topics": "Chủ đề được tạo bởi %1", "account/groups": "Nhóm của %1", "account/watched_categories": "Chuyên Mục Đã Xem Của %1", + "account/watched-tags": "%1's Watched Tags", "account/bookmarks": "Bài Đăng Được Đánh Dấu Trang Của %1", "account/settings": "Cài Đặt Người Dùng", "account/settings-of": "Changing settings of %1", diff --git a/public/language/vi/tags.json b/public/language/vi/tags.json index a4c501ce65..a1f53eabf3 100644 --- a/public/language/vi/tags.json +++ b/public/language/vi/tags.json @@ -7,5 +7,11 @@ "enter_tags_here_short": "Nhập thẻ...", "no_tags": "Chưa có thẻ nào.", "select_tags": "Chọn Thẻ", - "tag-whitelist": "Tag Whitelist" + "tag-whitelist": "Tag Whitelist", + "watching": "Watching", + "not-watching": "Not Watching", + "watching.description": "Notify me of new topics.", + "not-watching.description": "Do not notify me of new topics.", + "following-tag.message": "You will now be receiving notifications when somebody posts a topic with this tag.", + "not-following-tag.message": "You will not receive notifications when somebody posts a topic with this tag." } \ No newline at end of file diff --git a/public/language/vi/user.json b/public/language/vi/user.json index 7df30cb5ca..449974f8c1 100644 --- a/public/language/vi/user.json +++ b/public/language/vi/user.json @@ -36,6 +36,7 @@ "reputation": "Uy tín", "bookmarks": "Đánh dấu trang", "watched_categories": "Danh mục đã xem", + "watched-tags": "Watched tags", "change_all": "Thay Đổi Tất Cả", "watched": "Đã xem", "ignored": "Đã Bỏ Qua", diff --git a/public/language/zh-CN/notifications.json b/public/language/zh-CN/notifications.json index 4d8a7d6732..8bb8c1ae0c 100644 --- a/public/language/zh-CN/notifications.json +++ b/public/language/zh-CN/notifications.json @@ -12,6 +12,7 @@ "you_have_unread_notifications": "您有未读的通知。", "all": "所有", "topics": "主题", + "tags": "Tags", "replies": "回复", "chat": "聊天", "group-chat": "群聊", @@ -22,10 +23,10 @@ "my-flags": "指派举报给我", "bans": "封禁", "new_message_from": "来自 %1 的新消息", - "user_posted_in_public_room": "%1 wrote in %3", - "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", - "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", - "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", + "user_posted_in_public_room": "%1 wrote in %3", + "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", + "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", + "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", "upvoted_your_post_in": "%1%2 点赞了您的帖子。", "upvoted_your_post_in_dual": "%1%2%3 赞了您的帖子。", "upvoted_your_post_in_triple": "%1, %2 and %3 have upvoted your post in %4.", @@ -46,6 +47,10 @@ "user_posted_to_multiple": "%1, %2 and %3 others have posted replies to: %4", "user_posted_topic": "%1 发表了新主题:%2", "user_edited_post": "%1%2 编辑了一个帖子", + "user_posted_topic_with_tag": "%1 has posted a new topic with tag %2", + "user_posted_topic_with_tag_dual": "%1 has posted a new topic with tags %2 and %3", + "user_posted_topic_with_tag_triple": "%1 has posted a new topic with tags %2, %3 and %4", + "user_posted_topic_with_tag_multiple": "%1 has posted a new topic with tags %2", "user_started_following_you": "%1关注了您。", "user_started_following_you_dual": "%1%2 关注了您。", "user_started_following_you_triple": "%1, %2 and %3 started following you.", @@ -71,6 +76,7 @@ "notification_and_email": "同时使用 通知 和 邮件 提醒我", "notificationType_upvote": "当有人顶了我的帖子时", "notificationType_new-topic": "当您关注的人发布了主题时", + "notificationType_new-topic-with-tag": "When a topic is posted with a tag you follow", "notificationType_new-reply": "当您正在查看的主题中有新回复时", "notificationType_post-edit": "当您关注的主题有帖子被编辑时", "notificationType_follow": "当有人关注您时", diff --git a/public/language/zh-CN/pages.json b/public/language/zh-CN/pages.json index 8686915b05..b4ccb22f89 100644 --- a/public/language/zh-CN/pages.json +++ b/public/language/zh-CN/pages.json @@ -48,6 +48,7 @@ "account/topics": "%1 创建的主题", "account/groups": "%1 的群组", "account/watched_categories": "%1 关注的版块", + "account/watched-tags": "%1's Watched Tags", "account/bookmarks": "%1 收藏的帖子", "account/settings": "用户设置", "account/settings-of": "改变设置的 %1", diff --git a/public/language/zh-CN/tags.json b/public/language/zh-CN/tags.json index 0a670ab040..19cc0c219f 100644 --- a/public/language/zh-CN/tags.json +++ b/public/language/zh-CN/tags.json @@ -7,5 +7,11 @@ "enter_tags_here_short": "输入标签...", "no_tags": "尚无标签。", "select_tags": "选择标签", - "tag-whitelist": "标签白名单" + "tag-whitelist": "标签白名单", + "watching": "Watching", + "not-watching": "Not Watching", + "watching.description": "Notify me of new topics.", + "not-watching.description": "Do not notify me of new topics.", + "following-tag.message": "You will now be receiving notifications when somebody posts a topic with this tag.", + "not-following-tag.message": "You will not receive notifications when somebody posts a topic with this tag." } \ No newline at end of file diff --git a/public/language/zh-CN/user.json b/public/language/zh-CN/user.json index 04bb681ca3..5025f778c2 100644 --- a/public/language/zh-CN/user.json +++ b/public/language/zh-CN/user.json @@ -36,6 +36,7 @@ "reputation": "声望", "bookmarks": "书签", "watched_categories": "已关注的版块", + "watched-tags": "Watched tags", "change_all": "更改全部", "watched": "已关注", "ignored": "忽略", diff --git a/public/language/zh-TW/notifications.json b/public/language/zh-TW/notifications.json index 2e4da932df..b418d3bea5 100644 --- a/public/language/zh-TW/notifications.json +++ b/public/language/zh-TW/notifications.json @@ -12,6 +12,7 @@ "you_have_unread_notifications": "您有未讀的通知。", "all": "所有", "topics": "主題", + "tags": "Tags", "replies": "回覆", "chat": "聊天", "group-chat": "Group Chats", @@ -22,10 +23,10 @@ "my-flags": "指派舉報給我", "bans": "停權", "new_message_from": "來自 %1 的新訊息", - "user_posted_in_public_room": "%1 wrote in %3", - "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", - "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", - "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", + "user_posted_in_public_room": "%1 wrote in %3", + "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", + "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", + "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", "upvoted_your_post_in": "%1%2 點讚了您的貼文。", "upvoted_your_post_in_dual": "%1%2%3 點讚了您的貼文。", "upvoted_your_post_in_triple": "%1, %2 and %3 have upvoted your post in %4.", @@ -46,6 +47,10 @@ "user_posted_to_multiple": "%1, %2 and %3 others have posted replies to: %4", "user_posted_topic": "%1 發表了新主題:%2", "user_edited_post": "%1%2編輯了一則貼文", + "user_posted_topic_with_tag": "%1 has posted a new topic with tag %2", + "user_posted_topic_with_tag_dual": "%1 has posted a new topic with tags %2 and %3", + "user_posted_topic_with_tag_triple": "%1 has posted a new topic with tags %2, %3 and %4", + "user_posted_topic_with_tag_multiple": "%1 has posted a new topic with tags %2", "user_started_following_you": "%1追隨了您。", "user_started_following_you_dual": "%1%2 追隨了您。", "user_started_following_you_triple": "%1, %2 and %3 started following you.", @@ -71,6 +76,7 @@ "notification_and_email": "頁面以及電郵", "notificationType_upvote": "當有人點贊了我的貼文時", "notificationType_new-topic": "當有人回覆我的貼文時", + "notificationType_new-topic-with-tag": "When a topic is posted with a tag you follow", "notificationType_new-reply": "當您正在查看的主題中有新回覆時", "notificationType_post-edit": "當您關注中的主題有貼文被編輯時", "notificationType_follow": "當有人追隨您時", diff --git a/public/language/zh-TW/pages.json b/public/language/zh-TW/pages.json index f8df8838a0..305904d442 100644 --- a/public/language/zh-TW/pages.json +++ b/public/language/zh-TW/pages.json @@ -48,6 +48,7 @@ "account/topics": "%1 建立的主題", "account/groups": "%1 的群組", "account/watched_categories": "%1 關注的版面", + "account/watched-tags": "%1's Watched Tags", "account/bookmarks": "%1 收藏的貼文", "account/settings": "使用者設定", "account/settings-of": "Changing settings of %1", diff --git a/public/language/zh-TW/tags.json b/public/language/zh-TW/tags.json index 5f5d34922a..8ed1d740e0 100644 --- a/public/language/zh-TW/tags.json +++ b/public/language/zh-TW/tags.json @@ -7,5 +7,11 @@ "enter_tags_here_short": "輸入標籤...", "no_tags": "尚無標籤。", "select_tags": "選擇標籤", - "tag-whitelist": "Tag Whitelist" + "tag-whitelist": "Tag Whitelist", + "watching": "Watching", + "not-watching": "Not Watching", + "watching.description": "Notify me of new topics.", + "not-watching.description": "Do not notify me of new topics.", + "following-tag.message": "You will now be receiving notifications when somebody posts a topic with this tag.", + "not-following-tag.message": "You will not receive notifications when somebody posts a topic with this tag." } \ No newline at end of file diff --git a/public/language/zh-TW/user.json b/public/language/zh-TW/user.json index d4a4cb1366..85218464b6 100644 --- a/public/language/zh-TW/user.json +++ b/public/language/zh-TW/user.json @@ -36,6 +36,7 @@ "reputation": "聲望", "bookmarks": "書籤", "watched_categories": "已關注的版面", + "watched-tags": "Watched tags", "change_all": "全部更改", "watched": "已關注", "ignored": "已忽略", From dbd0a715f2df4ebff9a5cb6e48ae2965b0142a9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Wed, 27 Sep 2023 17:23:55 -0400 Subject: [PATCH 100/275] fix: #12044, only load notifications when opening dropdown update code to use bs5 class "show" --- public/src/client/header/notifications.js | 27 +++++++++++------------ 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/public/src/client/header/notifications.js b/public/src/client/header/notifications.js index 024cc5960f..2b37b45cd0 100644 --- a/public/src/client/header/notifications.js +++ b/public/src/client/header/notifications.js @@ -1,25 +1,24 @@ 'use strict'; -define('forum/header/notifications', ['components'], function (components) { +define('forum/header/notifications', function () { const notifications = {}; notifications.prepareDOM = function () { - const notifContainer = components.get('notifications'); - const notifTrigger = notifContainer.children('a'); - const notifList = components.get('notifications/list'); + const notifTrigger = $('[component="notifications"] [data-bs-toggle="dropdown"]'); + if (!notifTrigger.length) { + return; + } - notifTrigger.on('click', function (e) { - e.preventDefault(); - if (notifContainer.hasClass('open')) { - return; - } - - requireAndCall('loadNotifications', notifList); + notifTrigger.on('show.bs.dropdown', (ev) => { + requireAndCall('loadNotifications', $(ev.target).parent().find('[component="notifications/list"]')); }); - if (notifTrigger.parents('.dropdown').hasClass('open')) { - requireAndCall('loadNotifications', notifList); - } + notifTrigger.each((index, el) => { + const dropdownEl = $(el).parent().find('.dropdown-menu'); + if (dropdownEl.hasClass('show')) { + requireAndCall('loadNotifications', dropdownEl.find('[component="notifications/list"]')); + } + }); socket.removeListener('event:new_notification', onNewNotification); socket.on('event:new_notification', onNewNotification); From a05666b9ca20b3dad23a3e70918d382740a27538 Mon Sep 17 00:00:00 2001 From: Misty Release Bot Date: Thu, 28 Sep 2023 09:18:52 +0000 Subject: [PATCH 101/275] Latest translations and fallbacks --- public/language/bg/notifications.json | 20 ++++++++++---------- public/language/bg/pages.json | 2 +- public/language/bg/tags.json | 12 ++++++------ public/language/bg/user.json | 2 +- public/language/he/modules.json | 16 ++++++++-------- public/language/he/notifications.json | 4 ++-- public/language/he/tags.json | 12 ++++++------ public/language/he/user.json | 2 +- 8 files changed, 35 insertions(+), 35 deletions(-) diff --git a/public/language/bg/notifications.json b/public/language/bg/notifications.json index 50fd2c747b..63bff29e8b 100644 --- a/public/language/bg/notifications.json +++ b/public/language/bg/notifications.json @@ -12,7 +12,7 @@ "you_have_unread_notifications": "Имате непрочетени известия", "all": "Всички", "topics": "Теми", - "tags": "Tags", + "tags": "Етикети", "replies": "Отговори", "chat": "Разговори", "group-chat": "Групови разговори", @@ -23,10 +23,10 @@ "my-flags": "Докладвания, назначени на мен", "bans": "Блокирания", "new_message_from": "Ново съобщение от %1", - "user_posted_in_public_room": "%1 wrote in %3", - "user_posted_in_public_room_dual": "%1 and %2 wrote in %4", - "user_posted_in_public_room_triple": "%1, %2 and %3 wrote in %5", - "user_posted_in_public_room_multiple": "%1, %2 and %3 others wrote in %5", + "user_posted_in_public_room": "%1 писа в %3", + "user_posted_in_public_room_dual": "%1 и %2 писаха в %4", + "user_posted_in_public_room_triple": "%1, %2 и %3 писаха в %5", + "user_posted_in_public_room_multiple": "%1, %2 и %3 други писаха в %5", "upvoted_your_post_in": "%1 гласува положително за Ваша публикация в %2.", "upvoted_your_post_in_dual": "%1 и %2 гласуваха положително за Ваша публикация в %3.", "upvoted_your_post_in_triple": "%1, %2 и %3 гласуваха положително за Ваша публикация в %4.", @@ -47,10 +47,10 @@ "user_posted_to_multiple": "%1, %2 и %3 други публикуваха отговори на: %4", "user_posted_topic": "%1 публикува нова тема: %2", "user_edited_post": "%1 редактира публикация в %2", - "user_posted_topic_with_tag": "%1 has posted a new topic with tag %2", - "user_posted_topic_with_tag_dual": "%1 has posted a new topic with tags %2 and %3", - "user_posted_topic_with_tag_triple": "%1 has posted a new topic with tags %2, %3 and %4", - "user_posted_topic_with_tag_multiple": "%1 has posted a new topic with tags %2", + "user_posted_topic_with_tag": "%1 публикува нова тема с етикет %2", + "user_posted_topic_with_tag_dual": "%1 публикува нова тема с етикети %2 и %3", + "user_posted_topic_with_tag_triple": "%1 публикува нова тема с етикети %2, %3 и %4", + "user_posted_topic_with_tag_multiple": "%1 публикува нова тема с етикети %2", "user_started_following_you": "%1 започна да Ви следва.", "user_started_following_you_dual": "%1 и %2 започнаха да Ви следват.", "user_started_following_you_triple": "%1, %2 и %3 започнаха да Ви следват.", @@ -76,7 +76,7 @@ "notification_and_email": "Известие и е-писмо", "notificationType_upvote": "Когато някой гласува положително за Ваша публикация", "notificationType_new-topic": "Когато някой, когото следвате, публикува тема", - "notificationType_new-topic-with-tag": "When a topic is posted with a tag you follow", + "notificationType_new-topic-with-tag": "Когато бъде публикувана нова тема с етикет, който следвате", "notificationType_new-reply": "Когато бъде публикуван нов отговор в тема, която следвате", "notificationType_post-edit": "Когато бъде редактирана публикация в тема, която следите", "notificationType_follow": "Когато някой започне да Ви следва", diff --git a/public/language/bg/pages.json b/public/language/bg/pages.json index 0be7793c8e..c47bffa59e 100644 --- a/public/language/bg/pages.json +++ b/public/language/bg/pages.json @@ -48,7 +48,7 @@ "account/topics": "Теми, създадени от %1", "account/groups": "Групите на %1", "account/watched_categories": "Следените категории на %1", - "account/watched-tags": "%1's Watched Tags", + "account/watched-tags": "Следените етикети на %1", "account/bookmarks": "Отметнатите публикации на %1", "account/settings": "Потребителски настройки", "account/settings-of": "Променят се настройките на %1", diff --git a/public/language/bg/tags.json b/public/language/bg/tags.json index da566605a9..b864ce2cc5 100644 --- a/public/language/bg/tags.json +++ b/public/language/bg/tags.json @@ -8,10 +8,10 @@ "no_tags": "Все още няма етикети.", "select_tags": "Изберете етикети", "tag-whitelist": "Списък от разрешени етикети", - "watching": "Watching", - "not-watching": "Not Watching", - "watching.description": "Notify me of new topics.", - "not-watching.description": "Do not notify me of new topics.", - "following-tag.message": "You will now be receiving notifications when somebody posts a topic with this tag.", - "not-following-tag.message": "You will not receive notifications when somebody posts a topic with this tag." + "watching": "Следите", + "not-watching": "Не следите", + "watching.description": "Искам да получавам известия за нови теми.", + "not-watching.description": "Не искам да получавам известия за нови теми.", + "following-tag.message": "Вече ще получавате известия, когато някой публикува тема с този етикет.", + "not-following-tag.message": "Няма да получавате известия, когато някой публикува тема с този етикет." } \ No newline at end of file diff --git a/public/language/bg/user.json b/public/language/bg/user.json index c802da0d55..580ff2dd01 100644 --- a/public/language/bg/user.json +++ b/public/language/bg/user.json @@ -36,7 +36,7 @@ "reputation": "Репутация", "bookmarks": "Отметки", "watched_categories": "Следени категории", - "watched-tags": "Watched tags", + "watched-tags": "Следени етикети", "change_all": "Промяна на всички", "watched": "Следени", "ignored": "Пренебрегвани", diff --git a/public/language/he/modules.json b/public/language/he/modules.json index e276537b63..00a50205d1 100644 --- a/public/language/he/modules.json +++ b/public/language/he/modules.json @@ -85,13 +85,13 @@ "composer.uploading": "העלאה %1", "composer.formatting.bold": "מודגש", "composer.formatting.italic": "נטוי", - "composer.formatting.heading": "Heading", - "composer.formatting.heading1": "Heading 1", - "composer.formatting.heading2": "Heading 2", - "composer.formatting.heading3": "Heading 3", - "composer.formatting.heading4": "Heading 4", - "composer.formatting.heading5": "Heading 5", - "composer.formatting.heading6": "Heading 6", + "composer.formatting.heading": "כותרת", + "composer.formatting.heading1": "כותרת 1", + "composer.formatting.heading2": "כותרת 2", + "composer.formatting.heading3": "כותרת 3", + "composer.formatting.heading4": "כותרת 4", + "composer.formatting.heading5": "כותרת 5", + "composer.formatting.heading6": "כותרת 6", "composer.formatting.list": "רשימה", "composer.formatting.strikethrough": "קו פוסל", "composer.formatting.code": "קוד", @@ -102,7 +102,7 @@ "composer.zen_mode": "מסך מלא", "composer.select_category": "בחירת קטגוריה", "composer.textarea.placeholder": "כתבו את תוכן הפוסט כאן. ניתן גם לגרור ולשחרר כאן תמונות.", - "composer.post-queue-alert": "Hello👋!
This forum uses a post queue system, since you are a new user your post will be hidden until it is approved by our moderation team.", + "composer.post-queue-alert": "היי 👋! פורום זה משתמש במערכת אישור פוסטים. מכיוון שאתה משתמש חדש הפוסט שלך יוסתר עד שהוא יאושר על ידי צוות הניהול של הפורום.", "composer.schedule-for": "תזמון נושא ל", "composer.schedule-date": "תאריך", "composer.schedule-time": "שעה", diff --git a/public/language/he/notifications.json b/public/language/he/notifications.json index ea30c2ea65..e5e1913b2b 100644 --- a/public/language/he/notifications.json +++ b/public/language/he/notifications.json @@ -12,7 +12,7 @@ "you_have_unread_notifications": "יש לך התראות שלא נקראו.", "all": "הכל", "topics": "נושאים", - "tags": "Tags", + "tags": "תגיות", "replies": "תגובות", "chat": "צ'אטים", "group-chat": "צ'אט קבוצתי", @@ -76,7 +76,7 @@ "notification_and_email": "התראות & דוא\"ל", "notificationType_upvote": "כאשר מישהו מצביע בעד הפוסט שלך", "notificationType_new-topic": "כשמישהו שאתה עוקב אחריו פרסם נושא", - "notificationType_new-topic-with-tag": "When a topic is posted with a tag you follow", + "notificationType_new-topic-with-tag": "כאשר נושא מתפרסם עם תג שאתה עוקב אחריו", "notificationType_new-reply": "כשתגובה חדשה מפורסמת בנושא שאתה עוקב אחריו", "notificationType_post-edit": "כשפוסט נערך בנושא שאתה עוקב אחריו", "notificationType_follow": "כשמישהו מתחיל לעקוב אחריך", diff --git a/public/language/he/tags.json b/public/language/he/tags.json index 4ca8fd5277..d2c2adb5d3 100644 --- a/public/language/he/tags.json +++ b/public/language/he/tags.json @@ -8,10 +8,10 @@ "no_tags": "אין עדיין תגיות.", "select_tags": "בחר תגיות", "tag-whitelist": "רשימה לבנה של תגיות", - "watching": "Watching", - "not-watching": "Not Watching", - "watching.description": "Notify me of new topics.", - "not-watching.description": "Do not notify me of new topics.", - "following-tag.message": "You will now be receiving notifications when somebody posts a topic with this tag.", - "not-following-tag.message": "You will not receive notifications when somebody posts a topic with this tag." + "watching": "עוקב", + "not-watching": "לא עוקב", + "watching.description": "הודע לי על נושאים חדשים.", + "not-watching.description": "אל תודיע לי על נושאים חדשים.", + "following-tag.message": "מעכשיו תקבל התראה כאשר מישהו יפרסם נושא עם התג הזה.", + "not-following-tag.message": "לא תקבל התראות כאשר מישהו יפרסם נושא עם התג הזה." } \ No newline at end of file diff --git a/public/language/he/user.json b/public/language/he/user.json index 29229f3ec8..d18cc8fb54 100644 --- a/public/language/he/user.json +++ b/public/language/he/user.json @@ -36,7 +36,7 @@ "reputation": "מוניטין", "bookmarks": "מועדפים", "watched_categories": "קטגוריות במעקב", - "watched-tags": "Watched tags", + "watched-tags": "תגיות שבמעקב", "change_all": "שנה הכל", "watched": "נצפה", "ignored": "התעלם", From be14f6cc52781c2122af3055e3ac03a190a2346d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Thu, 28 Sep 2023 10:10:30 -0400 Subject: [PATCH 102/275] feat: closes #11553, add forked from message like merged into --- public/language/en-GB/topic.json | 1 + public/openapi/read/topic/topic_id.yaml | 2 ++ src/topics/fork.js | 3 +++ src/topics/index.js | 21 +++++++++++++++++++++ src/views/partials/topic/forked-message.tpl | 6 ++++++ src/views/partials/topic/merged-message.tpl | 2 +- 6 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 src/views/partials/topic/forked-message.tpl diff --git a/public/language/en-GB/topic.json b/public/language/en-GB/topic.json index 162307c5b3..49038b86c1 100644 --- a/public/language/en-GB/topic.json +++ b/public/language/en-GB/topic.json @@ -79,6 +79,7 @@ "resolve-flag": "Resolve Flag", "merged_message": "This topic has been merged into %2", + "forked-message": "This topic was forked from %2", "deleted_message": "This topic has been deleted. Only users with topic management privileges can see it.", "following_topic.message": "You will now be receiving notifications when somebody posts to this topic.", diff --git a/public/openapi/read/topic/topic_id.yaml b/public/openapi/read/topic/topic_id.yaml index 0117775f39..cee628cce2 100644 --- a/public/openapi/read/topic/topic_id.yaml +++ b/public/openapi/read/topic/topic_id.yaml @@ -315,6 +315,8 @@ get: nullable: true merger: nullable: true + forker: + nullable: true related: type: array items: diff --git a/src/topics/fork.js b/src/topics/fork.js index 8ab87b9130..e94da7f1c3 100644 --- a/src/topics/fork.js +++ b/src/topics/fork.js @@ -70,6 +70,9 @@ module.exports = function (Topics) { Topics.setTopicFields(tid, { upvotes: postData.upvotes, downvotes: postData.downvotes, + forkedFromTid: fromTid, + forkerUid: uid, + forkTimestamp: Date.now(), }), db.sortedSetsAdd(['topics:votes', `cid:${cid}:tids:votes`], postData.votes, tid), Topics.events.log(fromTid, { type: 'fork', uid, href: `/topic/${tid}` }), diff --git a/src/topics/index.js b/src/topics/index.js index ef08b7ccde..d5e997d4c0 100644 --- a/src/topics/index.js +++ b/src/topics/index.js @@ -164,6 +164,7 @@ Topics.getTopicWithPosts = async function (topicData, set, uid, start, stop, rev postSharing, deleter, merger, + forker, related, thumbs, events, @@ -177,6 +178,7 @@ Topics.getTopicWithPosts = async function (topicData, set, uid, start, stop, rev social.getActivePostSharing(), getDeleter(topicData), getMerger(topicData), + getForker(topicData), Topics.getRelatedTopics(topicData, uid), Topics.thumbs.load([topicData]), Topics.events.get(topicData.tid, uid, reverse), @@ -211,6 +213,10 @@ Topics.getTopicWithPosts = async function (topicData, set, uid, start, stop, rev if (merger) { topicData.mergedTimestampISO = utils.toISOString(topicData.mergedTimestamp); } + topicData.forker = forker; + if (forker) { + topicData.forkTimestampISO = utils.toISOString(topicData.forkTimestamp); + } topicData.related = related || []; topicData.unreplied = topicData.postcount === 1; topicData.icons = []; @@ -241,6 +247,21 @@ async function getMerger(topicData) { return merger; } +async function getForker(topicData) { + if (!parseInt(topicData.forkerUid, 10)) { + return null; + } + const [ + forker, + forkedFromTitle, + ] = await Promise.all([ + user.getUserFields(topicData.forkerUid, ['username', 'userslug', 'picture']), + Topics.getTopicField(topicData.forkedFromTid, 'title'), + ]); + forker.forkedFromTitle = forkedFromTitle; + return forker; +} + Topics.getMainPost = async function (tid, uid) { const mainPosts = await Topics.getMainPosts([tid], uid); return Array.isArray(mainPosts) && mainPosts.length ? mainPosts[0] : null; diff --git a/src/views/partials/topic/forked-message.tpl b/src/views/partials/topic/forked-message.tpl new file mode 100644 index 0000000000..7117bdd1ce --- /dev/null +++ b/src/views/partials/topic/forked-message.tpl @@ -0,0 +1,6 @@ +
+ [[topic:forked-message, {config.relative_path}/topic/{forkedFromTid}, {forker.forkedFromTitle}]] + + {forker.username} + +
\ No newline at end of file diff --git a/src/views/partials/topic/merged-message.tpl b/src/views/partials/topic/merged-message.tpl index 5b24459d91..f5b10869f4 100644 --- a/src/views/partials/topic/merged-message.tpl +++ b/src/views/partials/topic/merged-message.tpl @@ -1,4 +1,4 @@ -
+
[[topic:merged_message, {config.relative_path}/topic/{mergeIntoTid}, {merger.mergedIntoTitle}]] {merger.username} From 8df56d60a168d2397626347d886a91daba40f725 Mon Sep 17 00:00:00 2001 From: Misty Release Bot Date: Thu, 28 Sep 2023 14:10:55 +0000 Subject: [PATCH 103/275] chore(i18n): fallback strings for new resources: nodebb.topic --- public/language/ar/topic.json | 1 + public/language/bg/topic.json | 1 + public/language/bn/topic.json | 1 + public/language/cs/topic.json | 1 + public/language/da/topic.json | 1 + public/language/de/topic.json | 1 + public/language/el/topic.json | 1 + public/language/en-US/topic.json | 1 + public/language/en-x-pirate/topic.json | 1 + public/language/es/topic.json | 1 + public/language/et/topic.json | 1 + public/language/fa-IR/topic.json | 1 + public/language/fi/topic.json | 1 + public/language/fr/topic.json | 1 + public/language/gl/topic.json | 1 + public/language/he/topic.json | 1 + public/language/hr/topic.json | 1 + public/language/hu/topic.json | 1 + public/language/hy/topic.json | 1 + public/language/id/topic.json | 1 + public/language/it/topic.json | 1 + public/language/ja/topic.json | 1 + public/language/ko/topic.json | 1 + public/language/lt/topic.json | 1 + public/language/lv/topic.json | 1 + public/language/ms/topic.json | 1 + public/language/nb/topic.json | 1 + public/language/nl/topic.json | 1 + public/language/pl/topic.json | 1 + public/language/pt-BR/topic.json | 1 + public/language/pt-PT/topic.json | 1 + public/language/ro/topic.json | 1 + public/language/ru/topic.json | 1 + public/language/rw/topic.json | 1 + public/language/sc/topic.json | 1 + public/language/sk/topic.json | 1 + public/language/sl/topic.json | 1 + public/language/sq-AL/topic.json | 1 + public/language/sr/topic.json | 1 + public/language/sv/topic.json | 1 + public/language/th/topic.json | 1 + public/language/tr/topic.json | 1 + public/language/uk/topic.json | 1 + public/language/vi/topic.json | 1 + public/language/zh-CN/topic.json | 1 + public/language/zh-TW/topic.json | 1 + 46 files changed, 46 insertions(+) diff --git a/public/language/ar/topic.json b/public/language/ar/topic.json index 44e149abdf..c9c4c3d550 100644 --- a/public/language/ar/topic.json +++ b/public/language/ar/topic.json @@ -71,6 +71,7 @@ "view-flag-report": "View Flag Report", "resolve-flag": "Resolve Flag", "merged_message": "This topic has been merged into %2", + "forked-message": "This topic was forked from %2", "deleted_message": "هذه المشاركة محذوفة. فقط من لهم صلاحية الإشراف على ا لمشاركات يمكنهم معاينتها.", "following_topic.message": "ستستلم تنبيها عند كل مشاركة جديدة في هذا الموضوع.", "not_following_topic.message": "You will see this topic in the unread topics list, but you will not receive notifications when somebody posts to this topic.", diff --git a/public/language/bg/topic.json b/public/language/bg/topic.json index 156670b1aa..c4c73e3aa4 100644 --- a/public/language/bg/topic.json +++ b/public/language/bg/topic.json @@ -71,6 +71,7 @@ "view-flag-report": "Преглед на доклада", "resolve-flag": "Разрешаване на доклада", "merged_message": "Тази тема беше слята в %2", + "forked-message": "This topic was forked from %2", "deleted_message": "Темата е изтрита. Само потребители с права за управление на темите могат да я видят.", "following_topic.message": "Вече ще получавате известия когато някой публикува коментар в тази тема.", "not_following_topic.message": "Ще виждате тази тема в списъка с непрочетени теми, но няма да получавате известия, когато хората публикуват нещо в нея.", diff --git a/public/language/bn/topic.json b/public/language/bn/topic.json index 2d59e3907c..514c69dc65 100644 --- a/public/language/bn/topic.json +++ b/public/language/bn/topic.json @@ -71,6 +71,7 @@ "view-flag-report": "View Flag Report", "resolve-flag": "Resolve Flag", "merged_message": "This topic has been merged into %2", + "forked-message": "This topic was forked from %2", "deleted_message": "এই টপিকটি মুছে ফেলা হয়েছে। শুধুমাত্র টপিক ব্যবস্থাপনার ক্ষমতাপ্রাপ্ত সদস্যগণ এটি দেখতে পারবেন।", "following_topic.message": "এখন থেকে এই টপিকে অন্যকেউ পোস্ট করলে আপনি নোটিফিকেশন পাবেন।", "not_following_topic.message": "You will see this topic in the unread topics list, but you will not receive notifications when somebody posts to this topic.", diff --git a/public/language/cs/topic.json b/public/language/cs/topic.json index 4198b2384f..32216d50fe 100644 --- a/public/language/cs/topic.json +++ b/public/language/cs/topic.json @@ -71,6 +71,7 @@ "view-flag-report": "View Flag Report", "resolve-flag": "Resolve Flag", "merged_message": "This topic has been merged into %2", + "forked-message": "This topic was forked from %2", "deleted_message": "Toto téma bylo odstraněno. Jen uživatelé s oprávněním správy témat ho mohou vidět.", "following_topic.message": "Nyní budete dostávat upozornění, jakmile někdo přidá příspěvek do tohoto tématu.", "not_following_topic.message": " Toto téma uvidíte v seznamu nepřečtených témat, ale neobdržíte upozornění, přidá-li někdo nový příspěvek.", diff --git a/public/language/da/topic.json b/public/language/da/topic.json index dab738c0a5..5ea0d56125 100644 --- a/public/language/da/topic.json +++ b/public/language/da/topic.json @@ -71,6 +71,7 @@ "view-flag-report": "View Flag Report", "resolve-flag": "Resolve Flag", "merged_message": "This topic has been merged into %2", + "forked-message": "This topic was forked from %2", "deleted_message": "Denne tråd er blevet slettet. Kun brugere med emne behandlings privilegier kan se den.", "following_topic.message": "Du vil nu modtage notifikationer når nogle skriver et indlæg i dette emne.", "not_following_topic.message": "You will see this topic in the unread topics list, but you will not receive notifications when somebody posts to this topic.", diff --git a/public/language/de/topic.json b/public/language/de/topic.json index a00bd53389..4543844a2b 100644 --- a/public/language/de/topic.json +++ b/public/language/de/topic.json @@ -71,6 +71,7 @@ "view-flag-report": "Meldungs-Report anzeigen", "resolve-flag": "Als Gelöst markiert", "merged_message": "Diese Thema wurde mit %2 fusioniert", + "forked-message": "This topic was forked from %2", "deleted_message": "Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.", "following_topic.message": "Du erhältst nun eine Benachrichtigung, wenn jemand einen Beitrag zu diesem Thema verfasst.", "not_following_topic.message": "Ungelesene Beiträge in diesem Thema werden angezeigt, aber du erhältst keine Benachrichtigung wenn jemand einen Beitrag zu diesem Thema verfasst.", diff --git a/public/language/el/topic.json b/public/language/el/topic.json index e360ec36f6..523df092aa 100644 --- a/public/language/el/topic.json +++ b/public/language/el/topic.json @@ -71,6 +71,7 @@ "view-flag-report": "View Flag Report", "resolve-flag": "Resolve Flag", "merged_message": "This topic has been merged into %2", + "forked-message": "This topic was forked from %2", "deleted_message": "Το θέμα αυτό έχει διαγραφεί. Μόνο οι χρήστες με δικαιώματα διαχειριστή θεμάτων μπορούν να το δουν.", "following_topic.message": "Θα λαμβάνεις ειδοποιήσεις όποτε κάποιος δημοσιεύει κάτι σε αυτό το θέμα.", "not_following_topic.message": "You will see this topic in the unread topics list, but you will not receive notifications when somebody posts to this topic.", diff --git a/public/language/en-US/topic.json b/public/language/en-US/topic.json index 30bbd10cd7..6a5f2814e4 100644 --- a/public/language/en-US/topic.json +++ b/public/language/en-US/topic.json @@ -71,6 +71,7 @@ "view-flag-report": "View Flag Report", "resolve-flag": "Resolve Flag", "merged_message": "This topic has been merged into %2", + "forked-message": "This topic was forked from %2", "deleted_message": "This topic has been deleted. Only users with topic management privileges can see it.", "following_topic.message": "You will now be receiving notifications when somebody posts to this topic.", "not_following_topic.message": "You will see this topic in the unread topics list, but you will not receive notifications when somebody posts to this topic.", diff --git a/public/language/en-x-pirate/topic.json b/public/language/en-x-pirate/topic.json index 30bbd10cd7..6a5f2814e4 100644 --- a/public/language/en-x-pirate/topic.json +++ b/public/language/en-x-pirate/topic.json @@ -71,6 +71,7 @@ "view-flag-report": "View Flag Report", "resolve-flag": "Resolve Flag", "merged_message": "This topic has been merged into %2", + "forked-message": "This topic was forked from %2", "deleted_message": "This topic has been deleted. Only users with topic management privileges can see it.", "following_topic.message": "You will now be receiving notifications when somebody posts to this topic.", "not_following_topic.message": "You will see this topic in the unread topics list, but you will not receive notifications when somebody posts to this topic.", diff --git a/public/language/es/topic.json b/public/language/es/topic.json index 477dc3a6c5..d6ecabc777 100644 --- a/public/language/es/topic.json +++ b/public/language/es/topic.json @@ -71,6 +71,7 @@ "view-flag-report": "View Flag Report", "resolve-flag": "Resolve Flag", "merged_message": "This topic has been merged into %2", + "forked-message": "This topic was forked from %2", "deleted_message": "Este tema ha sido borrado. Solo los usuarios que tengan privilegios de administración de temas pueden verlo.", "following_topic.message": "Ahora recibiras notificaciones cuando alguien publique en este tema.", "not_following_topic.message": "Podras ver este tema en la lista de no leidos, pero no recibirás notificaciones cuando alguien escriba en él.", diff --git a/public/language/et/topic.json b/public/language/et/topic.json index 1fb9c80cdf..31f75c8eab 100644 --- a/public/language/et/topic.json +++ b/public/language/et/topic.json @@ -71,6 +71,7 @@ "view-flag-report": "View Flag Report", "resolve-flag": "Resolve Flag", "merged_message": "This topic has been merged into %2", + "forked-message": "This topic was forked from %2", "deleted_message": "See teema on kustutatud. Ainult kasutajad kellel on piisavalt õigusi saavad seda näha.", "following_topic.message": "Sulle ei edastata enam teateid uutest postitustest kui keegi postitab siia teemasse.", "not_following_topic.message": "Sa näed seda postitust lugemata postituste nimekirjas, kuid sa ei näe selle kohta teateid, kui keegi sinna postitab.", diff --git a/public/language/fa-IR/topic.json b/public/language/fa-IR/topic.json index d7dfe75444..8b598ff1f1 100644 --- a/public/language/fa-IR/topic.json +++ b/public/language/fa-IR/topic.json @@ -71,6 +71,7 @@ "view-flag-report": "View Flag Report", "resolve-flag": "Resolve Flag", "merged_message": "این تاپیک با %2 ادغام شد ", + "forked-message": "This topic was forked from %2", "deleted_message": "این موضوع پاک شده است. تنها کاربرانِ با حق مدیریت موضوع می‌توانند آن را ببینند.", "following_topic.message": "زمانی که کسی پست جدیدی در این تاپیک بفرستد شما نوتیفیکشن دریافت خواهید کرد.", "not_following_topic.message": "شما این تاپیک را در لیست تاپیک‌های خوانده‌نشده می‌بینید، اما وقتی پست جدیدی ارسال می‌شود نوتیفیکشن دریافت نمی‌کنید.", diff --git a/public/language/fi/topic.json b/public/language/fi/topic.json index b882d88949..b380e67467 100644 --- a/public/language/fi/topic.json +++ b/public/language/fi/topic.json @@ -71,6 +71,7 @@ "view-flag-report": "View Flag Report", "resolve-flag": "Resolve Flag", "merged_message": "This topic has been merged into %2", + "forked-message": "This topic was forked from %2", "deleted_message": "Tämä aihe on poistettu. Vain käyttäjät, joilla on aiheen hallintaoikeudet, voivat nähdä sen.", "following_topic.message": "Saat nyt ilmoituksen, kun joku kirjoittaa tähän aiheeseen.", "not_following_topic.message": "Et näe tätä aihetta lukemattomissa aiheissa, mutta saat ilmoituksen kun joku lähettää viestin tähän aiheeseen.", diff --git a/public/language/fr/topic.json b/public/language/fr/topic.json index 6dbd968faa..3bb3fb6763 100644 --- a/public/language/fr/topic.json +++ b/public/language/fr/topic.json @@ -71,6 +71,7 @@ "view-flag-report": "Voir le rapport de signalement", "resolve-flag": "Signalement résolu", "merged_message": "Ce sujet a été fusionné dans %2", + "forked-message": "This topic was forked from %2", "deleted_message": "Ce sujet a été supprimé. Seuls les utilisateurs avec les droits d'administration peuvent le voir.", "following_topic.message": "Vous recevrez désormais des notifications lorsque quelqu'un postera dans ce sujet.", "not_following_topic.message": "Vous verrez ce sujet dans la liste des sujets non-lus, mais vous ne recevrez pas de notification lorsque quelqu'un postera dans ce sujet.", diff --git a/public/language/gl/topic.json b/public/language/gl/topic.json index e3e1c1d0fd..90a6130851 100644 --- a/public/language/gl/topic.json +++ b/public/language/gl/topic.json @@ -71,6 +71,7 @@ "view-flag-report": "View Flag Report", "resolve-flag": "Resolve Flag", "merged_message": "This topic has been merged into %2", + "forked-message": "This topic was forked from %2", "deleted_message": "Este tema foi borrado. Só os usuarios con privilexios administrativos poden velo.", "following_topic.message": "Agora recibirás notificacións cando alguén publique neste tema.", "not_following_topic.message": "Poderás ver este tema na lista de No Lidos, pero non recibirás notificacións cando alguén escriba nel.", diff --git a/public/language/he/topic.json b/public/language/he/topic.json index 9efe2423e4..3942d7f6cf 100644 --- a/public/language/he/topic.json +++ b/public/language/he/topic.json @@ -71,6 +71,7 @@ "view-flag-report": "הצגת דוח דיווחים", "resolve-flag": "השלמת דיווח", "merged_message": "נושא זה מוזג בתוך %2", + "forked-message": "This topic was forked from %2", "deleted_message": "נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.", "following_topic.message": "תקבלו התראות כאשר יפורסם פוסט חדש בנושא זה.", "not_following_topic.message": "נושא זה יופיע ברשימת הנושאים שלא נקראו, אולם לא תקבלו התראה כשיפורסם פוסט בנושא זה.", diff --git a/public/language/hr/topic.json b/public/language/hr/topic.json index 7c21cd9d3f..1906d39367 100644 --- a/public/language/hr/topic.json +++ b/public/language/hr/topic.json @@ -71,6 +71,7 @@ "view-flag-report": "View Flag Report", "resolve-flag": "Resolve Flag", "merged_message": "This topic has been merged into %2", + "forked-message": "This topic was forked from %2", "deleted_message": "Ova tema je obrisana. Samo korisnici sa privilegijom upravljanja tema je mogu vidjeti.", "following_topic.message": "Od sada ćete primati obavijesti kada netko objavi objavu u ovoj temi.", "not_following_topic.message": "Od sada ćete vidjeti ovu temu u popisu nepročitanih tema,ali nećete dobivati obavijesti kada netko objavi objavu u temi.", diff --git a/public/language/hu/topic.json b/public/language/hu/topic.json index 40e3cdb3ad..4fa6b14210 100644 --- a/public/language/hu/topic.json +++ b/public/language/hu/topic.json @@ -71,6 +71,7 @@ "view-flag-report": "Jelölésekről szóló jelentés megtekintése", "resolve-flag": "Megjelölés megoldása", "merged_message": "Ezt a témát beolvasztották %2", + "forked-message": "This topic was forked from %2", "deleted_message": "A témakör törölve lett. Csak a témakör-kezelési joggal rendelkező felhasználók láthatják.", "following_topic.message": "Mostantól értesítést kapsz, mikor valaki hozzászól ehhez a témakörhöz.", "not_following_topic.message": "Látni fogod ezt a témakört az olvasatlan témakörök listáján, de nem kapsz értesítést, mikor valaki hozzászól a témakörhöz.", diff --git a/public/language/hy/topic.json b/public/language/hy/topic.json index 84b6b4ef8f..7e630fbb36 100644 --- a/public/language/hy/topic.json +++ b/public/language/hy/topic.json @@ -71,6 +71,7 @@ "view-flag-report": "Դիտել դրոշի հաշվետվությունը", "resolve-flag": "Լուծել դրոշը", "merged_message": "Այս թեման միավորվել է %2-ում", + "forked-message": "This topic was forked from %2", "deleted_message": "Այս թեման ջնջվել է։ Այն կարող են տեսնել միայն թեմաների կառավարման արտոնություններ ունեցող օգտվողները:", "following_topic.message": "Այժմ դուք ծանուցումներ կստանաք, երբ ինչ-որ մեկը գրառում անի այս թեմայում:", "not_following_topic.message": "Դուք կտեսնեք այս թեման չընթերցված թեմաների ցանկում, բայց ծանուցումներ չեք ստանա, երբ ինչ-որ մեկը գրառում է անում այս թեմայում:", diff --git a/public/language/id/topic.json b/public/language/id/topic.json index 7e4401d006..d9237a357d 100644 --- a/public/language/id/topic.json +++ b/public/language/id/topic.json @@ -71,6 +71,7 @@ "view-flag-report": "View Flag Report", "resolve-flag": "Resolve Flag", "merged_message": "This topic has been merged into %2", + "forked-message": "This topic was forked from %2", "deleted_message": "Topik ini telah dihapus. Hanya pengguna dengan hak manajemen topik yang dapat melihatnya.", "following_topic.message": "Saat ini kamu akan menerima pemberitahuan saat seseorang membuat posting di dalam topik ini.", "not_following_topic.message": "Anda akan melihat topik ini di daftar topik yang belum dibaca, tetapi Anda tidak akan menerima pemberitahuan ketika seseorang memposting ke topik ini.", diff --git a/public/language/it/topic.json b/public/language/it/topic.json index 9786279944..7cafddd9be 100644 --- a/public/language/it/topic.json +++ b/public/language/it/topic.json @@ -71,6 +71,7 @@ "view-flag-report": "Visualizza rapporto segnalazione", "resolve-flag": "Risolvi segnalazione", "merged_message": "Questa discussione è stata unita a %2", + "forked-message": "This topic was forked from %2", "deleted_message": "Questa discussione è stata eliminata. Solo gli utenti con diritti di gestione possono vederla.", "following_topic.message": "Da ora riceverai notifiche quando qualcuno posterà in questa discussione.", "not_following_topic.message": "Vedrai questa discussione nella lista delle discussioni non lette, ma non riceverai notifiche quando qualcuno risponde a questa discussione.", diff --git a/public/language/ja/topic.json b/public/language/ja/topic.json index ef1ac555ff..50df7c4569 100644 --- a/public/language/ja/topic.json +++ b/public/language/ja/topic.json @@ -71,6 +71,7 @@ "view-flag-report": "View Flag Report", "resolve-flag": "Resolve Flag", "merged_message": "This topic has been merged into %2", + "forked-message": "This topic was forked from %2", "deleted_message": "このスレッドが削除されました。スレッド管理権を持っているユーザーにしか読めません。", "following_topic.message": "このスレッドが更新された際に通知を受け取ります。", "not_following_topic.message": "あなたはスレッド一覧を未読にすると、このスレッドを参照できます。ただし誰かがこのスレッドに投稿したときは通知を受信できません。", diff --git a/public/language/ko/topic.json b/public/language/ko/topic.json index 94654f0f42..0e4c795fa5 100644 --- a/public/language/ko/topic.json +++ b/public/language/ko/topic.json @@ -71,6 +71,7 @@ "view-flag-report": "신고 기록 보기", "resolve-flag": "신고 해결", "merged_message": "이 화제는 %2로 병합되었습니다.", + "forked-message": "This topic was forked from %2", "deleted_message": "이 화제는 삭제됐습니다. 게시물 관리 권한이 있는 사용자만 볼 수 있습니다.", "following_topic.message": "이제 이 화제에 새 답글이 달리면 알림을 받습니다.", "not_following_topic.message": "이 화제를 읽지 않음 목록에서 볼 수 있지만, 이 화제에 달린 포스트에 대해서는 알림을 받지 않습니다.", diff --git a/public/language/lt/topic.json b/public/language/lt/topic.json index ee5c31be86..5428cb078a 100644 --- a/public/language/lt/topic.json +++ b/public/language/lt/topic.json @@ -71,6 +71,7 @@ "view-flag-report": "View Flag Report", "resolve-flag": "Resolve Flag", "merged_message": "This topic has been merged into %2", + "forked-message": "This topic was forked from %2", "deleted_message": "Ši tema buvo ištrinta. Tik Vartotojai su temos redagavimo privilegijomis gali matyti ja", "following_topic.message": "Dabar jūs gausite pranešimus kai kas nors atrašys šioje temoje.", "not_following_topic.message": "You will see this topic in the unread topics list, but you will not receive notifications when somebody posts to this topic.", diff --git a/public/language/lv/topic.json b/public/language/lv/topic.json index 4f46a3b821..b9a85d5fc4 100644 --- a/public/language/lv/topic.json +++ b/public/language/lv/topic.json @@ -71,6 +71,7 @@ "view-flag-report": "View Flag Report", "resolve-flag": "Resolve Flag", "merged_message": "This topic has been merged into %2", + "forked-message": "This topic was forked from %2", "deleted_message": "Šis temats ir izdzēsts. To var skatīt tikai lietotāji ar temata pārvaldības privilēģijām.", "following_topic.message": "Tagad saņemsi paziņojumus, kad kāds šai tematā rakstīs.", "not_following_topic.message": "Tu redzēsi šo tematu nelasīto tematu sarakstā, taču nesaņemsi paziņojumus, kad kāds viņā rakstīs.", diff --git a/public/language/ms/topic.json b/public/language/ms/topic.json index 98eb032da7..5ae05aab62 100644 --- a/public/language/ms/topic.json +++ b/public/language/ms/topic.json @@ -71,6 +71,7 @@ "view-flag-report": "View Flag Report", "resolve-flag": "Resolve Flag", "merged_message": "This topic has been merged into %2", + "forked-message": "This topic was forked from %2", "deleted_message": "Topik ini telah dipadam. Hanya pengguna dengan kuasa pengurusan boleh melihatnya.", "following_topic.message": "Anda akan menerima makluman apabila ada kiriman ke dalam topik ini", "not_following_topic.message": "You will see this topic in the unread topics list, but you will not receive notifications when somebody posts to this topic.", diff --git a/public/language/nb/topic.json b/public/language/nb/topic.json index f63153bd45..34212ea255 100644 --- a/public/language/nb/topic.json +++ b/public/language/nb/topic.json @@ -71,6 +71,7 @@ "view-flag-report": "Vis flaggrapport ", "resolve-flag": "Løs flagg", "merged_message": "Dette emnet er slått sammen med %2", + "forked-message": "This topic was forked from %2", "deleted_message": "Denne tråden har blitt slettet. Bare brukere med trådhåndterings-privilegier kan se den.", "following_topic.message": "Du vil nå motta varsler når noen skriver i denne tråden.", "not_following_topic.message": "Du vil se denne tråden i trådlisten, men du vil ikke motta varslinger når noen skriver i den.", diff --git a/public/language/nl/topic.json b/public/language/nl/topic.json index ee43c94b1c..f3dacf3b62 100644 --- a/public/language/nl/topic.json +++ b/public/language/nl/topic.json @@ -71,6 +71,7 @@ "view-flag-report": "Rapportage inzien", "resolve-flag": "Resolve Flag", "merged_message": "Dit onderwerp is samengevoegd met %2", + "forked-message": "This topic was forked from %2", "deleted_message": "Dit onderwerp is verwijderd. Alleen gebruikers met beheerrechten op onderwerpniveau kunnen dit inzien.", "following_topic.message": "Vanaf nu worden meldingen ontvangen zodra iemand een reactie op dit onderwerp geeft.", "not_following_topic.message": "Dit onderwerp zal verschijnen in de lijst van ongelezen onderwerpen, maar er zullen geen meldingen ontvangen zodra iemand een reactie op dit onderwerp geeft.", diff --git a/public/language/pl/topic.json b/public/language/pl/topic.json index 52a1296339..efa8fe3b4c 100644 --- a/public/language/pl/topic.json +++ b/public/language/pl/topic.json @@ -71,6 +71,7 @@ "view-flag-report": "Zobacz zgłoszenie", "resolve-flag": "Oznacz flagę jako rozwiązaną", "merged_message": "Ten temat został połączony z %2", + "forked-message": "This topic was forked from %2", "deleted_message": "Ten temat został usunięty. Mogą go zobaczyć tylko użytkownicy upoważnieni do zarządzania tematami.", "following_topic.message": "Będziesz teraz otrzymywać powiadomienia o nowych odpowiedziach w tym temacie.", "not_following_topic.message": "Zobaczysz ten temat na liście nieprzeczytanych, ale nie będziesz otrzymywać powiadomień o odpowiedziach w tym temacie.", diff --git a/public/language/pt-BR/topic.json b/public/language/pt-BR/topic.json index bcd91e3566..1cde4c0fcd 100644 --- a/public/language/pt-BR/topic.json +++ b/public/language/pt-BR/topic.json @@ -71,6 +71,7 @@ "view-flag-report": "Ver Relatório da Sinalização", "resolve-flag": "Resolver marcação", "merged_message": "Este tópico foi fundido com %2", + "forked-message": "This topic was forked from %2", "deleted_message": "Este tópico foi deletado. Apenas usuários com privilégios de moderação de tópico podem vê-lo.", "following_topic.message": "Agora você receberá notificações quando alguém responder este tópico.", "not_following_topic.message": "Você verá este tópico na lista de tópicos não-lidos, mas você não receberá notificações quando alguém postar no tópico.", diff --git a/public/language/pt-PT/topic.json b/public/language/pt-PT/topic.json index f3575fff06..8c8bdd23a9 100644 --- a/public/language/pt-PT/topic.json +++ b/public/language/pt-PT/topic.json @@ -71,6 +71,7 @@ "view-flag-report": "View Flag Report", "resolve-flag": "Resolve Flag", "merged_message": "Este tópico foi fundido com %2", + "forked-message": "This topic was forked from %2", "deleted_message": "Este tópico foi eliminado. Apenas utilizadores com privilégios de moderação do tópico podem vê-lo.", "following_topic.message": "A partir de agora receberás uma notificação sempre que alguém publicar neste tópico.", "not_following_topic.message": "Verás este tópico na lista de tópicos por ler mas não irás receber notificações quando alguém publicar neste tópico.", diff --git a/public/language/ro/topic.json b/public/language/ro/topic.json index 0c9643ddf6..cbc29580af 100644 --- a/public/language/ro/topic.json +++ b/public/language/ro/topic.json @@ -71,6 +71,7 @@ "view-flag-report": "View Flag Report", "resolve-flag": "Resolve Flag", "merged_message": "This topic has been merged into %2", + "forked-message": "This topic was forked from %2", "deleted_message": "Acest subiect a fost șters. Doar utilizatorii cu privilegii pentru moderarea subiectelor îl poate vedea.", "following_topic.message": "Vei primi notificări când cineva va posta un nou mesaj in acest subiect.", "not_following_topic.message": "You will see this topic in the unread topics list, but you will not receive notifications when somebody posts to this topic.", diff --git a/public/language/ru/topic.json b/public/language/ru/topic.json index 4936adcc0d..840d5bafec 100644 --- a/public/language/ru/topic.json +++ b/public/language/ru/topic.json @@ -71,6 +71,7 @@ "view-flag-report": "Показать содержание жалобы", "resolve-flag": "Решенная жалоба", "merged_message": "Эта тема была объединена с %2", + "forked-message": "This topic was forked from %2", "deleted_message": "Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.", "following_topic.message": "Теперь вы будете получать уведомления каждый раз, когда кто-нибудь напишет сообщение в эту тему.", "not_following_topic.message": "Вы увидите эту тему в списке непрочитанных, но не будете получать уведомлений о новых сообщениях в ней.", diff --git a/public/language/rw/topic.json b/public/language/rw/topic.json index 9d69c81546..5824137406 100644 --- a/public/language/rw/topic.json +++ b/public/language/rw/topic.json @@ -71,6 +71,7 @@ "view-flag-report": "View Flag Report", "resolve-flag": "Resolve Flag", "merged_message": "This topic has been merged into %2", + "forked-message": "This topic was forked from %2", "deleted_message": "Iki kiganiro cyamaze gukurwaho. Abantu babifitiye uburenganzira ni bo bonyine bashobora kukibona. ", "following_topic.message": "Ntabwo uzongera kubimenyeshwa nihagira umuntu ugira icyo yandika kuri iki kiganiro. ", "not_following_topic.message": "You will see this topic in the unread topics list, but you will not receive notifications when somebody posts to this topic.", diff --git a/public/language/sc/topic.json b/public/language/sc/topic.json index a179e7ff4e..34168a693a 100644 --- a/public/language/sc/topic.json +++ b/public/language/sc/topic.json @@ -71,6 +71,7 @@ "view-flag-report": "View Flag Report", "resolve-flag": "Resolve Flag", "merged_message": "This topic has been merged into %2", + "forked-message": "This topic was forked from %2", "deleted_message": "This topic has been deleted. Only users with topic management privileges can see it.", "following_topic.message": "As a retzire notìficas si calincunu pùblica in custa arresonada.", "not_following_topic.message": "You will see this topic in the unread topics list, but you will not receive notifications when somebody posts to this topic.", diff --git a/public/language/sk/topic.json b/public/language/sk/topic.json index 61418318df..ea2218701f 100644 --- a/public/language/sk/topic.json +++ b/public/language/sk/topic.json @@ -71,6 +71,7 @@ "view-flag-report": "View Flag Report", "resolve-flag": "Resolve Flag", "merged_message": "This topic has been merged into %2", + "forked-message": "This topic was forked from %2", "deleted_message": "Táto téma bola odstránená. Iba užívatelia s výsadami správcu ju môžu vidieť.", "following_topic.message": "Odteraz budete prijímať oznámenia, keď niekto prispeje do tejto témy.", "not_following_topic.message": "Uvidíte túto tému v zozname neprečítaných tém, ale nebudete dostávať oznámenia, keď niekto pridá príspevok do tejto témy.", diff --git a/public/language/sl/topic.json b/public/language/sl/topic.json index 1901db10db..84d5154086 100644 --- a/public/language/sl/topic.json +++ b/public/language/sl/topic.json @@ -71,6 +71,7 @@ "view-flag-report": "View Flag Report", "resolve-flag": "Resolve Flag", "merged_message": "This topic has been merged into %2", + "forked-message": "This topic was forked from %2", "deleted_message": "Ta tema je bila izbrisana. Le uporabniki s pravicami upravljanja tem jo lahko vidijo.", "following_topic.message": "Če nekdo objavi v to temo, boste od sedaj dobivali obvestila. ", "not_following_topic.message": "To temo boste videli v seznamu neprebranih tem. Ne boste pa dobili obvestila, če bo nekdo objavil v tej temi. ", diff --git a/public/language/sq-AL/topic.json b/public/language/sq-AL/topic.json index 6ff59cd6a3..1b673fe7a1 100644 --- a/public/language/sq-AL/topic.json +++ b/public/language/sq-AL/topic.json @@ -71,6 +71,7 @@ "view-flag-report": "Shiko analizën e raportimeve", "resolve-flag": "Zgjidh raportimin", "merged_message": "Kjo temë është bashkuar në %2", + "forked-message": "This topic was forked from %2", "deleted_message": "Kjo temë është fshirë. Vetëm përdoruesit me privilegje mund ta shohin atë.", "following_topic.message": "Tani do të merrni njoftime kur dikush poston në këtë temë.", "not_following_topic.message": "Ju do ta shihni këtë temë në listën e temave të palexuara, por nuk do të merrni njoftime kur dikush poston në të.", diff --git a/public/language/sr/topic.json b/public/language/sr/topic.json index 2e288b23d6..456721d0ca 100644 --- a/public/language/sr/topic.json +++ b/public/language/sr/topic.json @@ -71,6 +71,7 @@ "view-flag-report": "Погледај извештај о заставици", "resolve-flag": "Реши заставицу", "merged_message": "Ова тема је обједињена у %2", + "forked-message": "This topic was forked from %2", "deleted_message": "Ова тема је избрисана. Само корисници са привилегијама управљања темама је могу видети.", "following_topic.message": "Од сада ће те примати обавештења када неко одговори у овој теми.", "not_following_topic.message": "Видећете ову тему у списку непрочитаних тема али нећете примати обавештења када неко одговори у њој.", diff --git a/public/language/sv/topic.json b/public/language/sv/topic.json index 87fb6c8b54..b125146bff 100644 --- a/public/language/sv/topic.json +++ b/public/language/sv/topic.json @@ -71,6 +71,7 @@ "view-flag-report": "View Flag Report", "resolve-flag": "Resolve Flag", "merged_message": "This topic has been merged into %2", + "forked-message": "This topic was forked from %2", "deleted_message": "Det här ämnet har raderats. Endast användare med ämneshanterings-privilegier kan se det.", "following_topic.message": "Du kommer nu få notiser när någon gör inlägg i detta ämne.", "not_following_topic.message": "Du kommer att se det här ämnet i listan olästa ämnen, men du kommer inte att få meddelande när någon gör inlägg till detta ämne.", diff --git a/public/language/th/topic.json b/public/language/th/topic.json index 469bfde3b6..39d994bc19 100644 --- a/public/language/th/topic.json +++ b/public/language/th/topic.json @@ -71,6 +71,7 @@ "view-flag-report": "View Flag Report", "resolve-flag": "Resolve Flag", "merged_message": "This topic has been merged into %2", + "forked-message": "This topic was forked from %2", "deleted_message": "Topic นี้ถูกลบไปแล้ว เฉพาะผู้ใช้งานที่มีสิทธิ์ในการจัดการ Topic เท่านั้นที่จะมีสิทธิ์ในการเข้าชม", "following_topic.message": "คุณจะได้รับการแจ้งเตือนเมื่อมีคนโพสต์ในกระทู้นี้", "not_following_topic.message": "คุณจะเห็นกระทู้นี้ในรายการของกระทู้ที่ยังไม่ได้อ่าน แต่คุณจะไม่ได้รับการแจ้งเตือนเมื่่อมีคนตอบกระทู้นี้", diff --git a/public/language/tr/topic.json b/public/language/tr/topic.json index 885beae1e5..8e31a509dd 100644 --- a/public/language/tr/topic.json +++ b/public/language/tr/topic.json @@ -71,6 +71,7 @@ "view-flag-report": "Şikayet raporunu görüntüle", "resolve-flag": "Şikayeti Çözümle", "merged_message": "Bu başlık %2 ile birleştirildi", + "forked-message": "This topic was forked from %2", "deleted_message": "Bu başlık silindi. Sadece başlık düzenleme yetkisi olan kullanıcılar görebilir.", "following_topic.message": "Artık bir kullanıcı bu konuya yeni ileti gönderdiğinde siz de bildirim alacaksınız.", "not_following_topic.message": "Bu konuyu \"Okunmamış\" listesinde göreceksiniz, ama bir kullanıcı yeni bir ileti yazdığında bildirim gelmeyecek.", diff --git a/public/language/uk/topic.json b/public/language/uk/topic.json index 27c4eca889..8514734b2f 100644 --- a/public/language/uk/topic.json +++ b/public/language/uk/topic.json @@ -71,6 +71,7 @@ "view-flag-report": "View Flag Report", "resolve-flag": "Resolve Flag", "merged_message": "This topic has been merged into %2", + "forked-message": "This topic was forked from %2", "deleted_message": "Цю тему було видалено. Лише користувачі з правом керування темами можуть її бачити.", "following_topic.message": "Відтепер ви будете отримувати сповіщення коли хтось постить в цю тему.", "not_following_topic.message": "Ви будете бачити цю тему в списку непрочитаних, але ви не будете отримувати сповіщень, коли хтось постить до неї.", diff --git a/public/language/vi/topic.json b/public/language/vi/topic.json index dcc1eca402..dc4ea12714 100644 --- a/public/language/vi/topic.json +++ b/public/language/vi/topic.json @@ -71,6 +71,7 @@ "view-flag-report": "Xem Báo Cáo Gắn Cờ", "resolve-flag": "Xử Lý Cờ", "merged_message": "Chủ đề này đã được gộp chung thành %2", + "forked-message": "This topic was forked from %2", "deleted_message": "Chủ đề này đã bị xóa. Chỉ người dùng có quyền quản lý chủ đề mới được xem.", "following_topic.message": "Bạn sẽ nhận được thông báo khi có ai đó gửi bài viết trong chủ đề này.", "not_following_topic.message": "Bạn sẽ thấy chủ đề này trong danh sách chủ đề chưa đọc, nhưng bạn sẽ không nhận được thông báo khi ai đó đăng lên chủ đề này.", diff --git a/public/language/zh-CN/topic.json b/public/language/zh-CN/topic.json index 48f4e4ed99..3783f18760 100644 --- a/public/language/zh-CN/topic.json +++ b/public/language/zh-CN/topic.json @@ -71,6 +71,7 @@ "view-flag-report": "查看举报报告", "resolve-flag": "解决举报", "merged_message": "此主题已并入%2", + "forked-message": "This topic was forked from %2", "deleted_message": "此主题已被删除。只有拥有主题管理权限的用户可以查看。", "following_topic.message": "当有人回复此主题时,您会收到通知。", "not_following_topic.message": "您将在未读主题列表中看到这个主题,但您不会在帖子被回复时收到通知。", diff --git a/public/language/zh-TW/topic.json b/public/language/zh-TW/topic.json index 9abb730376..f8359e4be6 100644 --- a/public/language/zh-TW/topic.json +++ b/public/language/zh-TW/topic.json @@ -71,6 +71,7 @@ "view-flag-report": "View Flag Report", "resolve-flag": "Resolve Flag", "merged_message": "This topic has been merged into %2", + "forked-message": "This topic was forked from %2", "deleted_message": "此主題已被刪除。只有擁有主題管理權限的使用者可以查看。", "following_topic.message": "當有人回覆此主題時,您會收到通知。", "not_following_topic.message": "您將在未讀主題列表中看到這個主題,但您不會在貼文被回覆時收到通知。", From 465303374d4ddc72d64c5bcbf355eb3446f0349b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Thu, 28 Sep 2023 10:13:19 -0400 Subject: [PATCH 104/275] chore: up themes --- install/package.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/install/package.json b/install/package.json index a9aeeba56f..1af97fc783 100644 --- a/install/package.json +++ b/install/package.json @@ -102,10 +102,10 @@ "nodebb-plugin-ntfy": "1.7.2", "nodebb-plugin-spam-be-gone": "2.2.0", "nodebb-rewards-essentials": "0.2.3", - "nodebb-theme-harmony": "1.1.64", + "nodebb-theme-harmony": "1.1.65", "nodebb-theme-lavender": "7.1.3", - "nodebb-theme-peace": "2.1.20", - "nodebb-theme-persona": "13.2.34", + "nodebb-theme-peace": "2.1.21", + "nodebb-theme-persona": "13.2.35", "nodebb-widget-essentials": "7.0.13", "nodemailer": "6.9.5", "nprogress": "0.2.0", From 4289230f913a20f7c9ef799fe0f61ad623e87ee0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 28 Sep 2023 10:21:15 -0400 Subject: [PATCH 105/275] fix(deps): update dependency esbuild to v0.19.4 (#12046) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index 1af97fc783..bddd80b820 100644 --- a/install/package.json +++ b/install/package.json @@ -63,7 +63,7 @@ "csrf-sync": "4.0.1", "daemon": "1.1.0", "diff": "5.1.0", - "esbuild": "0.19.3", + "esbuild": "0.19.4", "express": "4.18.2", "express-session": "1.17.3", "express-useragent": "1.0.15", From 769f879ed8cd7bd1a0a43cb47df4abc940664fc3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Thu, 28 Sep 2023 16:53:04 -0400 Subject: [PATCH 106/275] chore: up harmony --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index bddd80b820..6a53d932c1 100644 --- a/install/package.json +++ b/install/package.json @@ -102,7 +102,7 @@ "nodebb-plugin-ntfy": "1.7.2", "nodebb-plugin-spam-be-gone": "2.2.0", "nodebb-rewards-essentials": "0.2.3", - "nodebb-theme-harmony": "1.1.65", + "nodebb-theme-harmony": "1.1.66", "nodebb-theme-lavender": "7.1.3", "nodebb-theme-peace": "2.1.21", "nodebb-theme-persona": "13.2.35", From 2aa46b082e2954ffeec6273a228cf573f05f6dfe Mon Sep 17 00:00:00 2001 From: Misty Release Bot Date: Fri, 29 Sep 2023 09:18:53 +0000 Subject: [PATCH 107/275] Latest translations and fallbacks --- public/language/bg/topic.json | 2 +- public/language/fr/notifications.json | 2 +- public/language/hy/modules.json | 100 ++++++++++++------------- public/language/hy/recent.json | 2 +- public/language/hy/themes/persona.json | 2 +- 5 files changed, 54 insertions(+), 54 deletions(-) diff --git a/public/language/bg/topic.json b/public/language/bg/topic.json index c4c73e3aa4..bdfe0ed3ca 100644 --- a/public/language/bg/topic.json +++ b/public/language/bg/topic.json @@ -71,7 +71,7 @@ "view-flag-report": "Преглед на доклада", "resolve-flag": "Разрешаване на доклада", "merged_message": "Тази тема беше слята в %2", - "forked-message": "This topic was forked from %2", + "forked-message": "Тази тема беше отделена от %2", "deleted_message": "Темата е изтрита. Само потребители с права за управление на темите могат да я видят.", "following_topic.message": "Вече ще получавате известия когато някой публикува коментар в тази тема.", "not_following_topic.message": "Ще виждате тази тема в списъка с непрочетени теми, но няма да получавате известия, когато хората публикуват нещо в нея.", diff --git a/public/language/fr/notifications.json b/public/language/fr/notifications.json index 66845aa504..c239e44637 100644 --- a/public/language/fr/notifications.json +++ b/public/language/fr/notifications.json @@ -12,7 +12,7 @@ "you_have_unread_notifications": "Vous avez des notifications non-lues", "all": "Tout", "topics": "Sujets", - "tags": "Tags", + "tags": "Mots-clés", "replies": "Réponses", "chat": "Discussions", "group-chat": "Groupe de discussions", diff --git a/public/language/hy/modules.json b/public/language/hy/modules.json index 47fa62ce0e..245a6560ab 100644 --- a/public/language/hy/modules.json +++ b/public/language/hy/modules.json @@ -1,20 +1,20 @@ { - "chat.room-id": "Room %1", + "chat.room-id": "Սենյակ %1", "chat.chatting_with": "Զրուցել ", "chat.placeholder": "Գրեք հաղորդագրություն այստեղ, տեղադրեք նկարներ, սեղմեք \"enter\" ուղարկելու համար", - "chat.placeholder.mobile": "Type chat message here", - "chat.scroll-up-alert": "Go to most recent message", - "chat.usernames-and-x-others": "%1 & %2 others", - "chat.chat-with-usernames": "Chat with %1", - "chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others", + "chat.placeholder.mobile": "Գրեք նամակը այստեղ", + "chat.scroll-up-alert": "Ցույց տալ վերջին նամակը", + "chat.usernames-and-x-others": "%1 և %2 ուրիշները", + "chat.chat-with-usernames": "Գրել %1 - ին", + "chat.chat-with-usernames-and-x-others": "Շփվել %1 և %2 ուրիշների հետ", "chat.send": "Ուղարկել", "chat.no_active": "Դուք չունեք որևէ ակտիվ չաթ", - "chat.user_typing_1": "%1 is typing ...", - "chat.user_typing_2": "%1 and %2 are typing ...", - "chat.user_typing_3": "%1, %2 and %3 are typing ...", - "chat.user_typing_n": "%1, %2 and %3 others are typing ...", + "chat.user_typing_1": "%1 գրում է ...", + "chat.user_typing_2": "%1 և %2 գրում են ...", + "chat.user_typing_3": "%1, %2 և %3 գրում են ...", + "chat.user_typing_n": "%1, %2 և %3 մյուսները գրում են ...", "chat.user_has_messaged_you": "%1-ը ձեզ հաղորդագրություն է ուղարկել:", - "chat.replying-to": "Replying to %1", + "chat.replying-to": "Պատասխանում է %1", "chat.see_all": "Բոլոր չաթերը", "chat.mark_all_read": "Նշել բոլորը կարդացված", "chat.no-messages": "Խնդրում ենք ընտրել ստացող՝ զրույցի հաղորդագրության պատմությունը դիտելու համար", @@ -32,51 +32,51 @@ "chat.three_months": "3 ամիս", "chat.delete_message_confirm": "Վստա՞հ եք, որ ցանկանում եք ջնջել այս հաղորդագրությունը:", "chat.retrieving-users": "Օգտատերերի վերականգնում ", - "chat.view-users-list": "View users list", - "chat.pinned-messages": "Pinned Messages", - "chat.no-pinned-messages": "There are no pinned messages", - "chat.pin-message": "Pin Message", - "chat.unpin-message": "Unpin Message", - "chat.public-rooms": "Public Rooms (%1)", - "chat.private-rooms": "Private Rooms (%1)", - "chat.create-room": "Create Chat Room", - "chat.private.option": "Private (Only visible to users added to room)", - "chat.public.option": "Public (Visible to every user in selected groups)", - "chat.public.groups-help": "To create a chat room that is visible to all users select registered-users from the group list.", + "chat.view-users-list": "Տեսնել օգտատերերի ցանկը", + "chat.pinned-messages": "Փակցված նամակներ", + "chat.no-pinned-messages": "Փակցված նամակներ չկան", + "chat.pin-message": "Փակցնել նամակը", + "chat.unpin-message": "Հանել նամակը ", + "chat.public-rooms": "Հանրային սենյակներ (%1)", + "chat.private-rooms": "Անձնական սենյակներ (%1)", + "chat.create-room": "Ստեղծել հաղորդակցման սենյակ", + "chat.private.option": "Անձնական (հասանելի է միայն սենյակ ավելացված մարդկանց)", + "chat.public.option": "Հանրային (հասանելի է միայն ընտրված խմբերի մարդկանց)", + "chat.public.groups-help": "Բոլոր օգտատերերի համար տեսանելի զրուցարան ստեղծելու համար ընտրեք գրանցված օգտատերերին խմբի ցանկից:", "chat.manage-room": "Կարգավորել Զրուցասենյակը", - "chat.add-user": "Add User", - "chat.notification-settings": "Notification Settings", - "chat.default-notification-setting": "Default Notification Setting", - "chat.notification-setting-room-default": "Room Default", - "chat.notification-setting-none": "No notifications", - "chat.notification-setting-at-mention-only": "@mention only", - "chat.notification-setting-all-messages": "All messages", - "chat.select-groups": "Select Groups", + "chat.add-user": "Ավելացնել օգտատեր", + "chat.notification-settings": "Ծանուցման կարգավորումներ", + "chat.default-notification-setting": "Ծանուցման հիմնական կարգավորումներ", + "chat.notification-setting-room-default": "Սենյակի հիմնական վիճակ", + "chat.notification-setting-none": "Ծանուցումներ չկան", + "chat.notification-setting-at-mention-only": "@նշում միայն", + "chat.notification-setting-all-messages": "Բոլոր նամակները", + "chat.select-groups": "Ընտրել խմբեր", "chat.add-user-help": "Որոնել օգտերերին այստեղ: Ընտրվելուց հետո օգտատերը կավելացվի զրուցարանում: Նոր օգտատերը չի կարողանա տեսնել զրույցի հաղորդագրությունները, որոնք գրված են նախքան դրանք ավելացվելը խոսակցությանը: Միայն սենյակների սեփականատերերը կարող են օգտատերերին հեռացնել զրուցարաններից:", "chat.confirm-chat-with-dnd-user": "Այս օգտվողը դրել է իր կարգավիճակը DnD (Մի խանգարեք): Դեռ ցանկանու՞մ եք զրուցել նրանց հետ:", - "chat.room-name-optional": "Room Name (Optional)", + "chat.room-name-optional": "Սենյակի անվանում", "chat.rename-room": "Վերանվանել սենյակը", "chat.rename-placeholder": "Մուտքագրեք ձեր սենյակի անունը այստեղ", "chat.rename-help": "Այստեղ սահմանված սենյակի անունը տեսանելի կլինի սենյակի բոլոր մասնակիցների համար:", - "chat.leave": "Leave", - "chat.leave-room": "Leave Room", + "chat.leave": "Դուրս գալ", + "chat.leave-room": "Դուրս գալ սենյակից", "chat.leave-prompt": "Վստա՞հ եք, որ ցանկանում եք լքել այս զրույցը:", "chat.leave-help": "Այս զրույցից դուրս գալը ձեզ կհեռացնի այս զրույցի հետագա նամակագրությունից: Եթե ապագայում ձեզ նորից ավելացնեն, դուք չեք տեսնի զրույցի պատմություն, որը տեղի է ունեցել մինչ ձեր նորից միանալը:", - "chat.delete": "Delete", - "chat.delete-room": "Delete Room", - "chat.delete-prompt": "Are you sure you wish to delete this chat room?", + "chat.delete": "Ջնջել", + "chat.delete-room": "Ջնջել սենյակը", + "chat.delete-prompt": "Իսկապե՞ս ցանկանում եք ջնջել այս զրուցարանը:", "chat.in-room": "Այս սենյակում ", "chat.kick": "Kick", "chat.show-ip": "Ցույց տալ IP", "chat.owner": "Սենյակի սեփականատեր", - "chat.grant-rescind-ownership": "Grant/Rescind Ownership", - "chat.system.user-join": "%1 has joined the room ", - "chat.system.user-leave": "%1 has left the room ", - "chat.system.room-rename": "%2 has renamed this room to \"%1\" ", + "chat.grant-rescind-ownership": "Տրամադրել/վերացնել սեփականության իրավունքը", + "chat.system.user-join": "%1-ը միացել է սենյակին ", + "chat.system.user-leave": "%1 դուրս է եկել սենյակից ", + "chat.system.room-rename": "%2 այս սենյակը վերանանել է «% 1»-ի ", "composer.compose": "Կազմել", "composer.show_preview": "Ցույց տալ նախադիտումը", "composer.hide_preview": "Թաքցնել նախադիտումը", - "composer.help": "Help", + "composer.help": "Օգնություն", "composer.user_said_in": "%1-ն ասաց %2-ում:", "composer.user_said": "%1 -ը ասաց.", "composer.discard": "Վստա՞հ եք որ ցանկանում եք հրաժարվել այս գրառումից:", @@ -85,13 +85,13 @@ "composer.uploading": "Վերբեռնվում է %1", "composer.formatting.bold": "Bold", "composer.formatting.italic": "Շեղագիր", - "composer.formatting.heading": "Heading", - "composer.formatting.heading1": "Heading 1", - "composer.formatting.heading2": "Heading 2", - "composer.formatting.heading3": "Heading 3", - "composer.formatting.heading4": "Heading 4", - "composer.formatting.heading5": "Heading 5", - "composer.formatting.heading6": "Heading 6", + "composer.formatting.heading": "Վերնագիր", + "composer.formatting.heading1": "Վերնագիր 1", + "composer.formatting.heading2": "Վերնագիր 2", + "composer.formatting.heading3": "Վերնագիր 3", + "composer.formatting.heading4": "Վերնագիր 4", + "composer.formatting.heading5": "Վերնագիր 5", + "composer.formatting.heading6": "Վերնագիր 6", "composer.formatting.list": "Ցուցակ", "composer.formatting.strikethrough": "Strikethrough", "composer.formatting.code": "Կոդ", @@ -102,12 +102,12 @@ "composer.zen_mode": "Զեն ռեժիմ", "composer.select_category": "Ընտրեք կատեգորիա", "composer.textarea.placeholder": "Մուտքագրեք ձեր գրառման կոնտենտը այստեղ, քաշեք և թողեք նկարները", - "composer.post-queue-alert": "Hello👋!
This forum uses a post queue system, since you are a new user your post will be hidden until it is approved by our moderation team.", + "composer.post-queue-alert": "Ողջույն👋
Այս ֆորումն օգտագործում է գրառումների հերթերի համակարգ, քանի որ դուք նոր օգտվող եք, ձեր գրառումը կթաքցվի այնքան ժամանակ, քանի դեռ այն չի հաստատվել մեր մոդերատորների կողմից:", "composer.schedule-for": "Պլանավորեք թեման", "composer.schedule-date": "Ամսաթիվ", "composer.schedule-time": "Ժամանակ", "composer.cancel-scheduling": "Չեղարկել ժամանակացույցը", - "composer.change-schedule-date": "Change Date", + "composer.change-schedule-date": "Փոխել ամսաթիվը", "composer.set-schedule-date": "Սահմանել ամսաթիվը", "composer.discard-all-drafts": "Discard all drafts", "composer.no-drafts": "You have no drafts", diff --git a/public/language/hy/recent.json b/public/language/hy/recent.json index 2eb97a3bf9..4e73c02153 100644 --- a/public/language/hy/recent.json +++ b/public/language/hy/recent.json @@ -7,5 +7,5 @@ "alltime": "Ամբողջ ժամանակ", "no_recent_topics": "Վերջին թեմաներ չկան։", "no_popular_topics": "Հանրաճանաչ թեմաներ չկան։", - "load-new-posts": "Load new posts" + "load-new-posts": "Բեռնել նոր հրապարակումները" } \ No newline at end of file diff --git a/public/language/hy/themes/persona.json b/public/language/hy/themes/persona.json index e7d1945303..a5a5b17db1 100644 --- a/public/language/hy/themes/persona.json +++ b/public/language/hy/themes/persona.json @@ -1,5 +1,5 @@ { - "settings.title": "Theme settings", + "settings.title": "Գույների կարգավորումներ", "settings.intro": "You can customise your theme settings here. Settings are stored on a per-device basis, so you are able to have different settings on different devices (phone, tablet, desktop, etc.)", "settings.mobile-menu-side": "Switch which side each mobile menu is on", "settings.autoHidingNavbar": "Automatically hide the navbar on scroll", From eaa7aff3297a8684747332582ba7759781006340 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 29 Sep 2023 12:59:11 -0400 Subject: [PATCH 108/275] fix(deps): update dependency postcss to v8.4.31 (#12048) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index 6a53d932c1..4a2a6275c5 100644 --- a/install/package.json +++ b/install/package.json @@ -114,7 +114,7 @@ "passport-local": "1.0.0", "pg": "8.11.3", "pg-cursor": "2.10.3", - "postcss": "8.4.30", + "postcss": "8.4.31", "postcss-clean": "1.2.0", "progress-webpack-plugin": "1.0.16", "prompt": "1.3.0", From fe192b926c386e9293f6d1134e698fcd764dfb9c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Fri, 29 Sep 2023 21:50:11 -0400 Subject: [PATCH 109/275] feat: upgrade chartjs to 4.x --- install/package.json | 2 +- public/scss/admin/general/dashboard.scss | 154 ++++++------------ public/src/admin/advanced/errors.js | 41 ++--- public/src/admin/dashboard.js | 114 ++++++------- public/src/admin/manage/category-analytics.js | 105 ++++-------- .../src/admin/modules/dashboard-line-graph.js | 30 ++-- public/src/client/flags/list.js | 21 ++- public/src/client/ip-blacklist.js | 58 +++---- src/views/admin/advanced/errors.tpl | 10 +- src/views/admin/dashboard.tpl | 36 ++-- src/views/admin/manage/category-analytics.tpl | 28 ++-- src/views/admin/partials/dashboard/graph.tpl | 4 +- src/views/ip-blacklist.tpl | 8 +- webpack.common.js | 1 - 14 files changed, 250 insertions(+), 362 deletions(-) diff --git a/install/package.json b/install/package.json index 4a2a6275c5..119599a907 100644 --- a/install/package.json +++ b/install/package.json @@ -45,7 +45,7 @@ "bootstrap": "5.3.2", "bootswatch": "5.3.2", "chalk": "4.1.2", - "chart.js": "2.9.4", + "chart.js": "4.4.0", "cli-graph": "3.2.2", "clipboard": "2.0.11", "colors": "1.4.0", diff --git a/public/scss/admin/general/dashboard.scss b/public/scss/admin/general/dashboard.scss index cecbbb1dbe..2cfc461a0e 100644 --- a/public/scss/admin/general/dashboard.scss +++ b/public/scss/admin/general/dashboard.scss @@ -1,6 +1,4 @@ .dashboard { - max-width: 1680px; - .card { max-width: 100% !important; } @@ -9,114 +7,70 @@ position: relative; background: var(--bg-body-bg); + &.pie-chart { + max-height: 180px; + } + &.fullscreen { width: 100%; padding: 40px; - - .graph-legend { - top: 7rem; - left: 12rem; - } } + } - &.pie-chart { - padding-right: 0px; - padding-left: 50px; - min-height: 180px; + .graph-legend { + @include box-header-font; + margin: 0; - .graph-legend { - top: -10px; - left: 0px; + li { + display: flex; + word-wrap: break-word; + word-break: break-word; + gap: 0.5rem; + span { + flex: 1; } + div { + border: 1px solid; + margin-top: 2px; + width: 12px; + min-width: 12px; + height: 12px; - &.compact { - padding-left: 0px; - padding-top: 60px; - } - - &.legend-down { - padding-left: 0px; - padding-top: 0px; - - canvas { - margin-bottom: 25px; + &.page-views { + border-color: rgba(220,220,220,1); + background-color: rgba(220,220,220,0.2); } - - .graph-legend { - position: relative; - - li { - float: left; - width: 100%; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - - &:nth-child(odd) { - margin-right: 2%; - } - } + &.unique-visitors { + border-color: rgba(151,187,205,1); + background-color: rgba(151,187,205,0.2); } - } - } - - .graph-legend { - @include box-header-font; - display: inline-block; - max-width: 100%; - position: absolute; - top: 2rem; - left: 7rem; - list-style-type: none; - padding: 0.5rem 1rem; - margin: 0; - - li { - div { - border: 1px solid; - width: 12px; - height: 12px; - vertical-align: -41%; - margin-bottom: 5px; - display: inline-block; - margin-right: 5px; - - &.page-views { - border-color: rgba(220,220,220,1); - background-color: rgba(220,220,220,0.2); - } - &.unique-visitors { - border-color: rgba(151,187,205,1); - background-color: rgba(151,187,205,0.2); - } - &.guest { - border-color: #46BFBD; - background-color: #5AD3D1; - } - &.registered { - border-color: #F7464A; - background-color: #FF5A5E; - } - &.reading-posts { - border-color: #46BFBD; - background-color: #5AD3D1; - } - &.on-categories { - border-color: #F7464A; - background-color: #FF5A5E; - } - &.browsing-topics { - border-color: #FDB45C; - background-color: #FFC870; - } - &.recent { - border-color: #949FB1; - background-color: #A8B3C5; - } - &.unread { - border-color: #949FB1; - background-color: #9FB194; - } + &.guest { + border-color: #46BFBD; + background-color: #5AD3D1; + } + &.registered { + border-color: #F7464A; + background-color: #FF5A5E; + } + &.reading-posts { + border-color: #46BFBD; + background-color: #5AD3D1; + } + &.on-categories { + border-color: #F7464A; + background-color: #FF5A5E; + } + &.browsing-topics { + border-color: #FDB45C; + background-color: #FFC870; + } + &.recent { + border-color: #949FB1; + background-color: #A8B3C5; + } + &.unread { + border-color: #949FB1; + background-color: #9FB194; } } } diff --git a/public/src/admin/advanced/errors.js b/public/src/admin/advanced/errors.js index b64f110b2a..f4d2a593c8 100644 --- a/public/src/admin/advanced/errors.js +++ b/public/src/admin/advanced/errors.js @@ -1,7 +1,9 @@ 'use strict'; -define('admin/advanced/errors', ['bootbox', 'alerts', 'Chart'], function (bootbox, alerts, Chart) { +define('admin/advanced/errors', [ + 'bootbox', 'alerts', 'chart.js/auto', +], function (bootbox, alerts, { Chart }) { const Errors = {}; Errors.init = function () { @@ -33,7 +35,7 @@ define('admin/advanced/errors', ['bootbox', 'alerts', 'Chart'], function (bootbo dailyLabels = dailyLabels.slice(-7); if (utils.isMobile()) { - Chart.defaults.global.tooltips.enabled = false; + Chart.defaults.plugins.tooltip.enabled = false; } const data = { @@ -42,6 +44,8 @@ define('admin/advanced/errors', ['bootbox', 'alerts', 'Chart'], function (bootbo datasets: [ { label: '', + fill: 'origin', + tension: 0.25, backgroundColor: 'rgba(186,139,175,0.2)', borderColor: 'rgba(186,139,175,1)', pointBackgroundColor: 'rgba(186,139,175,1)', @@ -57,6 +61,8 @@ define('admin/advanced/errors', ['bootbox', 'alerts', 'Chart'], function (bootbo datasets: [ { label: '', + fill: 'origin', + tension: 0.25, backgroundColor: 'rgba(151,187,205,0.2)', borderColor: 'rgba(151,187,205,1)', pointBackgroundColor: 'rgba(151,187,205,1)', @@ -69,23 +75,20 @@ define('admin/advanced/errors', ['bootbox', 'alerts', 'Chart'], function (bootbo }, }; - notFoundCanvas.width = $(notFoundCanvas).parent().width(); - tooBusyCanvas.width = $(tooBusyCanvas).parent().width(); - new Chart(notFoundCanvas.getContext('2d'), { type: 'line', data: data['not-found'], options: { responsive: true, - legend: { - display: false, + plugins: { + legend: { + display: false, + }, }, scales: { - yAxes: [{ - ticks: { - beginAtZero: true, - }, - }], + y: { + beginAtZero: true, + }, }, }, }); @@ -95,15 +98,15 @@ define('admin/advanced/errors', ['bootbox', 'alerts', 'Chart'], function (bootbo data: data.toobusy, options: { responsive: true, - legend: { - display: false, + plugins: { + legend: { + display: false, + }, }, scales: { - yAxes: [{ - ticks: { - beginAtZero: true, - }, - }], + y: { + beginAtZero: true, + }, }, }, }); diff --git a/public/src/admin/dashboard.js b/public/src/admin/dashboard.js index 3cd0b93619..2e37272813 100644 --- a/public/src/admin/dashboard.js +++ b/public/src/admin/dashboard.js @@ -2,8 +2,8 @@ define('admin/dashboard', [ - 'Chart', 'translator', 'benchpress', 'bootbox', 'alerts', 'helpers', -], function (Chart, translator, Benchpress, bootbox, alerts, helpers) { + 'chart.js/auto', 'translator', 'benchpress', 'bootbox', 'alerts', 'helpers', +], function ({ Chart }, translator, Benchpress, bootbox, alerts, helpers) { const Admin = {}; const intervals = { rooms: false, @@ -63,19 +63,19 @@ define('admin/dashboard', [ graphData.rooms = data; - const html = '
' + + const html = '
' + '' + helpers.formattedNumber(data.onlineRegisteredCount) + '' + '
[[admin/dashboard:active-users.users]]
' + '
' + - '
' + + '
' + '' + helpers.formattedNumber(data.onlineGuestCount) + '' + '
[[admin/dashboard:active-users.guests]]
' + '
' + - '
' + + '
' + '' + helpers.formattedNumber(data.onlineRegisteredCount + data.onlineGuestCount) + '' + '
[[admin/dashboard:active-users.total]]
' + '
' + - '
' + + '
' + '' + helpers.formattedNumber(data.socketCount) + '' + '
[[admin/dashboard:active-users.connections]]
' + '
'; @@ -140,7 +140,7 @@ define('admin/dashboard', [ const trafficLabels = utils.getHoursArray(); if (isMobile) { - Chart.defaults.global.tooltips.enabled = false; + Chart.defaults.plugins.tooltip.enabled = false; } const t = translator.Translator.create(); @@ -158,11 +158,14 @@ define('admin/dashboard', [ t.translateKey('admin/dashboard:recent', []), t.translateKey('admin/dashboard:unread', []), ]).then(function (translations) { + const tension = 0.25; const data = { labels: trafficLabels, datasets: [ { label: translations[0], + fill: 'origin', + tension: tension, backgroundColor: 'rgba(220,220,220,0.2)', borderColor: 'rgba(220,220,220,1)', pointBackgroundColor: 'rgba(220,220,220,1)', @@ -173,6 +176,8 @@ define('admin/dashboard', [ }, { label: translations[1], + fill: 'origin', + tension: tension, backgroundColor: '#ab464233', borderColor: '#ab4642', pointBackgroundColor: '#ab4642', @@ -183,6 +188,8 @@ define('admin/dashboard', [ }, { label: translations[2], + fill: 'origin', + tension: tension, backgroundColor: '#ba8baf33', borderColor: '#ba8baf', pointBackgroundColor: '#ba8baf', @@ -193,6 +200,8 @@ define('admin/dashboard', [ }, { label: translations[3], + fill: 'origin', + tension: tension, backgroundColor: '#f7ca8833', borderColor: '#f7ca88', pointBackgroundColor: '#f7ca88', @@ -203,6 +212,8 @@ define('admin/dashboard', [ }, { label: translations[4], + fill: 'origin', + tension: tension, backgroundColor: 'rgba(151,187,205,0.2)', borderColor: 'rgba(151,187,205,1)', pointBackgroundColor: 'rgba(151,187,205,1)', @@ -227,43 +238,42 @@ define('admin/dashboard', [ data: data, options: { responsive: true, - legend: { - display: true, - }, scales: { - yAxes: [{ - id: 'left-y-axis', - ticks: { - beginAtZero: true, - precision: 0, - }, - type: 'linear', + 'left-y-axis': { position: 'left', - scaleLabel: { - display: true, - labelString: translations[0], - }, - }, { - id: 'right-y-axis', - ticks: { - beginAtZero: true, - suggestedMax: 10, - precision: 0, - }, type: 'linear', - position: 'right', - scaleLabel: { + title: { display: true, - labelString: translations[4], + text: translations[0], }, - }], + beginAtZero: true, + }, + 'right-y-axis': { + position: 'right', + type: 'linear', + title: { + display: true, + text: translations[4], + }, + beginAtZero: true, + }, }, - tooltips: { - mode: 'x', + interaction: { + intersect: false, + mode: 'index', }, }, }); + const doughnutOpts = { + responsive: true, + maintainAspectRatio: true, + plugins: { + legend: { + display: false, + }, + }, + }; graphs.registered = new Chart(registeredCtx, { type: 'doughnut', data: { @@ -274,12 +284,7 @@ define('admin/dashboard', [ hoverBackgroundColor: ['#FF5A5E', '#5AD3D1'], }], }, - options: { - responsive: true, - legend: { - display: false, - }, - }, + options: doughnutOpts, }); graphs.presence = new Chart(presenceCtx, { @@ -292,12 +297,7 @@ define('admin/dashboard', [ hoverBackgroundColor: ['#FF5A5E', '#5AD3D1', '#FFC870', '#A8B3C5', '#A8B3C5'], }], }, - options: { - responsive: true, - legend: { - display: false, - }, - }, + options: doughnutOpts, }); graphs.topics = new Chart(topicsCtx, { @@ -310,19 +310,11 @@ define('admin/dashboard', [ hoverBackgroundColor: [], }], }, - options: { - responsive: true, - legend: { - display: false, - }, - }, + options: doughnutOpts, }); updateTrafficGraph(); - $(window).on('resize', adjustPieCharts); - adjustPieCharts(); - $('[data-action="updateGraph"]:not([data-units="custom"])').on('click', function () { let until = new Date(); const amount = $(this).attr('data-amount'); @@ -398,18 +390,6 @@ define('admin/dashboard', [ }); } - function adjustPieCharts() { - $('.pie-chart.legend-up').each(function () { - const $this = $(this); - - if ($this.width() < 320) { - $this.addClass('compact'); - } else { - $this.removeClass('compact'); - } - }); - } - function updateTrafficGraph(units, until, amount) { // until and amount are optional diff --git a/public/src/admin/manage/category-analytics.js b/public/src/admin/manage/category-analytics.js index 634f7a7e57..93c4fa0abe 100644 --- a/public/src/admin/manage/category-analytics.js +++ b/public/src/admin/manage/category-analytics.js @@ -2,8 +2,8 @@ define('admin/manage/category-analytics', [ - 'Chart', 'categorySelector', -], function (Chart, categorySelector) { + 'chart.js/auto', 'categorySelector', +], function ({ Chart }, categorySelector) { const CategoryAnalytics = {}; CategoryAnalytics.init = function () { @@ -27,20 +27,26 @@ define('admin/manage/category-analytics', [ }); if (utils.isMobile()) { - Chart.defaults.global.tooltips.enabled = false; + Chart.defaults.plugins.tooltip.enabled = false; } + const commonDataSetOpts = { + label: '', + fill: true, + tension: 0.25, + pointHoverBackgroundColor: '#fff', + pointBorderColor: '#fff', + }; + const data = { 'pageviews:hourly': { labels: hourlyLabels, datasets: [ { - label: '', + ...commonDataSetOpts, backgroundColor: 'rgba(186,139,175,0.2)', borderColor: 'rgba(186,139,175,1)', pointBackgroundColor: 'rgba(186,139,175,1)', - pointHoverBackgroundColor: '#fff', - pointBorderColor: '#fff', pointHoverBorderColor: 'rgba(186,139,175,1)', data: ajaxify.data.analytics['pageviews:hourly'], }, @@ -50,12 +56,10 @@ define('admin/manage/category-analytics', [ labels: dailyLabels, datasets: [ { - label: '', + ...commonDataSetOpts, backgroundColor: 'rgba(151,187,205,0.2)', borderColor: 'rgba(151,187,205,1)', pointBackgroundColor: 'rgba(151,187,205,1)', - pointHoverBackgroundColor: '#fff', - pointBorderColor: '#fff', pointHoverBorderColor: 'rgba(151,187,205,1)', data: ajaxify.data.analytics['pageviews:daily'], }, @@ -65,12 +69,10 @@ define('admin/manage/category-analytics', [ labels: dailyLabels.slice(-7), datasets: [ { - label: '', + ...commonDataSetOpts, backgroundColor: 'rgba(171,70,66,0.2)', borderColor: 'rgba(171,70,66,1)', pointBackgroundColor: 'rgba(171,70,66,1)', - pointHoverBackgroundColor: '#fff', - pointBorderColor: '#fff', pointHoverBorderColor: 'rgba(171,70,66,1)', data: ajaxify.data.analytics['topics:daily'], }, @@ -80,12 +82,10 @@ define('admin/manage/category-analytics', [ labels: dailyLabels.slice(-7), datasets: [ { - label: '', + ...commonDataSetOpts, backgroundColor: 'rgba(161,181,108,0.2)', borderColor: 'rgba(161,181,108,1)', pointBackgroundColor: 'rgba(161,181,108,1)', - pointHoverBackgroundColor: '#fff', - pointBorderColor: '#fff', pointHoverBorderColor: 'rgba(161,181,108,1)', data: ajaxify.data.analytics['posts:daily'], }, @@ -98,84 +98,43 @@ define('admin/manage/category-analytics', [ topicsCanvas.width = $(topicsCanvas).parent().width(); postsCanvas.width = $(postsCanvas).parent().width(); - new Chart(hourlyCanvas.getContext('2d'), { - type: 'line', - data: data['pageviews:hourly'], - options: { - responsive: true, - animation: false, + const chartOpts = { + responsive: true, + animation: false, + plugins: { legend: { display: false, }, - scales: { - yAxes: [{ - ticks: { - beginAtZero: true, - precision: 0, - }, - }], + }, + scales: { + y: { + beginAtZero: true, }, }, + }; + + new Chart(hourlyCanvas.getContext('2d'), { + type: 'line', + data: data['pageviews:hourly'], + options: chartOpts, }); new Chart(dailyCanvas.getContext('2d'), { type: 'line', data: data['pageviews:daily'], - options: { - responsive: true, - animation: false, - legend: { - display: false, - }, - scales: { - yAxes: [{ - ticks: { - beginAtZero: true, - precision: 0, - }, - }], - }, - }, + options: chartOpts, }); new Chart(topicsCanvas.getContext('2d'), { type: 'line', data: data['topics:daily'], - options: { - responsive: true, - animation: false, - legend: { - display: false, - }, - scales: { - yAxes: [{ - ticks: { - beginAtZero: true, - precision: 0, - }, - }], - }, - }, + options: chartOpts, }); new Chart(postsCanvas.getContext('2d'), { type: 'line', data: data['posts:daily'], - options: { - responsive: true, - animation: false, - legend: { - display: false, - }, - scales: { - yAxes: [{ - ticks: { - beginAtZero: true, - precision: 0, - }, - }], - }, - }, + options: chartOpts, }); }; diff --git a/public/src/admin/modules/dashboard-line-graph.js b/public/src/admin/modules/dashboard-line-graph.js index 65ea00feaf..3a95868b6c 100644 --- a/public/src/admin/modules/dashboard-line-graph.js +++ b/public/src/admin/modules/dashboard-line-graph.js @@ -1,6 +1,8 @@ 'use strict'; -define('admin/modules/dashboard-line-graph', ['Chart', 'translator', 'benchpress', 'api', 'hooks', 'bootbox'], function (Chart, translator, Benchpress, api, hooks, bootbox) { +define('admin/modules/dashboard-line-graph', [ + 'chart.js/auto', 'translator', 'benchpress', 'api', 'hooks', 'bootbox', +], function ({ Chart }, translator, Benchpress, api, hooks, bootbox) { const Graph = { _current: null, }; @@ -13,7 +15,7 @@ define('admin/modules/dashboard-line-graph', ['Chart', 'translator', 'benchpress isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent); if (isMobile) { - Chart.defaults.global.tooltips.enabled = false; + Chart.defaults.plugins.tooltip.enabled = false; } Graph.handleUpdateControls({ set }); @@ -26,6 +28,8 @@ define('admin/modules/dashboard-line-graph', ['Chart', 'translator', 'benchpress datasets: [ { label: key, + fill: true, + tension: 0.25, backgroundColor: 'rgba(151,187,205,0.2)', borderColor: 'rgba(151,187,205,1)', pointBackgroundColor: 'rgba(151,187,205,1)', @@ -46,26 +50,20 @@ define('admin/modules/dashboard-line-graph', ['Chart', 'translator', 'benchpress data: data, options: { responsive: true, - legend: { - display: true, - }, scales: { - yAxes: [{ - id: 'left-y-axis', - ticks: { - beginAtZero: true, - precision: 0, - }, + 'left-y-axis': { type: 'linear', position: 'left', - scaleLabel: { + beginAtZero: true, + title: { display: true, - labelString: key, + text: key, }, - }], + }, }, - tooltips: { - mode: 'x', + interaction: { + intersect: false, + mode: 'index', }, }, }); diff --git a/public/src/client/flags/list.js b/public/src/client/flags/list.js index 8c13b240e8..5c92f46292 100644 --- a/public/src/client/flags/list.js +++ b/public/src/client/flags/list.js @@ -1,11 +1,11 @@ 'use strict'; define('forum/flags/list', [ - 'components', 'Chart', 'categoryFilter', + 'components', 'chart.js/auto', 'categoryFilter', 'autocomplete', 'api', 'alerts', 'userFilter', ], function ( - components, Chart, categoryFilter, + components, { Chart }, categoryFilter, autocomplete, api, alerts, userFilter ) { @@ -255,7 +255,7 @@ define('forum/flags/list', [ }); if (utils.isMobile()) { - Chart.defaults.global.tooltips.enabled = false; + Chart.defaults.plugins.tooltip.enabled = false; } const data = { 'flags:daily': { @@ -282,16 +282,15 @@ define('forum/flags/list', [ options: { responsive: true, animation: false, - legend: { - display: false, + plugins: { + legend: { + display: false, + }, }, scales: { - yAxes: [{ - ticks: { - beginAtZero: true, - precision: 0, - }, - }], + y: { + beginAtZero: true, + }, }, }, }); diff --git a/public/src/client/ip-blacklist.js b/public/src/client/ip-blacklist.js index 5fccd07a32..b94c84038a 100644 --- a/public/src/client/ip-blacklist.js +++ b/public/src/client/ip-blacklist.js @@ -1,7 +1,8 @@ 'use strict'; - -define('forum/ip-blacklist', ['Chart', 'benchpress', 'bootbox', 'alerts'], function (Chart, Benchpress, bootbox, alerts) { +define('forum/ip-blacklist', [ + 'chart.js/auto', 'benchpress', 'bootbox', 'alerts', +], function ({ Chart }, Benchpress, bootbox, alerts) { const Blacklist = {}; Blacklist.init = function () { @@ -52,7 +53,7 @@ define('forum/ip-blacklist', ['Chart', 'benchpress', 'bootbox', 'alerts'], funct }); if (utils.isMobile()) { - Chart.defaults.global.tooltips.enabled = false; + Chart.defaults.plugins.tooltip.enabled = false; } const data = { @@ -61,6 +62,8 @@ define('forum/ip-blacklist', ['Chart', 'benchpress', 'bootbox', 'alerts'], funct datasets: [ { label: '', + fill: 'origin', + tension: 0.25, backgroundColor: 'rgba(186,139,175,0.2)', borderColor: 'rgba(186,139,175,1)', pointBackgroundColor: 'rgba(186,139,175,1)', @@ -88,45 +91,34 @@ define('forum/ip-blacklist', ['Chart', 'benchpress', 'bootbox', 'alerts'], funct }, }; - hourlyCanvas.width = $(hourlyCanvas).parent().width(); - dailyCanvas.width = $(dailyCanvas).parent().width(); + const chartOpts = { + responsive: true, + maintainAspectRatio: true, + plugins: { + legend: { + display: false, + }, + }, + scales: { + y: { + position: 'left', + type: 'linear', + beginAtZero: true, + }, + }, + }; + new Chart(hourlyCanvas.getContext('2d'), { type: 'line', data: data['blacklist:hourly'], - options: { - responsive: true, - animation: false, - legend: { - display: false, - }, - scales: { - yAxes: [{ - ticks: { - beginAtZero: true, - }, - }], - }, - }, + options: chartOpts, }); new Chart(dailyCanvas.getContext('2d'), { type: 'line', data: data['blacklist:daily'], - options: { - responsive: true, - animation: false, - legend: { - display: false, - }, - scales: { - yAxes: [{ - ticks: { - beginAtZero: true, - }, - }], - }, - }, + options: chartOpts, }); }; diff --git a/src/views/admin/advanced/errors.tpl b/src/views/admin/advanced/errors.tpl index 398115c9ff..d5baa12a82 100644 --- a/src/views/admin/advanced/errors.tpl +++ b/src/views/admin/advanced/errors.tpl @@ -17,8 +17,10 @@
-
-
+
+
+ +