diff --git a/install/package.json b/install/package.json index 3c76a6a6b9..deacbc651a 100644 --- a/install/package.json +++ b/install/package.json @@ -65,7 +65,7 @@ "mubsub": "^1.4.0", "nconf": "^0.9.1", "nodebb-plugin-composer-default": "6.0.21", - "nodebb-plugin-dbsearch": "2.0.15", + "nodebb-plugin-dbsearch": "2.0.16", "nodebb-plugin-emoji": "^2.2.2", "nodebb-plugin-emoji-android": "2.0.0", "nodebb-plugin-markdown": "8.4.2", diff --git a/public/language/en-GB/admin/settings/notifications.json b/public/language/en-GB/admin/settings/notifications.json index da6c9680a3..03fa0ac66a 100644 --- a/public/language/en-GB/admin/settings/notifications.json +++ b/public/language/en-GB/admin/settings/notifications.json @@ -2,5 +2,6 @@ "notifications": "Notifications", "welcome-notification": "Welcome Notification", "welcome-notification-link": "Welcome Notification Link", - "welcome-notification-uid": "Welcome Notification User (UID)" + "welcome-notification-uid": "Welcome Notification User (UID)", + "notification-alert-timeout": "Notification Alert Timeout" } \ No newline at end of file diff --git a/public/language/he/admin/manage/users.json b/public/language/he/admin/manage/users.json index 4163ec6926..dcd55998e8 100644 --- a/public/language/he/admin/manage/users.json +++ b/public/language/he/admin/manage/users.json @@ -30,18 +30,18 @@ "search.uid": "על פי זהות משתמש", "search.uid-placeholder": "Enter a user ID to search", "search.username": "על פי שם משתמש", - "search.username-placeholder": "Enter a username to search", + "search.username-placeholder": "הזן שם משתמש לחיפוש", "search.email": "על פי דוא\"ל", - "search.email-placeholder": "Enter a email to search", + "search.email-placeholder": "הזן דואל לחיפוש", "search.ip": "על פי כתובת IP", - "search.ip-placeholder": "Enter an IP Address to search", + "search.ip-placeholder": "הזן כתובת IP לחיפוש", "search.not-found": "משתמש לא נמצא!", "inactive.3-months": "3 חודשים", "inactive.6-months": "6 חודשים", "inactive.12-months": "12 חודשים", - "users.uid": "uid", + "users.uid": "מזהה משתמש", "users.username": "שם משתמש", "users.email": "דוא\"ל", "users.postcount": "postcount", @@ -58,12 +58,12 @@ "create.password-confirm": "אשר סיסמה", "temp-ban.length": "Ban Length", - "temp-ban.reason": "Reason <span class=\"text-muted\">(Optional)</span>", + "temp-ban.reason": "סיבה <span class=\"text-muted\">(אופציונאלי)</span>", "temp-ban.hours": "שעות", "temp-ban.days": "ימים", "temp-ban.explanation": "Enter the length of time for the ban. Note that a time of 0 will be a considered a permanent ban.", - "alerts.confirm-ban": "Do you really want to ban this user <strong>permanently</strong>?", + "alerts.confirm-ban": "האם אתה רוצה להרחיק משתמש זה <strong>לצמיתות</strong>?", "alerts.confirm-ban-multi": "Do you really want to ban these users <strong>permanently</strong>?", "alerts.ban-success": "User(s) banned!", "alerts.button-ban-x": "Ban %1 user(s)", @@ -71,29 +71,29 @@ "alerts.lockout-reset-success": "Lockout(s) reset!", "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.", - "alerts.confirm-remove-admin": "Do you really want to remove this administrator?", - "alerts.remove-admin-success": "User is no longer administrator.", - "alerts.make-global-mod-success": "User is now global moderator.", + "alerts.make-admin-success": "המשתמש הנו מנהל עכשיו", + "alerts.confirm-remove-admin": "האם אתה בטוח רוצה להסיר את המנהל הזה?", + "alerts.remove-admin-success": "בוטלה הרשאת מנהל למשתמש", + "alerts.make-global-mod-success": "מעתה המשתמש הנו מנהל קבוצות כללי", "alerts.confirm-remove-global-mod": "Do you really want to remove this global moderator?", "alerts.remove-global-mod-success": "User is no longer global moderator.", "alerts.make-moderator-success": "User is now moderator.", "alerts.confirm-remove-moderator": "Do you really want to remove this moderator?", "alerts.remove-moderator-success": "User is no longer moderator.", - "alerts.confirm-validate-email": "Do you want to validate email(s) of these user(s)?", - "alerts.validate-email-success": "Emails validated", - "alerts.password-reset-confirm": "Do you want to send password reset email(s) to these user(s)?", + "alerts.confirm-validate-email": "האם אתה רוצה לאמת דואל(ים) למשתמש(ים) האלה?", + "alerts.validate-email-success": "דואלים אומתו.", + "alerts.password-reset-confirm": "האם אתה רוצה לשלוח איפוס סיסמת דואל(ים) למשתמש(ים) האלה?", "alerts.confirm-delete": "<b>אזהרה!</b><br/>האם אתה רוצה למחוק משתמש(ים)?<br/>פעולה זו אינה הפיכה! רק חשבון המשתמש יימחק, הפוסטים והנושאים שלו ישארו.", - "alerts.delete-success": "User(s) Deleted!", - "alerts.confirm-purge": "<b>Warning!</b><br/>Do you really want to delete user(s) and their content?<br/> This action is not reversable! All user data and content will be erased!", - "alerts.create": "Create User", - "alerts.button-create": "Create", - "alerts.button-cancel": "Cancel", - "alerts.error-passwords-different": "Passwords must match!", - "alerts.error-x": "<strong>Error</strong><p>%1</p>", - "alerts.create-success": "User created!", + "alerts.delete-success": "משתמש(ים) נמחק!", + "alerts.confirm-purge": "<b>אזהרה!</b><br/>האם אתה באמת רוצה למחוק משתמש(ים) ואת התוכן שלהם? פעולה זו בלתי הפיכה! כל המידע והתכנים של המשתמש ימחקו!", + "alerts.create": "צור משתמש", + "alerts.button-create": "צור", + "alerts.button-cancel": "בטל", + "alerts.error-passwords-different": "סיסמאות חייבות להיות שווה!", + "alerts.error-x": "<strong>טעות</strong><p>%1</p>", + "alerts.create-success": "נוצר משתמש!", - "alerts.prompt-email": "Email: ", - "alerts.email-sent-to": "An invitation email has been sent to %1", + "alerts.prompt-email": "דוא\"ל:", + "alerts.email-sent-to": "דואל הזמנה נשלח ל %1", "alerts.x-users-found": "%1 user(s) found! Search took %2 ms." } \ No newline at end of file diff --git a/public/language/he/admin/settings/general.json b/public/language/he/admin/settings/general.json index 4dd212aefb..42ea725ff3 100644 --- a/public/language/he/admin/settings/general.json +++ b/public/language/he/admin/settings/general.json @@ -1,8 +1,8 @@ { - "site-settings": "Site Settings", - "title": "Site Title", - "title.url": "URL", - "title.url-placeholder": "The URL of the site title", + "site-settings": "הגדרות האתר", + "title": "כותרת האתר", + "title.url": "כתובת האתר", + "title.url-placeholder": "כתובת אתר זה", "title.url-help": "When the title is clicked, send users to this address. If left blank, user will be sent to the forum index.", "title.name": "Your Community Name", "title.show-in-header": "Show Site Title in Header", diff --git a/public/language/he/email.json b/public/language/he/email.json index 2fe5ec327d..635aa7cd5a 100644 --- a/public/language/he/email.json +++ b/public/language/he/email.json @@ -9,7 +9,7 @@ "welcome.text3": "מנהל אישר את ההרשמה שלך.\nאתה יכול להתחבר עם השם משתמש והסיסמא שלך מעכשיו.", "welcome.cta": "לחץ כאן על מנת לאשר את כתובת המייל שלך.", "invitation.text1": "%1 הזמין אותך להצתרף ל%2", - "invitation.text2": "Your invitation will expire in %1 days.", + "invitation.text2": "ההזמנה של תפוג ב %1 ימים", "invitation.ctr": "לחץ כאן כדי ליצור את החשבון שלך.", "reset.text1": "קיבלנו בקשה לאפס את הסיסמה לחשבון שלך, כנראה מפני ששכחת אותה. אם לא ביקשת לאפס את הסיסמה, אנא התעלם ממייל זה.", "reset.text2": "על מנת להמשיך עם תהליך איפוס הסיסמה, אנא לחץ על הלינק הבא:", diff --git a/public/language/he/user.json b/public/language/he/user.json index f27098509a..56ec35951f 100644 --- a/public/language/he/user.json +++ b/public/language/he/user.json @@ -12,7 +12,7 @@ "ban_account_confirm": "אתה בטוח שברצונך להרחיק את המשתמש הזה?", "unban_account": "בטל את הרחקת החשבון", "delete_account": "מחק חשבון", - "delete_account_confirm": "Are you sure you want to delete your account? <br /><strong>This action is irreversible and you will not be able to recover any of your data</strong><br /><br />Enter your password to confirm that you wish to destroy this account.", + "delete_account_confirm": "האם אתה בטוח שאתה רוצה למחוק את החשבון שלך? <br /><strong>הפעולה הזו היא בלתי הפיכה והמידע שלך לא יוכל להשתחזר</strong><br /><br />הזן את הסיסמה שלך לאשר שאתה רוצה למחוק חשבון זה.", "delete_this_account_confirm": "האם אתה בטוח שברצונך למחוק חשבון זה? <br /><strong> אפשרות זו לא ניתנת לביטול ולא תוכל לשחזר אף מידע </strong><br /><br />", "account-deleted": "החשבון נמחק", "fullname": "שם מלא", diff --git a/public/language/pl/admin/manage/tags.json b/public/language/pl/admin/manage/tags.json index 9820ae5739..3c8bea86d4 100644 --- a/public/language/pl/admin/manage/tags.json +++ b/public/language/pl/admin/manage/tags.json @@ -14,6 +14,6 @@ "alerts.editing-multiple": "Edycja wielu tagów", "alerts.editing-x": "Edytowanie tagu \"%1\"", - "alerts.confirm-delete": "Czy na pewno chcesz skasować zaznaczone tagi?", + "alerts.confirm-delete": "Czy na pewno chcesz usunąć zaznaczone tagi?", "alerts.update-success": "Zaktualizowano tag-a!" } \ No newline at end of file diff --git a/public/language/pl/error.json b/public/language/pl/error.json index 5cc17e02c8..9890aa410f 100644 --- a/public/language/pl/error.json +++ b/public/language/pl/error.json @@ -65,7 +65,7 @@ "cant-delete-topic-has-replies": "Nie możesz usunąć tematu zawierającego %1 odpowiedzi", "content-too-short": "Prosimy wpisać dłuższy post. Posty powinny zawierać co najmniej %1 znaków.", "content-too-long": "Prosimy wpisać krótszy post. Posty nie mogą zawierać więcej niż %1 znaków.", - "title-too-short": "Prosimy podać dłuższy tytuł. Tytuły powinny zawierać co najmniej %1 znaków.", + "title-too-short": "Wpisz dłuższy tytuł. Tytuły powinny liczyć co najmniej %1 znaków.", "title-too-long": "Prosimy podać krótszy tytuł. Tytuły nie mogą być dłuższe niż %1 znaków.", "category-not-selected": "Nie wybrano kategorii.", "too-many-posts": "Możesz publikować posty raz na %1 sekund – poczekaj, zanim dodasz kolejny post", @@ -99,7 +99,7 @@ "post-already-restored": "Ten post został już przywrócony", "topic-already-deleted": "Ten temat został już skasowany", "topic-already-restored": "Ten temat został już przywrócony", - "cant-purge-main-post": "Nie możesz wymazać głównego postu, zamiast tego usuń temat", + "cant-purge-main-post": "Nie możesz wymazać głównego posta, zamiast tego usuń temat", "topic-thumbnails-are-disabled": "Miniatury tematów są wyłączone.", "invalid-file": "Błędny plik", "uploads-are-disabled": "Przesyłanie plików jest wyłączone", diff --git a/public/language/pl/pages.json b/public/language/pl/pages.json index dc38ed53f7..75a88a4659 100644 --- a/public/language/pl/pages.json +++ b/public/language/pl/pages.json @@ -8,7 +8,7 @@ "recent": "Ostatnie tematy", "top": "Tematy z najwyższą liczbą głosów", "moderator-tools": "Narzędzia dla moderatorów", - "flagged-content": "Treść oflagowanego posta", + "flagged-content": "Flagi", "ip-blacklist": "Czarna lista adresów IP", "post-queue": "Kolejka postów", "users/online": "Dostępni użytkownicy", diff --git a/public/language/pl/tags.json b/public/language/pl/tags.json index f5ad810ca2..bf08ecd799 100644 --- a/public/language/pl/tags.json +++ b/public/language/pl/tags.json @@ -1,7 +1,7 @@ { "no_tag_topics": "Nie ma tematów z tym tagiem", "tags": "Tagi", - "enter_tags_here": "Wpisz tagi tutaj, każdy o długości %1 do %2 znaków.", + "enter_tags_here": "Wpisz tagi tutaj, każdy o długości od %1 do %2 znaków.", "enter_tags_here_short": "Wpisz tagi...", "no_tags": "Jeszcze nie ma tagów." } \ No newline at end of file diff --git a/public/language/pl/topic.json b/public/language/pl/topic.json index e24c81a371..d878852919 100644 --- a/public/language/pl/topic.json +++ b/public/language/pl/topic.json @@ -33,7 +33,7 @@ "copy-ip": "Kopiuj IP", "ban-ip": "Blokuj IP", "view-history": "Edytuj historię", - "bookmark_instructions": "Kliknij tutaj, by powrócić do ostatniego przeczytanego postu w tym temacie.", + "bookmark_instructions": "Kliknij tutaj, by powrócić do ostatniego przeczytanego posta w tym temacie.", "flag_title": "Zgłoś post do moderacji", "merged_message": "Ten temat został połączony z <a href=\"/topic/%1\">%2</a>", "deleted_message": "Ten temat został usunięty. Mogą go zobaczyć tylko użytkownicy upoważnieni do zarządzania tematami.", @@ -84,7 +84,7 @@ "confirm_fork": "Skopiuj", "bookmark": "Dodaj do zakładek", "bookmarks": "Zakładki", - "bookmarks.has_no_bookmarks": "Nie dodałeś jeszcze żadnego postu do zakładek.", + "bookmarks.has_no_bookmarks": "Nie dodałeś jeszcze żadnego posta do zakładek.", "loading_more_posts": "Załaduj więcej postów", "move_topic": "Przenieś temat", "move_topics": "Przenieś tematy", diff --git a/public/src/modules/notifications.js b/public/src/modules/notifications.js index 937f625738..4a5f86c625 100644 --- a/public/src/modules/notifications.js +++ b/public/src/modules/notifications.js @@ -75,7 +75,7 @@ define('notifications', ['sounds', 'translator', 'components', 'navigator', 'ben var payload = { alert_id: 'new_notif', title: '[[notifications:new_notification]]', - timeout: 2000, + timeout: parseInt(config.notificationAlertTimeout, 10) || 5000, }; if (notifData.path) { diff --git a/src/controllers/api.js b/src/controllers/api.js index ed8ad64700..b969b7be8a 100644 --- a/src/controllers/api.js +++ b/src/controllers/api.js @@ -62,6 +62,7 @@ apiController.loadConfig = function (req, callback) { config.bootswatchSkin = meta.config.bootswatchSkin || 'noskin'; config.defaultBootswatchSkin = meta.config.bootswatchSkin || 'noskin'; config.enablePostHistory = parseInt(meta.config.enablePostHistory || 1, 10) === 1; + config.notificationAlertTimeout = parseInt(meta.config.notificationAlertTimeout, 10) || 5000; if (config.useOutgoingLinksPage) { config.outgoingLinksWhitelist = meta.config['outgoingLinks:whitelist']; diff --git a/src/emailer.js b/src/emailer.js index db49bdf0f8..184eb5d95b 100644 --- a/src/emailer.js +++ b/src/emailer.js @@ -212,12 +212,23 @@ Emailer.sendToEmail = function (template, email, language, params, callback) { async.waterfall([ function (next) { + Plugins.fireHook('filter:email.params', { + template: template, + email: email, + language: lang, + params: params, + }, next); + }, + function (result, next) { + template = result.template; + email = result.email; + params = result.params; async.parallel({ html: function (next) { - Emailer.renderAndTranslate(template, params, lang, next); + Emailer.renderAndTranslate(template, params, result.language, next); }, subject: function (next) { - translator.translate(params.subject, lang, function (translated) { + translator.translate(params.subject, result.language, function (translated) { next(null, translated); }); }, diff --git a/src/posts/cache.js b/src/posts/cache.js index 9fce761490..28c58839e8 100644 --- a/src/posts/cache.js +++ b/src/posts/cache.js @@ -4,7 +4,7 @@ var LRU = require('lru-cache'); var meta = require('../meta'); var cache = LRU({ - max: parseInt(meta.config.postCacheSize, 10) || 1048576, + max: parseInt(meta.config.postCacheSize, 10) || 5242880, length: function (n) { return n.length; }, maxAge: 0, }); diff --git a/src/views/admin/manage/uploads.tpl b/src/views/admin/manage/uploads.tpl index a18b233aa6..dbddede2ef 100644 --- a/src/views/admin/manage/uploads.tpl +++ b/src/views/admin/manage/uploads.tpl @@ -17,7 +17,7 @@ <tr data-path="{files.path}"> <!-- IF files.isDirectory --> <td class="col-md-9" role="button"> - <i class="fa fa-fw fa-folder-o"></i> <a href="{config.relative}/admin/manage/uploads?dir={files.path}">{files.name}</a> + <i class="fa fa-fw fa-folder-o"></i> <a href="{config.relative_path}/admin/manage/uploads?dir={files.path}">{files.name}</a> </td> <!-- ENDIF files.isDirectory --> diff --git a/src/views/admin/settings/notifications.tpl b/src/views/admin/settings/notifications.tpl index 3e68295699..1f1af27037 100644 --- a/src/views/admin/settings/notifications.tpl +++ b/src/views/admin/settings/notifications.tpl @@ -7,6 +7,8 @@ <strong>[[admin/settings/notifications:welcome-notification]]</strong><br /> <textarea class="form-control" data-field="welcomeNotification"></textarea><br /> <strong>[[admin/settings/notifications:welcome-notification-link]]</strong><br /> <input type="text" class="form-control" data-field="welcomeLink"><br /> <strong>[[admin/settings/notifications:welcome-notification-uid]]</strong><br /> <input type="text" class="form-control" data-field="welcomeUid"><br /> + + <strong>[[admin/settings/notifications:notification-alert-timeout]]</strong><br /> <input type="text" class="form-control" data-field="notificationAlertTimeout" placeholder="5000"><br /> </form> </div> </div>