diff --git a/.travis.yml b/.travis.yml index ffd3716c2a..82838ced67 100644 --- a/.travis.yml +++ b/.travis.yml @@ -19,11 +19,9 @@ addons: packages: - g++-4.8 node_js: - - "4.2" - - "4.1" - - "4.0" - - "0.11" - - "0.10" + - "6" + - "5" + - "4" branches: only: - master \ No newline at end of file diff --git a/app.js b/app.js index c633af9932..c348cbfed5 100644 --- a/app.js +++ b/app.js @@ -1,7 +1,7 @@ /* NodeBB - A better forum platform for the modern web https://github.com/NodeBB/NodeBB/ - Copyright (C) 2013-2014 NodeBB Inc. + Copyright (C) 2013-2016 NodeBB Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -54,10 +54,11 @@ if (nconf.get('config')) { var configExists = file.existsSync(configFile) || (nconf.get('url') && nconf.get('secret') && nconf.get('database')); loadConfig(); +versionCheck(); if (!process.send) { // If run using `node app`, log GNU copyright info along with server info - winston.info('NodeBB v' + nconf.get('version') + ' Copyright (C) 2013-2014 NodeBB Inc.'); + winston.info('NodeBB v' + nconf.get('version') + ' Copyright (C) 2013-' + (new Date()).getFullYear() + ' NodeBB Inc.'); winston.info('This program comes with ABSOLUTELY NO WARRANTY.'); winston.info('This is free software, and you are welcome to redistribute it under certain conditions.'); winston.info(''); @@ -117,6 +118,9 @@ function start() { if (!nconf.get('upload_path')) { nconf.set('upload_path', '/public/uploads'); } + if (!nconf.get('sessionKey')) { + nconf.set('sessionKey', 'express.sid'); + } // Parse out the relative_url and other goodies from the configured URL var urlObject = url.parse(nconf.get('url')); var relativePath = urlObject.pathname !== '/' ? urlObject.pathname : ''; @@ -347,3 +351,15 @@ function restart() { shutdown(1); } } + +function versionCheck() { + var version = process.version.slice(1); + var range = pkg.engines.node; + var semver = require('semver'); + var compatible = semver.satisfies(version, range); + + if (!compatible) { + winston.warn('Your version of Node.js is too outdated for NodeBB. Please update your version of Node.js.'); + winston.warn('Recommended ' + range.green + ', '.reset + version.yellow + ' provided\n'.reset); + } +} \ No newline at end of file diff --git a/package.json b/package.json index 1c22a3c70a..9992691474 100644 --- a/package.json +++ b/package.json @@ -57,9 +57,9 @@ "nodebb-plugin-soundpack-default": "0.1.6", "nodebb-plugin-spam-be-gone": "0.4.10", "nodebb-rewards-essentials": "0.0.9", - "nodebb-theme-lavender": "3.0.13", - "nodebb-theme-persona": "4.1.35", - "nodebb-theme-vanilla": "5.1.20", + "nodebb-theme-lavender": "3.0.14", + "nodebb-theme-persona": "4.1.40", + "nodebb-theme-vanilla": "5.1.23", "nodebb-widget-essentials": "2.0.10", "nodemailer": "2.0.0", "nodemailer-sendmail-transport": "1.0.0", @@ -100,7 +100,7 @@ "url": "https://github.com/NodeBB/NodeBB/issues" }, "engines": { - "node": ">=0.10" + "node": ">=4" }, "maintainers": [ { diff --git a/public/language/ar/category.json b/public/language/ar/category.json index 833873ea84..807b1579e3 100644 --- a/public/language/ar/category.json +++ b/public/language/ar/category.json @@ -6,7 +6,7 @@ "no_topics": "لا توجد مواضيع في هذه الفئةلم لا تحاول إنشاء موضوع؟
", "browsing": "تصفح", "no_replies": "لم يرد أحد", - "no_new_posts": "لا يوجد مشاركات جديدة.", + "no_new_posts": "لا توجد مشاركات جديدة.", "share_this_category": "انشر هذه الفئة", "watch": "تابع", "ignore": "تجاهل", diff --git a/public/language/ar/error.json b/public/language/ar/error.json index f1a81bf0c3..fdd300043b 100644 --- a/public/language/ar/error.json +++ b/public/language/ar/error.json @@ -14,24 +14,24 @@ "invalid-password": "كلمة السر غير مقبولة", "invalid-username-or-password": "المرجود تحديد اسم مستخدم و كلمة مرور", "invalid-search-term": "كلمة البحث غير صحيحة", - "csrf-invalid": "We were unable to log you in, likely due to an expired session. Please try again", - "invalid-pagination-value": "Invalid pagination value, must be at least %1 and at most %2", + "csrf-invalid": "لم تتمكن من تسجيل الدخول. هنالك أحتمال ان جلستك انتهت. رجاءًا حاول مرة اخرى.", + "invalid-pagination-value": "رقم الصفحة غير صحيح ، يجب أن يكون بين %1 و %2 .", "username-taken": "اسم المستخدم مأخوذ", "email-taken": "البريد الالكتروني مأخوذ", "email-not-confirmed": "عنوان بريدك الإلكتروني غير مفعل بعد. انقر هنا لتفعيله من فضلك.", "email-not-confirmed-chat": "لا يمكنك الدردشة حتى تقوم بتأكيد بريدك الإلكتروني، الرجاء إضغط هنا لتأكيد بريدك اﻹلكتروني.", - "email-not-confirmed-email-sent": "Your email has not been confirmed yet, please check your inbox for the confirmation email.", + "email-not-confirmed-email-sent": "بريدك الإلكتروني غير مفعل. رجاءًا تفحص صندوق البريد عن رسالة التفعيل.", "no-email-to-confirm": "هذا المنتدى يستلزم تفعيل بريدك الإلكتروني، انقر هنا من فضلك لإدخاله.", "email-confirm-failed": "لم نستطع تفعيل بريدك الإلكتروني، المرجو المحاولة لاحقًا.", "confirm-email-already-sent": "لقد تم ارسال بريد التأكيد، الرجاء اﻹنتظار 1% دقائق لإعادة اﻹرسال", "sendmail-not-found": "The sendmail executable could not be found, please ensure it is installed and executable by the user running NodeBB.", "username-too-short": "اسم المستخدم قصير.", "username-too-long": "اسم المستخدم طويل", - "password-too-long": "Password too long", + "password-too-long": "كلمة السر طويلة ", "user-banned": "المستخدم محظور", "user-too-new": "عذرا, يجب أن تنتظر 1% ثواني قبل قيامك بأول مشاركة", - "blacklisted-ip": "Sorry, your IP address has been banned from this community. If you feel this is in error, please contact an administrator.", - "ban-expiry-missing": "Please provide an end date for this ban", + "blacklisted-ip": "نأسف، لقد تم حظرك من استخدام وتصفح المنتدى. إذا كنت تعتقد أن هذا خطأ رجاءًا اتصل بالإدارة. ", + "ban-expiry-missing": "رجاءًا ضع تاريخ نهاية الحظر. ", "no-category": "قائمة غير موجودة", "no-topic": "موضوع غير موجود", "no-post": "رد غير موجود", @@ -41,7 +41,7 @@ "no-privileges": "لاتملك الصلاحيات اللازمة للقيام بهذه العملية", "category-disabled": "قائمة معطلة", "topic-locked": "الموضوع مقفول", - "post-edit-duration-expired": "You are only allowed to edit posts for %1 second(s) after posting", + "post-edit-duration-expired": "مسموح لك بتعديل مشاركتك بعد %1 ثانية من نشرها.", "post-edit-duration-expired-minutes": "You are only allowed to edit posts for %1 minute(s) after posting", "post-edit-duration-expired-minutes-seconds": "You are only allowed to edit posts for %1 minute(s) %2 second(s) after posting", "post-edit-duration-expired-hours": "You are only allowed to edit posts for %1 hour(s) after posting", @@ -67,25 +67,25 @@ "tag-too-long": "Please enter a shorter tag. Tags can't be longer than %1 character(s)", "not-enough-tags": "Not enough tags. Topics must have at least %1 tag(s)", "too-many-tags": "Too many tags. Topics can't have more than %1 tag(s)", - "still-uploading": "الرجاء انتظار الرفع", - "file-too-big": "Maximum allowed file size is %1 kB - please upload a smaller file", - "guest-upload-disabled": "Guest uploading has been disabled", - "already-favourited": "You have already bookmarked this post", - "already-unfavourited": "You have already unbookmarked this post", + "still-uploading": "الرجاء الانتظار حتى يكتمل الرفع.", + "file-too-big": "الحد الأقصى لرفع الملفات %1 كيلو بت. رجاءًا ارفع ملف أصغر", + "guest-upload-disabled": "خاصية رفع الملفات غير مفعلة للزوار.", + "already-favourited": "سبق وفضلت هذه المشاركة.", + "already-unfavourited": "لقد ازلت هذه المشاركةمن المفضلة من قبل ألا تذكر؟", "cant-ban-other-admins": "لايمكن حظر مدبر نظام آخر.", - "cant-remove-last-admin": "You are the only administrator. Add another user as an administrator before removing yourself as admin", - "cant-delete-admin": "Remove administrator privileges from this account before attempting to delete it.", - "invalid-image-type": "Invalid image type. Allowed types are: %1", - "invalid-image-extension": "Invalid image extension", + "cant-remove-last-admin": "رجاءًا ، أضف مدير أخر قبل حذف صلاحيات الإدارة من حسابك.", + "cant-delete-admin": "رجاءًا أزل صلاحيات الإدارة قبل حذف الحساب. ", + "invalid-image-type": "نوع الصورة غير مدعوم. الأنواع المدعومة هي : %1", + "invalid-image-extension": "امتداد الصورة غير مدعوم.", "invalid-file-type": "Invalid file type. Allowed types are: %1", "group-name-too-short": "اسم المجموعة قصير", - "group-name-too-long": "Group name too long", + "group-name-too-long": "اسم المجموعة طويل.", "group-already-exists": "المجموعة موجودة مسبقا", "group-name-change-not-allowed": "لايسمح بتغيير أسماء المجموعات", - "group-already-member": "Already part of this group", - "group-not-member": "Not a member of this group", + "group-already-member": "أنت عضو في هذه المجموعة.", + "group-not-member": "أنت لست عضو في هذه المجموعة.", "group-needs-owner": "هذه المجموعة تتطلب مالك واحد على اﻷقل", - "group-already-invited": "This user has already been invited", + "group-already-invited": "المستخدم مدعُو بالفعل.", "group-already-requested": "Your membership request has already been submitted", "post-already-deleted": "سبق وتم حذف هذا الرد", "post-already-restored": "سبق وتم إلغاء حذف هذا الرد", @@ -96,22 +96,22 @@ "invalid-file": "ملف غير مقبول", "uploads-are-disabled": "رفع الملفات غير مفعل", "signature-too-long": "عذرا، توقيعك يجب ألا يتجاوز %1 حرفًا.", - "about-me-too-long": "Sorry, your about me cannot be longer than %1 character(s).", + "about-me-too-long": "نأسف، ( عني ) لا يمكن أن يكون أكثر من %1 حرف. ", "cant-chat-with-yourself": "لايمكنك فتح محادثة مع نفسك", "chat-restricted": "هذا المستخدم عطل المحادثات الواردة عليه. يجب أن يتبعك حتى تتمكن من فتح محادثة معه.", - "chat-disabled": "Chat system disabled", + "chat-disabled": "نظام المحادثة معطل.", "too-many-messages": "لقد أرسلت الكثير من الرسائل، الرجاء اﻹنتظار قليلاً", - "invalid-chat-message": "Invalid chat message", - "chat-message-too-long": "Chat message is too long", - "cant-edit-chat-message": "You are not allowed to edit this message", - "cant-remove-last-user": "You can't remove the last user", - "cant-delete-chat-message": "You are not allowed to delete this message", - "already-voting-for-this-post": "You have already voted for this post.", + "invalid-chat-message": "الرسالة غير صالحة.", + "chat-message-too-long": "الرسالة طويلة.", + "cant-edit-chat-message": "غير مصرح لك بتعديل الرسالة.", + "cant-remove-last-user": "لأيمكنك إزالت اخر مستخدم.", + "cant-delete-chat-message": "غير مصرح لك بحذف الرسالة.", + "already-voting-for-this-post": "لقد شاركت بالتصويت ، ألا تذكر؟", "reputation-system-disabled": "نظام السمعة معطل", "downvoting-disabled": "التصويتات السلبية معطلة", "not-enough-reputation-to-downvote": "ليس لديك سمعة تكفي لإضافة صوت سلبي لهذا الموضوع", "not-enough-reputation-to-flag": "ليس لديك سمعة تكفي للإشعار بموضوع مخل", - "already-flagged": "You have already flagged this post", + "already-flagged": "لقد بلغت عن هذه المشاركة من قبل.", "reload-failed": "المنتدى واجه مشكلة أثناء إعادة التحميل: \"%1\". سيواصل المنتدى خدمة العملاء السابقين لكن يجب عليك إلغاء أي تغيير قمت به قبل إعادة التحميل.", "registration-error": "حدث خطأ أثناء التسجيل", "parse-error": "حدث خطأ ما أثناء تحليل استجابة الخادم", @@ -119,9 +119,11 @@ "wrong-login-type-username": "الرجاء استعمال اسم المستخدم الخاص بك للدخول", "invite-maximum-met": "You have invited the maximum amount of people (%1 out of %2).", "no-session-found": "No login session found!", - "not-in-room": "User not in room", - "no-users-in-room": "No users in this room", - "cant-kick-self": "You can't kick yourself from the group", - "no-users-selected": "No user(s) selected", - "invalid-home-page-route": "Invalid home page route" + "not-in-room": "المستخدم غير موجود في الغرفة.", + "no-users-in-room": "لا يوجد مستخدمين في الغرفة.", + "cant-kick-self": "لا يمكنك طرد نفسك من المجموعة.", + "no-users-selected": "لا يوجد مستخدم محدد.", + "invalid-home-page-route": "Invalid home page route", + "invalid-session": "Session Mismatch", + "invalid-session-text": "It looks like your login session is no longer active, or no longer matches with the server. Please refresh this page." } \ No newline at end of file diff --git a/public/language/ar/global.json b/public/language/ar/global.json index 2e4d39d113..4c86069873 100644 --- a/public/language/ar/global.json +++ b/public/language/ar/global.json @@ -4,13 +4,13 @@ "buttons.close": "أغلق", "403.title": "غير مسموح بالدخول", "403.message": "يبدو أنك قد تعثرت على صفحة لا تمتلك الصلاحية للدخول إليها", - "403.login": "Perhaps you should try logging in?", + "403.login": "حاول أن تسجل دخولك.", "404.title": "لم يتم العثور", - "404.message": "You seem to have stumbled upon a page that does not exist. Return to the home page.", - "500.title": "Internal Error.", + "404.message": "الصفحة غير موجودة. العودة لـ الرئيسية", + "500.title": "خطأ داخلي", "500.message": "عفوا! يبدو وكأنه شيء ذهب على نحو خاطئ!", - "400.title": "Bad Request.", - "400.message": "It looks like this link is malformed, please double-check and try again. Otherwise, return to the home page.", + "400.title": "طلب سيئ", + "400.message": "الرابط غير صحيح. رجاءًا تأكد من الرابط أو ارجع لـ الرئيسية", "register": "تسجيل", "login": "دخول", "please_log_in": "المرجو تسجيل الدخول", @@ -35,7 +35,7 @@ "header.notifications": "التنبيهات", "header.search": "بحث", "header.profile": "ملف", - "header.navigation": "Navigation", + "header.navigation": "الاستكشاف", "notifications.loading": "تحميل التبليغات", "chats.loading": "تحميل الدردشات", "motd.welcome": "مرحبا بكم NodeBB، منصة مناقشة المستقبل", @@ -51,31 +51,31 @@ "users": "الأعضاء", "topics": "المواضيع", "posts": "المشاركات", - "best": "Best", - "upvoters": "Upvoters", - "upvoted": "Upvoted", - "downvoters": "Downvoters", - "downvoted": "Downvoted", + "best": "الأفضل", + "upvoters": "الموافقين", + "upvoted": "مصوت بالموجب", + "downvoters": "مصوتين بالسالب", + "downvoted": "مصوت بالسالب", "views": "المشاهدات", "reputation": "السمعة", "read_more": "اقرأ المزيد", "more": "المزيد", - "posted_ago_by_guest": "كتب %1 من طرف زائر", - "posted_ago_by": "كتب %1 من طرف %2", + "posted_ago_by_guest": "كتب %1 بواسطة زائر", + "posted_ago_by": "كتب %1 بواسطة %2", "posted_ago": "كتب %1", - "posted_in": "posted in %1", - "posted_in_by": "posted in %1 by %2", + "posted_in": "كتب في %1", + "posted_in_by": "كتب في 1% بواسطة %2", "posted_in_ago": "كتب في %1 %2", "posted_in_ago_by": "كتب في %1 %2 من طرف %3", "user_posted_ago": "%1 كتب %2", "guest_posted_ago": "كتب زائر %1", - "last_edited_by": "last edited by %1", + "last_edited_by": "اخر تحرير بواسطة 1%", "norecentposts": "لاوجود لمشاركات جديدة", "norecenttopics": "لاوجود لمواضيع جديدة", "recentposts": "آخر المشاركات", "recentips": "آخر عناوين ال IP التي سجلت الدخول", "away": "غير متواجد", - "dnd": "Do not disturb", + "dnd": "عدم الإزعاج", "invisible": "مخفي", "offline": "غير متصل", "email": "عنوان البريد الإلكتروني", @@ -88,12 +88,13 @@ "follow": "متابعة", "unfollow": "إلغاء المتابعة", "delete_all": "حذف الكل", - "map": "Map", - "sessions": "Login Sessions", - "ip_address": "IP Address", - "enter_page_number": "Enter page number", - "upload_file": "Upload file", - "upload": "Upload", - "allowed-file-types": "Allowed file types are %1", - "unsaved-changes": "You have unsaved changes. Are you sure you wish to navigate away?" + "map": "خريطة", + "sessions": "الجلسة", + "ip_address": "عنوان الآي بي", + "enter_page_number": "ادخل رقم الصفحة", + "upload_file": "ارفع ملف", + "upload": "ارفع", + "allowed-file-types": "صيغ الملفات المدعومة هي 1%", + "unsaved-changes": "لديك تغييرات لم تحفظ. هل أنت متأكد من تغيير الصفحة؟", + "reconnecting-message": "يبدو أن اتصالك لـ %1 قد فقد. رجاءًا أنتظر ثم حاول الإتصال مرة اخرى." } \ No newline at end of file diff --git a/public/language/ar/topic.json b/public/language/ar/topic.json index 6ffaaa75d7..0bb287eda6 100644 --- a/public/language/ar/topic.json +++ b/public/language/ar/topic.json @@ -13,7 +13,7 @@ "notify_me": "تلق تنبيهات بالردود الجديدة في هذا الموضوع", "quote": "اقتبس", "reply": "رد", - "reply-as-topic": "Reply as topic", + "reply-as-topic": "رد بموضوع", "guest-login-reply": "يجب عليك تسجيل الدخول للرد", "edit": "تعديل", "delete": "حذف", @@ -26,9 +26,9 @@ "tools": "أدوات", "flag": "تبليغ", "locked": "مقفل", - "pinned": "Pinned", - "moved": "Moved", - "bookmark_instructions": "Click here to return to the last read post in this thread.", + "pinned": "مثبت", + "moved": "منقول", + "bookmark_instructions": "اضغط هنا للعودة لأخر مشاركة مقروءة في الموضوع", "flag_title": "إشعار بمشاركة مخلة.", "flag_success": "تم الإشعار بهذه المشاركة على أنها مخلة", "deleted_message": "هذه المشاركة محذوفة. فقط من لهم صلاحية الإشراف على ا لمشاركات يمكنهم معاينتها.", @@ -37,17 +37,17 @@ "ignoring_topic.message": "You will no longer see this topic in the unread topics list. You will be notified when you are mentioned or your post is up voted.", "login_to_subscribe": "المرجو إنشاء حساب أو تسجيل الدخول حتى يمكنك متابعة هذا الموضوع.", "markAsUnreadForAll.success": "تم تحديد الموضوع على أنه غير مقروء.", - "mark_unread": "Mark unread", - "mark_unread.success": "Topic marked as unread.", + "mark_unread": "حدده كغير مقروء", + "mark_unread.success": "الموضوع حدد على أنه غير مقروء", "watch": "مراقبة", "unwatch": "الغاء المراقبة", "watch.title": "استلم تنبيها بالردود الجديدة في هذا الموضوع", "unwatch.title": "ألغ مراقبة هذا الموضوع", "share_this_post": "انشر هذا الموضوع", - "watching": "Watching", - "not-watching": "Not Watching", - "ignoring": "Ignoring", - "watching.description": "Notify me of new replies.
Show topic in unread.", + "watching": "مراقبة", + "not-watching": "غير مراقب", + "ignoring": "تجاهل", + "watching.description": "بلغني بالردود الجديدة
\nاظهر الموضوع في غير مقروء", "not-watching.description": "Do not notify me of new replies.
Show topic in unread if category is not ignored.", "ignoring.description": "Do not notify me of new replies.
Do not show topic in unread.", "thread_tools.title": "أدوات الموضوع", @@ -60,7 +60,7 @@ "thread_tools.move_all": "نقل الكل", "thread_tools.fork": "إنشاء فرع الموضوع", "thread_tools.delete": "حذف الموضوع", - "thread_tools.delete-posts": "Delete Posts", + "thread_tools.delete-posts": "مشاركات محذوفة", "thread_tools.delete_confirm": "هل أنت متأكد أنك تريد حذف هذا الموضوع؟", "thread_tools.restore": "استعادة الموضوع", "thread_tools.restore_confirm": "هل أنت متأكد أنك تريد استعادة هذا الموضوع؟", @@ -74,9 +74,9 @@ "disabled_categories_note": "الفئات المعطلة رمادية", "confirm_move": "انقل", "confirm_fork": "فرع", - "favourite": "Bookmark", - "favourites": "Bookmarks", - "favourites.has_no_favourites": "You haven't bookmarked any posts yet.", + "favourite": "المفضلة", + "favourites": "المفضلات", + "favourites.has_no_favourites": "لم تقم بتفضيل اي مشاركة حتى الأن.", "loading_more_posts": "تحميل المزيد من المشاركات", "move_topic": "نقل الموضوع", "move_topics": "نقل المواضيع", @@ -86,7 +86,7 @@ "topic_will_be_moved_to": "هذا الموضوع سوف ينقل إلى فئة", "fork_topic_instruction": "إضغط على المشاركات التي تريد تفريعها", "fork_no_pids": "لم تختر أي مشاركة", - "fork_pid_count": "%1 post(s) selected", + "fork_pid_count": "1% مشاركة محددة", "fork_success": "تم إنشاء فرع للموضوع بنجاح! إضغط هنا لمعاينة الفرع.", "delete_posts_instruction": "Click the posts you want to delete/purge", "composer.title_placeholder": "أدخل عنوان موضوعك هنا...", @@ -113,10 +113,10 @@ "most_posts": "اﻷكثر رداً", "stale.title": "Create new topic instead?", "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", - "stale.create": "Create a new topic", - "stale.reply_anyway": "Reply to this topic anyway", - "link_back": "Re: [%1](%2)", - "spam": "Spam", - "offensive": "Offensive", - "custom-flag-reason": "Enter a flagging reason" + "stale.create": "موضوع جديد", + "stale.reply_anyway": "الرد على هذا الموضوع ", + "link_back": "رد: [%1](%2)", + "spam": "سبام", + "offensive": "مسيئ", + "custom-flag-reason": "أدخل سبب التبليغ" } \ No newline at end of file diff --git a/public/language/ar/user.json b/public/language/ar/user.json index 0654ea0a71..65b93f7a46 100644 --- a/public/language/ar/user.json +++ b/public/language/ar/user.json @@ -89,6 +89,10 @@ "topics_per_page": "المواضيع في كل صفحة", "posts_per_page": "الردود في كل صفحة", "notification_sounds": "تشغيل صوت عند تلقي تنبيه", + "notifications_and_sounds": "Notifications & Sounds", + "incoming-message-sound": "Incoming message sound", + "outgoing-message-sound": "Outgoing message sound", + "notification-sound": "Notification sound", "browsing": "خيارات التصفح", "open_links_in_new_tab": "فتح الروابط الخارجية في نافدة جديدة", "enable_topic_searching": "تفعيل خاصية البحث داخل المواضيع", diff --git a/public/language/bg/error.json b/public/language/bg/error.json index 48d57a8dee..42e826cb48 100644 --- a/public/language/bg/error.json +++ b/public/language/bg/error.json @@ -123,5 +123,7 @@ "no-users-in-room": "Няма потребители в тази стая", "cant-kick-self": "Не можете да изритате себе си от групата", "no-users-selected": "Няма избран(и) потребител(и)", - "invalid-home-page-route": "Грешен път към началната страница" + "invalid-home-page-route": "Грешен път към началната страница", + "invalid-session": "Несъответствие в сесията", + "invalid-session-text": "Изглежда сесията Ви за вход вече е изтекла, или не съответства на сървъра. Моля, презаредете страницата." } \ No newline at end of file diff --git a/public/language/bg/global.json b/public/language/bg/global.json index 6a68bfcec3..d4ffed8334 100644 --- a/public/language/bg/global.json +++ b/public/language/bg/global.json @@ -95,5 +95,6 @@ "upload_file": "Качване на файл", "upload": "Качване", "allowed-file-types": "Разрешените файлови типове са: %1", - "unsaved-changes": "Имате незапазени промени. Наистина ли искате да напуснете тази страница?" + "unsaved-changes": "Имате незапазени промени. Наистина ли искате да напуснете тази страница?", + "reconnecting-message": "Изглежда връзката Ви към %1 беше прекъсната. Моля, изчакайте докато се опитаме да Ви свържем отново." } \ No newline at end of file diff --git a/public/language/bg/user.json b/public/language/bg/user.json index 097e272f48..624c56c91f 100644 --- a/public/language/bg/user.json +++ b/public/language/bg/user.json @@ -89,6 +89,10 @@ "topics_per_page": "Теми на страница", "posts_per_page": "Публикации на страница", "notification_sounds": "Изпълняване на звук, когато получите известие", + "notifications_and_sounds": "Известия и звуци", + "incoming-message-sound": "Звук за входящо съобщение", + "outgoing-message-sound": "Звук за изходящо съобщение", + "notification-sound": "Звук за известие", "browsing": "Настройки за страниците", "open_links_in_new_tab": "Отваряне на външните връзки в нов подпрозорец", "enable_topic_searching": "Включване на търсенето в темите", diff --git a/public/language/bn/error.json b/public/language/bn/error.json index 66e8758fcb..d55a11cb39 100644 --- a/public/language/bn/error.json +++ b/public/language/bn/error.json @@ -123,5 +123,7 @@ "no-users-in-room": "No users in this room", "cant-kick-self": "You can't kick yourself from the group", "no-users-selected": "No user(s) selected", - "invalid-home-page-route": "Invalid home page route" + "invalid-home-page-route": "Invalid home page route", + "invalid-session": "Session Mismatch", + "invalid-session-text": "It looks like your login session is no longer active, or no longer matches with the server. Please refresh this page." } \ No newline at end of file diff --git a/public/language/bn/global.json b/public/language/bn/global.json index f678961fcd..545020267d 100644 --- a/public/language/bn/global.json +++ b/public/language/bn/global.json @@ -95,5 +95,6 @@ "upload_file": "Upload file", "upload": "Upload", "allowed-file-types": "Allowed file types are %1", - "unsaved-changes": "You have unsaved changes. Are you sure you wish to navigate away?" + "unsaved-changes": "You have unsaved changes. Are you sure you wish to navigate away?", + "reconnecting-message": "Looks like your connection to %1 was lost, please wait while we try to reconnect." } \ No newline at end of file diff --git a/public/language/bn/user.json b/public/language/bn/user.json index c7edda527f..94430186a6 100644 --- a/public/language/bn/user.json +++ b/public/language/bn/user.json @@ -89,6 +89,10 @@ "topics_per_page": "প্রতি পেজে কতগুলো টপিক থাকবে", "posts_per_page": "প্রতি পেইজে কতগুলো পোষ্ট থাকবে", "notification_sounds": "নোটিফিকেশনের জন্য নোটিফিকেশন সাউন্ড এনাবল করুন", + "notifications_and_sounds": "Notifications & Sounds", + "incoming-message-sound": "Incoming message sound", + "outgoing-message-sound": "Outgoing message sound", + "notification-sound": "Notification sound", "browsing": "Browsing সেটিংস", "open_links_in_new_tab": "আউটগোয়িং লিংকগুলো নতুন ট্যাবে খুলুন", "enable_topic_searching": "In-Topic সার্চ সক্রীয় করো", diff --git a/public/language/cs/error.json b/public/language/cs/error.json index 1c27c9e522..02627687a6 100644 --- a/public/language/cs/error.json +++ b/public/language/cs/error.json @@ -123,5 +123,7 @@ "no-users-in-room": "No users in this room", "cant-kick-self": "Nemůžete vyhodit sami sebe ze kupiny", "no-users-selected": "No user(s) selected", - "invalid-home-page-route": "Invalid home page route" + "invalid-home-page-route": "Invalid home page route", + "invalid-session": "Session Mismatch", + "invalid-session-text": "It looks like your login session is no longer active, or no longer matches with the server. Please refresh this page." } \ No newline at end of file diff --git a/public/language/cs/global.json b/public/language/cs/global.json index 80a7ee4825..e822b289c3 100644 --- a/public/language/cs/global.json +++ b/public/language/cs/global.json @@ -95,5 +95,6 @@ "upload_file": "Nahrár soubor", "upload": "Nahrát", "allowed-file-types": "Povolené typy souborů jsou %1", - "unsaved-changes": "You have unsaved changes. Are you sure you wish to navigate away?" + "unsaved-changes": "You have unsaved changes. Are you sure you wish to navigate away?", + "reconnecting-message": "Looks like your connection to %1 was lost, please wait while we try to reconnect." } \ No newline at end of file diff --git a/public/language/cs/user.json b/public/language/cs/user.json index 82809507c9..f4c5c62fd8 100644 --- a/public/language/cs/user.json +++ b/public/language/cs/user.json @@ -89,6 +89,10 @@ "topics_per_page": "Témat na stránce", "posts_per_page": "Příspěvků na stránce", "notification_sounds": "Přehrát zvuk když dostanete notifikaci", + "notifications_and_sounds": "Notifications & Sounds", + "incoming-message-sound": "Incoming message sound", + "outgoing-message-sound": "Outgoing message sound", + "notification-sound": "Notification sound", "browsing": "Browsing Settings", "open_links_in_new_tab": "Open outgoing links in new tab", "enable_topic_searching": "Enable In-Topic Searching", diff --git a/public/language/da/error.json b/public/language/da/error.json index 9be724b215..da3251a3f7 100644 --- a/public/language/da/error.json +++ b/public/language/da/error.json @@ -123,5 +123,7 @@ "no-users-in-room": "Ingen brugere i rummet", "cant-kick-self": "You can't kick yourself from the group", "no-users-selected": "No user(s) selected", - "invalid-home-page-route": "Invalid home page route" + "invalid-home-page-route": "Invalid home page route", + "invalid-session": "Session Mismatch", + "invalid-session-text": "It looks like your login session is no longer active, or no longer matches with the server. Please refresh this page." } \ No newline at end of file diff --git a/public/language/da/global.json b/public/language/da/global.json index 5f6d693e1f..5ef9da2842 100644 --- a/public/language/da/global.json +++ b/public/language/da/global.json @@ -95,5 +95,6 @@ "upload_file": "Upload fil", "upload": "Upload", "allowed-file-types": "Tilladte filtyper er %1", - "unsaved-changes": "You have unsaved changes. Are you sure you wish to navigate away?" + "unsaved-changes": "You have unsaved changes. Are you sure you wish to navigate away?", + "reconnecting-message": "Looks like your connection to %1 was lost, please wait while we try to reconnect." } \ No newline at end of file diff --git a/public/language/da/user.json b/public/language/da/user.json index ddc063914a..3391eb928c 100644 --- a/public/language/da/user.json +++ b/public/language/da/user.json @@ -89,6 +89,10 @@ "topics_per_page": "Emner per side", "posts_per_page": "Indlæg per side", "notification_sounds": "Afspil en lyd når du modtager en notifikation", + "notifications_and_sounds": "Notifications & Sounds", + "incoming-message-sound": "Incoming message sound", + "outgoing-message-sound": "Outgoing message sound", + "notification-sound": "Notification sound", "browsing": "Gennemsenings indstillinger", "open_links_in_new_tab": "Åben udgående link i en ny tab", "enable_topic_searching": "Slå In-Topic søgning til", diff --git a/public/language/de/error.json b/public/language/de/error.json index d10bf13c3e..19d65e559a 100644 --- a/public/language/de/error.json +++ b/public/language/de/error.json @@ -123,5 +123,7 @@ "no-users-in-room": "In diesem Raum befinden sich keine Benutzer.", "cant-kick-self": "Du kannst dich nicht selber aus der Gruppe entfernen.", "no-users-selected": "No user(s) selected", - "invalid-home-page-route": "Invalid home page route" + "invalid-home-page-route": "Invalid home page route", + "invalid-session": "Session Mismatch", + "invalid-session-text": "It looks like your login session is no longer active, or no longer matches with the server. Please refresh this page." } \ No newline at end of file diff --git a/public/language/de/global.json b/public/language/de/global.json index 775e81cbfa..2793fc58cf 100644 --- a/public/language/de/global.json +++ b/public/language/de/global.json @@ -95,5 +95,6 @@ "upload_file": "Datei hochladen", "upload": "Hochladen", "allowed-file-types": "Erlaubte Dateitypen sind %1", - "unsaved-changes": "You have unsaved changes. Are you sure you wish to navigate away?" + "unsaved-changes": "You have unsaved changes. Are you sure you wish to navigate away?", + "reconnecting-message": "Looks like your connection to %1 was lost, please wait while we try to reconnect." } \ No newline at end of file diff --git a/public/language/de/user.json b/public/language/de/user.json index acfe2516d6..fe75e315ae 100644 --- a/public/language/de/user.json +++ b/public/language/de/user.json @@ -89,6 +89,10 @@ "topics_per_page": "Themen pro Seite", "posts_per_page": "Beiträge pro Seite", "notification_sounds": "Ton abspielen, wenn du eine Benachrichtigung erhältst", + "notifications_and_sounds": "Notifications & Sounds", + "incoming-message-sound": "Incoming message sound", + "outgoing-message-sound": "Outgoing message sound", + "notification-sound": "Notification sound", "browsing": "Browsing", "open_links_in_new_tab": "Ausgehende Links in neuem Tab öffnen", "enable_topic_searching": "Suchen innerhalb von Themen aktivieren", diff --git a/public/language/el/error.json b/public/language/el/error.json index 32c609f78b..13e6988445 100644 --- a/public/language/el/error.json +++ b/public/language/el/error.json @@ -123,5 +123,7 @@ "no-users-in-room": "No users in this room", "cant-kick-self": "You can't kick yourself from the group", "no-users-selected": "No user(s) selected", - "invalid-home-page-route": "Invalid home page route" + "invalid-home-page-route": "Invalid home page route", + "invalid-session": "Session Mismatch", + "invalid-session-text": "It looks like your login session is no longer active, or no longer matches with the server. Please refresh this page." } \ No newline at end of file diff --git a/public/language/el/global.json b/public/language/el/global.json index 1c475bdf03..34df3b45bf 100644 --- a/public/language/el/global.json +++ b/public/language/el/global.json @@ -95,5 +95,6 @@ "upload_file": "Upload file", "upload": "Upload", "allowed-file-types": "Allowed file types are %1", - "unsaved-changes": "You have unsaved changes. Are you sure you wish to navigate away?" + "unsaved-changes": "You have unsaved changes. Are you sure you wish to navigate away?", + "reconnecting-message": "Looks like your connection to %1 was lost, please wait while we try to reconnect." } \ No newline at end of file diff --git a/public/language/el/user.json b/public/language/el/user.json index d9b4bdbb78..5bb86d6774 100644 --- a/public/language/el/user.json +++ b/public/language/el/user.json @@ -89,6 +89,10 @@ "topics_per_page": "Θέματα ανά σελίδα", "posts_per_page": "Δημοσιεύσεις ανά σελίδα", "notification_sounds": "Play a sound when you receive a notification", + "notifications_and_sounds": "Notifications & Sounds", + "incoming-message-sound": "Incoming message sound", + "outgoing-message-sound": "Outgoing message sound", + "notification-sound": "Notification sound", "browsing": "Επιλογές Περιήγησης", "open_links_in_new_tab": "Open outgoing links in new tab", "enable_topic_searching": "Enable In-Topic Searching", diff --git a/public/language/en@pirate/error.json b/public/language/en@pirate/error.json index 2ec9878ee8..1d2065d115 100644 --- a/public/language/en@pirate/error.json +++ b/public/language/en@pirate/error.json @@ -123,5 +123,7 @@ "no-users-in-room": "No users in this room", "cant-kick-self": "You can't kick yourself from the group", "no-users-selected": "No user(s) selected", - "invalid-home-page-route": "Invalid home page route" + "invalid-home-page-route": "Invalid home page route", + "invalid-session": "Session Mismatch", + "invalid-session-text": "It looks like your login session is no longer active, or no longer matches with the server. Please refresh this page." } \ No newline at end of file diff --git a/public/language/en@pirate/global.json b/public/language/en@pirate/global.json index 9bb8beecd3..aa50d9d08a 100644 --- a/public/language/en@pirate/global.json +++ b/public/language/en@pirate/global.json @@ -95,5 +95,6 @@ "upload_file": "Upload file", "upload": "Upload", "allowed-file-types": "Allowed file types are %1", - "unsaved-changes": "You have unsaved changes. Are you sure you wish to navigate away?" + "unsaved-changes": "You have unsaved changes. Are you sure you wish to navigate away?", + "reconnecting-message": "Looks like your connection to %1 was lost, please wait while we try to reconnect." } \ No newline at end of file diff --git a/public/language/en@pirate/user.json b/public/language/en@pirate/user.json index 812cc2d946..52b1802eeb 100644 --- a/public/language/en@pirate/user.json +++ b/public/language/en@pirate/user.json @@ -89,6 +89,10 @@ "topics_per_page": "Topics per Page", "posts_per_page": "Posts per Page", "notification_sounds": "Play a sound when you receive a notification", + "notifications_and_sounds": "Notifications & Sounds", + "incoming-message-sound": "Incoming message sound", + "outgoing-message-sound": "Outgoing message sound", + "notification-sound": "Notification sound", "browsing": "Browsing Settings", "open_links_in_new_tab": "Open outgoing links in new tab", "enable_topic_searching": "Enable In-Topic Searching", diff --git a/public/language/en_GB/error.json b/public/language/en_GB/error.json index b6ddd1a2bb..a5e7cf9cbe 100644 --- a/public/language/en_GB/error.json +++ b/public/language/en_GB/error.json @@ -36,6 +36,7 @@ "password-too-long": "Password too long", "user-banned": "User banned", + "user-banned-reason": "User banned (Reason: %1)", "user-too-new": "Sorry, you are required to wait %1 second(s) before making your first post", "blacklisted-ip": "Sorry, your IP address has been banned from this community. If you feel this is in error, please contact an administrator.", "ban-expiry-missing": "Please provide an end date for this ban", diff --git a/public/language/en_GB/global.json b/public/language/en_GB/global.json index 66ea4af420..e2785de2f5 100644 --- a/public/language/en_GB/global.json +++ b/public/language/en_GB/global.json @@ -121,5 +121,6 @@ "allowed-file-types": "Allowed file types are %1", "unsaved-changes": "You have unsaved changes. Are you sure you wish to navigate away?", - "reconnecting-message": "Looks like your connection to %1 was lost, please wait while we try to reconnect." + "reconnecting-message": "Looks like your connection to %1 was lost, please wait while we try to reconnect.", + "play": "Play" } diff --git a/public/language/en_GB/user.json b/public/language/en_GB/user.json index b1cb065de5..6bfb23bb73 100644 --- a/public/language/en_GB/user.json +++ b/public/language/en_GB/user.json @@ -98,6 +98,10 @@ "posts_per_page": "Posts per Page", "notification_sounds" : "Play a sound when you receive a notification", + "notifications_and_sounds": "Notifications & Sounds", + "incoming-message-sound": "Incoming message sound", + "outgoing-message-sound": "Outgoing message sound", + "notification-sound": "Notification sound", "browsing": "Browsing Settings", "open_links_in_new_tab": "Open outgoing links in new tab", @@ -133,5 +137,7 @@ "info.ban-history": "Recent Ban History", "info.no-ban-history": "This user has never been banned", "info.banned-until": "Banned until %1", - "info.banned-permanently": "Banned permanently" + "info.banned-permanently": "Banned permanently", + "info.banned-reason-label": "Reason", + "info.banned-no-reason": "No reason given." } diff --git a/public/language/en_US/error.json b/public/language/en_US/error.json index 2ec9878ee8..1d2065d115 100644 --- a/public/language/en_US/error.json +++ b/public/language/en_US/error.json @@ -123,5 +123,7 @@ "no-users-in-room": "No users in this room", "cant-kick-self": "You can't kick yourself from the group", "no-users-selected": "No user(s) selected", - "invalid-home-page-route": "Invalid home page route" + "invalid-home-page-route": "Invalid home page route", + "invalid-session": "Session Mismatch", + "invalid-session-text": "It looks like your login session is no longer active, or no longer matches with the server. Please refresh this page." } \ No newline at end of file diff --git a/public/language/en_US/global.json b/public/language/en_US/global.json index 004929c8a8..383516d05c 100644 --- a/public/language/en_US/global.json +++ b/public/language/en_US/global.json @@ -95,5 +95,6 @@ "upload_file": "Upload file", "upload": "Upload", "allowed-file-types": "Allowed file types are %1", - "unsaved-changes": "You have unsaved changes. Are you sure you wish to navigate away?" + "unsaved-changes": "You have unsaved changes. Are you sure you wish to navigate away?", + "reconnecting-message": "Looks like your connection to %1 was lost, please wait while we try to reconnect." } \ No newline at end of file diff --git a/public/language/en_US/user.json b/public/language/en_US/user.json index b2c183e3a2..d188d01f61 100644 --- a/public/language/en_US/user.json +++ b/public/language/en_US/user.json @@ -89,6 +89,10 @@ "topics_per_page": "Topics per Page", "posts_per_page": "Posts per Page", "notification_sounds": "Play a sound when you receive a notification", + "notifications_and_sounds": "Notifications & Sounds", + "incoming-message-sound": "Incoming message sound", + "outgoing-message-sound": "Outgoing message sound", + "notification-sound": "Notification sound", "browsing": "Browsing Settings", "open_links_in_new_tab": "Open outgoing links in new tab", "enable_topic_searching": "Enable In-Topic Searching", diff --git a/public/language/es/error.json b/public/language/es/error.json index f49449598c..15cf9dcfec 100644 --- a/public/language/es/error.json +++ b/public/language/es/error.json @@ -123,5 +123,7 @@ "no-users-in-room": "No hay usuarios en esta sala", "cant-kick-self": "No te puedes expulsar a ti mismo del grupo", "no-users-selected": "Ningun usuario(s) seleccionado", - "invalid-home-page-route": "Ruta de página de inicio invalida" + "invalid-home-page-route": "Ruta de página de inicio invalida", + "invalid-session": "Session Mismatch", + "invalid-session-text": "It looks like your login session is no longer active, or no longer matches with the server. Please refresh this page." } \ No newline at end of file diff --git a/public/language/es/global.json b/public/language/es/global.json index d75547742a..42a7109f6a 100644 --- a/public/language/es/global.json +++ b/public/language/es/global.json @@ -95,5 +95,6 @@ "upload_file": "Subir archivo", "upload": "Subir", "allowed-file-types": "Los tipos de archivos permitidos son: %1", - "unsaved-changes": "Tienes cambios sin guardar. Seguro que quieres salir?" + "unsaved-changes": "Tienes cambios sin guardar. Seguro que quieres salir?", + "reconnecting-message": "Has perdido la conexión. Reconectando a %1." } \ No newline at end of file diff --git a/public/language/es/notifications.json b/public/language/es/notifications.json index aaab0f7d10..b0391106db 100644 --- a/public/language/es/notifications.json +++ b/public/language/es/notifications.json @@ -15,7 +15,7 @@ "upvoted_your_post_in_dual": "%1 y %2 han votado positivamente tu respuesta en %3.", "upvoted_your_post_in_multiple": "%1 y otras %2 personas han votado positivamente tu respuesta en %3.", "moved_your_post": "%1 su tema ha sido movido a %2", - "moved_your_topic": "%1 se ha movido %2", + "moved_your_topic": "%1 ha movido %2", "user_flagged_post_in": "%1 ha reportado una respuesta en %2", "user_flagged_post_in_dual": "%1 y %2 han reportado un post en %3", "user_flagged_post_in_multiple": "%1 y otras %2 personas han reportado un post en %3", diff --git a/public/language/es/user.json b/public/language/es/user.json index 3a3a112cec..da036d0b7e 100644 --- a/public/language/es/user.json +++ b/public/language/es/user.json @@ -89,6 +89,10 @@ "topics_per_page": "Temas por página", "posts_per_page": "Post por página", "notification_sounds": "Reproducir un sonido al recibir una notificación", + "notifications_and_sounds": "Notifications & Sounds", + "incoming-message-sound": "Incoming message sound", + "outgoing-message-sound": "Outgoing message sound", + "notification-sound": "Notification sound", "browsing": "Preferencias de navegación.", "open_links_in_new_tab": "Abrir los enlaces externos en una nueva pestaña", "enable_topic_searching": "Activar la búsqueda \"dentro del tema\"", diff --git a/public/language/et/error.json b/public/language/et/error.json index 20a047ab3c..9bf49634ee 100644 --- a/public/language/et/error.json +++ b/public/language/et/error.json @@ -123,5 +123,7 @@ "no-users-in-room": "Ühtegi kasutajat ei leidu siit ruumist", "cant-kick-self": "Sa ei saa ennast ära visata gruppist", "no-users-selected": "Ühtki kasutajat pole valitud", - "invalid-home-page-route": "Vigane avalehe suunamine" + "invalid-home-page-route": "Vigane avalehe suunamine", + "invalid-session": "Session Mismatch", + "invalid-session-text": "It looks like your login session is no longer active, or no longer matches with the server. Please refresh this page." } \ No newline at end of file diff --git a/public/language/et/global.json b/public/language/et/global.json index 339239f4bb..67ae319e61 100644 --- a/public/language/et/global.json +++ b/public/language/et/global.json @@ -95,5 +95,6 @@ "upload_file": "Lae fail üles", "upload": "Lae üles", "allowed-file-types": "Lubatud faili formaadid on %1", - "unsaved-changes": "Sul on salvestamata muudatusi. Oled kindel, et soovid lahkuda?" + "unsaved-changes": "Sul on salvestamata muudatusi. Oled kindel, et soovid lahkuda?", + "reconnecting-message": "Looks like your connection to %1 was lost, please wait while we try to reconnect." } \ No newline at end of file diff --git a/public/language/et/user.json b/public/language/et/user.json index 0e94b3198d..1d63381814 100644 --- a/public/language/et/user.json +++ b/public/language/et/user.json @@ -89,6 +89,10 @@ "topics_per_page": "Teemasi ühe lehekülje kohta", "posts_per_page": "Postitusi ühe lehekülje kohta", "notification_sounds": "Mängi heli, kui teade saabub.", + "notifications_and_sounds": "Notifications & Sounds", + "incoming-message-sound": "Incoming message sound", + "outgoing-message-sound": "Outgoing message sound", + "notification-sound": "Notification sound", "browsing": "Sirvimis sätted", "open_links_in_new_tab": "Ava väljaminevad lingid uues aknas", "enable_topic_searching": "Võimalda teemasisene otsing", diff --git a/public/language/fa_IR/error.json b/public/language/fa_IR/error.json index 6063b7cfd7..5daaf16e9c 100644 --- a/public/language/fa_IR/error.json +++ b/public/language/fa_IR/error.json @@ -123,5 +123,7 @@ "no-users-in-room": "هیچ کاربری در این گفتگو نیست", "cant-kick-self": "شما نمی توانید خودتان را از گروه کیک کنید", "no-users-selected": "هیچ کاربر(های) انتخاب نشده", - "invalid-home-page-route": "مسیر صفحه اصلی نامعتبر است" + "invalid-home-page-route": "مسیر صفحه اصلی نامعتبر است", + "invalid-session": "عدم تطابق جلسه", + "invalid-session-text": "به نظر می‌رسد این جلسه برای ورود دیگر فعال نیست و یا با سرور هماهنگ نیست. لطفا این صفحه را رفرش کنید." } \ No newline at end of file diff --git a/public/language/fa_IR/global.json b/public/language/fa_IR/global.json index a8da7a5cd6..386c069b39 100644 --- a/public/language/fa_IR/global.json +++ b/public/language/fa_IR/global.json @@ -7,10 +7,10 @@ "403.login": "شاید باید وارد شوید؟", "404.title": "یافت نشد", "404.message": "به نظر میاید شما به صفحه ای برخورد کرده اید که وجود ندارد. بازگشت به صفحه ی خانه", - "500.title": "Internal Error.", + "500.title": "خطای داخلی.", "500.message": "اوه! گویا اشتباهی رخ داده!", - "400.title": "Bad Request.", - "400.message": "It looks like this link is malformed, please double-check and try again. Otherwise, return to the home page.", + "400.title": "درخواست بد.", + "400.message": "به نظر می‌رسد که این پیوند مشکل دارد، لطفا دوباره بررسی کنید که این پیوند صحیح است و دوباره تلاش کنید، در غیر این‌صورت به صفحه اصلی بازگردید.", "register": "نام‌نویسی", "login": "درون آمدن", "please_log_in": "لطفا به درون بیایید", @@ -95,5 +95,6 @@ "upload_file": "بارگذاری فایل", "upload": "بارگذاری", "allowed-file-types": "فایل قابل قبول اینها هستند %1", - "unsaved-changes": "تغییرات شما ذخیره نشده. شما مطمئن هستید که میخواهید از اینجا دور شوید؟" + "unsaved-changes": "تغییرات شما ذخیره نشده. شما مطمئن هستید که میخواهید از اینجا دور شوید؟", + "reconnecting-message": "اتصال شما به %1 به نظر می‌رسد از دست رفته. لطفا صبر کنید ما سعی می‌کنیم که دوباره شما را متصل کنیم." } \ No newline at end of file diff --git a/public/language/fa_IR/user.json b/public/language/fa_IR/user.json index 76f9577d10..bb40b5dd73 100644 --- a/public/language/fa_IR/user.json +++ b/public/language/fa_IR/user.json @@ -89,6 +89,10 @@ "topics_per_page": "شمار موضوع ها در هر برگه", "posts_per_page": "شمار پست‌ها در هر برگه", "notification_sounds": "پخش صدا زمانی که یک اطلاعیه دریافت میکنید", + "notifications_and_sounds": "آگاه‌سازی‌ها و صدا‌ها", + "incoming-message-sound": "صدای پیام دریافتی", + "outgoing-message-sound": "صدای پیام ارسال شده", + "notification-sound": "آگاه‌سازی‌ از طریق صدا", "browsing": "تنظیمات مرور", "open_links_in_new_tab": "پیوندهای به بیرون را در برگ جدید باز کن", "enable_topic_searching": "فعال کردن جستجوی داخل-موضوع", diff --git a/public/language/fi/error.json b/public/language/fi/error.json index 536a3854a8..de8e27a50d 100644 --- a/public/language/fi/error.json +++ b/public/language/fi/error.json @@ -123,5 +123,7 @@ "no-users-in-room": "Ei käyttäjiä tässä huoneessa", "cant-kick-self": "You can't kick yourself from the group", "no-users-selected": "No user(s) selected", - "invalid-home-page-route": "Invalid home page route" + "invalid-home-page-route": "Invalid home page route", + "invalid-session": "Session Mismatch", + "invalid-session-text": "It looks like your login session is no longer active, or no longer matches with the server. Please refresh this page." } \ No newline at end of file diff --git a/public/language/fi/global.json b/public/language/fi/global.json index a2fd93afde..434aece0f3 100644 --- a/public/language/fi/global.json +++ b/public/language/fi/global.json @@ -95,5 +95,6 @@ "upload_file": "Upload file", "upload": "Upload", "allowed-file-types": "Allowed file types are %1", - "unsaved-changes": "You have unsaved changes. Are you sure you wish to navigate away?" + "unsaved-changes": "You have unsaved changes. Are you sure you wish to navigate away?", + "reconnecting-message": "Looks like your connection to %1 was lost, please wait while we try to reconnect." } \ No newline at end of file diff --git a/public/language/fi/user.json b/public/language/fi/user.json index 37eb67c338..66ca174258 100644 --- a/public/language/fi/user.json +++ b/public/language/fi/user.json @@ -89,6 +89,10 @@ "topics_per_page": "Aihetta per sivu", "posts_per_page": "Viestiä per sivu", "notification_sounds": "Play a sound when you receive a notification", + "notifications_and_sounds": "Notifications & Sounds", + "incoming-message-sound": "Incoming message sound", + "outgoing-message-sound": "Outgoing message sound", + "notification-sound": "Notification sound", "browsing": "Selataan asetuksia", "open_links_in_new_tab": "Open outgoing links in new tab", "enable_topic_searching": "Salli aiheen sisäiset haut", diff --git a/public/language/fr/error.json b/public/language/fr/error.json index f240a77009..e6e70bad78 100644 --- a/public/language/fr/error.json +++ b/public/language/fr/error.json @@ -123,5 +123,7 @@ "no-users-in-room": "Aucun utilisateur dans cette salle", "cant-kick-self": "Vous ne pouvez pas vous exclure vous-même du groupe", "no-users-selected": "Aucun utilisateur sélectionné", - "invalid-home-page-route": "Route de page d'accueil invalide" + "invalid-home-page-route": "Route de page d'accueil invalide", + "invalid-session": "Session Interrompue", + "invalid-session-text": "Il semble que votre session ne soit plus active, ou que le serveur ne la reconnaisse plus. Merci de rafraichir cette page." } \ No newline at end of file diff --git a/public/language/fr/global.json b/public/language/fr/global.json index ba4388b9fe..a37d6fa925 100644 --- a/public/language/fr/global.json +++ b/public/language/fr/global.json @@ -95,5 +95,6 @@ "upload_file": "Envoyer un fichier", "upload": "Envoyer", "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 ?" + "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." } \ No newline at end of file diff --git a/public/language/fr/user.json b/public/language/fr/user.json index 418bc35dcc..076e154971 100644 --- a/public/language/fr/user.json +++ b/public/language/fr/user.json @@ -89,6 +89,10 @@ "topics_per_page": "Sujets par page", "posts_per_page": "Messages par page", "notification_sounds": "Émettre un son lors de la réception de notifications", + "notifications_and_sounds": "Notifications & Sons", + "incoming-message-sound": "Son pour les messages entrants", + "outgoing-message-sound": "Son pour les messages sortants", + "notification-sound": "Son de notification", "browsing": "Paramètres de navigation", "open_links_in_new_tab": "Ouvrir les liens externes dans un nouvel onglet", "enable_topic_searching": "Activer la recherche dans les sujets", diff --git a/public/language/gl/error.json b/public/language/gl/error.json index d372ec2b2e..acbab0cc58 100644 --- a/public/language/gl/error.json +++ b/public/language/gl/error.json @@ -123,5 +123,7 @@ "no-users-in-room": "Non hai usuarios nesta sala", "cant-kick-self": "Non te podes expulsar a ti mesmo do grupo", "no-users-selected": "Ningún usuario seleccionado", - "invalid-home-page-route": "Ruta de páxina de inicio inválida" + "invalid-home-page-route": "Ruta de páxina de inicio inválida", + "invalid-session": "Session Mismatch", + "invalid-session-text": "It looks like your login session is no longer active, or no longer matches with the server. Please refresh this page." } \ No newline at end of file diff --git a/public/language/gl/global.json b/public/language/gl/global.json index c00aec98d1..0f8663d96f 100644 --- a/public/language/gl/global.json +++ b/public/language/gl/global.json @@ -95,5 +95,6 @@ "upload_file": "Subir arquivo ", "upload": "Subir", "allowed-file-types": "Os tipos de arquivos permitidos son: %1", - "unsaved-changes": "Non gardaches tódolos cambios. Queres continuar e saír da páxina?" + "unsaved-changes": "Non gardaches tódolos cambios. Queres continuar e saír da páxina?", + "reconnecting-message": "Looks like your connection to %1 was lost, please wait while we try to reconnect." } \ No newline at end of file diff --git a/public/language/gl/user.json b/public/language/gl/user.json index 09726a9119..9cdea0f306 100644 --- a/public/language/gl/user.json +++ b/public/language/gl/user.json @@ -89,6 +89,10 @@ "topics_per_page": "Temas por páxina", "posts_per_page": "Mensaxes por páxina", "notification_sounds": "Reproducir un son cando recibes unha notificación.", + "notifications_and_sounds": "Notifications & Sounds", + "incoming-message-sound": "Incoming message sound", + "outgoing-message-sound": "Outgoing message sound", + "notification-sound": "Notification sound", "browsing": "Opcións de busca", "open_links_in_new_tab": "Abrir ligazóns externos nunca nova pestaña", "enable_topic_searching": "Permitir buscar dentro dun tema", diff --git a/public/language/he/category.json b/public/language/he/category.json index 5a5a8365b3..394ea4f57f 100644 --- a/public/language/he/category.json +++ b/public/language/he/category.json @@ -12,8 +12,8 @@ "ignore": "התעלם", "watching": "Watching", "ignoring": "Ignoring", - "watching.description": "Show topics in unread", - "ignoring.description": "Do not show topics in unread", + "watching.description": "צפה בנושאים שלא נקראו", + "ignoring.description": "אל תציג נושאים שאינם נקראו", "watch.message": "אתה עכשיו עוקב אחרי עדכונים מקטגוריה זו", "ignore.message": "אתה עכשיו מתעלם מעדכונים מקטגוריה זו", "watched-categories": "קטגוריות נעקבות" diff --git a/public/language/he/error.json b/public/language/he/error.json index 52ee6b7549..c2a970ee36 100644 --- a/public/language/he/error.json +++ b/public/language/he/error.json @@ -14,13 +14,13 @@ "invalid-password": "סיסמא שגויה", "invalid-username-or-password": "אנא הגדר שם משתמש וסיסמה", "invalid-search-term": "מילת חיפוש לא תקינה", - "csrf-invalid": "We were unable to log you in, likely due to an expired session. Please try again", + "csrf-invalid": "אין באפשרותנו לחבר אותך למערכת, מכיוון שעבר זמן רב מידי. אנא נסה שנית.", "invalid-pagination-value": "ערך דף לא חוקי, חייב להיות לפחות %1 ולא מעל %2", "username-taken": "שם משתמש תפוס", "email-taken": "כתובת אימייל תפוסה", "email-not-confirmed": "כתובת המייל שלך עוד לא אושרה, לחץ כאן על-מנת לאשר את המייל שלך.", "email-not-confirmed-chat": "אין באפשרותך לשוחח עד שהדוא\"ל שלך יאושר, אנא לחץ כאן כדי לאשר את הדוא\"ל שלך.", - "email-not-confirmed-email-sent": "Your email has not been confirmed yet, please check your inbox for the confirmation email.", + "email-not-confirmed-email-sent": "האימייל עדין לא אושר. אנא בדוק בתיבת הדואר בנוגע לאישור האימייל שנשלח לך על ידנו.", "no-email-to-confirm": "פורום זה דורש אישור בדוא\"ל, אנא לחץ כאן כדי להכניס לדואר אלקטרוני", "email-confirm-failed": "לא הצלחנו לאשר את הדוא\"ל שלך, תנסה שוב אחר כך", "confirm-email-already-sent": "מייל האישור כבר נשלח, אנא המתן %1 דקות כדי לשלוח מייל נוסף.", @@ -30,8 +30,8 @@ "password-too-long": "הסיסמה ארוכה מדי", "user-banned": "המשתמש מושעה", "user-too-new": "אנא המתן %1 שניות לפני פרסום ההודעה", - "blacklisted-ip": "Sorry, your IP address has been banned from this community. If you feel this is in error, please contact an administrator.", - "ban-expiry-missing": "Please provide an end date for this ban", + "blacklisted-ip": "מצטערים, אך הורחקת מקהילה זו. אם הנך סבור שמדובר בטעות, אנא צור קשר עם מנהלי הקהילה.", + "ban-expiry-missing": "אנא ספק תאריך סיום להרחקה זו.", "no-category": "קטגוריה אינה קיימת", "no-topic": "נושא אינו קיים", "no-post": "פוסט אינו קיים", @@ -42,8 +42,8 @@ "category-disabled": "קטגוריה לא פעילה", "topic-locked": "נושא נעול", "post-edit-duration-expired": "אתה רשאי לערוך פוסטים רק ל-%1 שניות לאחר הפרסום", - "post-edit-duration-expired-minutes": "You are only allowed to edit posts for %1 minute(s) after posting", - "post-edit-duration-expired-minutes-seconds": "You are only allowed to edit posts for %1 minute(s) %2 second(s) after posting", + "post-edit-duration-expired-minutes": "הנך רשאי לערוך תגובה עד %1 דקות מרגע פרסום התגובה.", + "post-edit-duration-expired-minutes-seconds": "הנך רשאי לערוך תגובה עד %1 דקות %2 ושניות מרגע פרסום התגובה.", "post-edit-duration-expired-hours": "You are only allowed to edit posts for %1 hour(s) after posting", "post-edit-duration-expired-hours-minutes": "You are only allowed to edit posts for %1 hour(s) %2 minute(s) after posting", "post-edit-duration-expired-days": "You are only allowed to edit posts for %1 day(s) after posting", @@ -55,7 +55,7 @@ "post-delete-duration-expired-hours-minutes": "You are only allowed to delete posts for %1 hour(s) %2 minute(s) after posting", "post-delete-duration-expired-days": "You are only allowed to delete posts for %1 day(s) after posting", "post-delete-duration-expired-days-hours": "You are only allowed to delete posts for %1 day(s) %2 hour(s) after posting", - "cant-delete-topic-has-reply": "You can't delete your topic after it has a reply", + "cant-delete-topic-has-reply": "אינך יכול למחוק נושא אחרי שכבר הגיבו בו.", "cant-delete-topic-has-replies": "You can't delete your topic after it has %1 replies", "content-too-short": "אנא הכנס פוסט ארוך יותר. פוסטים חייבים להכיל לפחות %1 תווים.", "content-too-long": "אנא הכנס פוסט קצר יותר. פוסטים חייבים להיות קצרים יותר מ-%1 תווים.", @@ -74,12 +74,12 @@ "already-unfavourited": "כבר הסרת את הסימון מפוסט זה", "cant-ban-other-admins": "אינך יכול לחסום מנהלים אחרים!", "cant-remove-last-admin": "אתה המנהל היחיד. הוסף משתמש אחר לניהול לפני שאתה מוריד את עצמך מניהול", - "cant-delete-admin": "Remove administrator privileges from this account before attempting to delete it.", + "cant-delete-admin": "משתמש זה מוגדר כמנהל. על מנת למחוק את המשתמש, עליך להסיר קודם את גישותיו.", "invalid-image-type": "פורמט תמונה לא תקין. הפורמטים המורשים הם: %1", "invalid-image-extension": "פורמט תמונה לא תקין", "invalid-file-type": "פורמט הקובץ לא תקין. הפורמטים המורשים הם: %1", "group-name-too-short": "שם הקבוצה קצר מדי", - "group-name-too-long": "Group name too long", + "group-name-too-long": "שם הקבוצה ארוך מידי", "group-already-exists": "הקבוצה כבר קיימת", "group-name-change-not-allowed": "לא ניתן לשנות את שם הקבוצה", "group-already-member": "כבר חבר בקבוצה זו", @@ -106,7 +106,7 @@ "cant-edit-chat-message": "אתה לא רשאי לערוך הודעה זו", "cant-remove-last-user": "אינך יכול למחוק את המשתמש האחרון", "cant-delete-chat-message": "אתה לא רשאי למחוק הודעה זו", - "already-voting-for-this-post": "You have already voted for this post.", + "already-voting-for-this-post": "הצבעת כבר בנושא זה", "reputation-system-disabled": "מערכת המוניטין לא פעילה.", "downvoting-disabled": "היכולת להצביע נגד לא פעילה", "not-enough-reputation-to-downvote": "אין לך מספיק מוניטין כדי להוריד את הדירוג של פוסט זה", @@ -121,7 +121,9 @@ "no-session-found": "לא נמצאו סשני התחברות!", "not-in-room": "משתמש זה לא בצ'אט", "no-users-in-room": "אין משתמש בחדר הזה", - "cant-kick-self": "You can't kick yourself from the group", - "no-users-selected": "No user(s) selected", - "invalid-home-page-route": "Invalid home page route" + "cant-kick-self": "אינך יכול להסיר את עצמך מהקבוצה", + "no-users-selected": "לא נבחרו משתמשים", + "invalid-home-page-route": "כתובת דף הבית הינה שגויה", + "invalid-session": "Session Mismatch", + "invalid-session-text": "It looks like your login session is no longer active, or no longer matches with the server. Please refresh this page." } \ No newline at end of file diff --git a/public/language/he/global.json b/public/language/he/global.json index ea6d32468d..8f2c2347b2 100644 --- a/public/language/he/global.json +++ b/public/language/he/global.json @@ -7,9 +7,9 @@ "403.login": "נסה להתחבר.", "404.title": "לא נמצא", "404.message": "נראה שהגעת לעמוד שלא קיים. חזור לעמוד הבית", - "500.title": "Internal Error.", + "500.title": "שגיאה פנימית.", "500.message": "אופס! נראה שמשהו השתבש!", - "400.title": "Bad Request.", + "400.title": "בקשה שגויה", "400.message": "It looks like this link is malformed, please double-check and try again. Otherwise, return to the home page.", "register": "הרשמה", "login": "התחברות", @@ -95,5 +95,6 @@ "upload_file": "העלה קובץ", "upload": "העלה", "allowed-file-types": "פורמטי הקבצים המורשים הם %1", - "unsaved-changes": "You have unsaved changes. Are you sure you wish to navigate away?" + "unsaved-changes": "יש לך שינויים שאינם נשמרו. האם הנך בטוח שברצונך להמשיך?", + "reconnecting-message": "נראה שההתחברות שלך אל %1 אבדה, אנא המתן בזמן שהמערכת מנסה לחבר אותך מחדש" } \ No newline at end of file diff --git a/public/language/he/groups.json b/public/language/he/groups.json index fe0bb93380..94f76a2ffd 100644 --- a/public/language/he/groups.json +++ b/public/language/he/groups.json @@ -41,7 +41,7 @@ "details.hidden": "מוסתר", "details.hidden_help": "אם מאופשר, הקבוצה לא תופיע ברשימת הקבוצות, ומשתמשים יצטרכו להיות מוזמנים ידנית", "details.delete_group": "מחק קבוצה", - "details.private_system_help": "Private groups is disabled at system level, this option does not do anything", + "details.private_system_help": "קבוצות פרטיות מבוטלות על ידי המערכת. אופציה זו אינה עושה דבר.", "event.updated": "פרטי הקבוצה עודכנו", "event.deleted": "קבוצת \"%1\" נמחקה", "membership.accept-invitation": "קבל הזמנה", diff --git a/public/language/he/user.json b/public/language/he/user.json index 7311867da8..7287d5c1f0 100644 --- a/public/language/he/user.json +++ b/public/language/he/user.json @@ -89,6 +89,10 @@ "topics_per_page": "כמות נושאים בעמוד", "posts_per_page": "כמות פוסטים בעמוד", "notification_sounds": "נגן סאונד כשמתקבלת התראה", + "notifications_and_sounds": "Notifications & Sounds", + "incoming-message-sound": "Incoming message sound", + "outgoing-message-sound": "Outgoing message sound", + "notification-sound": "Notification sound", "browsing": "הגדרות צפייה", "open_links_in_new_tab": "פתח קישורים חיצוניים בכרטיסייה חדשה", "enable_topic_searching": "הפעל חיפוש בתוך נושא", diff --git a/public/language/hu/error.json b/public/language/hu/error.json index 1718b8f115..dc2bc327f7 100644 --- a/public/language/hu/error.json +++ b/public/language/hu/error.json @@ -123,5 +123,7 @@ "no-users-in-room": "No users in this room", "cant-kick-self": "You can't kick yourself from the group", "no-users-selected": "No user(s) selected", - "invalid-home-page-route": "Invalid home page route" + "invalid-home-page-route": "Invalid home page route", + "invalid-session": "Session Mismatch", + "invalid-session-text": "It looks like your login session is no longer active, or no longer matches with the server. Please refresh this page." } \ No newline at end of file diff --git a/public/language/hu/global.json b/public/language/hu/global.json index e7111389bc..1aae7c960b 100644 --- a/public/language/hu/global.json +++ b/public/language/hu/global.json @@ -95,5 +95,6 @@ "upload_file": "Upload file", "upload": "Upload", "allowed-file-types": "Allowed file types are %1", - "unsaved-changes": "You have unsaved changes. Are you sure you wish to navigate away?" + "unsaved-changes": "You have unsaved changes. Are you sure you wish to navigate away?", + "reconnecting-message": "Looks like your connection to %1 was lost, please wait while we try to reconnect." } \ No newline at end of file diff --git a/public/language/hu/user.json b/public/language/hu/user.json index 86e8a6a79f..19bd8c3154 100644 --- a/public/language/hu/user.json +++ b/public/language/hu/user.json @@ -89,6 +89,10 @@ "topics_per_page": "Téma oldalanként", "posts_per_page": "Hozzászólás oldalanként", "notification_sounds": "Play a sound when you receive a notification", + "notifications_and_sounds": "Notifications & Sounds", + "incoming-message-sound": "Incoming message sound", + "outgoing-message-sound": "Outgoing message sound", + "notification-sound": "Notification sound", "browsing": "Browsing Settings", "open_links_in_new_tab": "Open outgoing links in new tab", "enable_topic_searching": "Témán belüli keresés bekapcsolása", diff --git a/public/language/id/error.json b/public/language/id/error.json index cac1d43532..11d0c9a830 100644 --- a/public/language/id/error.json +++ b/public/language/id/error.json @@ -123,5 +123,7 @@ "no-users-in-room": "No users in this room", "cant-kick-self": "You can't kick yourself from the group", "no-users-selected": "No user(s) selected", - "invalid-home-page-route": "Invalid home page route" + "invalid-home-page-route": "Invalid home page route", + "invalid-session": "Session Mismatch", + "invalid-session-text": "It looks like your login session is no longer active, or no longer matches with the server. Please refresh this page." } \ No newline at end of file diff --git a/public/language/id/global.json b/public/language/id/global.json index 6a005844c4..313a120729 100644 --- a/public/language/id/global.json +++ b/public/language/id/global.json @@ -95,5 +95,6 @@ "upload_file": "Upload file", "upload": "Upload", "allowed-file-types": "Allowed file types are %1", - "unsaved-changes": "You have unsaved changes. Are you sure you wish to navigate away?" + "unsaved-changes": "You have unsaved changes. Are you sure you wish to navigate away?", + "reconnecting-message": "Looks like your connection to %1 was lost, please wait while we try to reconnect." } \ No newline at end of file diff --git a/public/language/id/user.json b/public/language/id/user.json index 4a93ced3ed..715648a4bd 100644 --- a/public/language/id/user.json +++ b/public/language/id/user.json @@ -89,6 +89,10 @@ "topics_per_page": "Topik per Halaman", "posts_per_page": "Posting per Halaman", "notification_sounds": "Play a sound when you receive a notification", + "notifications_and_sounds": "Notifications & Sounds", + "incoming-message-sound": "Incoming message sound", + "outgoing-message-sound": "Outgoing message sound", + "notification-sound": "Notification sound", "browsing": "Pengaturan Penelusuran", "open_links_in_new_tab": "Open outgoing links in new tab", "enable_topic_searching": "Gunakan Pencarian Di dalam Topik", diff --git a/public/language/it/email.json b/public/language/it/email.json index bd1ddb45d7..f30f93b9f5 100644 --- a/public/language/it/email.json +++ b/public/language/it/email.json @@ -24,7 +24,7 @@ "digest.day": "giorno", "digest.week": "settimana", "digest.month": "mese", - "digest.subject": "Digest for %1", + "digest.subject": "Sommario per %1", "notif.chat.subject": "Nuovo messaggio in chat da %1", "notif.chat.cta": "Clicca qui per continuare la conversazione", "notif.chat.unsub.info": "Questa notifica di chat ti è stata inviata perché l'hai scelta nelle impostazioni.", diff --git a/public/language/it/error.json b/public/language/it/error.json index 4412fbc484..2971a8e20c 100644 --- a/public/language/it/error.json +++ b/public/language/it/error.json @@ -123,5 +123,7 @@ "no-users-in-room": "Nessun utente in questa stanza", "cant-kick-self": "Non puoi espellerti dal gruppo", "no-users-selected": "Nessun utente selezionato", - "invalid-home-page-route": "Percorso della pagina iniziale non valido" + "invalid-home-page-route": "Percorso della pagina iniziale non valido", + "invalid-session": "Discrepanza della sessione", + "invalid-session-text": "Sembra che la tua sessione non sia più attiva, oppure non corrisponde con il server. Per favore ricarica la pagina." } \ No newline at end of file diff --git a/public/language/it/global.json b/public/language/it/global.json index 28da5ad9c8..8aa3659f7d 100644 --- a/public/language/it/global.json +++ b/public/language/it/global.json @@ -9,8 +9,8 @@ "404.message": "Sembra tu sia arrivato ad una pagina che non esiste. Torna alla home page.", "500.title": "Errore interno.", "500.message": "Oops! Qualcosa non funziona come si deve!", - "400.title": "Bad Request.", - "400.message": "It looks like this link is malformed, please double-check and try again. Otherwise, return to the home page.", + "400.title": "Richiesta non valida.", + "400.message": "Sembra che questo link sia stato mal formulato, per favore ricontrolla e riprova. Altrimenti ritorna alla home page.", "register": "Registrazione", "login": "Login", "please_log_in": "Per favore Accedi", @@ -52,10 +52,10 @@ "topics": "Discussioni", "posts": "Post", "best": "Migliore", - "upvoters": "Upvoters", + "upvoters": "Hanno votato positivamente", "upvoted": "Apprezzati", - "downvoters": "Downvoters", - "downvoted": "Downvoted", + "downvoters": "Hanno negato negativamente", + "downvoted": "Votato negativamente", "views": "Visualizzazioni", "reputation": "Reputazione", "read_more": "per saperne di più", @@ -95,5 +95,6 @@ "upload_file": "Carica file", "upload": "Carica", "allowed-file-types": "Le estensioni permesse dei file sono %1", - "unsaved-changes": "Hai delle modifiche non salvate. Sei sicuro che vuoi lasciare la pagina?" + "unsaved-changes": "Hai delle modifiche non salvate. Sei sicuro che vuoi lasciare la pagina?", + "reconnecting-message": "Sembra che la tua connessione a %1 sia stata persa, per favore attenti mentre proviamo a riconnetterti." } \ No newline at end of file diff --git a/public/language/it/modules.json b/public/language/it/modules.json index 2eaf84aba9..5688dd9976 100644 --- a/public/language/it/modules.json +++ b/public/language/it/modules.json @@ -32,7 +32,7 @@ "composer.formatting.bold": "Grassetto", "composer.formatting.italic": "Corsivo", "composer.formatting.list": "Lista", - "composer.formatting.strikethrough": "Strikethrough", + "composer.formatting.strikethrough": "Barrato", "composer.formatting.link": "Collegamento", "composer.formatting.picture": "Immagine", "composer.upload-picture": "Carica immagine", diff --git a/public/language/it/pages.json b/public/language/it/pages.json index b0920945fc..f42d53aceb 100644 --- a/public/language/it/pages.json +++ b/public/language/it/pages.json @@ -39,7 +39,7 @@ "account/settings": "Impostazioni Utente", "account/watched": "Discussioni osservate da %1", "account/upvoted": "Post apprezzati da %1", - "account/downvoted": "Posts downvoted by %1", + "account/downvoted": "Post votati negativamente da %1", "account/best": "I migliori post di %1", "confirm": "Email Confermata", "maintenance.text": "%1 è attualmente in manutenzione. Per favore ritorna più tardi.", diff --git a/public/language/it/topic.json b/public/language/it/topic.json index f44a429712..59a99d3c71 100644 --- a/public/language/it/topic.json +++ b/public/language/it/topic.json @@ -34,7 +34,7 @@ "deleted_message": "Questa discussione è stata cancellata. 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.", - "ignoring_topic.message": "You will no longer see this topic in the unread topics list. You will be notified when you are mentioned or your post is up voted.", + "ignoring_topic.message": "Non vedrai più questa discussione tra la lista dei non letti. Sarai notificato in caso qualcuno ti menzioni o se un tuo post viene votato positivamente.", "login_to_subscribe": "Si prega di accedere o registrarsi per potersi iscrivere a questa discussione.", "markAsUnreadForAll.success": "Discussione segnata come non letta per tutti.", "mark_unread": "Segna come non letto", diff --git a/public/language/it/user.json b/public/language/it/user.json index c2f3fe9995..d1f1edafa7 100644 --- a/public/language/it/user.json +++ b/public/language/it/user.json @@ -81,7 +81,7 @@ "has_no_topics": "Questo utente non ha ancora avviato discussioni.", "has_no_watched_topics": "Questo utente non sta osservando discussioni.", "has_no_upvoted_posts": "Questo utente non ha ancora apprezzato nessun post.", - "has_no_downvoted_posts": "This user hasn't downvoted any posts yet.", + "has_no_downvoted_posts": "Questo utente non ha ancora votato negativamente alcun post", "has_no_voted_posts": "Questo utente non ha post votati", "email_hidden": "Email Nascosta", "hidden": "nascosta", @@ -89,11 +89,15 @@ "topics_per_page": "Discussioni per Pagina", "posts_per_page": "Post per Pagina", "notification_sounds": "Riproduci un suono quando si riceve una notifica", + "notifications_and_sounds": "Notifiche e Suoni", + "incoming-message-sound": "Suono messaggio in entrata", + "outgoing-message-sound": "Suono messaggio in uscita", + "notification-sound": "Suono di notifica", "browsing": "Impostazioni di Navigazione", "open_links_in_new_tab": "Apri i link web in una nuova pagina", "enable_topic_searching": "Abilita la ricerca negli argomenti", "topic_search_help": "Se abilitata, la ricerca negli argomenti ignorerà il comportamento predefinito del browser per consentirti di cercare all'interno delle discussioni, anziché soltanto nel contenuto visibile a schermo", - "delay_image_loading": "Delay Image Loading", + "delay_image_loading": "Ritarda il caricamento delle immagini", "image_load_delay_help": "Se selezionato, le immagini nelle discussioni non saranno caricate finché non sono visibili nello schermo", "scroll_to_my_post": "Dopo aver postato una risposta, mostra il nuovo post", "follow_topics_you_reply_to": "Segui le discussioni a cui rispondi", diff --git a/public/language/it/users.json b/public/language/it/users.json index c88f786172..3ca0056679 100644 --- a/public/language/it/users.json +++ b/public/language/it/users.json @@ -2,7 +2,7 @@ "latest_users": "Ultimi Utenti", "top_posters": "Maggiori contributori", "most_reputation": "Reputazione più alta", - "most_flags": "Most Flags", + "most_flags": "Più segnalati", "search": "Cerca", "enter_username": "Inserisci il nome utente da cercare", "load_more": "Carica altri", diff --git a/public/language/ja/error.json b/public/language/ja/error.json index 848d308257..cbe33de039 100644 --- a/public/language/ja/error.json +++ b/public/language/ja/error.json @@ -123,5 +123,7 @@ "no-users-in-room": "No users in this room", "cant-kick-self": "You can't kick yourself from the group", "no-users-selected": "No user(s) selected", - "invalid-home-page-route": "Invalid home page route" + "invalid-home-page-route": "Invalid home page route", + "invalid-session": "Session Mismatch", + "invalid-session-text": "It looks like your login session is no longer active, or no longer matches with the server. Please refresh this page." } \ No newline at end of file diff --git a/public/language/ja/global.json b/public/language/ja/global.json index 038f6333f0..107ae13ee7 100644 --- a/public/language/ja/global.json +++ b/public/language/ja/global.json @@ -95,5 +95,6 @@ "upload_file": "Upload file", "upload": "Upload", "allowed-file-types": "Allowed file types are %1", - "unsaved-changes": "You have unsaved changes. Are you sure you wish to navigate away?" + "unsaved-changes": "You have unsaved changes. Are you sure you wish to navigate away?", + "reconnecting-message": "Looks like your connection to %1 was lost, please wait while we try to reconnect." } \ No newline at end of file diff --git a/public/language/ja/user.json b/public/language/ja/user.json index 20ad10041f..16cd6a8811 100644 --- a/public/language/ja/user.json +++ b/public/language/ja/user.json @@ -89,6 +89,10 @@ "topics_per_page": "ページ毎のスレッド数", "posts_per_page": "ページ毎のポスト数", "notification_sounds": "通知の時に音を鳴らします", + "notifications_and_sounds": "Notifications & Sounds", + "incoming-message-sound": "Incoming message sound", + "outgoing-message-sound": "Outgoing message sound", + "notification-sound": "Notification sound", "browsing": "ブラウジングの設定", "open_links_in_new_tab": "外リンクを新しいタブに開きます", "enable_topic_searching": "インートピックの検索を有効にします", diff --git a/public/language/ko/error.json b/public/language/ko/error.json index e4e3686ae8..383a9405a5 100644 --- a/public/language/ko/error.json +++ b/public/language/ko/error.json @@ -123,5 +123,7 @@ "no-users-in-room": "사용자가 없습니다.", "cant-kick-self": "스스로 이 그룹을 탈퇴할 수 없습니다.", "no-users-selected": "No user(s) selected", - "invalid-home-page-route": "Invalid home page route" + "invalid-home-page-route": "Invalid home page route", + "invalid-session": "Session Mismatch", + "invalid-session-text": "It looks like your login session is no longer active, or no longer matches with the server. Please refresh this page." } \ No newline at end of file diff --git a/public/language/ko/global.json b/public/language/ko/global.json index 94905f6ffc..6e9b7b3a93 100644 --- a/public/language/ko/global.json +++ b/public/language/ko/global.json @@ -95,5 +95,6 @@ "upload_file": "파일 업로드", "upload": "업로드", "allowed-file-types": "사용가능한 파일 유형: %1", - "unsaved-changes": "You have unsaved changes. Are you sure you wish to navigate away?" + "unsaved-changes": "You have unsaved changes. Are you sure you wish to navigate away?", + "reconnecting-message": "Looks like your connection to %1 was lost, please wait while we try to reconnect." } \ No newline at end of file diff --git a/public/language/ko/user.json b/public/language/ko/user.json index fa6b28d31b..bd8404161d 100644 --- a/public/language/ko/user.json +++ b/public/language/ko/user.json @@ -89,6 +89,10 @@ "topics_per_page": "페이지 당 주제 수", "posts_per_page": "페이지 당 게시물 수", "notification_sounds": "알림 수신시 소리로 알려주기", + "notifications_and_sounds": "Notifications & Sounds", + "incoming-message-sound": "Incoming message sound", + "outgoing-message-sound": "Outgoing message sound", + "notification-sound": "Notification sound", "browsing": "페이지 열기", "open_links_in_new_tab": "외부 링크를 새로운 탭을 사용하여 열람", "enable_topic_searching": "주제 내 검색 허용", diff --git a/public/language/lt/error.json b/public/language/lt/error.json index 33a845a2f3..2d5b6ecf02 100644 --- a/public/language/lt/error.json +++ b/public/language/lt/error.json @@ -123,5 +123,7 @@ "no-users-in-room": "No users in this room", "cant-kick-self": "You can't kick yourself from the group", "no-users-selected": "No user(s) selected", - "invalid-home-page-route": "Invalid home page route" + "invalid-home-page-route": "Invalid home page route", + "invalid-session": "Session Mismatch", + "invalid-session-text": "It looks like your login session is no longer active, or no longer matches with the server. Please refresh this page." } \ No newline at end of file diff --git a/public/language/lt/global.json b/public/language/lt/global.json index 6f5399905d..1ffeb7040a 100644 --- a/public/language/lt/global.json +++ b/public/language/lt/global.json @@ -95,5 +95,6 @@ "upload_file": "Upload file", "upload": "Upload", "allowed-file-types": "Allowed file types are %1", - "unsaved-changes": "You have unsaved changes. Are you sure you wish to navigate away?" + "unsaved-changes": "You have unsaved changes. Are you sure you wish to navigate away?", + "reconnecting-message": "Looks like your connection to %1 was lost, please wait while we try to reconnect." } \ No newline at end of file diff --git a/public/language/lt/user.json b/public/language/lt/user.json index 3fbd891809..31f55b8307 100644 --- a/public/language/lt/user.json +++ b/public/language/lt/user.json @@ -89,6 +89,10 @@ "topics_per_page": "Temų puslapyje", "posts_per_page": "Pranešimų puslapyje", "notification_sounds": "Paleisti garsą kai jūs gaunate pranešimą", + "notifications_and_sounds": "Notifications & Sounds", + "incoming-message-sound": "Incoming message sound", + "outgoing-message-sound": "Outgoing message sound", + "notification-sound": "Notification sound", "browsing": "Naršymo nustatymai", "open_links_in_new_tab": "Atidaryti išeinančias nuorodas naujam skirtuke", "enable_topic_searching": "Įjungti Temų Ieškojimą ", diff --git a/public/language/ms/error.json b/public/language/ms/error.json index 64e13cdc36..826b75b19a 100644 --- a/public/language/ms/error.json +++ b/public/language/ms/error.json @@ -123,5 +123,7 @@ "no-users-in-room": "Tiada pengguna dalam bilik ini", "cant-kick-self": "You can't kick yourself from the group", "no-users-selected": "No user(s) selected", - "invalid-home-page-route": "Invalid home page route" + "invalid-home-page-route": "Invalid home page route", + "invalid-session": "Session Mismatch", + "invalid-session-text": "It looks like your login session is no longer active, or no longer matches with the server. Please refresh this page." } \ No newline at end of file diff --git a/public/language/ms/global.json b/public/language/ms/global.json index dc65efdc18..40d6209ba9 100644 --- a/public/language/ms/global.json +++ b/public/language/ms/global.json @@ -95,5 +95,6 @@ "upload_file": "Upload file", "upload": "Upload", "allowed-file-types": "Allowed file types are %1", - "unsaved-changes": "You have unsaved changes. Are you sure you wish to navigate away?" + "unsaved-changes": "You have unsaved changes. Are you sure you wish to navigate away?", + "reconnecting-message": "Looks like your connection to %1 was lost, please wait while we try to reconnect." } \ No newline at end of file diff --git a/public/language/ms/user.json b/public/language/ms/user.json index a1940e57cf..4e89cfb478 100644 --- a/public/language/ms/user.json +++ b/public/language/ms/user.json @@ -89,6 +89,10 @@ "topics_per_page": "Topik setiap muka", "posts_per_page": "Kiriman setiap muka", "notification_sounds": "Mainkan bunyi apabila anda mendapat pemberitahuan", + "notifications_and_sounds": "Notifications & Sounds", + "incoming-message-sound": "Incoming message sound", + "outgoing-message-sound": "Outgoing message sound", + "notification-sound": "Notification sound", "browsing": "Melihat-lihat Tetapan", "open_links_in_new_tab": "Buka pautan luar di tab yang baru", "enable_topic_searching": "Aktifkan Pencarian Dalam-Topik", diff --git a/public/language/nb/error.json b/public/language/nb/error.json index b9756632e9..b9aa7192cb 100644 --- a/public/language/nb/error.json +++ b/public/language/nb/error.json @@ -123,5 +123,7 @@ "no-users-in-room": "No users in this room", "cant-kick-self": "You can't kick yourself from the group", "no-users-selected": "No user(s) selected", - "invalid-home-page-route": "Invalid home page route" + "invalid-home-page-route": "Invalid home page route", + "invalid-session": "Session Mismatch", + "invalid-session-text": "It looks like your login session is no longer active, or no longer matches with the server. Please refresh this page." } \ No newline at end of file diff --git a/public/language/nb/global.json b/public/language/nb/global.json index 10d96d584e..020fe6aa62 100644 --- a/public/language/nb/global.json +++ b/public/language/nb/global.json @@ -95,5 +95,6 @@ "upload_file": "Upload file", "upload": "Upload", "allowed-file-types": "Allowed file types are %1", - "unsaved-changes": "You have unsaved changes. Are you sure you wish to navigate away?" + "unsaved-changes": "You have unsaved changes. Are you sure you wish to navigate away?", + "reconnecting-message": "Looks like your connection to %1 was lost, please wait while we try to reconnect." } \ No newline at end of file diff --git a/public/language/nb/user.json b/public/language/nb/user.json index 238f6da595..056afeb82f 100644 --- a/public/language/nb/user.json +++ b/public/language/nb/user.json @@ -89,6 +89,10 @@ "topics_per_page": "Tråd per side", "posts_per_page": "Innlegg per side", "notification_sounds": "Spill en lyd når du mottar et varsel", + "notifications_and_sounds": "Notifications & Sounds", + "incoming-message-sound": "Incoming message sound", + "outgoing-message-sound": "Outgoing message sound", + "notification-sound": "Notification sound", "browsing": "Surfeinnstillinger", "open_links_in_new_tab": "Åpne utgående lenker i en ny fane", "enable_topic_searching": "Aktiver søk-i-emne", diff --git a/public/language/nl/error.json b/public/language/nl/error.json index 541de4e1ea..c0423cb7d4 100644 --- a/public/language/nl/error.json +++ b/public/language/nl/error.json @@ -123,5 +123,7 @@ "no-users-in-room": "Er zijn geen gebruikers in deze chat", "cant-kick-self": "Je kunt jezelf niet uit een groep schoppen", "no-users-selected": "Geen gebruiker(s) geselecteerd", - "invalid-home-page-route": "Onbekende homepage route" + "invalid-home-page-route": "Onbekende homepage route", + "invalid-session": "Session Mismatch", + "invalid-session-text": "It looks like your login session is no longer active, or no longer matches with the server. Please refresh this page." } \ No newline at end of file diff --git a/public/language/nl/global.json b/public/language/nl/global.json index 59c43d4893..bf94e340b2 100644 --- a/public/language/nl/global.json +++ b/public/language/nl/global.json @@ -95,5 +95,6 @@ "upload_file": "Upload bestand", "upload": "Upload", "allowed-file-types": "Toegestane bestandstypen zijn %1", - "unsaved-changes": "You have unsaved changes. Are you sure you wish to navigate away?" + "unsaved-changes": "You have unsaved changes. Are you sure you wish to navigate away?", + "reconnecting-message": "Looks like your connection to %1 was lost, please wait while we try to reconnect." } \ No newline at end of file diff --git a/public/language/nl/user.json b/public/language/nl/user.json index 129383dd5b..7d56f88b4a 100644 --- a/public/language/nl/user.json +++ b/public/language/nl/user.json @@ -89,6 +89,10 @@ "topics_per_page": "Onderwerpen per pagina", "posts_per_page": "Berichten per pagina", "notification_sounds": "Speel een geluid af wanneer ik een notificatie ontvang", + "notifications_and_sounds": "Notifications & Sounds", + "incoming-message-sound": "Incoming message sound", + "outgoing-message-sound": "Outgoing message sound", + "notification-sound": "Notification sound", "browsing": "Instellingen voor bladeren", "open_links_in_new_tab": "Open uitgaande links naar een externe site in een nieuw tabblad", "enable_topic_searching": "Inschakelen mogelijkheid op onderwerp te kunnen zoeken", diff --git a/public/language/pl/error.json b/public/language/pl/error.json index c6618a2f59..71d8834d4a 100644 --- a/public/language/pl/error.json +++ b/public/language/pl/error.json @@ -123,5 +123,7 @@ "no-users-in-room": "Brak użytkowników w pokoju", "cant-kick-self": "Nie możesz wyrzucić samego siebie z grupy", "no-users-selected": "Nie wybrano żadnych użytkowników", - "invalid-home-page-route": "Invalid home page route" + "invalid-home-page-route": "Invalid home page route", + "invalid-session": "Session Mismatch", + "invalid-session-text": "It looks like your login session is no longer active, or no longer matches with the server. Please refresh this page." } \ No newline at end of file diff --git a/public/language/pl/global.json b/public/language/pl/global.json index 4054a256fe..0a88d05532 100644 --- a/public/language/pl/global.json +++ b/public/language/pl/global.json @@ -95,5 +95,6 @@ "upload_file": "Załaduj plik", "upload": "Załaduj", "allowed-file-types": "Dozwolone typy plików %1", - "unsaved-changes": "You have unsaved changes. Are you sure you wish to navigate away?" + "unsaved-changes": "You have unsaved changes. Are you sure you wish to navigate away?", + "reconnecting-message": "Looks like your connection to %1 was lost, please wait while we try to reconnect." } \ No newline at end of file diff --git a/public/language/pl/user.json b/public/language/pl/user.json index 5bc57dafba..4cedf88a5e 100644 --- a/public/language/pl/user.json +++ b/public/language/pl/user.json @@ -89,6 +89,10 @@ "topics_per_page": "Tematów na Stronę", "posts_per_page": "Postów na stronę", "notification_sounds": "Odtwarzaj dźwięk, gdy otrzymujesz powiadomienie", + "notifications_and_sounds": "Notifications & Sounds", + "incoming-message-sound": "Incoming message sound", + "outgoing-message-sound": "Outgoing message sound", + "notification-sound": "Notification sound", "browsing": "Ustawienia szukania", "open_links_in_new_tab": "Otwieraj linki wychodzące w nowej karcie", "enable_topic_searching": "Odblokuj szukanie w temacie", diff --git a/public/language/pt_BR/error.json b/public/language/pt_BR/error.json index 780e0b5ec0..adec9bbf06 100644 --- a/public/language/pt_BR/error.json +++ b/public/language/pt_BR/error.json @@ -123,5 +123,7 @@ "no-users-in-room": "Nenhum usuário nesta sala", "cant-kick-self": "Você não pode kickar a si mesmo do grupo", "no-users-selected": "Nenhuma escolha de usuário(s) foi feita", - "invalid-home-page-route": "Rota de página inicial inválida" + "invalid-home-page-route": "Rota de página inicial inválida", + "invalid-session": "Session Mismatch", + "invalid-session-text": "It looks like your login session is no longer active, or no longer matches with the server. Please refresh this page." } \ No newline at end of file diff --git a/public/language/pt_BR/global.json b/public/language/pt_BR/global.json index 27e5782a3d..71543c8896 100644 --- a/public/language/pt_BR/global.json +++ b/public/language/pt_BR/global.json @@ -95,5 +95,6 @@ "upload_file": "Fazer upload de arquivo", "upload": "Upload", "allowed-file-types": "Os tipos de arquivo permitidos são %1", - "unsaved-changes": "You have unsaved changes. Are you sure you wish to navigate away?" + "unsaved-changes": "You have unsaved changes. Are you sure you wish to navigate away?", + "reconnecting-message": "Looks like your connection to %1 was lost, please wait while we try to reconnect." } \ No newline at end of file diff --git a/public/language/pt_BR/user.json b/public/language/pt_BR/user.json index b6ee0c97c4..1deb677bd6 100644 --- a/public/language/pt_BR/user.json +++ b/public/language/pt_BR/user.json @@ -89,6 +89,10 @@ "topics_per_page": "Tópicos por Página", "posts_per_page": "Posts por Página", "notification_sounds": "Tocar um som quando você receber uma notificação.", + "notifications_and_sounds": "Notifications & Sounds", + "incoming-message-sound": "Incoming message sound", + "outgoing-message-sound": "Outgoing message sound", + "notification-sound": "Notification sound", "browsing": "Configurações de Navegação", "open_links_in_new_tab": "Abrir links externos em nova aba", "enable_topic_searching": "Habilitar Pesquisa dentro de Tópico", diff --git a/public/language/ro/error.json b/public/language/ro/error.json index c0dc6a64a1..ee38cdc1c6 100644 --- a/public/language/ro/error.json +++ b/public/language/ro/error.json @@ -123,5 +123,7 @@ "no-users-in-room": "No users in this room", "cant-kick-self": "You can't kick yourself from the group", "no-users-selected": "No user(s) selected", - "invalid-home-page-route": "Invalid home page route" + "invalid-home-page-route": "Invalid home page route", + "invalid-session": "Session Mismatch", + "invalid-session-text": "It looks like your login session is no longer active, or no longer matches with the server. Please refresh this page." } \ No newline at end of file diff --git a/public/language/ro/global.json b/public/language/ro/global.json index 7a843384a0..c634e3a1c8 100644 --- a/public/language/ro/global.json +++ b/public/language/ro/global.json @@ -95,5 +95,6 @@ "upload_file": "Încărcați fișierul", "upload": "Încărcați", "allowed-file-types": "Tipuri de fișiere permise sunt %1", - "unsaved-changes": "You have unsaved changes. Are you sure you wish to navigate away?" + "unsaved-changes": "You have unsaved changes. Are you sure you wish to navigate away?", + "reconnecting-message": "Looks like your connection to %1 was lost, please wait while we try to reconnect." } \ No newline at end of file diff --git a/public/language/ro/user.json b/public/language/ro/user.json index ed81fcea63..31cd396f7f 100644 --- a/public/language/ro/user.json +++ b/public/language/ro/user.json @@ -89,6 +89,10 @@ "topics_per_page": "Subiecte pe pagină", "posts_per_page": "Mesaje pe pagină", "notification_sounds": "Play a sound when you receive a notification", + "notifications_and_sounds": "Notifications & Sounds", + "incoming-message-sound": "Incoming message sound", + "outgoing-message-sound": "Outgoing message sound", + "notification-sound": "Notification sound", "browsing": "Setări navigare", "open_links_in_new_tab": "Open outgoing links in new tab", "enable_topic_searching": "Enable In-Topic Searching", diff --git a/public/language/ru/error.json b/public/language/ru/error.json index ba5f39bd70..5c3b5f35c4 100644 --- a/public/language/ru/error.json +++ b/public/language/ru/error.json @@ -123,5 +123,7 @@ "no-users-in-room": "В этой комнате нет пользователей", "cant-kick-self": "Вы не можете удалить себя сами из группы.", "no-users-selected": "No user(s) selected", - "invalid-home-page-route": "Invalid home page route" + "invalid-home-page-route": "Invalid home page route", + "invalid-session": "Session Mismatch", + "invalid-session-text": "It looks like your login session is no longer active, or no longer matches with the server. Please refresh this page." } \ No newline at end of file diff --git a/public/language/ru/global.json b/public/language/ru/global.json index 2e453f412e..24cef36d23 100644 --- a/public/language/ru/global.json +++ b/public/language/ru/global.json @@ -95,5 +95,6 @@ "upload_file": "Загрузить файл", "upload": "Загрузить", "allowed-file-types": "Разрешенные форматы файлов %1", - "unsaved-changes": "You have unsaved changes. Are you sure you wish to navigate away?" + "unsaved-changes": "You have unsaved changes. Are you sure you wish to navigate away?", + "reconnecting-message": "Looks like your connection to %1 was lost, please wait while we try to reconnect." } \ No newline at end of file diff --git a/public/language/ru/topic.json b/public/language/ru/topic.json index 0912a92c32..8a50361144 100644 --- a/public/language/ru/topic.json +++ b/public/language/ru/topic.json @@ -117,6 +117,6 @@ "stale.reply_anyway": "Всё равно ответить в этой теме", "link_back": "Ответ: [%1](%2)", "spam": "Спам", - "offensive": "Наступление", + "offensive": "Оскорбление", "custom-flag-reason": "Введите другую причину" } \ No newline at end of file diff --git a/public/language/ru/user.json b/public/language/ru/user.json index 98d1bb1b8f..33c31e3b43 100644 --- a/public/language/ru/user.json +++ b/public/language/ru/user.json @@ -89,6 +89,10 @@ "topics_per_page": "Тем на Странице", "posts_per_page": "Постов на Странице", "notification_sounds": "Воспроизводить звук во время получения уведомления", + "notifications_and_sounds": "Notifications & Sounds", + "incoming-message-sound": "Incoming message sound", + "outgoing-message-sound": "Outgoing message sound", + "notification-sound": "Notification sound", "browsing": "Настройки просмотра", "open_links_in_new_tab": "Открывать внешние ссылки в новых вкладках", "enable_topic_searching": "Активировать поиск внутри тем", diff --git a/public/language/rw/error.json b/public/language/rw/error.json index 3a24f2dd50..d2b97f8f0c 100644 --- a/public/language/rw/error.json +++ b/public/language/rw/error.json @@ -123,5 +123,7 @@ "no-users-in-room": "Nta muntu uri muri iki gikari", "cant-kick-self": "You can't kick yourself from the group", "no-users-selected": "No user(s) selected", - "invalid-home-page-route": "Invalid home page route" + "invalid-home-page-route": "Invalid home page route", + "invalid-session": "Session Mismatch", + "invalid-session-text": "It looks like your login session is no longer active, or no longer matches with the server. Please refresh this page." } \ No newline at end of file diff --git a/public/language/rw/global.json b/public/language/rw/global.json index 088182851c..bb0164820c 100644 --- a/public/language/rw/global.json +++ b/public/language/rw/global.json @@ -95,5 +95,6 @@ "upload_file": "Pakira ifayilo", "upload": "Pakira", "allowed-file-types": "Ubwoko bw'amafayilo bwemewe ni %1", - "unsaved-changes": "You have unsaved changes. Are you sure you wish to navigate away?" + "unsaved-changes": "You have unsaved changes. Are you sure you wish to navigate away?", + "reconnecting-message": "Looks like your connection to %1 was lost, please wait while we try to reconnect." } \ No newline at end of file diff --git a/public/language/rw/user.json b/public/language/rw/user.json index 415be0e49c..a598704593 100644 --- a/public/language/rw/user.json +++ b/public/language/rw/user.json @@ -89,6 +89,10 @@ "topics_per_page": "Ibiganiro kuri Buri Paji", "posts_per_page": "Ibyashyizweho kuri Buri Paji", "notification_sounds": "Hajye humvikana ijwi rikumenyesha ko haje itangazo rishya", + "notifications_and_sounds": "Notifications & Sounds", + "incoming-message-sound": "Incoming message sound", + "outgoing-message-sound": "Outgoing message sound", + "notification-sound": "Notification sound", "browsing": "Gutunganya Uburyo Usoma", "open_links_in_new_tab": "Fungurira imirongo ijya hanze mu idirishya rishya", "enable_topic_searching": "Emerera Ugushakira mu Kiganiro", diff --git a/public/language/sc/error.json b/public/language/sc/error.json index 2ec9878ee8..1d2065d115 100644 --- a/public/language/sc/error.json +++ b/public/language/sc/error.json @@ -123,5 +123,7 @@ "no-users-in-room": "No users in this room", "cant-kick-self": "You can't kick yourself from the group", "no-users-selected": "No user(s) selected", - "invalid-home-page-route": "Invalid home page route" + "invalid-home-page-route": "Invalid home page route", + "invalid-session": "Session Mismatch", + "invalid-session-text": "It looks like your login session is no longer active, or no longer matches with the server. Please refresh this page." } \ No newline at end of file diff --git a/public/language/sc/global.json b/public/language/sc/global.json index 7c70438c6c..a5b6a3e20f 100644 --- a/public/language/sc/global.json +++ b/public/language/sc/global.json @@ -95,5 +95,6 @@ "upload_file": "Upload file", "upload": "Upload", "allowed-file-types": "Allowed file types are %1", - "unsaved-changes": "You have unsaved changes. Are you sure you wish to navigate away?" + "unsaved-changes": "You have unsaved changes. Are you sure you wish to navigate away?", + "reconnecting-message": "Looks like your connection to %1 was lost, please wait while we try to reconnect." } \ No newline at end of file diff --git a/public/language/sc/user.json b/public/language/sc/user.json index 580e37ad0d..acdd61fe69 100644 --- a/public/language/sc/user.json +++ b/public/language/sc/user.json @@ -89,6 +89,10 @@ "topics_per_page": "Arresonadas pro Pàgina", "posts_per_page": "Arresonos pro Pàgina", "notification_sounds": "Play a sound when you receive a notification", + "notifications_and_sounds": "Notifications & Sounds", + "incoming-message-sound": "Incoming message sound", + "outgoing-message-sound": "Outgoing message sound", + "notification-sound": "Notification sound", "browsing": "Browsing Settings", "open_links_in_new_tab": "Open outgoing links in new tab", "enable_topic_searching": "Enable In-Topic Searching", diff --git a/public/language/sk/error.json b/public/language/sk/error.json index 9788c91cbe..4e9fb7cfb1 100644 --- a/public/language/sk/error.json +++ b/public/language/sk/error.json @@ -123,5 +123,7 @@ "no-users-in-room": "No users in this room", "cant-kick-self": "You can't kick yourself from the group", "no-users-selected": "No user(s) selected", - "invalid-home-page-route": "Invalid home page route" + "invalid-home-page-route": "Invalid home page route", + "invalid-session": "Session Mismatch", + "invalid-session-text": "It looks like your login session is no longer active, or no longer matches with the server. Please refresh this page." } \ No newline at end of file diff --git a/public/language/sk/global.json b/public/language/sk/global.json index f292d3f667..7a2ac8cbaa 100644 --- a/public/language/sk/global.json +++ b/public/language/sk/global.json @@ -95,5 +95,6 @@ "upload_file": "Upload file", "upload": "Upload", "allowed-file-types": "Allowed file types are %1", - "unsaved-changes": "You have unsaved changes. Are you sure you wish to navigate away?" + "unsaved-changes": "You have unsaved changes. Are you sure you wish to navigate away?", + "reconnecting-message": "Looks like your connection to %1 was lost, please wait while we try to reconnect." } \ No newline at end of file diff --git a/public/language/sk/user.json b/public/language/sk/user.json index 0395219cb8..017be26335 100644 --- a/public/language/sk/user.json +++ b/public/language/sk/user.json @@ -89,6 +89,10 @@ "topics_per_page": "Témy na stranu", "posts_per_page": "Príspevkov na stranu", "notification_sounds": "Play a sound when you receive a notification", + "notifications_and_sounds": "Notifications & Sounds", + "incoming-message-sound": "Incoming message sound", + "outgoing-message-sound": "Outgoing message sound", + "notification-sound": "Notification sound", "browsing": "Hľadaj v nadstaveniach", "open_links_in_new_tab": "Open outgoing links in new tab", "enable_topic_searching": "Enable In-Topic Searching", diff --git a/public/language/sl/error.json b/public/language/sl/error.json index d9a7b503af..16561b4c63 100644 --- a/public/language/sl/error.json +++ b/public/language/sl/error.json @@ -123,5 +123,7 @@ "no-users-in-room": "No users in this room", "cant-kick-self": "You can't kick yourself from the group", "no-users-selected": "No user(s) selected", - "invalid-home-page-route": "Invalid home page route" + "invalid-home-page-route": "Invalid home page route", + "invalid-session": "Session Mismatch", + "invalid-session-text": "It looks like your login session is no longer active, or no longer matches with the server. Please refresh this page." } \ No newline at end of file diff --git a/public/language/sl/global.json b/public/language/sl/global.json index 993d32a131..101d3c3af2 100644 --- a/public/language/sl/global.json +++ b/public/language/sl/global.json @@ -95,5 +95,6 @@ "upload_file": "Upload file", "upload": "Upload", "allowed-file-types": "Allowed file types are %1", - "unsaved-changes": "You have unsaved changes. Are you sure you wish to navigate away?" + "unsaved-changes": "You have unsaved changes. Are you sure you wish to navigate away?", + "reconnecting-message": "Looks like your connection to %1 was lost, please wait while we try to reconnect." } \ No newline at end of file diff --git a/public/language/sl/user.json b/public/language/sl/user.json index 330d37b7ee..9a778e442c 100644 --- a/public/language/sl/user.json +++ b/public/language/sl/user.json @@ -89,6 +89,10 @@ "topics_per_page": "Število tem na stran", "posts_per_page": "Število objav na stran", "notification_sounds": "Zvočno me opozori, ko prejmem obvestilo", + "notifications_and_sounds": "Notifications & Sounds", + "incoming-message-sound": "Incoming message sound", + "outgoing-message-sound": "Outgoing message sound", + "notification-sound": "Notification sound", "browsing": "Preglej nastavitve", "open_links_in_new_tab": "Zunanje povezave odpri v novem zavihku", "enable_topic_searching": "Omogoči iskanje znotraj teme", diff --git a/public/language/sr/error.json b/public/language/sr/error.json index d32aa4364b..f2e1f37f8a 100644 --- a/public/language/sr/error.json +++ b/public/language/sr/error.json @@ -123,5 +123,7 @@ "no-users-in-room": "No users in this room", "cant-kick-self": "You can't kick yourself from the group", "no-users-selected": "No user(s) selected", - "invalid-home-page-route": "Invalid home page route" + "invalid-home-page-route": "Invalid home page route", + "invalid-session": "Session Mismatch", + "invalid-session-text": "It looks like your login session is no longer active, or no longer matches with the server. Please refresh this page." } \ No newline at end of file diff --git a/public/language/sr/global.json b/public/language/sr/global.json index 6cee270049..8af7ca5b1d 100644 --- a/public/language/sr/global.json +++ b/public/language/sr/global.json @@ -95,5 +95,6 @@ "upload_file": "Upload file", "upload": "Upload", "allowed-file-types": "Allowed file types are %1", - "unsaved-changes": "You have unsaved changes. Are you sure you wish to navigate away?" + "unsaved-changes": "You have unsaved changes. Are you sure you wish to navigate away?", + "reconnecting-message": "Looks like your connection to %1 was lost, please wait while we try to reconnect." } \ No newline at end of file diff --git a/public/language/sr/user.json b/public/language/sr/user.json index 19dae33163..1016a9feb4 100644 --- a/public/language/sr/user.json +++ b/public/language/sr/user.json @@ -89,6 +89,10 @@ "topics_per_page": "Topics per Page", "posts_per_page": "Posts per Page", "notification_sounds": "Play a sound when you receive a notification", + "notifications_and_sounds": "Notifications & Sounds", + "incoming-message-sound": "Incoming message sound", + "outgoing-message-sound": "Outgoing message sound", + "notification-sound": "Notification sound", "browsing": "Browsing Settings", "open_links_in_new_tab": "Open outgoing links in new tab", "enable_topic_searching": "Enable In-Topic Searching", diff --git a/public/language/sv/error.json b/public/language/sv/error.json index aecff9870f..b283278f61 100644 --- a/public/language/sv/error.json +++ b/public/language/sv/error.json @@ -123,5 +123,7 @@ "no-users-in-room": "Inga användare i det här rummet", "cant-kick-self": "Du kan inte sparka ut dig själv från gruppen", "no-users-selected": "No user(s) selected", - "invalid-home-page-route": "Invalid home page route" + "invalid-home-page-route": "Invalid home page route", + "invalid-session": "Session Mismatch", + "invalid-session-text": "It looks like your login session is no longer active, or no longer matches with the server. Please refresh this page." } \ No newline at end of file diff --git a/public/language/sv/global.json b/public/language/sv/global.json index 847c19a5c0..992f2a32fe 100644 --- a/public/language/sv/global.json +++ b/public/language/sv/global.json @@ -95,5 +95,6 @@ "upload_file": "Ladda upp en fil", "upload": "Ladda upp", "allowed-file-types": "Tillåtna filtyper är %1", - "unsaved-changes": "You have unsaved changes. Are you sure you wish to navigate away?" + "unsaved-changes": "You have unsaved changes. Are you sure you wish to navigate away?", + "reconnecting-message": "Looks like your connection to %1 was lost, please wait while we try to reconnect." } \ No newline at end of file diff --git a/public/language/sv/user.json b/public/language/sv/user.json index b8d8a1a2bb..ba150f3294 100644 --- a/public/language/sv/user.json +++ b/public/language/sv/user.json @@ -89,6 +89,10 @@ "topics_per_page": "Ämnen per sida", "posts_per_page": "Inlägg per sida", "notification_sounds": "Spela ett ljud när du får en notis", + "notifications_and_sounds": "Notifications & Sounds", + "incoming-message-sound": "Incoming message sound", + "outgoing-message-sound": "Outgoing message sound", + "notification-sound": "Notification sound", "browsing": "Inställning för bläddring", "open_links_in_new_tab": "Öppna utgående länkar i ny flik", "enable_topic_searching": "Aktivera sökning inom ämne", diff --git a/public/language/th/error.json b/public/language/th/error.json index 45d5070642..08a09e83e5 100644 --- a/public/language/th/error.json +++ b/public/language/th/error.json @@ -123,5 +123,7 @@ "no-users-in-room": "No users in this room", "cant-kick-self": "You can't kick yourself from the group", "no-users-selected": "No user(s) selected", - "invalid-home-page-route": "Invalid home page route" + "invalid-home-page-route": "Invalid home page route", + "invalid-session": "Session Mismatch", + "invalid-session-text": "It looks like your login session is no longer active, or no longer matches with the server. Please refresh this page." } \ No newline at end of file diff --git a/public/language/th/global.json b/public/language/th/global.json index 4e4b7cccb7..09e26d956a 100644 --- a/public/language/th/global.json +++ b/public/language/th/global.json @@ -95,5 +95,6 @@ "upload_file": "Upload file", "upload": "Upload", "allowed-file-types": "Allowed file types are %1", - "unsaved-changes": "You have unsaved changes. Are you sure you wish to navigate away?" + "unsaved-changes": "You have unsaved changes. Are you sure you wish to navigate away?", + "reconnecting-message": "Looks like your connection to %1 was lost, please wait while we try to reconnect." } \ No newline at end of file diff --git a/public/language/th/user.json b/public/language/th/user.json index 1819833562..a59c28d7b5 100644 --- a/public/language/th/user.json +++ b/public/language/th/user.json @@ -89,6 +89,10 @@ "topics_per_page": "จำนวนกระทู้ต่อหน้า", "posts_per_page": "จำนวนโพสต์ต่อหน้า", "notification_sounds": "Play a sound when you receive a notification", + "notifications_and_sounds": "Notifications & Sounds", + "incoming-message-sound": "Incoming message sound", + "outgoing-message-sound": "Outgoing message sound", + "notification-sound": "Notification sound", "browsing": "เปิดดูการตั้งค่า", "open_links_in_new_tab": "Open outgoing links in new tab", "enable_topic_searching": "เปิดใช้การค้นหาแบบ In-Topic", diff --git a/public/language/tr/error.json b/public/language/tr/error.json index 5e8619faf2..b3f6216519 100644 --- a/public/language/tr/error.json +++ b/public/language/tr/error.json @@ -123,5 +123,7 @@ "no-users-in-room": "Bu odada kullanıcı yok", "cant-kick-self": "Kendinizi gruptan atamazsınız.", "no-users-selected": "Seçili kullanıcı(s) bulunamadı", - "invalid-home-page-route": "Geçersiz anasayfa yolu" + "invalid-home-page-route": "Geçersiz anasayfa yolu", + "invalid-session": "Session Mismatch", + "invalid-session-text": "It looks like your login session is no longer active, or no longer matches with the server. Please refresh this page." } \ No newline at end of file diff --git a/public/language/tr/global.json b/public/language/tr/global.json index 54801fc108..59c01ab819 100644 --- a/public/language/tr/global.json +++ b/public/language/tr/global.json @@ -7,9 +7,9 @@ "403.login": "Belki de tekrar giriş yapmayı denersiniz?", "404.title": "Bulunamadı", "404.message": "Erişim izniniz olmayan bir sayfaya denk gelmiş gibisiniz. Anasayfa'ya geri dönün.", - "500.title": "Internal Error.", + "500.title": "Dahili hata.", "500.message": "Ups! Bir şeyler ters gitti sanki!", - "400.title": "Bad Request.", + "400.title": "Geçersiz istek.", "400.message": "It looks like this link is malformed, please double-check and try again. Otherwise, return to the home page.", "register": "Kayıt Ol", "login": "Giriş", @@ -95,5 +95,6 @@ "upload_file": "Dosya yükle", "upload": "Yükle", "allowed-file-types": "İzin verilen dosya tipleri %1", - "unsaved-changes": "Kaydedilmemiş değişiklikler var. Çıkmak istediğinize emin misiniz?" + "unsaved-changes": "Kaydedilmemiş değişiklikler var. Çıkmak istediğinize emin misiniz?", + "reconnecting-message": "Looks like your connection to %1 was lost, please wait while we try to reconnect." } \ No newline at end of file diff --git a/public/language/tr/user.json b/public/language/tr/user.json index ed9f9ed759..22d9fdaa00 100644 --- a/public/language/tr/user.json +++ b/public/language/tr/user.json @@ -89,6 +89,10 @@ "topics_per_page": "Sayfa başına Konular", "posts_per_page": "Sayfa başına İletiler", "notification_sounds": "Uyarı alındığında ses çal", + "notifications_and_sounds": "Bildiriler & Sesler", + "incoming-message-sound": "Gelen mesaj sesi", + "outgoing-message-sound": "Giden ileti sesi", + "notification-sound": "Bildiri sesi", "browsing": "Tarayıcı Ayaları", "open_links_in_new_tab": "Dışarı giden bağlantıları yeni sekmede aç", "enable_topic_searching": "Konu içi aramayı aktive et", diff --git a/public/language/vi/error.json b/public/language/vi/error.json index 54f4e7d5c2..542b9d00f3 100644 --- a/public/language/vi/error.json +++ b/public/language/vi/error.json @@ -123,5 +123,7 @@ "no-users-in-room": "Không có ai trong phòng này", "cant-kick-self": "Bạn không thể kick chính bạn ra khỏi nhóm", "no-users-selected": "Chưa có người dùng(s) nào", - "invalid-home-page-route": "Đường dẫn trang chủ không hợp lệ" + "invalid-home-page-route": "Đường dẫn trang chủ không hợp lệ", + "invalid-session": "Session Mismatch", + "invalid-session-text": "It looks like your login session is no longer active, or no longer matches with the server. Please refresh this page." } \ No newline at end of file diff --git a/public/language/vi/global.json b/public/language/vi/global.json index 1043051526..01890dcd33 100644 --- a/public/language/vi/global.json +++ b/public/language/vi/global.json @@ -95,5 +95,6 @@ "upload_file": "Tải file lên", "upload": "Tải lên", "allowed-file-types": "Các định dạng file được cho phép là %1", - "unsaved-changes": "You have unsaved changes. Are you sure you wish to navigate away?" + "unsaved-changes": "You have unsaved changes. Are you sure you wish to navigate away?", + "reconnecting-message": "Looks like your connection to %1 was lost, please wait while we try to reconnect." } \ No newline at end of file diff --git a/public/language/vi/user.json b/public/language/vi/user.json index 6af0f62719..3c746b87ca 100644 --- a/public/language/vi/user.json +++ b/public/language/vi/user.json @@ -89,6 +89,10 @@ "topics_per_page": "Số chủ đề trong một trang", "posts_per_page": "Số bài viết trong một trang", "notification_sounds": "Phát âm thanh khi bạn nhận được thông báo mới", + "notifications_and_sounds": "Notifications & Sounds", + "incoming-message-sound": "Incoming message sound", + "outgoing-message-sound": "Outgoing message sound", + "notification-sound": "Notification sound", "browsing": "Đang xem cài đặt", "open_links_in_new_tab": "Mở link trong tab mới.", "enable_topic_searching": "Bật In-topic Searching", diff --git a/public/language/zh_CN/error.json b/public/language/zh_CN/error.json index e3d3aa55d4..4d5ee16393 100644 --- a/public/language/zh_CN/error.json +++ b/public/language/zh_CN/error.json @@ -123,5 +123,7 @@ "no-users-in-room": "这个聊天室中没有用户", "cant-kick-self": "你不能把自己踢出群组", "no-users-selected": "尚未选择用户", - "invalid-home-page-route": "无效的首页路径" + "invalid-home-page-route": "无效的首页路径", + "invalid-session": "Session Mismatch", + "invalid-session-text": "It looks like your login session is no longer active, or no longer matches with the server. Please refresh this page." } \ No newline at end of file diff --git a/public/language/zh_CN/global.json b/public/language/zh_CN/global.json index 9d6a0d5a47..c94f323598 100644 --- a/public/language/zh_CN/global.json +++ b/public/language/zh_CN/global.json @@ -95,5 +95,6 @@ "upload_file": "上传文件", "upload": "上传", "allowed-file-types": "允许的文件类型有 %1", - "unsaved-changes": "您有未保存的更改,您确定您要离开么?" + "unsaved-changes": "您有未保存的更改,您确定您要离开么?", + "reconnecting-message": "Looks like your connection to %1 was lost, please wait while we try to reconnect." } \ No newline at end of file diff --git a/public/language/zh_CN/user.json b/public/language/zh_CN/user.json index d00aaae266..766b80c570 100644 --- a/public/language/zh_CN/user.json +++ b/public/language/zh_CN/user.json @@ -89,6 +89,10 @@ "topics_per_page": "每页主题数", "posts_per_page": "每页帖子数", "notification_sounds": "收到通知时播放提示音", + "notifications_and_sounds": "Notifications & Sounds", + "incoming-message-sound": "Incoming message sound", + "outgoing-message-sound": "Outgoing message sound", + "notification-sound": "Notification sound", "browsing": "浏览设置", "open_links_in_new_tab": "在新标签打开外部链接", "enable_topic_searching": "启用主题内搜索", diff --git a/public/language/zh_TW/error.json b/public/language/zh_TW/error.json index 3beacd4374..dc815121de 100644 --- a/public/language/zh_TW/error.json +++ b/public/language/zh_TW/error.json @@ -123,5 +123,7 @@ "no-users-in-room": "沒有使用者在聊天室中", "cant-kick-self": "你不能把自己從群組中踢出", "no-users-selected": "No user(s) selected", - "invalid-home-page-route": "Invalid home page route" + "invalid-home-page-route": "Invalid home page route", + "invalid-session": "Session Mismatch", + "invalid-session-text": "It looks like your login session is no longer active, or no longer matches with the server. Please refresh this page." } \ No newline at end of file diff --git a/public/language/zh_TW/global.json b/public/language/zh_TW/global.json index f36d9ed09e..02e6ba741d 100644 --- a/public/language/zh_TW/global.json +++ b/public/language/zh_TW/global.json @@ -95,5 +95,6 @@ "upload_file": "上傳檔案", "upload": "上傳", "allowed-file-types": "允許的檔案類型是 %1", - "unsaved-changes": "You have unsaved changes. Are you sure you wish to navigate away?" + "unsaved-changes": "You have unsaved changes. Are you sure you wish to navigate away?", + "reconnecting-message": "Looks like your connection to %1 was lost, please wait while we try to reconnect." } \ No newline at end of file diff --git a/public/language/zh_TW/user.json b/public/language/zh_TW/user.json index 053ec41d09..b5ee9f2144 100644 --- a/public/language/zh_TW/user.json +++ b/public/language/zh_TW/user.json @@ -89,6 +89,10 @@ "topics_per_page": "每頁的主題數", "posts_per_page": "每頁的文章數", "notification_sounds": "當你接收到通知時撥放音效", + "notifications_and_sounds": "Notifications & Sounds", + "incoming-message-sound": "Incoming message sound", + "outgoing-message-sound": "Outgoing message sound", + "notification-sound": "Notification sound", "browsing": "瀏覽設定", "open_links_in_new_tab": "在新的資料標籤裡打開外部的連結", "enable_topic_searching": "啟用在主題中的搜尋", diff --git a/public/less/admin/general/navigation.less b/public/less/admin/general/navigation.less index 86fd3cae62..3e10639b89 100644 --- a/public/less/admin/general/navigation.less +++ b/public/less/admin/general/navigation.less @@ -3,6 +3,8 @@ width: 100%; min-height: 50px; border: 1px solid #eee; + overflow: auto; + .active { background-color: #eee; } diff --git a/public/less/generics.less b/public/less/generics.less index d2be83d01e..f94118b299 100644 --- a/public/less/generics.less +++ b/public/less/generics.less @@ -112,13 +112,15 @@ } .ban-modal { - input[type="number"] { - width: 7rem; - text-align: center; - margin-left: 1rem; - } - .form-inline, .form-group { width: 100%; } + + .units { + line-height: 5rem; + } +} + +.admin .ban-modal .units { + line-height: 1.846; } \ No newline at end of file diff --git a/public/src/admin/extend/plugins.js b/public/src/admin/extend/plugins.js index eccb94f527..3e12074e3a 100644 --- a/public/src/admin/extend/plugins.js +++ b/public/src/admin/extend/plugins.js @@ -249,6 +249,8 @@ define('admin/extend/plugins', function() { $('#installed ul li').each(function() { if ($(this).hasClass('active')) { $('#active ul').append($(this).clone(true)); + } else { + $('#deactive ul').append($(this).clone(true)); } }); } diff --git a/public/src/admin/extend/widgets.js b/public/src/admin/extend/widgets.js index 4ac3fdeaf0..91e05beb04 100644 --- a/public/src/admin/extend/widgets.js +++ b/public/src/admin/extend/widgets.js @@ -1,10 +1,10 @@ "use strict"; /* global define, app, socket */ -define('admin/extend/widgets', function() { +define('admin/extend/widgets', ['jqueryui'], function(jqueryui) { var Widgets = {}; - Widgets.init = function() { + Widgets.init = function() { $('#widgets .nav-pills a').on('click', function(ev) { var $this = $(this); $('#widgets .nav-pills li').removeClass('active'); @@ -21,7 +21,7 @@ define('admin/extend/widgets', function() { $('.available-widgets [data-widget]').addClass('hide'); $('.available-widgets [data-widget="' + $(this).val() + '"]').removeClass('hide'); }); - + $('#widget-selector').trigger('change'); loadWidgetData(); @@ -32,7 +32,7 @@ define('admin/extend/widgets', function() { $('#widgets .available-widgets .widget-panel').draggable({ helper: function(e) { - return $(e.target).parents('.widget-panel').clone().addClass('block').width($(e.target.parentNode).width()); + return $(e.target).parents('.widget-panel').clone(); }, distance: 10, connectToSortable: ".widget-area" @@ -156,7 +156,7 @@ define('admin/extend/widgets', function() { function appendToggle(el) { if (!el.hasClass('block')) { - el.addClass('block') + el.addClass('block').css('width', '').css('height', '') .droppable({ accept: '[data-container-html]', drop: function(event, ui) { diff --git a/public/src/admin/general/navigation.js b/public/src/admin/general/navigation.js index 9ebdce555a..1837fc590f 100644 --- a/public/src/admin/general/navigation.js +++ b/public/src/admin/general/navigation.js @@ -1,7 +1,7 @@ "use strict"; /* global define, app, ajaxify, socket, templates */ -define('admin/general/navigation', ['translator', 'iconSelect'], function(translator, iconSelect) { +define('admin/general/navigation', ['translator', 'iconSelect', 'jqueryui'], function(translator, iconSelect, jqueryui) { var navigation = {}, available; @@ -21,7 +21,7 @@ define('admin/general/navigation', ['translator', 'iconSelect'], function(transl stop: drop }); }); - + $('#active-navigation').sortable().droppable({ accept: $('#available li .drag-item') }); diff --git a/public/src/admin/manage/users.js b/public/src/admin/manage/users.js index d570941940..45abb0e254 100644 --- a/public/src/admin/manage/users.js +++ b/public/src/admin/manage/users.js @@ -60,7 +60,7 @@ define('admin/manage/users', ['admin/modules/selectable', 'translator'], functio bootbox.confirm('Do you really want to ban ' + (uids.length > 1 ? 'these users' : 'this user') + ' permanently?', function(confirm) { if (confirm) { - socket.emit('user.banUsers', { uids: uids }, done('User(s) banned!', '.ban', true)); + socket.emit('user.banUsers', { uids: uids, reason: '' }, done('User(s) banned!', '.ban', true)); } }); }); @@ -91,7 +91,7 @@ define('admin/manage/users', ['admin/modules/selectable', 'translator'], functio return data; }, {}); var until = formData.length ? (Date.now() + formData.length * 1000*60*60 * (parseInt(formData.unit, 10) ? 24 : 1)) : 0; - socket.emit('user.banUsers', { uids: uids, until: until }, done('User(s) banned!', '.ban', true)); + socket.emit('user.banUsers', { uids: uids, until: until, reason: formData.reason }, done('User(s) banned!', '.ban', true)); } } } diff --git a/public/src/admin/modules/selectable.js b/public/src/admin/modules/selectable.js index 815fa26d0f..5e4bb5725f 100644 --- a/public/src/admin/modules/selectable.js +++ b/public/src/admin/modules/selectable.js @@ -2,14 +2,12 @@ /*globals define*/ -define('admin/modules/selectable', function() { +define('admin/modules/selectable', ['jqueryui'], function(jqueryui) { var selectable = {}; selectable.enable = function(containerEl, targets) { - app.loadJQueryUI(function() { - $(containerEl).selectable({ - filter: targets - }); + $(containerEl).selectable({ + filter: targets }); }; diff --git a/public/src/admin/settings/email.js b/public/src/admin/settings/email.js index 78a058e19d..02edfffcaa 100644 --- a/public/src/admin/settings/email.js +++ b/public/src/admin/settings/email.js @@ -34,16 +34,23 @@ define('admin/settings/email', ['admin/settings'], function(settings) { emailEditor.setTheme("ace/theme/twilight"); emailEditor.getSession().setMode("ace/mode/html"); - emailEditor.on('change', function(event) { - $('#email-editor-holder').val(emailEditor.getValue()); + emailEditor.on('change', function() { + var emailPath = $('#email-editor-selector').val(); + var original; + ajaxify.data.emails.forEach(function(email) { + if (email.path === emailPath) { + original = email.original; + } + }); + var newEmail = emailEditor.getValue(); + $('#email-editor-holder').val(newEmail !== original ? newEmail : ''); }); $('button[data-action="email.revert"]').off('click').on('click', function() { ajaxify.data.emails.forEach(function(email) { if (email.path === $('#email-editor-selector').val()) { emailEditor.getSession().setValue(email.original); - $('#email-editor-holder') - .val(email.original); + $('#email-editor-holder').val(''); } }); }); @@ -56,7 +63,7 @@ define('admin/settings/email', ['admin/settings'], function(settings) { if (email.path === $('#email-editor-selector').val()) { emailEditor.getSession().setValue(email.text); $('#email-editor-holder') - .val(email.text) + .val(email.text !== email.original ? email.text : '') .attr('data-field', 'email:custom:' + email.path); } }); diff --git a/public/src/ajaxify.js b/public/src/ajaxify.js index 87122bf78c..b4ad44e51b 100644 --- a/public/src/ajaxify.js +++ b/public/src/ajaxify.js @@ -304,6 +304,8 @@ $(document).ready(function() { return href === undefined || href === '' || href === 'javascript:;'; } + var contentEl = document.getElementById('content'); + // Enhancing all anchors to ajaxify... $(document.body).on('click', 'a', function (e) { var _self = this; @@ -321,7 +323,7 @@ $(document).ready(function() { } } } else if (window.location.pathname !== '/outgoing') { - if (config.openOutgoingLinksInNewTab) { + if (config.openOutgoingLinksInNewTab && $.contains(contentEl, this)) { window.open(this.href, '_blank'); e.preventDefault(); } else if (config.useOutgoingLinksPage) { @@ -380,7 +382,7 @@ $(document).ready(function() { app.load(); - $('[data-template]').each(function() { + $('[type="text/tpl"][data-template]').each(function() { templates.cache[$(this).attr('data-template')] = $('
').html($(this).html()).text(); $(this).parent().remove(); }); diff --git a/public/src/app.js b/public/src/app.js index e086787215..0e357dc50e 100644 --- a/public/src/app.js +++ b/public/src/app.js @@ -33,7 +33,7 @@ app.cacheBuster = null; app.handleSearch(); } - $('#content').on('click', '#new_topic', function(){ + $('body').on('click', '#new_topic', function(){ app.newTopic(); }); diff --git a/public/src/client/account/header.js b/public/src/client/account/header.js index 6b39b7f2da..2a6641b152 100644 --- a/public/src/client/account/header.js +++ b/public/src/client/account/header.js @@ -1,23 +1,26 @@ 'use strict'; -/* globals define, app, config, ajaxify, socket, bootbox, translator */ +/* globals define, app, config, ajaxify, socket, bootbox, templates */ define('forum/account/header', [ 'coverPhoto', 'uploader', - 'components' -], function(coverPhoto, uploader, components) { - var AccountHeader = {}, - yourid, - theirid; + 'components', + 'translator' +], function(coverPhoto, uploader, components, translator) { + var AccountHeader = {}; + var yourid; + var theirid; + var isAdminOrSelfOrGlobalMod; AccountHeader.init = function() { yourid = ajaxify.data.yourid; theirid = ajaxify.data.theirid; + isAdminOrSelfOrGlobalMod = ajaxify.data.isAdmin || ajaxify.data.isSelf || ajaxify.data.isGlobalModerator; hidePrivateLinks(); selectActivePill(); - if (parseInt(yourid, 10) === parseInt(theirid, 10)) { + if (isAdminOrSelfOrGlobalMod) { setupCoverPhoto(); } @@ -123,7 +126,7 @@ define('forum/account/header', [ }, {}); var until = formData.length ? (Date.now() + formData.length * 1000*60*60 * (parseInt(formData.unit, 10) ? 24 : 1)) : 0; - socket.emit('user.banUsers', { uids: [ajaxify.data.theirid], until: until }, function(err) { + socket.emit('user.banUsers', { uids: [ajaxify.data.theirid], until: until, reason: formData.reason || '' }, function(err) { if (err) { return app.alertError(err.message); } diff --git a/public/src/client/account/settings.js b/public/src/client/account/settings.js index 1060492bf0..cc9aaf0439 100644 --- a/public/src/client/account/settings.js +++ b/public/src/client/account/settings.js @@ -2,7 +2,7 @@ /*global define, socket, app, ajaxify, config*/ -define('forum/account/settings', ['forum/account/header', 'components'], function(header, components) { +define('forum/account/settings', ['forum/account/header', 'components', 'sounds'], function(header, components, sounds) { var AccountSettings = {}; AccountSettings.init = function() { @@ -33,6 +33,13 @@ define('forum/account/settings', ['forum/account/header', 'components'], functio $('[data-property="homePageRoute"]').on('change', toggleCustomRoute); + $('.account').find('button[data-action="play"]').on('click', function(e) { + e.preventDefault(); + + var fileName = $(this).parent().parent().find('select').val(); + sounds.playFile(fileName); + }); + toggleCustomRoute(); components.get('user/sessions').find('.timeago').timeago(); @@ -77,10 +84,14 @@ define('forum/account/settings', ['forum/account/header', 'components'], functio if (key === 'userLang' && config.userLang !== newSettings.userLang) { requireReload = true; } - config[key] = newSettings[key]; + if (config.hasOwnProperty(key)) { + config[key] = newSettings[key]; + } } } + sounds.reloadMapping(); + if (requireReload && parseInt(app.user.uid, 10) === parseInt(ajaxify.data.theirid, 10)) { app.alert({ id: 'setting-change', diff --git a/public/src/client/category.js b/public/src/client/category.js index af0d26b980..80d8d10539 100644 --- a/public/src/client/category.js +++ b/public/src/client/category.js @@ -277,7 +277,8 @@ define('forum/category', [ cid: ajaxify.data.cid, after: after, direction: direction, - author: utils.params().author + author: utils.params().author, + categoryTopicSort: config.categoryTopicSort }, function (data, done) { if (data.topics && data.topics.length) { Category.onTopicsLoaded(data, direction, done); diff --git a/public/src/client/infinitescroll.js b/public/src/client/infinitescroll.js index ed21602b01..1823b15ca3 100644 --- a/public/src/client/infinitescroll.js +++ b/public/src/client/infinitescroll.js @@ -13,10 +13,10 @@ define('forum/infinitescroll', function() { scroll.init = function(el, cb) { if (typeof el === 'function') { callback = el; - container = $(document); + container = $('body'); } else { callback = cb; - container = el || $(document); + container = el || $('body'); } $(window).off('scroll', onScroll).on('scroll', onScroll); diff --git a/public/src/client/topic.js b/public/src/client/topic.js index dcff9d3fe1..be41d85ac7 100644 --- a/public/src/client/topic.js +++ b/public/src/client/topic.js @@ -63,7 +63,7 @@ define('forum/topic', [ handleKeys(); - navigator.init('[component="post/anchor"]', ajaxify.data.postcount, Topic.toTop, Topic.toBottom, Topic.navigatorCallback, Topic.calculateIndex); + navigator.init('[component="post"]', ajaxify.data.postcount, Topic.toTop, Topic.toBottom, Topic.navigatorCallback, Topic.calculateIndex); handleBookmark(tid); diff --git a/public/src/client/topic/postTools.js b/public/src/client/topic/postTools.js index 85a8986a4b..86fe03ce03 100644 --- a/public/src/client/topic/postTools.js +++ b/public/src/client/topic/postTools.js @@ -59,7 +59,7 @@ define('forum/topic/postTools', ['share', 'navigator', 'components', 'translator postEl.find('[component="post/restore"]').toggleClass('hidden', !isDeleted); postEl.find('[component="post/purge"]').toggleClass('hidden', !isDeleted); - postEl.find('.dropdown-menu').html(''); + postEl.find('[component="post/tools"] .dropdown-menu').html(''); }; PostTools.updatePostCount = function(postCount) { diff --git a/public/src/client/topic/posts.js b/public/src/client/topic/posts.js index c6dfaaaaa6..6aae064794 100644 --- a/public/src/client/topic/posts.js +++ b/public/src/client/topic/posts.js @@ -57,6 +57,7 @@ define('forum/topic/posts', [ function onNewPostPagination(data) { function scrollToPost() { scrollToPostIfSelf(data.posts[0]); + Posts.loadImages(); } var posts = data.posts; @@ -92,12 +93,13 @@ define('forum/topic/posts', [ html.addClass('new'); } scrollToPostIfSelf(data.posts[0]); + Posts.loadImages(); }); } function scrollToPostIfSelf(post) { if (!ajaxify.data.scrollToMyPost) { - return; + return; } var isSelfPost = parseInt(post.uid, 10) === parseInt(app.user.uid, 10); if (isSelfPost) { @@ -220,7 +222,8 @@ define('forum/topic/posts', [ infinitescroll.loadMore('topics.loadMore', { tid: tid, after: after, - direction: direction + direction: direction, + topicPostSort: config.topicPostSort }, function (data, done) { indicatorEl.fadeOut(); diff --git a/public/src/modules/navigator.js b/public/src/modules/navigator.js index 93dc81ff06..5f162dc10f 100644 --- a/public/src/modules/navigator.js +++ b/public/src/modules/navigator.js @@ -9,6 +9,8 @@ define('navigator', ['forum/pagination', 'components'], function(pagination, com var navigator = {}; var index = 1; var count = 0; + var navigatorUpdateTimeoutId = 0; + navigator.scrollActive = false; navigator.init = function(selector, count, toTop, toBottom, callback, calculateIndex) { @@ -17,15 +19,8 @@ define('navigator', ['forum/pagination', 'components'], function(pagination, com navigator.callback = callback; toTop = toTop || function() {}; toBottom = toBottom || function() {}; - var navigatorUpdateTimeoutId = 0; - $(window).off('scroll', navigator.update).on('scroll', function() { - if (navigatorUpdateTimeoutId) { - clearTimeout(navigatorUpdateTimeoutId); - navigatorUpdateTimeoutId = 0; - } - navigatorUpdateTimeoutId = setTimeout(navigator.update, 100); - }); + $(window).off('scroll', navigator.delayedUpdate).on('scroll', navigator.delayedUpdate); $('.pagination-block .dropdown-menu').off('click').on('click', function(e) { e.stopPropagation(); @@ -98,6 +93,14 @@ define('navigator', ['forum/pagination', 'components'], function(pagination, com $('.pagination-block').toggleClass('ready', flag); } + navigator.delayedUpdate = function() { + if (navigatorUpdateTimeoutId) { + clearTimeout(navigatorUpdateTimeoutId); + navigatorUpdateTimeoutId = 0; + } + navigatorUpdateTimeoutId = setTimeout(navigator.update, 100); + }; + navigator.update = function(threshold) { /* The "threshold" is defined as the distance from the top of the page to @@ -128,8 +131,8 @@ define('navigator', ['forum/pagination', 'components'], function(pagination, com } }); - var atTop = scrollTop === 0 && parseInt(els.first().attr('data-index'), 10) === 0, - nearBottom = scrollTop + windowHeight > documentHeight - 100 && parseInt(els.last().attr('data-index'), 10) === count - 1; + var atTop = scrollTop === 0 && parseInt(els.first().attr('data-index'), 10) === 0; + var nearBottom = scrollTop + windowHeight > documentHeight - 100 && parseInt(els.last().attr('data-index'), 10) === count - 1; if (atTop) { index = 1; @@ -210,7 +213,11 @@ define('navigator', ['forum/pagination', 'components'], function(pagination, com } if (config.usePagination) { - var page = Math.max(1, Math.ceil(postIndex / config.postsPerPage)); + var index = postIndex; + if (config.topicPostSort === 'most_votes' || config.topicPostSort === 'newest_to_oldest') { + index = ajaxify.data.postcount - index; + } + var page = Math.max(1, Math.ceil(index / config.postsPerPage)); if (parseInt(page, 10) !== ajaxify.data.pagination.currentPage) { pagination.loadPage(page, function() { @@ -227,12 +234,10 @@ define('navigator', ['forum/pagination', 'components'], function(pagination, com }; navigator.scrollToPostIndex = function(postIndex, highlight, duration) { - var scrollTo = components.get('post/anchor', postIndex), - postEl = components.get('post', 'index', postIndex), - postHeight = postEl.height(), - viewportHeight = $(window).height(), - navbarHeight = components.get('navbar').height(); - + var scrollTo = components.get('post', 'index', postIndex); + var postHeight = scrollTo.height(); + var viewportHeight = $(window).height(); + var navbarHeight = components.get('navbar').height(); if (!scrollTo.length) { navigator.scrollActive = false; @@ -275,9 +280,9 @@ define('navigator', ['forum/pagination', 'components'], function(pagination, com function highlightPost() { if (highlight) { - scrollTo.parents('[component="post"]').addClass('highlight'); + scrollTo.addClass('highlight'); setTimeout(function() { - scrollTo.parents('[component="post"]').removeClass('highlight'); + scrollTo.removeClass('highlight'); }, 10000); } } diff --git a/public/src/modules/sounds.js b/public/src/modules/sounds.js index 052e804f6e..a9a1840fd4 100644 --- a/public/src/modules/sounds.js +++ b/public/src/modules/sounds.js @@ -9,13 +9,17 @@ define('sounds', ['buzz'], function(buzz) { var files; socket.on('event:sounds.reloadMapping', function() { + Sounds.reloadMapping(); + }); + + Sounds.reloadMapping = function() { socket.emit('modules.sounds.getMapping', function(err, mapping) { if (err) { - return app.alertError('[sounds] Could not load sound mapping!'); + return app.alertError(err.message); } eventSoundMapping = mapping; }); - }); + } function loadData(callback) { socket.emit('modules.sounds.getData', function(err, data) { @@ -55,10 +59,6 @@ define('sounds', ['buzz'], function(buzz) { Sounds.playFile(eventSoundMapping[name]); } - if (!config.notificationSounds) { - return; - } - if (!eventSoundMapping) { return loadData(play); } diff --git a/src/controllers/accounts/settings.js b/src/controllers/accounts/settings.js index 3b169bf83c..11ea490d6f 100644 --- a/src/controllers/accounts/settings.js +++ b/src/controllers/accounts/settings.js @@ -3,7 +3,6 @@ var async = require('async'); var user = require('../../user'); -var groups = require('../../groups'); var languages = require('../../languages'); var meta = require('../../meta'); var plugins = require('../../plugins'); @@ -37,6 +36,9 @@ settingsController.get = function(req, res, callback) { }, homePageRoutes: function(next) { getHomePageRoutes(next); + }, + sounds: function(next) { + meta.sounds.getFiles(next); } }, next); }, @@ -44,6 +46,14 @@ settingsController.get = function(req, res, callback) { userData.settings = results.settings; userData.languages = results.languages; userData.homePageRoutes = results.homePageRoutes; + + var soundSettings = ['notificationSound', 'incomingChatSound', 'outgoingChatSound']; + soundSettings.forEach(function(setting) { + userData[setting] = Object.keys(results.sounds).map(function(name) { + return {name: name, selected: name === userData.settings[setting]}; + }); + }); + plugins.fireHook('filter:user.customSettings', {settings: results.settings, customSettings: [], uid: req.uid}, next); }, function(data, next) { diff --git a/src/controllers/admin/info.js b/src/controllers/admin/info.js index 00a5694937..80b0829487 100644 --- a/src/controllers/admin/info.js +++ b/src/controllers/admin/info.js @@ -62,9 +62,8 @@ function getNodeInfo(callback) { }; async.parallel({ - pubsub: function(next) { - pubsub.publish('sync:stats:start'); - next(); + stats: function(next) { + rooms.getLocalStats(next); }, gitInfo: function(next) { getGitInfo(next); @@ -74,7 +73,7 @@ function getNodeInfo(callback) { return callback(err); } data.git = results.gitInfo; - data.stats = rooms.stats[data.os.hostname + ':' + data.process.port]; + data.stats = results.stats; callback(null, data); }); } diff --git a/src/controllers/admin/settings.js b/src/controllers/admin/settings.js index 50c44ef1b7..13e7b42722 100644 --- a/src/controllers/admin/settings.js +++ b/src/controllers/admin/settings.js @@ -19,9 +19,9 @@ settingsController.get = function(req, res, next) { function renderEmail(req, res, next) { - var fs = require('fs'), - path = require('path'), - utils = require('../../../public/src/utils'); + var fs = require('fs'); + var path = require('path'); + var utils = require('../../../public/src/utils'); var emailsPath = path.join(__dirname, '../../../public/templates/emails'); utils.walk(emailsPath, function(err, emails) { diff --git a/src/controllers/api.js b/src/controllers/api.js index 968a0d86a6..42cc74e7e7 100644 --- a/src/controllers/api.js +++ b/src/controllers/api.js @@ -12,7 +12,6 @@ var categories = require('../categories'); var privileges = require('../privileges'); var plugins = require('../plugins'); var widgets = require('../widgets'); -var helpers = require('../controllers/helpers'); var accountHelpers = require('../controllers/accounts/helpers'); var apiController = {}; @@ -68,25 +67,19 @@ apiController.getConfig = function(req, res, next) { if (!req.user) { return next(null, config); } - user.getSettings(req.uid, function(err, settings) { - if (err) { - return next(err); - } - config.usePagination = settings.usePagination; - config.topicsPerPage = settings.topicsPerPage; - config.postsPerPage = settings.postsPerPage; - config.notificationSounds = settings.notificationSounds; - config.userLang = (req.query.lang ? validator.escape(String(req.query.lang)) : null) || settings.userLang || config.defaultLang; - config.openOutgoingLinksInNewTab = settings.openOutgoingLinksInNewTab; - config.topicPostSort = settings.topicPostSort || config.topicPostSort; - config.categoryTopicSort = settings.categoryTopicSort || config.categoryTopicSort; - config.topicSearchEnabled = settings.topicSearchEnabled || false; - config.delayImageLoading = settings.delayImageLoading !== undefined ? settings.delayImageLoading : true; - config.bootswatchSkin = settings.bootswatchSkin || config.bootswatchSkin; - next(null, config); - }); + user.getSettings(req.uid, next); }, - function (config, next) { + function (settings, next) { + config.usePagination = settings.usePagination; + config.topicsPerPage = settings.topicsPerPage; + config.postsPerPage = settings.postsPerPage; + config.userLang = (req.query.lang ? validator.escape(String(req.query.lang)) : null) || settings.userLang || config.defaultLang; + config.openOutgoingLinksInNewTab = settings.openOutgoingLinksInNewTab; + config.topicPostSort = settings.topicPostSort || config.topicPostSort; + config.categoryTopicSort = settings.categoryTopicSort || config.categoryTopicSort; + config.topicSearchEnabled = settings.topicSearchEnabled || false; + config.delayImageLoading = settings.delayImageLoading !== undefined ? settings.delayImageLoading : true; + config.bootswatchSkin = settings.bootswatchSkin || config.bootswatchSkin; plugins.fireHook('filter:config.get', config, next); } ], function(err, config) { diff --git a/src/controllers/authentication.js b/src/controllers/authentication.js index 0f74827be2..e0dc2f5649 100644 --- a/src/controllers/authentication.js +++ b/src/controllers/authentication.js @@ -379,7 +379,14 @@ authenticationController.localLogin = function(req, username, password, next) { return next(new Error('[[error:invalid-user-data]]')); } if (result.banned) { - return next(new Error('[[error:user-banned]]')); + // Retrieve ban reason and show error + return user.getLatestBanInfo(uid, function(err, banInfo) { + if (banInfo.reason) { + next(new Error('[[error:user-banned-reason, ' + banInfo.reason + ']]')); + } else { + next(new Error('[[error:user-banned]]')); + } + }); } Password.compare(password, userData.password, next); diff --git a/src/controllers/groups.js b/src/controllers/groups.js index bd866dedfc..294e9ac1fc 100644 --- a/src/controllers/groups.js +++ b/src/controllers/groups.js @@ -82,7 +82,12 @@ groupsController.details = function(req, res, callback) { posts: function(next) { groups.getLatestMemberPosts(res.locals.groupName, 10, req.uid, next); }, - isAdminOrGlobalMod: async.apply(user.isAdminOrGlobalMod, req.uid) + isAdmin:function(next) { + user.isAdministrator(req.uid, next); + }, + isGlobalMod: function(next) { + user.isGlobalModerator(req.uid, next); + } }, next); } ], function(err, results) { @@ -93,7 +98,7 @@ groupsController.details = function(req, res, callback) { if (!results.group) { return callback(); } - results.group.isOwner = results.group.isOwner || results.isAdminOrGlobalMod; + results.group.isOwner = results.group.isOwner || results.isAdmin || (results.isGlobalMod && !results.group.system); results.title = '[[pages:group, ' + results.group.displayName + ']]'; results.breadcrumbs = helpers.buildBreadcrumbs([{text: '[[pages:groups]]', url: '/groups' }, {text: results.group.displayName}]); results.allowPrivateGroups = parseInt(meta.config.allowPrivateGroups, 10) === 1; diff --git a/src/controllers/index.js b/src/controllers/index.js index d39352e6d0..f0927b1b07 100644 --- a/src/controllers/index.js +++ b/src/controllers/index.js @@ -109,7 +109,7 @@ Controllers.login = function(req, res, next) { if (req.query.error === 'csrf-invalid') { errorText = '[[error:csrf-invalid]]'; } else if (req.query.error) { - errorText = req.query.error; + errorText = validator.escape(String(req.query.error)); } data.alternate_logins = loginStrategies.length > 0; diff --git a/src/database/mongo/sorted.js b/src/database/mongo/sorted.js index 5cc06eab42..33e6d4e79b 100644 --- a/src/database/mongo/sorted.js +++ b/src/database/mongo/sorted.js @@ -141,8 +141,13 @@ module.exports = function(db, module) { key = {$in: key}; } + var limit = stop - start + 1; + if (limit <= 0) { + limit = 0; + } + db.collection('objects').find({_key: key}, {fields: fields}) - .limit(stop - start + 1) + .limit(limit) .skip(start) .sort({score: sort}) .toArray(function(err, data) { diff --git a/src/file.js b/src/file.js index 3920b3c271..a9d3ad207f 100644 --- a/src/file.js +++ b/src/file.js @@ -22,14 +22,13 @@ file.saveFileToLocal = function(filename, folder, tempPath, callback) { var uploadPath = path.join(nconf.get('base_dir'), nconf.get('upload_path'), folder, filename); - winston.verbose('Saving file '+ filename +' to : ' + uploadPath); + winston.verbose('Saving file '+ filename + ' to : ' + uploadPath); var is = fs.createReadStream(tempPath); var os = fs.createWriteStream(uploadPath); - is.on('end', function () { callback(null, { - url: path.join(nconf.get('upload_url'), folder, filename), + url: nconf.get('upload_url') + '/' + folder + '/' + filename, path: uploadPath }); }); diff --git a/src/image.js b/src/image.js index fca120d1e5..f1e12c81d5 100644 --- a/src/image.js +++ b/src/image.js @@ -1,11 +1,11 @@ 'use strict'; -var fs = require('fs'), - Jimp = require('jimp'), - async = require('async'), - plugins = require('./plugins'); +var fs = require('fs'); +var Jimp = require('jimp'); +var async = require('async'); +var plugins = require('./plugins'); -var image = {}; +var image = module.exports; image.resizeImage = function(data, callback) { if (plugins.hasListeners('filter:image.resize')) { @@ -106,12 +106,10 @@ image.size = function(path, callback) { callback(err, data ? data.bitmap : null); }); } -} +}; image.convertImageToBase64 = function(path, callback) { fs.readFile(path, function(err, data) { callback(err, data ? data.toString('base64') : null); }); }; - -module.exports = image; diff --git a/src/meta/js.js b/src/meta/js.js index b9cc505e96..7b5abd1b0c 100644 --- a/src/meta/js.js +++ b/src/meta/js.js @@ -81,7 +81,7 @@ module.exports = function(Meta) { modules: { "Chart.js": './node_modules/chart.js/dist/Chart.min.js', "mousetrap.js": './node_modules/mousetrap/mousetrap.js', - + "jqueryui.js": 'public/vendor/jquery/js/jquery-ui.js', "buzz.js": 'public/vendor/buzz/buzz.js' } } diff --git a/src/meta/sounds.js b/src/meta/sounds.js index c802458b14..c413def9e3 100644 --- a/src/meta/sounds.js +++ b/src/meta/sounds.js @@ -1,15 +1,16 @@ 'use strict'; -var path = require('path'), - fs = require('fs'), - nconf = require('nconf'), - winston = require('winston'), - rimraf = require('rimraf'), - mkdirp = require('mkdirp'), - async = require('async'), +var path = require('path'); +var fs = require('fs'); +var nconf = require('nconf'); +var winston = require('winston'); +var rimraf = require('rimraf'); +var mkdirp = require('mkdirp'); +var async = require('async'); - plugins = require('../plugins'), - db = require('../database'); +var user = require('../user'); +var plugins = require('../plugins'); +var db = require('../database'); module.exports = function(Meta) { @@ -58,20 +59,31 @@ module.exports = function(Meta) { }); }; - Meta.sounds.getMapping = function(callback) { - db.getObject('settings:sounds', function(err, sounds) { - if (err || !sounds) { - // Send default sounds - var defaults = { - 'notification': 'notification.mp3', - 'chat-incoming': 'waterdrop-high.mp3', - 'chat-outgoing': undefined - }; - - return callback(null, defaults); + Meta.sounds.getMapping = function(uid, callback) { + async.parallel({ + defaultMapping: function(next) { + db.getObject('settings:sounds', next); + }, + userSettings: function(next) { + user.getSettings(uid, next); } + }, function(err, results) { + if (err) { + return callback(err); + } + var userSettings = results.userSettings; + var defaultMapping = results.defaultMapping || {}; + var soundMapping = {}; + soundMapping.notification = (userSettings.notificationSound || userSettings.notificationSound === '') ? + userSettings.notificationSound : defaultMapping.notification || 'notification.mp3'; - callback(null, sounds); + soundMapping['chat-incoming'] = (userSettings.incomingChatSound || userSettings.incomingChatSound === '') ? + userSettings.incomingChatSound : defaultMapping['chat-incoming'] || 'waterdrop-high.mp3'; + + soundMapping['chat-outgoing'] = (userSettings.outgoingChatSound || userSettings.outgoingChatSound === '') ? + userSettings.outgoingChatSound : defaultMapping['chat-outgoing'] || undefined; + + callback(null, soundMapping); }); }; diff --git a/src/pagination.js b/src/pagination.js index 15b8aa6eb3..69896ccd3f 100644 --- a/src/pagination.js +++ b/src/pagination.js @@ -35,6 +35,8 @@ pagination.create = function(currentPage, pageCount, queryObj) { queryObj = queryObj || {}; + delete queryObj._; + var pages = pagesToShow.map(function(page) { queryObj.page = page; return {page: page, active: page === currentPage, qs: qs.stringify(queryObj)}; diff --git a/src/plugins/load.js b/src/plugins/load.js index 8eac293829..04c0c84bba 100644 --- a/src/plugins/load.js +++ b/src/plugins/load.js @@ -253,7 +253,6 @@ module.exports = function(Plugins) { }).filter(Boolean).forEach(function(key) { Plugins.customLanguages[key] = _.defaults(Plugins.customLanguages[key] || {}, data); }); - fallbackMap[path.basename(pathToLang, '.json')] = path.join(pathToFolder, pluginData.defaultLang, path.basename(pathToLang)); } next(); @@ -263,9 +262,6 @@ module.exports = function(Plugins) { return callback(err); } - // do I need this either? - _.extendOwn(Plugins.customLanguageFallbacks, fallbackMap); - callback(); }); }); diff --git a/src/posts/edit.js b/src/posts/edit.js index 333901c1fa..5bb76ec019 100644 --- a/src/posts/edit.js +++ b/src/posts/edit.js @@ -68,8 +68,8 @@ module.exports = function(Posts) { plugins.fireHook('action:post.edit', _.clone(postData)); - cache.del(postData.pid); - pubsub.publish('post:edit', postData.pid); + cache.del(String(postData.pid)); + pubsub.publish('post:edit', String(postData.pid)); Posts.parsePost(postData, next); }, diff --git a/src/posts/parse.js b/src/posts/parse.js index 19e6430681..88fa5f8c22 100644 --- a/src/posts/parse.js +++ b/src/posts/parse.js @@ -15,8 +15,8 @@ module.exports = function(Posts) { Posts.parsePost = function(postData, callback) { postData.content = postData.content || ''; - if (postData.pid && cache.has(postData.pid)) { - postData.content = cache.get(postData.pid); + if (postData.pid && cache.has(String(postData.pid))) { + postData.content = cache.get(String(postData.pid)); return callback(null, postData); } @@ -33,7 +33,7 @@ module.exports = function(Posts) { data.postData.content = translator.escape(data.postData.content); if (global.env === 'production' && data.postData.pid) { - cache.set(data.postData.pid, data.postData.content); + cache.set(String(data.postData.pid), data.postData.content); } callback(null, data.postData); diff --git a/src/routes/debug.js b/src/routes/debug.js index a24a159e18..a2191d8ffa 100644 --- a/src/routes/debug.js +++ b/src/routes/debug.js @@ -1,12 +1,12 @@ "use strict"; -var express = require('express'), - nconf = require('nconf'), - winston = require('winston'), - user = require('./../user'), - categories = require('./../categories'), - topics = require('./../topics'), - posts = require('./../posts'); +var express = require('express'); +var nconf = require('nconf'); +var winston = require('winston'); +var user = require('./../user'); +var categories = require('./../categories'); +var topics = require('./../topics'); +var posts = require('./../posts'); module.exports = function(app, middleware, controllers) { var router = express.Router(); diff --git a/src/socket.io/admin/rooms.js b/src/socket.io/admin/rooms.js index b5f4ffb501..fcb52debe1 100644 --- a/src/socket.io/admin/rooms.js +++ b/src/socket.io/admin/rooms.js @@ -17,7 +17,7 @@ var SocketRooms = { pubsub.on('sync:stats:start', function() { - getLocalStats(function(err, stats) { + SocketRooms.getLocalStats(function(err, stats) { if (err) { return winston.error(err); } @@ -50,7 +50,7 @@ SocketRooms.getTotalGuestCount = function(callback) { pubsub.removeAllListeners('sync:stats:guests:end'); callback(null, count); }, 100); -} +}; SocketRooms.getAll = function(socket, data, callback) { @@ -129,7 +129,7 @@ SocketRooms.getOnlineUserCount = function(io) { return count; }; -function getLocalStats(callback) { +SocketRooms.getLocalStats = function(callback) { var io = require('../index').server; if (!io) { @@ -172,7 +172,7 @@ function getLocalStats(callback) { socketData.topics = topTenTopics; callback(null, socketData); -} +}; module.exports = SocketRooms; \ No newline at end of file diff --git a/src/socket.io/categories.js b/src/socket.io/categories.js index 1c13adebea..a8957a10dc 100644 --- a/src/socket.io/categories.js +++ b/src/socket.io/categories.js @@ -80,12 +80,12 @@ SocketCategories.loadMore = function(socket, data, callback) { } var infScrollTopicsPerPage = 20; - var set = 'cid:' + data.cid + ':tids', - reverse = false; + var set = 'cid:' + data.cid + ':tids'; + var reverse = false; - if (results.settings.categoryTopicSort === 'newest_to_oldest') { + if (data.categoryTopicSort === 'newest_to_oldest') { reverse = true; - } else if (results.settings.categoryTopicSort === 'most_posts') { + } else if (data.categoryTopicSort === 'most_posts') { reverse = true; set = 'cid:' + data.cid + ':tids:posts'; } diff --git a/src/socket.io/index.js b/src/socket.io/index.js index 3ec75ecd0d..5ee6050571 100644 --- a/src/socket.io/index.js +++ b/src/socket.io/index.js @@ -133,10 +133,10 @@ var ratelimit = require('../middleware/ratelimit'); function validateSession(socket, callback) { var req = socket.request; - if (!req.signedCookies || !req.signedCookies['express.sid']) { + if (!req.signedCookies || !req.signedCookies[nconf.get('sessionKey')]) { return callback(new Error('[[error:invalid-session]]')); } - db.sessionStore.get(req.signedCookies['express.sid'], function (err, sessionData) { + db.sessionStore.get(req.signedCookies[nconf.get('sessionKey')], function (err, sessionData) { if (err || !sessionData) { return callback(err || new Error('[[error:invalid-session]]')); } @@ -157,7 +157,7 @@ var ratelimit = require('../middleware/ratelimit'); cookieParser(request, {}, next); }, function (next) { - db.sessionStore.get(request.signedCookies['express.sid'], function (err, sessionData) { + db.sessionStore.get(request.signedCookies[nconf.get('sessionKey')], function (err, sessionData) { if (err) { return next(err); } diff --git a/src/socket.io/modules.js b/src/socket.io/modules.js index 568d971b65..954d407d5f 100644 --- a/src/socket.io/modules.js +++ b/src/socket.io/modules.js @@ -313,12 +313,12 @@ SocketModules.sounds.getSounds = function(socket, data, callback) { }; SocketModules.sounds.getMapping = function(socket, data, callback) { - meta.sounds.getMapping(callback); + meta.sounds.getMapping(socket.uid, callback); }; SocketModules.sounds.getData = function(socket, data, callback) { async.parallel({ - mapping: async.apply(meta.sounds.getMapping), + mapping: async.apply(meta.sounds.getMapping, socket.uid), files: async.apply(meta.sounds.getFiles) }, callback); }; diff --git a/src/socket.io/topics/infinitescroll.js b/src/socket.io/topics/infinitescroll.js index 5f089bd52e..7401c60e1f 100644 --- a/src/socket.io/topics/infinitescroll.js +++ b/src/socket.io/topics/infinitescroll.js @@ -1,7 +1,7 @@ 'use strict'; var async = require('async'); -var user = require('../../user'); + var topics = require('../../topics'); var privileges = require('../../privileges'); var meta = require('../../meta'); @@ -19,9 +19,6 @@ module.exports = function(SocketTopics) { privileges: function(next) { privileges.topics.get(data.tid, socket.uid, next); }, - settings: function(next) { - user.getSettings(socket.uid, next); - }, topic: function(next) { topics.getTopicFields(data.tid, ['postcount', 'deleted'], next); } @@ -35,10 +32,10 @@ module.exports = function(SocketTopics) { } var set = 'tid:' + data.tid + ':posts'; - if (results.settings.topicPostSort === 'most_votes') { + if (data.topicPostSort === 'most_votes') { set = 'tid:' + data.tid + ':posts:votes'; } - var reverse = results.settings.topicPostSort === 'newest_to_oldest' || results.settings.topicPostSort === 'most_votes'; + var reverse = data.topicPostSort === 'newest_to_oldest' || data.topicPostSort === 'most_votes'; var start = Math.max(0, parseInt(data.after, 10)); var infScrollPostsPerPage = 10; diff --git a/src/socket.io/user/ban.js b/src/socket.io/user/ban.js index 41c60411e0..80f701c1a2 100644 --- a/src/socket.io/user/ban.js +++ b/src/socket.io/user/ban.js @@ -12,12 +12,13 @@ module.exports = function(SocketUser) { if (Array.isArray(data)) { data = { uids: data, - until: 0 + until: 0, + reason: '' }; } toggleBan(socket.uid, data.uids, function(uid, next) { - banUser(data.until || 0, uid, next); + banUser(uid, data.until || 0, data.reason || '', next); }, function(err) { if (err) { return callback(err); @@ -68,7 +69,7 @@ module.exports = function(SocketUser) { ], callback); } - function banUser(until, uid, callback) { + function banUser(uid, until, reason, callback) { async.waterfall([ function (next) { user.isAdministrator(uid, next); @@ -77,7 +78,7 @@ module.exports = function(SocketUser) { if (isAdmin) { return next(new Error('[[error:cant-ban-other-admins]]')); } - user.ban(uid, until, next); + user.ban(uid, until, reason, next); }, function (next) { websockets.in('uid_' + uid).emit('event:banned'); diff --git a/src/topics.js b/src/topics.js index 4cb795b2c3..7d9938987a 100644 --- a/src/topics.js +++ b/src/topics.js @@ -14,7 +14,6 @@ var social = require('./social'); (function(Topics) { - require('./topics/data')(Topics); require('./topics/create')(Topics); require('./topics/delete')(Topics); @@ -29,6 +28,7 @@ var social = require('./social'); require('./topics/teaser')(Topics); require('./topics/suggested')(Topics); require('./topics/tools')(Topics); + require('./topics/thumb')(Topics); Topics.exists = function(tid, callback) { db.isSortedSetMember('topics:tid', tid, callback); diff --git a/src/topics/create.js b/src/topics/create.js index de55045ed8..db4976678c 100644 --- a/src/topics/create.js +++ b/src/topics/create.js @@ -21,6 +21,9 @@ module.exports = function(Topics) { var topicData; async.waterfall([ + function(next) { + Topics.resizeAndUploadThumb(data, next); + }, function(next) { db.incrObjectField('global', 'nextTid', next); }, diff --git a/src/topics/thumb.js b/src/topics/thumb.js new file mode 100644 index 0000000000..5829e080c4 --- /dev/null +++ b/src/topics/thumb.js @@ -0,0 +1,91 @@ + +'use strict'; + +var async = require('async'); +var nconf = require('nconf'); +var winston = require('winston'); +var path = require('path'); +var fs = require('fs'); +var request = require('request'); +var mime = require('mime'); +var validator = require('validator'); + +var meta = require('../meta'); +var image = require('../image'); +var file = require('../file'); +var plugins = require('../plugins'); + +module.exports = function(Topics) { + + Topics.resizeAndUploadThumb = function(data, callback) { + if (!data.thumb || !validator.isURL(data.thumb)) { + return callback(); + } + + var pathToUpload; + var filename; + + async.waterfall([ + function(next) { + request.head(data.thumb, next); + }, + function(res, body, next) { + + var type = res.headers['content-type']; + if (!type.match(/image./)) { + return next(new Error('[[error:invalid-file]]')); + } + + var extension = path.extname(data.thumb); + if (!extension) { + extension = '.' + mime.extension(type); + } + filename = Date.now() + '-topic-thumb' + extension; + pathToUpload = path.join(nconf.get('base_dir'), nconf.get('upload_path'), 'files', filename); + + request(data.thumb).pipe(fs.createWriteStream(pathToUpload)).on('close', next); + }, + function(next) { + file.isFileTypeAllowed(pathToUpload, next); + }, + function(next) { + var size = parseInt(meta.config.topicThumbSize, 10) || 120; + image.resizeImage({ + path: pathToUpload, + extension: path.extname(pathToUpload), + width: size, + height: size + }, next); + }, + function(next) { + if (!plugins.hasListeners('filter:uploadImage')) { + data.thumb = path.join(nconf.get('upload_url'), 'files', filename); + return callback(); + } + + plugins.fireHook('filter:uploadImage', {image: {path: pathToUpload, name: ''}, uid: data.uid}, next); + }, + function(uploadedFile, next) { + deleteFile(pathToUpload); + data.thumb = uploadedFile.url; + next(); + } + ], function(err) { + if (err) { + deleteFile(pathToUpload); + } + callback(err); + }); + }; + + function deleteFile(path) { + if (path) { + fs.unlink(path, function(err) { + if (err) { + winston.error(err); + } + }); + } + } + +}; diff --git a/src/user/admin.js b/src/user/admin.js index dd3134e442..2509028b55 100644 --- a/src/user/admin.js +++ b/src/user/admin.js @@ -53,13 +53,20 @@ module.exports = function(User) { ], callback); }; - User.ban = function(uid, until, callback) { + User.ban = function(uid, until, reason, callback) { // "until" (optional) is unix timestamp in milliseconds + // "reason" (optional) is a string if (!callback && typeof until === 'function') { callback = until; until = 0; + reason = ''; + } else if (!callback && typeof reason === 'function') { + callback = reason; + reason = ''; } + var now = Date.now(); + until = parseInt(until, 10); if (isNaN(until)) { return callback(new Error('[[error:ban-expiry-missing]]')); @@ -67,17 +74,21 @@ module.exports = function(User) { var tasks = [ async.apply(User.setUserField, uid, 'banned', 1), - async.apply(db.sortedSetAdd, 'users:banned', Date.now(), uid), - async.apply(db.sortedSetAdd, 'uid:' + uid + ':bans', Date.now(), until) + async.apply(db.sortedSetAdd, 'users:banned', now, uid), + async.apply(db.sortedSetAdd, 'uid:' + uid + ':bans', now, until) ]; - if (until > 0 && Date.now() < until) { + if (until > 0 && now < until) { tasks.push(async.apply(db.sortedSetAdd, 'users:banned:expire', until, uid)); tasks.push(async.apply(User.setUserField, uid, 'banned:expire', until)); } else { until = 0; } + if (reason) { + tasks.push(async.apply(db.sortedSetAdd, 'banned:' + uid + ':reasons', now, reason)); + } + async.series(tasks, function (err) { if (err) { return callback(err); diff --git a/src/user/data.js b/src/user/data.js index 6f2a2dd4b7..d0c70ce80c 100644 --- a/src/user/data.js +++ b/src/user/data.js @@ -50,6 +50,10 @@ module.exports = function(User) { addField('uploadedpicture'); } + if (fields.indexOf('status') !== -1) { + addField('lastonline'); + } + db.getObjectsFields(keys, fields, function(err, users) { if (err) { return callback(err); @@ -117,6 +121,10 @@ module.exports = function(User) { user.uploadedpicture = user.uploadedpicture.startsWith('http') ? user.uploadedpicture : nconf.get('relative_path') + user.uploadedpicture; } + if (user.hasOwnProperty('status') && parseInt(user.lastonline, 10)) { + user.status = User.getStatus(user); + } + for(var i=0; i
  • Installed
  • Active
  • +
  • Inactive
  • Out of Date {upgradeCount} @@ -22,6 +23,9 @@
      +
      +
        +
          diff --git a/src/views/admin/partials/temporary-ban.tpl b/src/views/admin/partials/temporary-ban.tpl index a3f032a3b6..da8d02c79f 100644 --- a/src/views/admin/partials/temporary-ban.tpl +++ b/src/views/admin/partials/temporary-ban.tpl @@ -1,13 +1,32 @@ -
          -
          - -
          - - - - + +
          +
          +
          + + +
          +
          +
          +
          + + +
          +
          +
          +
          +
          +
          + + +    + + +
          +
          +
          +

          + Enter the length of time for the ban. Note that a time of 0 will be a considered a permanent ban. +

          +
          -

          - Enter the length of time for the ban. Note that a time of 0 will be a considered a permanent ban. -

          \ No newline at end of file diff --git a/src/views/admin/settings/user.tpl b/src/views/admin/settings/user.tpl index 575a4a07f9..aecdd1a0cb 100644 --- a/src/views/admin/settings/user.tpl +++ b/src/views/admin/settings/user.tpl @@ -261,13 +261,6 @@
          -
          - -
          -
        • diff --git a/src/webserver.js b/src/webserver.js index 94e44cc248..d7457e1b95 100644 --- a/src/webserver.js +++ b/src/webserver.js @@ -108,7 +108,7 @@ function setupExpressApp(app) { app.use(session({ store: db.sessionStore, secret: nconf.get('secret'), - key: 'express.sid', + key: nconf.get('sessionKey'), cookie: setupCookie(), resave: true, saveUninitialized: true