diff --git a/minifier.js b/minifier.js index c1df3930c1..fd0cf36e84 100644 --- a/minifier.js +++ b/minifier.js @@ -66,6 +66,7 @@ function concatenateScripts(scripts, callback) { type: 'error', payload: err }); + return; } scripts = scripts.join(require('os').EOL + ';'); diff --git a/package.json b/package.json index a52e884f6f..f140271b17 100644 --- a/package.json +++ b/package.json @@ -42,15 +42,15 @@ "nconf": "~0.7.1", "nodebb-plugin-composer-default": "1.0.16", "nodebb-plugin-dbsearch": "0.2.17", - "nodebb-plugin-emoji-extended": "0.4.13", + "nodebb-plugin-emoji-extended": "0.4.14", "nodebb-plugin-markdown": "4.0.6", - "nodebb-plugin-mentions": "1.0.5", + "nodebb-plugin-mentions": "1.0.6", "nodebb-plugin-soundpack-default": "0.1.4", "nodebb-plugin-spam-be-gone": "0.4.2", "nodebb-rewards-essentials": "0.0.5", - "nodebb-theme-lavender": "2.0.5", - "nodebb-theme-persona": "3.0.29", - "nodebb-theme-vanilla": "4.0.17", + "nodebb-theme-lavender": "2.0.6", + "nodebb-theme-persona": "3.0.44", + "nodebb-theme-vanilla": "4.0.19", "nodebb-widget-essentials": "2.0.2", "npm": "^2.1.4", "passport": "^0.3.0", @@ -67,7 +67,7 @@ "socket.io-redis": "^0.1.3", "socketio-wildcard": "~0.1.1", "string": "^3.0.0", - "templates.js": "0.2.15", + "templates.js": "0.2.16", "uglify-js": "^2.4.24", "underscore": "~1.8.3", "underscore.deep": "^0.5.1", diff --git a/public/language/ar/modules.json b/public/language/ar/modules.json index fd57bc4d9b..3a3537fee0 100644 --- a/public/language/ar/modules.json +++ b/public/language/ar/modules.json @@ -5,7 +5,7 @@ "chat.no_active": "لا يوجد لديك دردشات نشطة.", "chat.user_typing": "%1 يكتب رسالة...", "chat.user_has_messaged_you": "%1 أرسل لك رسالة.", - "chat.see_all": "See all chats", + "chat.see_all": "عرض كل المحادثات", "chat.no-messages": "المرجو اختيار مرسل إليه لمعاينة تاريخ الدردشات", "chat.recent-chats": "آخر الدردشات", "chat.contacts": "الأصدقاء", @@ -24,6 +24,6 @@ "composer.submit_and_lock": "Submit and Lock", "composer.toggle_dropdown": "Toggle Dropdown", "bootbox.ok": "OK", - "bootbox.cancel": "Cancel", - "bootbox.confirm": "Confirm" + "bootbox.cancel": "إلغاء", + "bootbox.confirm": "تأكيد" } \ No newline at end of file diff --git a/public/language/ar/notifications.json b/public/language/ar/notifications.json index 90841027d2..17b4003a79 100644 --- a/public/language/ar/notifications.json +++ b/public/language/ar/notifications.json @@ -1,7 +1,7 @@ { "title": "التنبيهات", "no_notifs": "ليس لديك أية تنبيهات جديدة", - "see_all": "See all notifications", + "see_all": "عرض كل التنبيهات", "mark_all_read": "اجعل كل التنبيهات مقروءة", "back_to_home": "عودة إلى %1", "outgoing_link": "رابط خارجي", diff --git a/public/language/ar/pages.json b/public/language/ar/pages.json index a03dbb6169..4d971ead7e 100644 --- a/public/language/ar/pages.json +++ b/public/language/ar/pages.json @@ -6,8 +6,8 @@ "popular-month": "Popular topics this month", "popular-alltime": "All time popular topics", "recent": "المواضيع الحديثة", - "users/online": "Online Users", - "users/latest": "Latest Users", + "users/online": "اﻷعضاء المتصلون", + "users/latest": "أحدث اﻷعضاء", "users/sort-posts": "Users with the most posts", "users/sort-reputation": "Users with the most reputation", "users/map": "User Map", @@ -18,8 +18,8 @@ "register": "Register an account", "login": "Login to your account", "reset": "Reset your account password", - "categories": "Categories", - "groups": "Groups", + "categories": "الفئات", + "groups": "المجموعات", "group": "%1 group", "chats": "Chats", "chat": "Chatting with %1", diff --git a/public/language/ar/topic.json b/public/language/ar/topic.json index 783a84a5fa..63bb7c2427 100644 --- a/public/language/ar/topic.json +++ b/public/language/ar/topic.json @@ -25,7 +25,7 @@ "tools": "أدوات", "flag": "تبليغ", "locked": "مقفل", - "bookmark_instructions": "إضغط هنا للعودة إلى آخر موضع أو غلق للإلغاء", + "bookmark_instructions": "Click here to return to the last unread post in this thread.", "flag_title": "إشعار بمشاركة مخلة.", "flag_confirm": "هل تريد حقًّا التبليغ بهذه المشاركة؟", "flag_success": "تم الإشعار بهذه المشاركة على أنها مخلة", diff --git a/public/language/ar/user.json b/public/language/ar/user.json index 8a6fe977f3..c5f87ff00f 100644 --- a/public/language/ar/user.json +++ b/public/language/ar/user.json @@ -51,6 +51,7 @@ "confirm_password": "تأكيد كلمة السر", "password": "كلمة السر", "username_taken_workaround": "اسم المستخدم الذي اخترته سبق أخذه، لذا تم تغييره قليلا. أن الآن مسجل تحت الاسم %1", + "password_same_as_username": "Your password is the same as your username, please select another password.", "upload_picture": "ارفع الصورة", "upload_a_picture": "رفع صورة", "remove_uploaded_picture": "Remove Uploaded Picture", diff --git a/public/language/ar/users.json b/public/language/ar/users.json index fe79f3c509..8745782c4d 100644 --- a/public/language/ar/users.json +++ b/public/language/ar/users.json @@ -9,7 +9,7 @@ "filter-by": "Filter By", "online-only": "المتصلون فقط", "picture-only": "صورة فقط", - "invite": "Invite", + "invite": "دعوة", "invitation-email-sent": "An invitation email has been sent to %1", "user_list": "قائمة اﻷعضاء", "recent_topics": "أحدث المواضيع", diff --git a/public/language/bg/topic.json b/public/language/bg/topic.json index 8085d3b1b2..d19e9a454e 100644 --- a/public/language/bg/topic.json +++ b/public/language/bg/topic.json @@ -25,7 +25,7 @@ "tools": "Инструменти", "flag": "Докладване", "locked": "Заключена", - "bookmark_instructions": "Натиснете, за да се върнете на последната си позиция или затворете, за да отхвърлите.", + "bookmark_instructions": "Натиснете тук, за да се върнете на последната непрочетена публикация в тази тема.", "flag_title": "Докладване на тази публикация до модератор", "flag_confirm": "Сигурни ли сте, че искате да докладвате тази публикация?", "flag_success": "Тази публикация е била докладвана до модератор.", diff --git a/public/language/bg/user.json b/public/language/bg/user.json index fae1199483..adc8e26823 100644 --- a/public/language/bg/user.json +++ b/public/language/bg/user.json @@ -51,6 +51,7 @@ "confirm_password": "Потвърдете паролата", "password": "Парола", "username_taken_workaround": "Потребителското име, което искате, е заето и затова ние го променихме малко. Вие ще се наричате %1", + "password_same_as_username": "Паролата е същата като потребителското Ви име. Моля, изберете друга парола.", "upload_picture": "Качване на снимка", "upload_a_picture": "Качване на снимка", "remove_uploaded_picture": "Премахване на качената снимка", diff --git a/public/language/bn/topic.json b/public/language/bn/topic.json index 92466f18c8..d2e394ccb9 100644 --- a/public/language/bn/topic.json +++ b/public/language/bn/topic.json @@ -25,7 +25,7 @@ "tools": "টুলস", "flag": "ফ্ল্যাগ", "locked": "বন্ধ", - "bookmark_instructions": "আপনার সর্বশেষ অবস্থানে ফিরে যাবার জন্য এখানে ক্লিক করুন অথবা অগ্রাহ্য করতে চাইলে বন্ধ করুন", + "bookmark_instructions": "Click here to return to the last unread post in this thread.", "flag_title": "মডারেশনের জন্য এই পোস্টটি ফ্ল্যাগ করুন", "flag_confirm": "আপনি কি নিশ্চিত যে এই পোস্টটিকে আপনি ফ্ল্যাগ করতে চান? ", "flag_success": "এই পোস্টটি মডারেশনের জন্য ফ্ল্যাগ করা হয়েছে।", diff --git a/public/language/bn/user.json b/public/language/bn/user.json index 7bb1d5df88..b3125d851a 100644 --- a/public/language/bn/user.json +++ b/public/language/bn/user.json @@ -51,6 +51,7 @@ "confirm_password": "পাসওয়ার্ড নিশ্চিত করুন", "password": "পাসওয়ার্ড", "username_taken_workaround": "আপনি যে ইউজারনেম চাচ্ছিলেন সেটি ইতিমধ্যে নেয়া হয়ে গেছে, কাজেই আমরা এটি কিঞ্চিং পরিবর্তন করেছি। আপনি এখন %1 হিসেবে পরিচিত", + "password_same_as_username": "Your password is the same as your username, please select another password.", "upload_picture": "ছবি আপলোড করুন", "upload_a_picture": "ছবি (একটি) আপলোড করুন", "remove_uploaded_picture": "Remove Uploaded Picture", diff --git a/public/language/cs/topic.json b/public/language/cs/topic.json index 7e930cfc23..05e61bdf6d 100644 --- a/public/language/cs/topic.json +++ b/public/language/cs/topic.json @@ -25,7 +25,7 @@ "tools": "Nástroje", "flag": "Flag", "locked": "Locked", - "bookmark_instructions": "Click here to return to your last position or close to discard.", + "bookmark_instructions": "Click here to return to the last unread post in this thread.", "flag_title": "Flag this post for moderation", "flag_confirm": "Are you sure you want to flag this post?", "flag_success": "This post has been flagged for moderation.", diff --git a/public/language/cs/user.json b/public/language/cs/user.json index 95fdbea105..1a2dfe2ceb 100644 --- a/public/language/cs/user.json +++ b/public/language/cs/user.json @@ -51,6 +51,7 @@ "confirm_password": "Potvrzení hesla", "password": "Heslo", "username_taken_workaround": "The username you requested was already taken, so we have altered it slightly. You are now known as %1", + "password_same_as_username": "Your password is the same as your username, please select another password.", "upload_picture": "Nahrát obrázek", "upload_a_picture": "Nahrát obrázek", "remove_uploaded_picture": "Remove Uploaded Picture", diff --git a/public/language/da/topic.json b/public/language/da/topic.json index 395e3e162e..7663eea540 100644 --- a/public/language/da/topic.json +++ b/public/language/da/topic.json @@ -25,7 +25,7 @@ "tools": "Værktøjer", "flag": "Marker", "locked": "Låst", - "bookmark_instructions": "Klik her for at returnere til den sidste position eller luk for at kassere.", + "bookmark_instructions": "Click here to return to the last unread post in this thread.", "flag_title": "Meld dette indlæg til moderation", "flag_confirm": "Er du sikker på du ænsker at melde dette indlæg?", "flag_success": "Dette indlæg er blevet meldt til moderation.", diff --git a/public/language/da/user.json b/public/language/da/user.json index 70ce36400e..ae03d80084 100644 --- a/public/language/da/user.json +++ b/public/language/da/user.json @@ -51,6 +51,7 @@ "confirm_password": "Bekræft kodeord", "password": "Kodeord", "username_taken_workaround": "Det valgte brugernavn er allerede taget, så vi har ændret det en smule. Du hedder nu %1", + "password_same_as_username": "Your password is the same as your username, please select another password.", "upload_picture": "Upload billede", "upload_a_picture": "Upload et billede", "remove_uploaded_picture": "Fjern uploaded billede", diff --git a/public/language/de/topic.json b/public/language/de/topic.json index 5334700f39..af9fb367ae 100644 --- a/public/language/de/topic.json +++ b/public/language/de/topic.json @@ -25,7 +25,7 @@ "tools": "Werkzeuge", "flag": "Markieren", "locked": "Gesperrt", - "bookmark_instructions": "Klicke hier, um zur letzten Position zurückzukehren oder schließe zum Abbrechen.", + "bookmark_instructions": "Klicke hier um zum letzten ungelesenen Beitrag in diesem Thema zu springen.", "flag_title": "Diesen Beitrag zur Moderation markieren", "flag_confirm": "Sind Sie sicher, dass Sie diesen Post markieren möchten?", "flag_success": "Dieser Beitrag wurde erfolgreich für die Moderation markiert.", diff --git a/public/language/de/user.json b/public/language/de/user.json index e567a4a295..78755bcb8c 100644 --- a/public/language/de/user.json +++ b/public/language/de/user.json @@ -51,6 +51,7 @@ "confirm_password": "Passwort wiederholen", "password": "Passwort", "username_taken_workaround": "Der gewünschte Benutzername ist bereits vergeben, deshalb haben wir ihn ein wenig verändert. Du bist jetzt unter dem Namen %1 bekannt.", + "password_same_as_username": "Dein Passwort entspricht deinem Benutzernamen, bitte wähle ein anderes Passwort.", "upload_picture": "Bild hochladen", "upload_a_picture": "Ein Bild hochladen", "remove_uploaded_picture": "Hochgeladenes Bild entfernen", diff --git a/public/language/el/topic.json b/public/language/el/topic.json index 2a905bf786..2c544371f6 100644 --- a/public/language/el/topic.json +++ b/public/language/el/topic.json @@ -25,7 +25,7 @@ "tools": "Εργαλεία", "flag": "Σημαία", "locked": "Κλειδωμένο", - "bookmark_instructions": "Κάνε κλικ εδώ για να επιστρέψεις στην τελευταία σου θέση ή κλείστο για να το πετάξεις.", + "bookmark_instructions": "Click here to return to the last unread post in this thread.", "flag_title": "Επισήμανση αυτής της δημοσίευσης για συντονισμό", "flag_confirm": "Είσαι σίγουρος/η πως θες να επισημάνεις αυτή την δημοσίευση;", "flag_success": "Αυτή η δημοσίευση έχει επισημανθεί για συντονισμό.", diff --git a/public/language/el/user.json b/public/language/el/user.json index b34cf9c214..609fb3a719 100644 --- a/public/language/el/user.json +++ b/public/language/el/user.json @@ -51,6 +51,7 @@ "confirm_password": "Επιβεβαίωση Κωδικού", "password": "Κωδικός", "username_taken_workaround": "Το όνομα χρήστη που ζήτησες χρησιμοποιείται ήδη, οπότε το τροποποιήσαμε λίγο. Πλέον είσαι γνωστός/ή ώς %1", + "password_same_as_username": "Your password is the same as your username, please select another password.", "upload_picture": "Ανέβασμα φωτογραφίας", "upload_a_picture": "Ανέβασε μια φωτογραφία", "remove_uploaded_picture": "Remove Uploaded Picture", diff --git a/public/language/en@pirate/topic.json b/public/language/en@pirate/topic.json index 641e8f0346..33747738d4 100644 --- a/public/language/en@pirate/topic.json +++ b/public/language/en@pirate/topic.json @@ -25,7 +25,7 @@ "tools": "Tools", "flag": "Flag", "locked": "Locked", - "bookmark_instructions": "Click here to return to your last position or close to discard.", + "bookmark_instructions": "Click here to return to the last unread post in this thread.", "flag_title": "Flag this post for moderation", "flag_confirm": "Are you sure you want to flag this post?", "flag_success": "This post has been flagged for moderation.", diff --git a/public/language/en@pirate/user.json b/public/language/en@pirate/user.json index 2a144592cc..496a26a07d 100644 --- a/public/language/en@pirate/user.json +++ b/public/language/en@pirate/user.json @@ -51,6 +51,7 @@ "confirm_password": "Confirm Password", "password": "Password", "username_taken_workaround": "The username you requested was already taken, so we have altered it slightly. You are now known as %1", + "password_same_as_username": "Your password is the same as your username, please select another password.", "upload_picture": "Upload picture", "upload_a_picture": "Upload a picture", "remove_uploaded_picture": "Remove Uploaded Picture", diff --git a/public/language/en_GB/topic.json b/public/language/en_GB/topic.json index a03ec807de..ab2031be4d 100644 --- a/public/language/en_GB/topic.json +++ b/public/language/en_GB/topic.json @@ -115,5 +115,7 @@ "oldest_to_newest": "Oldest to Newest", "newest_to_oldest": "Newest to Oldest", "most_votes": "Most votes", - "most_posts": "Most posts" + "most_posts": "Most posts", + + "stale_topic_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?" } diff --git a/public/language/en_US/topic.json b/public/language/en_US/topic.json index 447376322b..2daea92705 100644 --- a/public/language/en_US/topic.json +++ b/public/language/en_US/topic.json @@ -25,7 +25,7 @@ "tools": "Tools", "flag": "Flag", "locked": "Locked", - "bookmark_instructions" : "Click here to return to the last unread post in this thread.", + "bookmark_instructions": "Click here to return to the last unread post in this thread.", "flag_title": "Flag this post for moderation", "flag_confirm": "Are you sure you want to flag this post?", "flag_success": "This post has been flagged for moderation.", diff --git a/public/language/en_US/user.json b/public/language/en_US/user.json index ddd8cccd9d..d6db816604 100644 --- a/public/language/en_US/user.json +++ b/public/language/en_US/user.json @@ -51,6 +51,7 @@ "confirm_password": "Confirm Password", "password": "Password", "username_taken_workaround": "The username you requested was already taken, so we have altered it slightly. You are now known as %1", + "password_same_as_username": "Your password is the same as your username, please select another password.", "upload_picture": "Upload picture", "upload_a_picture": "Upload a picture", "remove_uploaded_picture": "Remove Uploaded Picture", diff --git a/public/language/es/topic.json b/public/language/es/topic.json index c90bccb9d0..eaa9c92f29 100644 --- a/public/language/es/topic.json +++ b/public/language/es/topic.json @@ -25,7 +25,7 @@ "tools": "Herramientas", "flag": "Reportar", "locked": "Cerrado", - "bookmark_instructions": "Haz click aquí para volver al último post que viste o ciérralo para ocultarlo.", + "bookmark_instructions": "Clic aquí para regresar al último aporte sin leer en este hilo.", "flag_title": "Reportar este mensaje", "flag_confirm": "¿Estás seguro de que quieres reportar este mensaje?", "flag_success": "Este mensaje ha sido reportado para moderación.", diff --git a/public/language/es/user.json b/public/language/es/user.json index a608ae3802..d9a42a74a7 100644 --- a/public/language/es/user.json +++ b/public/language/es/user.json @@ -51,6 +51,7 @@ "confirm_password": "Confirmar contraseña", "password": "Contraseña", "username_taken_workaround": "El nombre de usuario que has solicitada ya está siendo usado, por tanto lo hemos alterado ligeramente. Ahora eres conocido como %1.", + "password_same_as_username": "Tu Constraseña es igual al nombre de Usuario, por favor seleccione otra Constraseña.", "upload_picture": "Subir foto", "upload_a_picture": "Subir una foto", "remove_uploaded_picture": "Remover Imagen subida", diff --git a/public/language/et/error.json b/public/language/et/error.json index ff4f1bef36..d69e8c0e26 100644 --- a/public/language/et/error.json +++ b/public/language/et/error.json @@ -21,7 +21,7 @@ "email-not-confirmed-chat": "Sõnumeid ei ole võimalik enne saata kui sinu email on kinnitatud. Kinnitamiseks vajuta siia.", "no-email-to-confirm": "See foorum nõuab emaili kinnitust, palun vajuta siia, et sisestada email", "email-confirm-failed": "Meil ei õnnestunud sinu emaili kinnitada, proovi hiljem uuesti.", - "confirm-email-already-sent": "Kinnituskiri on juba saadetud, palun oota %1 minut(it) uue saatmiseks.", + "confirm-email-already-sent": "Kinnituskiri on juba saadetud, palun oota %1 minut(it) uue kirja saatmiseks.", "username-too-short": "Kasutajanimi on liiga lühike", "username-too-long": "Kasutajanimi on liiga pikk", "user-banned": "Kasutaja bannitud", diff --git a/public/language/et/global.json b/public/language/et/global.json index b8bd487b23..4765350613 100644 --- a/public/language/et/global.json +++ b/public/language/et/global.json @@ -52,7 +52,7 @@ "views": "Vaatamist", "reputation": "Reputatsioon", "read_more": "loe veel", - "more": "Rohkem", + "more": "Veel", "posted_ago_by_guest": "postitas %1 külaline", "posted_ago_by": "postitas %1 kasutaja %2", "posted_ago": "postitatud %1", diff --git a/public/language/et/groups.json b/public/language/et/groups.json index 878b1c3dc6..afb0ab78be 100644 --- a/public/language/et/groups.json +++ b/public/language/et/groups.json @@ -6,7 +6,7 @@ "no_groups_found": "Ei ole ühtegi gruppi", "pending.accept": "Aktsepteeri", "pending.reject": "Lükka tagasi", - "pending.accept_all": "Aktsepteeri kõik", + "pending.accept_all": "Nõustu kõigega", "pending.reject_all": "Lükka kõik tagasi", "pending.none": "Hetkel ei ole ootel kasutajaid", "invited.none": "Hetkel ei ole kutsutud kasutajaid", @@ -44,7 +44,7 @@ "details.delete_group": "Kustuta grupp", "event.updated": "Grupi lisainformatsiooni on uuendatud", "event.deleted": "Grupp \"%1\" on kustutatud", - "membership.accept-invitation": "Aktsepteeri kutse", + "membership.accept-invitation": "Võta kutse vastu", "membership.invitation-pending": "Kutse ootel", "membership.join-group": "Liitu grupiga", "membership.leave-group": "Lahku grupist", diff --git a/public/language/et/notifications.json b/public/language/et/notifications.json index e8f0d2780c..b3616b9ebc 100644 --- a/public/language/et/notifications.json +++ b/public/language/et/notifications.json @@ -20,7 +20,7 @@ "user_posted_topic": "%1 on postitanud uue teema: %2", "user_mentioned_you_in": "%1 mainis sind postituses %2", "user_started_following_you": "%1 hakkas sind jälgima.", - "new_register": "%1 saatis registratsioonitaotluse.", + "new_register": "%1 saatis registreerimistaotluse.", "email-confirmed": "Emaili aadress kinnitatud", "email-confirmed-message": "Täname, et kinnitasite oma emaili aadressi. Teie kasutaja on nüüd täielikult aktiveeritud.", "email-confirm-error-message": "Emaili aadressi kinnitamisel tekkis viga. Võibolla kinnituskood oli vale või aegunud.", diff --git a/public/language/et/topic.json b/public/language/et/topic.json index c96232b554..afa5e28790 100644 --- a/public/language/et/topic.json +++ b/public/language/et/topic.json @@ -25,7 +25,7 @@ "tools": "Tööriistad", "flag": "Märgista", "locked": "Lukustatud", - "bookmark_instructions": "Vajuta siia, et pöörduda tagasi oma viimasesse asukohta või sulge.", + "bookmark_instructions": "Kliki siia, et naasta viimasele lugemata postitusele selles teemas.", "flag_title": "Märgista see postitus modereerimiseks", "flag_confirm": "Oled kindel, et soovid märgistada antud postituse?", "flag_success": "See postitus on nüüd märgistatud modereerimiseks.", diff --git a/public/language/et/user.json b/public/language/et/user.json index 072f6f8126..86f96c2045 100644 --- a/public/language/et/user.json +++ b/public/language/et/user.json @@ -51,6 +51,7 @@ "confirm_password": "Kinnita parool", "password": "Parool", "username_taken_workaround": "Kasutajanimi mida soovisid, ei olnud saadaval, seeg muutsime seda natukene. Sinu uus kasutajanimi on nüüd: %1", + "password_same_as_username": "Su parool kattub su kasutajanimega, palun vali mõni muu parool.", "upload_picture": "Laadi pilt", "upload_a_picture": "Lae pilt üles", "remove_uploaded_picture": "Eemalda üleslaetud pilt", diff --git a/public/language/fa_IR/pages.json b/public/language/fa_IR/pages.json index 2db5380d0c..e3a5ec2e4f 100644 --- a/public/language/fa_IR/pages.json +++ b/public/language/fa_IR/pages.json @@ -8,7 +8,7 @@ "recent": "جستارهای تازه", "users/online": "کاربران آنلاین", "users/latest": "آخرین کاربران", - "users/sort-posts": "Users with the most posts", + "users/sort-posts": "کاربران با بیش‌ترین دیدگاه", "users/sort-reputation": "Users with the most reputation", "users/map": "User Map", "users/search": "جستجوی کاربر", @@ -26,10 +26,10 @@ "account/edit": "ویرایش \"%1\"", "account/following": "کاربرانی که %1 دنبال می‌کند", "account/followers": "کاربرانی که %1 را دنبال می‌کنند", - "account/posts": "Posts made by %1", - "account/topics": "Topics created by %1", + "account/posts": "دیدگاه‌های %1", + "account/topics": "جستارهای %1", "account/groups": "گروه‌های %1", - "account/favourites": "%1's Favourite Posts", + "account/favourites": "دیدگاه‌های مورد پسند %1", "account/settings": "تنظیمات کاربر", "account/watched": "Topics watched by %1", "maintenance.text": "1% در حال حاضر تحت تعمیر و نگهدارییست. لطفا زمان دیگری مراجعه کنید.", diff --git a/public/language/fa_IR/topic.json b/public/language/fa_IR/topic.json index 1a0f2d7505..f5d2c776b5 100644 --- a/public/language/fa_IR/topic.json +++ b/public/language/fa_IR/topic.json @@ -25,7 +25,7 @@ "tools": "ابزارها", "flag": "پرچم", "locked": "قفل شده است", - "bookmark_instructions": "برای بازگشت به مکان پیشین اینجا را بفشارید یا برای رد دادن ببندید.", + "bookmark_instructions": "Click here to return to the last unread post in this thread.", "flag_title": "پرچم‌گذاری این جستار برای بررسی ناظران", "flag_confirm": "آیا مطمئنید که می‌خواهید روی این دیدگاه پرچم بگذارید.", "flag_success": "این جستار برای بررسی ناظران پرچم گذاشته شد.", diff --git a/public/language/fa_IR/user.json b/public/language/fa_IR/user.json index 15d31b6908..2227ca2d74 100644 --- a/public/language/fa_IR/user.json +++ b/public/language/fa_IR/user.json @@ -51,6 +51,7 @@ "confirm_password": "تکرار گذرواژه", "password": "گذرواژه", "username_taken_workaround": "نام کاربری درخواستی شما در حال حاضر گرفته شده است، بنابراین ما آن را کمی تغییر داده‌ایم. شما هم‌اکنون با نام %1%1", + "password_same_as_username": "Your password is the same as your username, please select another password.", "upload_picture": "Lataa kuva", "upload_a_picture": "Lataa kuva", "remove_uploaded_picture": "Remove Uploaded Picture", diff --git a/public/language/fr/topic.json b/public/language/fr/topic.json index 6ef7e5640b..acbb499db9 100644 --- a/public/language/fr/topic.json +++ b/public/language/fr/topic.json @@ -25,7 +25,7 @@ "tools": "Outils", "flag": "Signaler", "locked": "Verrouillé", - "bookmark_instructions": "Cliquez ici pour retourner à votre dernière position ou fermez pour ignorer.", + "bookmark_instructions": "Cliquez ici pour retourner au dernier message non lu dans ce fil de discussion.", "flag_title": "Signaler ce message à la modération", "flag_confirm": "Êtes-vous sûr de bien vouloir signaler ce message ?", "flag_success": "Ce message a bien été signalé aux modérateurs.", diff --git a/public/language/fr/user.json b/public/language/fr/user.json index 2558ac23a0..3e1bbc40f9 100644 --- a/public/language/fr/user.json +++ b/public/language/fr/user.json @@ -51,6 +51,7 @@ "confirm_password": "Confirmer le mot de passe", "password": "Mot de passe", "username_taken_workaround": "Le nom d'utilisateur désiré est déjà utilisé, nous l'avons donc légèrement modifié. Vous êtes maintenant connu comme %1", + "password_same_as_username": "Votre mot de passe est identique à votre nom d'utilisateur. Veuillez en choisir un autre.", "upload_picture": "Envoyer l'image", "upload_a_picture": "Envoyer une image", "remove_uploaded_picture": "Supprimer l'image envoyée", diff --git a/public/language/he/category.json b/public/language/he/category.json index c50ca1dc42..ed3cef9f98 100644 --- a/public/language/he/category.json +++ b/public/language/he/category.json @@ -1,16 +1,16 @@ { - "category": "Category", - "subcategories": "Subcategories", + "category": "קטגוריה", + "subcategories": "קטגוריות משנה", "new_topic_button": "נושא חדש", - "guest-login-post": "Log in to post", + "guest-login-post": "התחבר כדי לפרסם", "no_topics": "קטגוריה זו ריקה מנושאים.
למה שלא תנסה להוסיף נושא חדש?", "browsing": "צופים בנושא זה כעת", "no_replies": "אין תגובות", - "no_new_posts": "No new posts.", + "no_new_posts": "אין פוסטים חדשים.", "share_this_category": "שתף קטגוריה זו", - "watch": "Watch", + "watch": "עקוב", "ignore": "התעלם", - "watch.message": "You are now watching updates from this category", - "ignore.message": "You are now ignoring updates from this category", - "watched-categories": "Watched categories" + "watch.message": "אתה עכשיו עוקב אחרי עדכונים מקטגוריה זו", + "ignore.message": "אתה עכשיו מתעלם מעדכונים מקטגוריה זו", + "watched-categories": "קטגוריות נעקבות" } \ No newline at end of file diff --git a/public/language/he/email.json b/public/language/he/email.json index 25d4bc782f..3c2fe41599 100644 --- a/public/language/he/email.json +++ b/public/language/he/email.json @@ -1,15 +1,15 @@ { "password-reset-requested": "בקשת איפוס הסיסמה נשלחה - %1!", "welcome-to": "ברוכים הבאים ל%1", - "invite": "Invitation from %1", + "invite": "הזמנה מ%1", "greeting_no_name": "שלום", "greeting_with_name": "שלום %1", "welcome.text1": "תודה שנרשמת ל%1!", "welcome.text2": "על מנת להפעיל את החשבון שלך, אנו צריכים לוודא שאתה בעל חשבון המייל שנרשמת איתו.", - "welcome.text3": "An administrator has accepted your registration application. You can login with your username/password now.", + "welcome.text3": "מנהל אישר את ההרשמה שלך.\nאתה יכול להתחבר עם השם משתמש והסיסמא שלך מעכשיו.", "welcome.cta": "לחץ כאן על מנת לאשר את כתובת המייל שלך.", - "invitation.text1": "%1 has invited you to join %2", - "invitation.ctr": "Click here to create your account.", + "invitation.text1": "%1 הזמין אותך להצתרף ל%2", + "invitation.ctr": "לחץ כאן כדי ליצור את החשבון שלך.", "reset.text1": "קיבלנו בקשה לאפס את הסיסמה לחשבון שלך, כנראה מפני ששכחת אותה. אם לא ביקשת לאפס את הסיסמה, אנא התעלם ממייל זה.", "reset.text2": "על מנת להמשיך עם תהליך איפוס הסיסמה, אנא לחץ על הלינק הבא:", "reset.cta": "לחץ כאן לאפס את הסיסמה שלך.", diff --git a/public/language/he/error.json b/public/language/he/error.json index 2cdea3d222..9b849b07f3 100644 --- a/public/language/he/error.json +++ b/public/language/he/error.json @@ -2,7 +2,7 @@ "invalid-data": "נתונים שגויים", "not-logged-in": "נראה שאינך מחובר למערכת.", "account-locked": "חשבונך נחסם באופן זמני", - "search-requires-login": "Searching requires an account - please login or register.", + "search-requires-login": "פעולת החיפוש דורשת חשבון - בבקשה התחבר או הרשם.", "invalid-cid": "זהוי קטגוריה שגוי", "invalid-tid": "זהוי נושא שגוי", "invalid-pid": "זהוי פוסט שגוי", @@ -18,9 +18,9 @@ "username-taken": "שם משתמש תפוס", "email-taken": "כתובת אימייל תפוסה", "email-not-confirmed": "כתובת המייל שלך עוד לא אושרה, לחץ כאן על-מנת לאשר את המייל שלך.", - "email-not-confirmed-chat": "You are unable to chat until your email is confirmed, please click here to confirm your email.", - "no-email-to-confirm": "This forum requires email confirmation, please click here to enter an email", - "email-confirm-failed": "We could not confirm your email, please try again later.", + "email-not-confirmed-chat": "אין באפשרותך לשוחח עד שהדוא\"ל שלך יאושר, אנא לחץ כאן כדי לאשר את הדוא\"ל שלך.", + "no-email-to-confirm": "פורום זה דורש אישור בדוא\"ל, אנא לחץ כאן כדי להכניס לדואר אלקטרוני", + "email-confirm-failed": "לא הצלחנו לאשר את הדוא\"ל שלך, תנסה שוב אחר כך", "confirm-email-already-sent": "Confirmation email already sent, please wait %1 minute(s) to send another one.", "username-too-short": "שם משתמש קצר מדי", "username-too-long": "שם משתמש ארוך מדי", diff --git a/public/language/he/global.json b/public/language/he/global.json index 7f7443e2d7..e21a299520 100644 --- a/public/language/he/global.json +++ b/public/language/he/global.json @@ -22,7 +22,7 @@ "pagination.out_of": "%1 מתוך %2", "pagination.enter_index": "יש להכניס אינדקס", "header.admin": "ניהול", - "header.categories": "Categories", + "header.categories": "קטגוריות", "header.recent": "פוסטים אחרונים", "header.unread": "לא נקרא", "header.tags": "תגיות", @@ -33,7 +33,7 @@ "header.notifications": "התראות", "header.search": "חיפוש", "header.profile": "פרופיל", - "header.navigation": "Navigation", + "header.navigation": "ניווט", "notifications.loading": "טוען התראות", "chats.loading": "טוען צ'אטים", "motd.welcome": "ברוכים הבאים ל NodeBB, פלטפורמת הדיון של העתיד", @@ -52,7 +52,7 @@ "views": "צפיות", "reputation": "מוניטין", "read_more": "קרא עוד", - "more": "More", + "more": "עוד", "posted_ago_by_guest": "הפוסט הועלה ב %1 על ידי אורח", "posted_ago_by": "הפוסט עלה ב %1 על ידי %2", "posted_ago": "הפוסט הועלה ב %1", @@ -68,7 +68,7 @@ "recentposts": "פוסטים אחרונים", "recentips": "כתובות IP שנכנסו למערכת לאחרונה", "away": "לא נמצא", - "dnd": "Do not disturb", + "dnd": "נא לא להפריע", "invisible": "מוסתר", "offline": "מנותק", "email": "אימייל", @@ -81,5 +81,5 @@ "follow": "עקוב", "unfollow": "הפסק לעקוב", "delete_all": "מחק הכל", - "map": "Map" + "map": "מפה" } \ No newline at end of file diff --git a/public/language/he/groups.json b/public/language/he/groups.json index ab8e0f3c60..7b8d173d8d 100644 --- a/public/language/he/groups.json +++ b/public/language/he/groups.json @@ -4,10 +4,10 @@ "owner": "מנהל הקבוצה", "new_group": "צור קבוצה חדשה", "no_groups_found": "אין קבוצות לצפייה", - "pending.accept": "Accept", - "pending.reject": "Reject", - "pending.accept_all": "Accept All", - "pending.reject_all": "Reject All", + "pending.accept": "אשר", + "pending.reject": "דחה", + "pending.accept_all": "אשר הכל", + "pending.reject_all": "דחה הכל", "pending.none": "There are no pending members at this time", "invited.none": "There are no invited members at this time", "invited.uninvite": "Rescind Invitation", @@ -48,6 +48,6 @@ "membership.invitation-pending": "Invitation Pending", "membership.join-group": "Join Group", "membership.leave-group": "Leave Group", - "membership.reject": "Reject", + "membership.reject": "דחה", "new-group.group_name": "Group Name:" } \ No newline at end of file diff --git a/public/language/he/pages.json b/public/language/he/pages.json index f0fe179998..9f94f6f632 100644 --- a/public/language/he/pages.json +++ b/public/language/he/pages.json @@ -18,7 +18,7 @@ "register": "Register an account", "login": "Login to your account", "reset": "Reset your account password", - "categories": "Categories", + "categories": "קטגוריות", "groups": "Groups", "group": "%1 group", "chats": "Chats", diff --git a/public/language/he/topic.json b/public/language/he/topic.json index 62724d03a3..185d583bcd 100644 --- a/public/language/he/topic.json +++ b/public/language/he/topic.json @@ -5,7 +5,7 @@ "no_topics_found": "לא נמצאו נושאים!", "no_posts_found": "לא נמצאו פוסטים!", "post_is_deleted": "פוסט זה נמחק!", - "topic_is_deleted": "This topic is deleted!", + "topic_is_deleted": "נושא זה נמחק!", "profile": "פרופיל", "posted_by": "הפוסט הועלה על ידי %1", "posted_by_guest": "פורסם על-ידי אורח", @@ -13,7 +13,7 @@ "notify_me": "קבל התראה כאשר יש תגובות חדשות בנושא זה", "quote": "ציטוט", "reply": "תגובה", - "guest-login-reply": "Log in to reply", + "guest-login-reply": "התחבר כדי לפרסם תגובה", "edit": "עריכה", "delete": "מחק", "purge": "מחק הכל", @@ -21,11 +21,11 @@ "move": "הזז", "fork": "פורק", "link": "לינק", - "share": "Share", + "share": "שתף", "tools": "כלים", "flag": "דווח", "locked": "נעול", - "bookmark_instructions": "לחץ כאן על-מנת לחזור למיקום האחרון או סגור למחיקה.", + "bookmark_instructions": "לחץ כאן כדי לחזור לפוסט האחרון שלא קראת באשכול זה", "flag_title": "דווח על פוסט זה למנהל", "flag_confirm": "אתה בטוח שאתה רוצה לדווח על הפוסט הזה?", "flag_success": "התקבל דיווח על פוסט זה.", diff --git a/public/language/he/user.json b/public/language/he/user.json index 6b8a65e07c..0cfc5e46e0 100644 --- a/public/language/he/user.json +++ b/public/language/he/user.json @@ -33,7 +33,7 @@ "chat": "צ'אט", "follow": "עקוב", "unfollow": "הפסק לעקוב", - "more": "More", + "more": "עוד", "profile_update_success": "הפרופיל עודכן בהצלחה!", "change_picture": "שנה תמונה", "edit": "ערוך", @@ -51,6 +51,7 @@ "confirm_password": "אמת סיסמה", "password": "סיסמה", "username_taken_workaround": "שם המשתמש שבחרת כבר תפוס, אז שינינו אותו מעט. שם המשתמש שלך כעת הוא %1", + "password_same_as_username": "Your password is the same as your username, please select another password.", "upload_picture": "העלה תמונה", "upload_a_picture": "העלה תמונה", "remove_uploaded_picture": "Remove Uploaded Picture", diff --git a/public/language/he/users.json b/public/language/he/users.json index e21b577d55..9171bfadd6 100644 --- a/public/language/he/users.json +++ b/public/language/he/users.json @@ -15,7 +15,7 @@ "recent_topics": "Recent Topics", "popular_topics": "Popular Topics", "unread_topics": "Unread Topics", - "categories": "Categories", + "categories": "קטגוריות", "tags": "Tags", - "map": "Map" + "map": "מפה" } \ No newline at end of file diff --git a/public/language/hu/topic.json b/public/language/hu/topic.json index bb467f2c5c..7a45dff361 100644 --- a/public/language/hu/topic.json +++ b/public/language/hu/topic.json @@ -25,7 +25,7 @@ "tools": "Eszközök", "flag": "Jelentés", "locked": "Locked", - "bookmark_instructions": "Kattintson ide, hogy visszatérjen az utolsó pozícióra vagy close to discard.", + "bookmark_instructions": "Click here to return to the last unread post in this thread.", "flag_title": "A hozzászólás jelentése a moderátoroknál", "flag_confirm": "Are you sure you want to flag this post?", "flag_success": "This post has been flagged for moderation.", diff --git a/public/language/hu/user.json b/public/language/hu/user.json index 80cd4accd2..66c525ad94 100644 --- a/public/language/hu/user.json +++ b/public/language/hu/user.json @@ -51,6 +51,7 @@ "confirm_password": "Jelszó megerősítése", "password": "Jelszó", "username_taken_workaround": "A kívánt felhasználónév már foglalt, így változtatnunk kellett rajta egy kicsit. Mostantól %1 nicknév alatt vagy ismert.", + "password_same_as_username": "Your password is the same as your username, please select another password.", "upload_picture": "Kép feltöltése", "upload_a_picture": "Egy kép feltöltése", "remove_uploaded_picture": "Remove Uploaded Picture", diff --git a/public/language/id/topic.json b/public/language/id/topic.json index 7f6ae0f2de..cf515c2cad 100644 --- a/public/language/id/topic.json +++ b/public/language/id/topic.json @@ -25,7 +25,7 @@ "tools": "Perangkat", "flag": "Tandai", "locked": "Terkunci", - "bookmark_instructions": "Klik di sini untuk kembali ke posisi terakhirmu atau tutup untuk membuang.", + "bookmark_instructions": "Click here to return to the last unread post in this thread.", "flag_title": "Tandai posting ini untuk moderasi", "flag_confirm": "Kamu yakin ingin menandai posting ini?", "flag_success": "Posting ini telah ditandai untuk moderasi", diff --git a/public/language/id/user.json b/public/language/id/user.json index 3642d32d26..e03e847088 100644 --- a/public/language/id/user.json +++ b/public/language/id/user.json @@ -51,6 +51,7 @@ "confirm_password": "Konfirmasi Kata Sandi", "password": "Kata Sandi", "username_taken_workaround": "Nama pengguna yang kamu inginkan telah diambil, jadi kami merubahnya sedikit. Kamu saat ini dikenal sebagai %1", + "password_same_as_username": "Your password is the same as your username, please select another password.", "upload_picture": "Unggah gambar/foto", "upload_a_picture": "Unggah sebuah gambar/foto", "remove_uploaded_picture": "Remove Uploaded Picture", diff --git a/public/language/it/category.json b/public/language/it/category.json index a5cf3d5118..2b41032053 100644 --- a/public/language/it/category.json +++ b/public/language/it/category.json @@ -12,5 +12,5 @@ "ignore": "Ignora", "watch.message": "Non stai seguendo gli aggiornamenti di questa categoria", "ignore.message": "Da ora saranno ignorati gli aggiornamenti di questa categoria", - "watched-categories": "Watched categories" + "watched-categories": "Categorie osservate" } \ No newline at end of file diff --git a/public/language/it/error.json b/public/language/it/error.json index e2710a7863..1acd179ac4 100644 --- a/public/language/it/error.json +++ b/public/language/it/error.json @@ -77,8 +77,8 @@ "cant-chat-with-yourself": "Non puoi chattare con te stesso!", "chat-restricted": "Questo utente ha ristretto i suoi messaggi in chat alle persone che segue. Per poter chattare con te ti deve prima seguire.", "too-many-messages": "Hai inviato troppi messaggi, aspetta un attimo.", - "invalid-chat-message": "Invalid chat message", - "chat-message-too-long": "Chat message is too long", + "invalid-chat-message": "Messaggio chat non valido", + "chat-message-too-long": "Il messaggio chat è troppo lungo", "reputation-system-disabled": "Il sistema di reputazione è disabilitato.", "downvoting-disabled": "Il Downvoting è disabilitato", "not-enough-reputation-to-downvote": "Non hai i privilegi per votare negativamente questo post", diff --git a/public/language/it/global.json b/public/language/it/global.json index 8eeae6c13c..3e3976510f 100644 --- a/public/language/it/global.json +++ b/public/language/it/global.json @@ -81,5 +81,5 @@ "follow": "Segui", "unfollow": "Non seguire", "delete_all": "Elimina Tutto", - "map": "Map" + "map": "Mappa" } \ No newline at end of file diff --git a/public/language/it/groups.json b/public/language/it/groups.json index e6da0d3204..cc48e2abfa 100644 --- a/public/language/it/groups.json +++ b/public/language/it/groups.json @@ -12,9 +12,9 @@ "invited.none": "Non ci sono inviti in sospeso", "invited.uninvite": "Revoca invito", "invited.search": "Ricerca un utente da invitare in questo gruppo", - "invited.notification_title": "You have been invited to join %1", - "request.notification_title": "Group Membership Request from %1", - "request.notification_text": "%1 has requested to become a member of %2", + "invited.notification_title": "Sei stato invitato a entrare in %1", + "request.notification_title": "Richiesta di iscrizione al gruppo da %1", + "request.notification_text": "%1 ha richiesto di essere iscritto a %2", "cover-instructions": "Drag and Drop una fotografia, spostarla ad una posizione, e premere Salva", "cover-change": "Cambia", "cover-save": "Salva", diff --git a/public/language/it/topic.json b/public/language/it/topic.json index 26b6353ae1..f2e91946b1 100644 --- a/public/language/it/topic.json +++ b/public/language/it/topic.json @@ -25,7 +25,7 @@ "tools": "Strumenti", "flag": "Segnala", "locked": "Bloccato", - "bookmark_instructions": "Clicca qui per tornare all'ultima posizione visualizzata oppure chiudi per ignorare.", + "bookmark_instructions": "Click here to return to the last unread post in this thread.", "flag_title": "Segnala questo post per la moderazione", "flag_confirm": "Sei sicuro di voler contrassegnare questo post?", "flag_success": "Questo post è stato contrassegnato per la moderazione.", diff --git a/public/language/it/user.json b/public/language/it/user.json index 6020ef23b8..cc904c383a 100644 --- a/public/language/it/user.json +++ b/public/language/it/user.json @@ -12,7 +12,7 @@ "delete_account": "Elimina Account", "delete_account_confirm": "Sei sicuro di voler cancellare il tuo account?
Questa azione è irreversibile e non potrai recuperare nessun dato

Inserisci il tuo username per confermare che vuoi eliminare questo account.", "delete_this_account_confirm": "Sei sicuro di voler cancellare questo account?
Questa azione è irreversibile e non potrai recuperare nessun dato

", - "account-deleted": "Account deleted", + "account-deleted": "Account eliminato", "fullname": "Nome e Cognome", "website": "Sito Internet", "location": "Località", @@ -51,9 +51,10 @@ "confirm_password": "Conferma la Password", "password": "Password", "username_taken_workaround": "Il nome utente che hai richiesto era già stato utilizzato, quindi lo abbiamo modificato leggermente. Ora il tuo è %1", + "password_same_as_username": "Your password is the same as your username, please select another password.", "upload_picture": "Carica foto", "upload_a_picture": "Carica una foto", - "remove_uploaded_picture": "Remove Uploaded Picture", + "remove_uploaded_picture": "Elimina foto caricata", "image_spec": "Puoi caricare solo file PNG, JPG o GIF", "settings": "Impostazioni", "show_email": "Mostra la mia Email", @@ -88,7 +89,7 @@ "grouptitle": "Seleziona il titolo del gruppo che vorresti vedere", "no-group-title": "Nessun titolo al gruppo", "select-skin": "Seleziona uno Skin", - "sso.title": "Single Sign-on Services", - "sso.associated": "Associated with", - "sso.not-associated": "Click here to associate with" + "sso.title": "Servizi Single-Sign-On", + "sso.associated": "Associa con", + "sso.not-associated": "Clicca qui per associare con" } \ No newline at end of file diff --git a/public/language/ja/topic.json b/public/language/ja/topic.json index cd7dace96d..94a542485f 100644 --- a/public/language/ja/topic.json +++ b/public/language/ja/topic.json @@ -25,7 +25,7 @@ "tools": "ツール", "flag": "フラグ", "locked": "Locked", - "bookmark_instructions": "こちらをクリックして前の場所に戻ります。", + "bookmark_instructions": "Click here to return to the last unread post in this thread.", "flag_title": "リポートする", "flag_confirm": "本当にこのポストをリポートするか?", "flag_success": "このポストをリポートしました。", diff --git a/public/language/ja/user.json b/public/language/ja/user.json index f8b95896d3..3515f814bc 100644 --- a/public/language/ja/user.json +++ b/public/language/ja/user.json @@ -51,6 +51,7 @@ "confirm_password": "パスワードを再入力", "password": "パスワード", "username_taken_workaround": "このユーザー名はすでに使用されています。いまのユーザー名は %1 です。", + "password_same_as_username": "Your password is the same as your username, please select another password.", "upload_picture": "画像をアップロード", "upload_a_picture": "画像をアップロード", "remove_uploaded_picture": "Remove Uploaded Picture", diff --git a/public/language/ko/topic.json b/public/language/ko/topic.json index 9e113910a1..e90f4fd0de 100644 --- a/public/language/ko/topic.json +++ b/public/language/ko/topic.json @@ -25,7 +25,7 @@ "tools": "도구", "flag": "신고", "locked": "잠김", - "bookmark_instructions": "여기를 누르면 마지막에 읽던 위치로 이동합니다.", + "bookmark_instructions": "Click here to return to the last unread post in this thread.", "flag_title": "이 게시물을 신고", "flag_confirm": "정말로 신고하시겠습니까?", "flag_success": "이 게시물은 신고되었습니다.", diff --git a/public/language/ko/user.json b/public/language/ko/user.json index dc89c5f74f..342b8f47e2 100644 --- a/public/language/ko/user.json +++ b/public/language/ko/user.json @@ -51,6 +51,7 @@ "confirm_password": "패스워드 재입력", "password": "패스워드", "username_taken_workaround": "새 사용자 이름이 이미 존재하여 %1로 저장되었습니다.", + "password_same_as_username": "Your password is the same as your username, please select another password.", "upload_picture": "사진 업로드", "upload_a_picture": "사진 업로드", "remove_uploaded_picture": "Remove Uploaded Picture", diff --git a/public/language/lt/topic.json b/public/language/lt/topic.json index 2a9772ad8b..69a8fa02a6 100644 --- a/public/language/lt/topic.json +++ b/public/language/lt/topic.json @@ -25,7 +25,7 @@ "tools": "Įrankiai", "flag": "Pažymėti", "locked": "Užrakinta", - "bookmark_instructions": "Spauskite čia norėdami sugrįžti į savo paskutinę poziciją arba uždarykite šį pranešimą.", + "bookmark_instructions": "Click here to return to the last unread post in this thread.", "flag_title": "Pažymėti ši pranešimą moderatoriams", "flag_confirm": "Ar jūs tikras, kad norite pažymėti šį įrašą?", "flag_success": "Šis pranešimas buvo pažymėtas moderatorių patikrinimui.", diff --git a/public/language/lt/user.json b/public/language/lt/user.json index 738c573bab..dc15d636fd 100644 --- a/public/language/lt/user.json +++ b/public/language/lt/user.json @@ -51,6 +51,7 @@ "confirm_password": "Patvirtinkite slaptažodį", "password": "Slaptažodis", "username_taken_workaround": "Jūsų norimas vartotojo vardas jau užimtas, todėl mes jį šiek tiek pakeitėme. Dabar jūs esate žinomas kaip %1", + "password_same_as_username": "Your password is the same as your username, please select another password.", "upload_picture": "Įkelti paveikslėlį", "upload_a_picture": "Įkelti paveikslėlį", "remove_uploaded_picture": "Remove Uploaded Picture", diff --git a/public/language/ms/category.json b/public/language/ms/category.json index abcb3d6960..e345d4b65f 100644 --- a/public/language/ms/category.json +++ b/public/language/ms/category.json @@ -12,5 +12,5 @@ "ignore": "Abai", "watch.message": "Anda sedang melihat kemaskini dari kategori ini", "ignore.message": "Anda sedang mengabaikan kemaskini dari kategori ini", - "watched-categories": "Watched categories" + "watched-categories": "Kategori Dilihat" } \ No newline at end of file diff --git a/public/language/ms/error.json b/public/language/ms/error.json index eae120920b..b921af3701 100644 --- a/public/language/ms/error.json +++ b/public/language/ms/error.json @@ -2,7 +2,7 @@ "invalid-data": "Data Tak Sah", "not-logged-in": "Anda tidak log masuk.", "account-locked": "Akaun anda telah dikunci untuk seketika", - "search-requires-login": "Searching requires an account - please login or register.", + "search-requires-login": "Fungsi Carian perlukan akaun - sila log masuk atau daftar.", "invalid-cid": "Kategori ID Tak Sah", "invalid-tid": "Topik ID Tak Sah", "invalid-pid": "Kiriman ID Tak Sah", @@ -62,8 +62,8 @@ "group-name-change-not-allowed": "Pengubahan nama kumpulan tidak dibenarkan", "group-already-member": "Anda telah pun menjadi ahli kumpulan ini", "group-needs-owner": "Kumpulan ini memerlukan sekurang-kurangnya seorang pemilik", - "group-already-invited": "This user has already been invited", - "group-already-requested": "Your membership request has already been submitted", + "group-already-invited": "Pengguna ini telah pun dijemput", + "group-already-requested": "Permintaan anda untuk menjadi telah pun dihantar", "post-already-deleted": "Kiriman ini telah dipadam", "post-already-restored": "Kiriman ini telah dipulihkan", "topic-already-deleted": "Topik ini telah dipadam", @@ -77,8 +77,8 @@ "cant-chat-with-yourself": "Anda tidak boleh sembang dengan diri sendiri!", "chat-restricted": "Pengguna ini menyekat ruangan sembangnya. Dia hendaklah mengikut anda sebelum kalian dapat bersembang", "too-many-messages": "Anda menghantar terlalu banyak pesanan, sila tunggu seketika.", - "invalid-chat-message": "Invalid chat message", - "chat-message-too-long": "Chat message is too long", + "invalid-chat-message": "Mesej borak tidak sah", + "chat-message-too-long": "Mesej borak terlalu panjang", "reputation-system-disabled": "Sistem reputasi dilumpuhkan.", "downvoting-disabled": "Undi turun dilumpuhkan", "not-enough-reputation-to-downvote": "Anda tidak mempunyai reputasi mencukupi untuk mengundi turun kiriman ini", diff --git a/public/language/ms/global.json b/public/language/ms/global.json index 08c8af66ad..b84127405b 100644 --- a/public/language/ms/global.json +++ b/public/language/ms/global.json @@ -33,7 +33,7 @@ "header.notifications": "Pemberitahuan", "header.search": "Cari", "header.profile": "Profil", - "header.navigation": "Navigation", + "header.navigation": "Navigasi", "notifications.loading": "Pemberitahuan sedang dimuatkan", "chats.loading": "Sembang sedang dimuatkan", "motd.welcome": "Selamat datang ke NodeBB, platfom perbincangan masa hadapan", @@ -52,7 +52,7 @@ "views": "Lihat", "reputation": "Reputasi", "read_more": "baca lagi", - "more": "More", + "more": "Lagi", "posted_ago_by_guest": "dikirim %1 oleh pelawat", "posted_ago_by": "dikirim %1 oleh %2", "posted_ago": "dikirim %1", @@ -68,7 +68,7 @@ "recentposts": "Kiriman terkini", "recentips": "IP berdaftar terkini", "away": "Jauh", - "dnd": "Do not disturb", + "dnd": "Jangan ganggu (dnd)", "invisible": "Halimunan", "offline": "Luar talian", "email": "Emel", @@ -81,5 +81,5 @@ "follow": "Ikut", "unfollow": "Nyah-ikut", "delete_all": "Padam Semua", - "map": "Map" + "map": "Peta" } \ No newline at end of file diff --git a/public/language/ms/groups.json b/public/language/ms/groups.json index 7d93f2b906..d57ed218d2 100644 --- a/public/language/ms/groups.json +++ b/public/language/ms/groups.json @@ -12,9 +12,9 @@ "invited.none": "Tiada ahli yang dijemput buat masa ini", "invited.uninvite": "Batalkan Jemputan", "invited.search": "Cari pengguna untuk dijemput ke kumpulan ini", - "invited.notification_title": "You have been invited to join %1", - "request.notification_title": "Group Membership Request from %1", - "request.notification_text": "%1 has requested to become a member of %2", + "invited.notification_title": "Anda telah dijemput untuk menyertai %1", + "request.notification_title": "Jemputan Ahli Kumpulan dari %1", + "request.notification_text": "%1 telah dijemput untuk menjadi ahli %2", "cover-instructions": "Seret dan lepas gambar, lepas ke posisi, dan tekan Simpan", "cover-change": "Ubah", "cover-save": "Simpan", diff --git a/public/language/ms/modules.json b/public/language/ms/modules.json index c6963b6f73..a759eefca5 100644 --- a/public/language/ms/modules.json +++ b/public/language/ms/modules.json @@ -5,7 +5,7 @@ "chat.no_active": "Anda tiada pesanan yang aktif", "chat.user_typing": "%1 menaip", "chat.user_has_messaged_you": "%1 mesej anda.", - "chat.see_all": "See all chats", + "chat.see_all": "Lihat semua", "chat.no-messages": "Sila pilih penerima untuk lihat sejarah sembang", "chat.recent-chats": "Sembang Terbaru", "chat.contacts": "Hubungi", @@ -23,7 +23,7 @@ "composer.discard": "Anda yakin untuk membuang kiriman ini?", "composer.submit_and_lock": "Hantar dan Kunci", "composer.toggle_dropdown": "Togol Kebawah", - "bootbox.ok": "OK", - "bootbox.cancel": "Cancel", - "bootbox.confirm": "Confirm" + "bootbox.ok": "Ok", + "bootbox.cancel": "Batal", + "bootbox.confirm": "Pasti" } \ No newline at end of file diff --git a/public/language/ms/notifications.json b/public/language/ms/notifications.json index 59c17ca8ab..b6a3e921fe 100644 --- a/public/language/ms/notifications.json +++ b/public/language/ms/notifications.json @@ -1,7 +1,7 @@ { "title": "pemberitahuan", "no_notifs": "Anda tiada pemberitahuan baru", - "see_all": "See all notifications", + "see_all": "Lihat semua pemberitahuan", "mark_all_read": "Tandakan semua pemberitahuan sudah dibaca", "back_to_home": "Kembali ke %1", "outgoing_link": "Sambungan luar", @@ -21,7 +21,7 @@ "user_mentioned_you_in": "%1 sebut anda di %2", "user_started_following_you": "%1 mula mengikut anda.", "new_register": "%1 menghantar jemputan pendaftaran.", - "email-confirmed": "EMel Disahkan", + "email-confirmed": "Emel Disahkan", "email-confirmed-message": "Terima kasih kerana mengesahkan emel anda. Akaun anda telah diaktifkan sepenuhnya.", "email-confirm-error-message": "Berlaku masalah semasa mengesahkan emel anda. Mungkin kod tidak sah atau tamat tempoh.", "email-confirm-sent": "Pengesahan emel telah dihantar." diff --git a/public/language/ms/pages.json b/public/language/ms/pages.json index b2b47cb1e2..bf2adb7117 100644 --- a/public/language/ms/pages.json +++ b/public/language/ms/pages.json @@ -1,37 +1,37 @@ { "home": "Laman Utama", "unread": "Topik Belum Dibaca", - "popular-day": "Popular topics today", - "popular-week": "Popular topics this week", - "popular-month": "Popular topics this month", - "popular-alltime": "All time popular topics", + "popular-day": "Topik Popular Hari Ini", + "popular-week": "Topik Popular Minggu Ini", + "popular-month": "Topik Popular Bulan Ini", + "popular-alltime": "Topik Popular Sepanjang Masa", "recent": "Topik Baru", - "users/online": "Online Users", - "users/latest": "Latest Users", - "users/sort-posts": "Users with the most posts", - "users/sort-reputation": "Users with the most reputation", - "users/map": "User Map", - "users/search": "User Search", + "users/online": "Pengguna Atas Talian", + "users/latest": "Pengguna Terkini", + "users/sort-posts": "Pengguna Mengikut Kiriman Terbanyak", + "users/sort-reputation": "Pengguna Mengikut Reputasi Terbanyak", + "users/map": "Peta Pengguna", + "users/search": "Carian Pengguna", "notifications": "Makluman", "tags": "Tag", "tag": "Topik ditag di bawwah \"%1\"", - "register": "Register an account", - "login": "Login to your account", - "reset": "Reset your account password", - "categories": "Categories", - "groups": "Groups", - "group": "%1 group", - "chats": "Chats", - "chat": "Chatting with %1", - "account/edit": "Editing \"%1\"", - "account/following": "People %1 follows", - "account/followers": "People who follow %1", - "account/posts": "Posts made by %1", - "account/topics": "Topics created by %1", - "account/groups": "%1's Groups", - "account/favourites": "%1's Favourite Posts", - "account/settings": "User Settings", - "account/watched": "Topics watched by %1", + "register": "Daftar Akaun", + "login": "Log Masuk Ke Akaun Anda", + "reset": "Set Semula Kata Laluan", + "categories": "Kategori", + "groups": "Kumpulan", + "group": "%1 Kumpulan", + "chats": "Borak", + "chat": "Borak Dengan %1", + "account/edit": "Menyunting \"%1\"", + "account/following": "Mengikut %1 orang", + "account/followers": "Diikuti oleh %1", + "account/posts": "Kiriman oleh %1", + "account/topics": "Topik olej %1", + "account/groups": "Kumpulan %1", + "account/favourites": "Kiriman Kegemaran %1", + "account/settings": "Tetapan Pengguna", + "account/watched": "Topik Diperhati Oleh %1", "maintenance.text": "%1 sedang berada dalam mod pembaikpulihan. Sila cuba lagi nanti.", "maintenance.messageIntro": "Tambahan, admin meninggalkan mesej ini :" } \ No newline at end of file diff --git a/public/language/ms/topic.json b/public/language/ms/topic.json index 258f958a20..ead484a75e 100644 --- a/public/language/ms/topic.json +++ b/public/language/ms/topic.json @@ -25,7 +25,7 @@ "tools": "Perkakas", "flag": "Tanda", "locked": "Kunci", - "bookmark_instructions": "Klik disini untuk kembali ke posisi sebelumnya atau tutup untuk mengabaikan", + "bookmark_instructions": "Click here to return to the last unread post in this thread.", "flag_title": "Tanda kiriman ini untuk diselia", "flag_confirm": "Adakah anda pasti untuk menanda kiriman ini", "flag_success": "Kiriman ini telah ditandakan untuk diselia", diff --git a/public/language/ms/user.json b/public/language/ms/user.json index f47669ab9c..e1861294ca 100644 --- a/public/language/ms/user.json +++ b/public/language/ms/user.json @@ -7,12 +7,12 @@ "email": "Emel", "confirm_email": "Pastikan Emel", "ban_account": "Haramkan Akaun", - "ban_account_confirm": "Do you really want to ban this user?", + "ban_account_confirm": "Anda pasti ingin mengharamkan pengguna ini?", "unban_account": "Nyah-haram Akaun", "delete_account": "Padam Akaun", "delete_account_confirm": "Anda yakin untuk padam akaun anda?
Pebuatan ini tidak boleh diundur dan anda tidak boleh memulihkan sebarang data anda.

Masukkan nama pengguna anda untuk memastikan anda benar-benar ingin memadam akaun ini.", "delete_this_account_confirm": "Anda yakin untuk padam akaum ini?
Pebuatan ini tidak boleh diundur dan anda tidak boleh memulihkan sebarang data

", - "account-deleted": "Account deleted", + "account-deleted": "Akaun Dipadam", "fullname": "Nama penuh", "website": "Laman Web", "location": "Lokasi", @@ -26,7 +26,7 @@ "watched": "Melihat", "followers": "Pengikut", "following": "Mengikuti", - "aboutme": "About me", + "aboutme": "Tentan saya", "signature": "Tandatangan", "gravatar": "Gravatar", "birthday": "Tarikh lahir", @@ -51,9 +51,10 @@ "confirm_password": "Sahkan kata laluan", "password": "kata laluan", "username_taken_workaround": "Nama pengguna yang anda minta telah digunakan oleh orang lain, jadi kami telah mengubahsuaikannya sedikit. Anda kini dikenali sebagai %1", + "password_same_as_username": "Your password is the same as your username, please select another password.", "upload_picture": "Muatnaik gambar", "upload_a_picture": "Muatnaik sekeping gambar", - "remove_uploaded_picture": "Remove Uploaded Picture", + "remove_uploaded_picture": "Buang Gambar Yang Dimuatnaik", "image_spec": "Anda hanya boleh memuatnaikkan fail PNG, JPG atau GIF", "settings": "Tetapan", "show_email": "Tunjukkan emel saya", @@ -87,8 +88,8 @@ "follow_topics_you_create": "Ikut topik yang anda buat", "grouptitle": "Pilih nama kumpulan yang anda ingin tunjukkan", "no-group-title": "Tiada nama kumpulan", - "select-skin": "Select a Skin", - "sso.title": "Single Sign-on Services", + "select-skin": "Pilih skin", + "sso.title": "Servis Satu Log Masuk", "sso.associated": "Associated with", "sso.not-associated": "Click here to associate with" } \ No newline at end of file diff --git a/public/language/nb/topic.json b/public/language/nb/topic.json index 47f2925af8..5c868f3df2 100644 --- a/public/language/nb/topic.json +++ b/public/language/nb/topic.json @@ -25,7 +25,7 @@ "tools": "Verktøy", "flag": "Rapporter", "locked": "Låst", - "bookmark_instructions": "Klikk her for å returnere til din siste posisjon eller lukk for å forkaste.", + "bookmark_instructions": "Klikk her for å returnere til siste uleste emne i denne tråden.", "flag_title": "Rapporter dette innlegget for granskning", "flag_confirm": "Er du sikker på at du vil rapportere dette innlegget?", "flag_success": "Dette innlegget har blitt rapportert.", @@ -43,7 +43,7 @@ "thread_tools.markAsUnreadForAll": "Marker som ulest", "thread_tools.pin": "Fest tråd", "thread_tools.unpin": "Ufest tråd", - "thread_tools.lock": "Lås trid", + "thread_tools.lock": "Lås tråd", "thread_tools.unlock": "Lås opp tråd", "thread_tools.move": "Flytt tråd", "thread_tools.move_all": "Flytt alle", diff --git a/public/language/nb/user.json b/public/language/nb/user.json index 065c6d2aa4..52c9af7fd4 100644 --- a/public/language/nb/user.json +++ b/public/language/nb/user.json @@ -51,6 +51,7 @@ "confirm_password": "Bekreft passord", "password": "Passord", "username_taken_workaround": "Brukernavnet du ønsket er opptatt, så vi har endret ditt litt. Du er nå kjent som %1", + "password_same_as_username": "Ditt passord er det samme som ditt brukernavn, vennligst velg et annet passord.", "upload_picture": "Last opp bilde", "upload_a_picture": "Last opp et bilde", "remove_uploaded_picture": "Fjern Opplastet Bilde", diff --git a/public/language/nl/category.json b/public/language/nl/category.json index 7ec0e31ab7..78037189b3 100644 --- a/public/language/nl/category.json +++ b/public/language/nl/category.json @@ -12,5 +12,5 @@ "ignore": "Negeren", "watch.message": "Van deze categorie worden nu meldingen ontvangen", "ignore.message": "Er worden geen meldingen van deze categorie ontvangen", - "watched-categories": "Watched categories" + "watched-categories": "Categorieën die bekeken zijn." } \ No newline at end of file diff --git a/public/language/nl/error.json b/public/language/nl/error.json index 616ab5ad66..94b882c168 100644 --- a/public/language/nl/error.json +++ b/public/language/nl/error.json @@ -78,7 +78,7 @@ "chat-restricted": "Deze gebruiker heeft beperkingen aan de chatfunctie opgelegd waardoor deze eerst iemand moet volgen voordat deze persoon een nieuwe chat mag initiëren.", "too-many-messages": "Er zijn in korte tijd teveel berichten verzonden, een moment geduld.", "invalid-chat-message": "Ongeldige bericht", - "chat-message-too-long": "Chat message is too long", + "chat-message-too-long": "Het chatbericht is te lang", "reputation-system-disabled": "Reputatie systeem is uitgeschakeld.", "downvoting-disabled": "Negatief stemmen staat uitgeschakeld.", "not-enough-reputation-to-downvote": "Deze gebruikersaccount beschikt over onvoldoende reputatie om een negatieve stem uit te mogen brengen.", diff --git a/public/language/nl/groups.json b/public/language/nl/groups.json index f50bc09e5d..6d655b5059 100644 --- a/public/language/nl/groups.json +++ b/public/language/nl/groups.json @@ -12,9 +12,9 @@ "invited.none": "Er zijn geen uitgenodigde leden op het moment", "invited.uninvite": "Uitnodiging intrekken", "invited.search": "Zoek naar een gebruiker om uit te nodigen voor deze groep", - "invited.notification_title": "You have been invited to join %1", - "request.notification_title": "Group Membership Request from %1", - "request.notification_text": "%1 has requested to become a member of %2", + "invited.notification_title": "Je bent uitgenodigd voor de groep %1", + "request.notification_title": "groepsverzoek gekregen van %1", + "request.notification_text": "%1 heeft een verzoek ingediend om een lid te zijn van de groep %2", "cover-instructions": "Sleep een afbeelding, sleep om te positioneren en klik tenslotte op Opslaan", "cover-change": "Bewerken", "cover-save": "Opslaan", diff --git a/public/language/nl/topic.json b/public/language/nl/topic.json index 90ac37510d..c9e7de050c 100644 --- a/public/language/nl/topic.json +++ b/public/language/nl/topic.json @@ -25,7 +25,7 @@ "tools": "Extra", "flag": "Markeren", "locked": "Gesloten", - "bookmark_instructions": "Klik hier om naar de vorige positie terug te keren of sluit af om te verwerpen.", + "bookmark_instructions": "Klik hier om terug te gaan om de nieuwste bericht te bekijken in deze onderwerp", "flag_title": "Bericht aan beheerders melden", "flag_confirm": "Weet u het zeker dat u dit bericht wilt rapporteren?", "flag_success": "Het bericht is gerapporteerd aan beheer.", diff --git a/public/language/nl/user.json b/public/language/nl/user.json index 46d740aaa2..f21566e8b0 100644 --- a/public/language/nl/user.json +++ b/public/language/nl/user.json @@ -12,7 +12,7 @@ "delete_account": "Account verwijderen", "delete_account_confirm": "Controleer of dat het zeker is dat deze account verwijderd moet worden.
Deze actie kan niet ongedaan gemaakt worden en herstellen van gebruiker- of profielgegevens is niet mogelijk

Typ hier de gebruikersnaam als extra controle om te bevestigen dat deze account verwijderd moet worden.", "delete_this_account_confirm": "Weet u zeker dat u deze account wilt verwijderen?
Deze actie kan niet ongedaan worden en u kunt niet de informatie herstellen

", - "account-deleted": "Account deleted", + "account-deleted": "Account verwijderd", "fullname": "Volledige naam", "website": "Website", "location": "Locatie", @@ -51,9 +51,10 @@ "confirm_password": "Bevestig wachtwoord", "password": "Wachtwoord", "username_taken_workaround": "Helaas, de gewenste gebruikersnaam is al door iemand in gebruik genomen dus vandaar een kleine aanpassing naar %1 doorgevoerd", + "password_same_as_username": "Je wachtwoord is hetzelfde als je gebruikersnaam. Kies een ander wachtwoord.", "upload_picture": "Upload afbeelding", "upload_a_picture": "Upload een afbeelding", - "remove_uploaded_picture": "Remove Uploaded Picture", + "remove_uploaded_picture": "Verwijder gëuploade foto", "image_spec": "Alleen afbeeldingsbestanden van het type PNG, JPG/JPEG, of GIF worden ondersteund.", "settings": "Instellingen", "show_email": "Inschakelen weergave van e-mailadres op profielpagina", @@ -89,6 +90,6 @@ "no-group-title": "Geen groepstitel", "select-skin": "Selecteer een uiterlijk", "sso.title": "Single Sign-on Services", - "sso.associated": "Associated with", - "sso.not-associated": "Click here to associate with" + "sso.associated": "Geassocieerd met", + "sso.not-associated": "Klik hier om geassocieerd te worden met" } \ No newline at end of file diff --git a/public/language/pl/category.json b/public/language/pl/category.json index d4f9fff689..bda340c895 100644 --- a/public/language/pl/category.json +++ b/public/language/pl/category.json @@ -1,16 +1,16 @@ { - "category": "Category", - "subcategories": "Subcategories", - "new_topic_button": "Nowy wątek", + "category": "Kategoria", + "subcategories": "Podkategorie", + "new_topic_button": "Nowy Temat", "guest-login-post": "Zaloguj się, aby napisać.", - "no_topics": "W tej kategorii nie ma jeszcze żadnych wątków.
Dlaczego ty nie utworzysz jakiegoś?", + "no_topics": "W tej kategorii nie ma jeszcze żadnych tematów.
Dlaczego nie spróbujesz jakiegoś utworzyć?", "browsing": "przegląda", "no_replies": "Nikt jeszcze nie odpowiedział", - "no_new_posts": "No new posts.", + "no_new_posts": "Brak nowych postów.", "share_this_category": "Udostępnij tę kategorię", - "watch": "Watch", + "watch": "Obserwuj", "ignore": "Ignoruj", - "watch.message": "You are now watching updates from this category", - "ignore.message": "You are now ignoring updates from this category", - "watched-categories": "Watched categories" + "watch.message": "Obserwujesz teraz aktualizacje tej kategorii", + "ignore.message": "Ignorujesz teraz aktualizacje tej kategorii", + "watched-categories": "Obserwowane kategorie" } \ No newline at end of file diff --git a/public/language/pl/email.json b/public/language/pl/email.json index 9814604709..1060d8a08c 100644 --- a/public/language/pl/email.json +++ b/public/language/pl/email.json @@ -1,15 +1,15 @@ { "password-reset-requested": "Wybrano przywrócenie hasła - %1", "welcome-to": "Witaj w %1", - "invite": "Invitation from %1", + "invite": "Zaproszenie od %1", "greeting_no_name": "Witaj", "greeting_with_name": "Witaj %1", "welcome.text1": "Dziękujemy za rejestrację w %1", "welcome.text2": "Aby aktywować swoje konto, musisz potwierdzić, że skorzystałeś z własnego adresu e-mail.", - "welcome.text3": "An administrator has accepted your registration application. You can login with your username/password now.", + "welcome.text3": "Administrator zaakceptował twoje podanie o rejestrację. Możesz się zalogować używając swojej nazwy użytkownika i hasła.", "welcome.cta": "Kliknij tutaj, by potwierdzić swój adres", - "invitation.text1": "%1 has invited you to join %2", - "invitation.ctr": "Click here to create your account.", + "invitation.text1": "%1 zaprasza do dołączenia do %2", + "invitation.ctr": "Kliknij tutaj, aby utworzyć konto.", "reset.text1": "Otrzymaliśmy żądanie przywrócenia Twojego hasła. Jeśli nie żądałeś przywrócenia hasła, zignoruj ten e-mail.", "reset.text2": "Aby przywrócić swoje hasło, skorzystaj z poniższego linku:", "reset.cta": "Kliknij tu, by przywrócić swoje hasło", @@ -20,11 +20,11 @@ "digest.latest_topics": "Ostatnie tematy z %1", "digest.cta": "Kliknij, by odwiedzić %1", "digest.unsub.info": "To podsumowanie zostało wysłane zgodnie z Twoimi ustawieniami.", - "digest.no_topics": "Nie było żadnych aktywnych wątków %1", + "digest.no_topics": "Nie było żadnych aktywnych tematów w ciągu ostatnich %1", "notif.chat.subject": "Nowa wiadomość czatu od %1", "notif.chat.cta": "Kliknij tutaj, by kontynuować konwersację", "notif.chat.unsub.info": "To powiadomienie o czacie zostało Ci wysłane zgodnie z ustawieniami Twojego konta.", - "notif.post.cta": "Kliknij tutaj, aby przeczytać cały wątek.", + "notif.post.cta": "Kliknij tutaj, aby przeczytać cały temat.", "notif.post.unsub.info": "To powiadomienie o poście zostało Ci wysłane zgodnie z ustawieniami Twojego konta.", "test.text1": "To jest e-mail testowy, aby sprawdzić, czy poprawnie skonfigurowałeś e-mailer w swoim NodeBB.", "unsub.cta": "Kliknij tutaj, by zmienić te ustawienia", diff --git a/public/language/pl/error.json b/public/language/pl/error.json index 7af713ba97..5147322b49 100644 --- a/public/language/pl/error.json +++ b/public/language/pl/error.json @@ -68,7 +68,7 @@ "post-already-restored": "Ten post został już przywrócony", "topic-already-deleted": "Ten temat został już skasowany", "topic-already-restored": "Ten temat został już przywrócony", - "cant-purge-main-post": "You can't purge the main post, please delete the topic instead", + "cant-purge-main-post": "Nie możesz wymazać głównego postu, zamiast tego usuń temat", "topic-thumbnails-are-disabled": "Miniatury tematów są wyłączone", "invalid-file": "Błędny plik", "uploads-are-disabled": "Uploadowanie jest wyłączone", diff --git a/public/language/pl/global.json b/public/language/pl/global.json index 67c6d83427..cb6915bea7 100644 --- a/public/language/pl/global.json +++ b/public/language/pl/global.json @@ -22,7 +22,7 @@ "pagination.out_of": "%1 z %2", "pagination.enter_index": "Wpisz indeks.", "header.admin": "Administracja", - "header.categories": "Categories", + "header.categories": "Kategorie", "header.recent": "Ostatnie", "header.unread": "Nieprzeczytane", "header.tags": "Tagi", @@ -33,7 +33,7 @@ "header.notifications": "Powiadomienia", "header.search": "Szukaj", "header.profile": "Profil", - "header.navigation": "Navigation", + "header.navigation": "Nawigacja", "notifications.loading": "Ładowanie powiadomień", "chats.loading": "Ładowanie rozmów", "motd.welcome": "Witaj w NodeBB, platformie dyskusyjnej przyszłości.", @@ -52,7 +52,7 @@ "views": "wyświetleń", "reputation": "Punkty reputacji", "read_more": "czytaj więcej", - "more": "More", + "more": "Więcej", "posted_ago_by_guest": "wysłany %1 przez Gościa", "posted_ago_by": "wysłany %1 przez %2", "posted_ago": "wysłany %1", @@ -64,11 +64,11 @@ "guest_posted_ago": "Gość wysłał %1", "last_edited_by_ago": "ostatnio zmieniany przez %1 %2", "norecentposts": "Brak ostatnich postów", - "norecenttopics": "Brak ostatnich wątków", + "norecenttopics": "Brak Ostatnich Tematów", "recentposts": "Ostatnie posty", "recentips": "Adresy IP ostatnich logowań", "away": "Z dala", - "dnd": "Do not disturb", + "dnd": "Nie przeszkadzać", "invisible": "Niewidoczny", "offline": "Niedostępny", "email": "Adres e-mail", @@ -81,5 +81,5 @@ "follow": "Obserwuj", "unfollow": "Przestań śledzić", "delete_all": "Usuń wszystko", - "map": "Map" + "map": "Mapa" } \ No newline at end of file diff --git a/public/language/pl/groups.json b/public/language/pl/groups.json index 243f60e65b..d33cf9550c 100644 --- a/public/language/pl/groups.json +++ b/public/language/pl/groups.json @@ -6,7 +6,7 @@ "no_groups_found": "Brak grup do wyświetlenia", "pending.accept": "Przyjmij", "pending.reject": "Odrzuć", - "pending.accept_all": "Accept All", + "pending.accept_all": "Przyjmuj Wszystkie", "pending.reject_all": "Reject All", "pending.none": "There are no pending members at this time", "invited.none": "There are no invited members at this time", diff --git a/public/language/pl/modules.json b/public/language/pl/modules.json index 5df92f16bd..b8b7e88069 100644 --- a/public/language/pl/modules.json +++ b/public/language/pl/modules.json @@ -5,7 +5,7 @@ "chat.no_active": "Nie prowadzisz obecnie żadnych rozmów.", "chat.user_typing": "%1 pisze...", "chat.user_has_messaged_you": "%1 napisał do Ciebie", - "chat.see_all": "See all chats", + "chat.see_all": "Zobacz wszystkie rozmowy", "chat.no-messages": "Wybierz odbiorcę, by wyświetlić historię rozmów.", "chat.recent-chats": "Ostatnie rozmowy", "chat.contacts": "Kontakty", @@ -15,15 +15,15 @@ "chat.seven_days": "7 dni", "chat.thirty_days": "30 dni", "chat.three_months": "3 miesiące", - "composer.compose": "Compose", - "composer.show_preview": "Show Preview", - "composer.hide_preview": "Hide Preview", + "composer.compose": "Twórz", + "composer.show_preview": "Pokaż Podgląd", + "composer.hide_preview": "Ukryj Podgląd", "composer.user_said_in": "%1 powiedział w %2:", "composer.user_said": "%1 powiedział:", "composer.discard": "Na pewno chcesz porzucić ten post?", - "composer.submit_and_lock": "Submit and Lock", - "composer.toggle_dropdown": "Toggle Dropdown", + "composer.submit_and_lock": "Prześlij i Zablokuj", + "composer.toggle_dropdown": "Przełącz Listę Rozwijaną", "bootbox.ok": "OK", - "bootbox.cancel": "Cancel", - "bootbox.confirm": "Confirm" + "bootbox.cancel": "Anuluj", + "bootbox.confirm": "Potwierdź" } \ No newline at end of file diff --git a/public/language/pl/notifications.json b/public/language/pl/notifications.json index 5bbf449b4d..fd1436de9a 100644 --- a/public/language/pl/notifications.json +++ b/public/language/pl/notifications.json @@ -1,7 +1,7 @@ { "title": "Powiadomienia", "no_notifs": "Nie masz nowych powiadomień", - "see_all": "See all notifications", + "see_all": "Zobacz wszystkie powiadomienia", "mark_all_read": "Oznacz wszystkie powiadomienia jako przeczytane", "back_to_home": "Wróć do %1", "outgoing_link": "Łącze wychodzące", @@ -20,7 +20,7 @@ "user_posted_topic": "%1 wysłał nowy temat: %2", "user_mentioned_you_in": "%1 wspomniał cię w %2", "user_started_following_you": "%1
zaczął Cię śledzić.", - "new_register": "%1 sent a registration request.", + "new_register": "%1 wysłał żądanie rejestracji.", "email-confirmed": "E-mail potwierdzony", "email-confirmed-message": "Dziękujemy za potwierdzenie maila. Twoje konto zostało aktywowane.", "email-confirm-error-message": "Wystąpił problem przy aktywacji, - kod jest błędny lub przestarzały", diff --git a/public/language/pl/pages.json b/public/language/pl/pages.json index e1f58fccd9..72fa9727be 100644 --- a/public/language/pl/pages.json +++ b/public/language/pl/pages.json @@ -1,37 +1,37 @@ { "home": "Strona główna", - "unread": "Nieprzeczytane wątki", - "popular-day": "Popular topics today", - "popular-week": "Popular topics this week", - "popular-month": "Popular topics this month", - "popular-alltime": "All time popular topics", - "recent": "Ostatnie wątki", - "users/online": "Online Users", - "users/latest": "Latest Users", - "users/sort-posts": "Users with the most posts", - "users/sort-reputation": "Users with the most reputation", - "users/map": "User Map", - "users/search": "User Search", + "unread": "Nieprzeczytane Tematy", + "popular-day": "Tematy popularne dzisiaj", + "popular-week": "Tematy popularne w tym tygodniu", + "popular-month": "Tematy popularne w tym miesiącu", + "popular-alltime": "Wszystkie popularne tematy", + "recent": "Ostatnie Tematy", + "users/online": "Dostępni Użytkownicy", + "users/latest": "Nowi Użytkownicy", + "users/sort-posts": "Użytkownicy z największą liczbą postów", + "users/sort-reputation": "Użytkownicy z najwyższą reputacją", + "users/map": "Mapa Użytkowników", + "users/search": "Wyszukiwanie Użytkownków", "notifications": "Powiadomienia", - "tags": "Tags", - "tag": "Topics tagged under \"%1\"", - "register": "Register an account", - "login": "Login to your account", - "reset": "Reset your account password", - "categories": "Categories", - "groups": "Groups", - "group": "%1 group", - "chats": "Chats", - "chat": "Chatting with %1", - "account/edit": "Editing \"%1\"", - "account/following": "People %1 follows", - "account/followers": "People who follow %1", - "account/posts": "Posts made by %1", - "account/topics": "Topics created by %1", - "account/groups": "%1's Groups", - "account/favourites": "%1's Favourite Posts", - "account/settings": "User Settings", - "account/watched": "Topics watched by %1", + "tags": "Tagi", + "tag": "Tematy oznaczone jako \"%1\"", + "register": "Utwórz konto", + "login": "Zaloguj się na swoje konto", + "reset": "Zresetuj hasło do swojego konta", + "categories": "Kategorie", + "groups": "Grupy", + "group": "Grupa %1", + "chats": "Rozmowy", + "chat": "Rozmowa z %1", + "account/edit": "Edytowanie \"%1\"", + "account/following": "Obserwowani przez %1", + "account/followers": "Obserwujący %1", + "account/posts": "Posty napisane przez %1", + "account/topics": "Tematy stworzone przez %1", + "account/groups": "Grupy %1", + "account/favourites": "Ulubione posty %1", + "account/settings": "Ustawienia Użytkownika", + "account/watched": "Tematy obserwowane przez %1", "maintenance.text": "Obecnie trwają prace konserwacyjne nad %1. Proszę wrócić później.", "maintenance.messageIntro": "Dodatkowo, administrator zostawił wiadomość:" } \ No newline at end of file diff --git a/public/language/pl/recent.json b/public/language/pl/recent.json index 563533001f..02b291f6db 100644 --- a/public/language/pl/recent.json +++ b/public/language/pl/recent.json @@ -1,18 +1,18 @@ { - "title": "Ostatnie wątki", + "title": "Ostatnie", "day": "Dzień", "week": "Tydzień", "month": "Miesiąc", "year": "Rok", "alltime": "Od początku", - "no_recent_topics": "Brak ostatnich wątków.", - "no_popular_topics": "Brak popularnych wątków.", - "there-is-a-new-topic": "Masz nowy wątek.", - "there-is-a-new-topic-and-a-new-post": "Masz nowy wątek i nowy post.", - "there-is-a-new-topic-and-new-posts": "Masz nowy wątek i %1 nowych postów.", - "there-are-new-topics": "Masz %1 nowych wątków.", - "there-are-new-topics-and-a-new-post": "Masz %1 nowych wątków i nowy post.", - "there-are-new-topics-and-new-posts": "Masz %1 nowych wątków i %2 nowych postów.", + "no_recent_topics": "Brak ostatnich tematów.", + "no_popular_topics": "Brak popularnych tematów.", + "there-is-a-new-topic": "Masz nowy temat.", + "there-is-a-new-topic-and-a-new-post": "Masz nowy temat i nowy post.", + "there-is-a-new-topic-and-new-posts": "Masz nowy temat i %1 nowych postów.", + "there-are-new-topics": "Masz %1 nowych tematów.", + "there-are-new-topics-and-a-new-post": "Masz %1 nowych tematów i nowy post.", + "there-are-new-topics-and-new-posts": "Masz %1 nowych tematów i %2 nowych postów.", "there-is-a-new-post": "Masz nowy post.", "there-are-new-posts": "Masz %1 nowych postów.", "click-here-to-reload": "Kliknij tutaj, aby przeładować." diff --git a/public/language/pl/register.json b/public/language/pl/register.json index 0a25b6be19..84c0430d87 100644 --- a/public/language/pl/register.json +++ b/public/language/pl/register.json @@ -15,5 +15,5 @@ "alternative_registration": "Alternatywna rejestracja", "terms_of_use": "Warunki korzystania z serwisu", "agree_to_terms_of_use": "Zgadzam się na powyższe warunki", - "registration-added-to-queue": "Your registration has been added to the approval queue. You will receive an email when it is accepted by an administrator." + "registration-added-to-queue": "Twoja rejestracja została dodana do kolejki oczekujących na akceptację. Otrzymasz email, kiedy zostanie zatwierdzona przez administratora." } \ No newline at end of file diff --git a/public/language/pl/reset_password.json b/public/language/pl/reset_password.json index c152bb1aae..b7ad1ebc2b 100644 --- a/public/language/pl/reset_password.json +++ b/public/language/pl/reset_password.json @@ -13,5 +13,5 @@ "invalid_email": "Niepoprawny adres e-mail.", "password_too_short": "Wprowadzone hasło jest zbyt krótkie, proszę wybierz inne hasło.", "passwords_do_not_match": "Wprowadzone hasła nie pasują do siebie", - "password_expired": "Your password has expired, please choose a new password" + "password_expired": "Twoje hasło wygasło, prosimy wybrać nowe hasło" } \ No newline at end of file diff --git a/public/language/pl/search.json b/public/language/pl/search.json index 44f5ca5023..4a3074c875 100644 --- a/public/language/pl/search.json +++ b/public/language/pl/search.json @@ -1,7 +1,7 @@ { "results_matching": "%1 wyników pasujących do \"%2\", (%3 sekund)", "no-matches": "Nie znaleziono pasujących wyników", - "advanced-search": "Advanced Search", + "advanced-search": "Wyszukiwanie Zaawansowane", "in": "W", "titles": "Tytuły", "titles-posts": "Tytuły i posty", @@ -24,10 +24,10 @@ "one-year": "Jeden rok", "sort-by": "Sortuj po", "last-reply-time": "Odpowiedziano ostatnio", - "topic-title": "Tytuł wątku", + "topic-title": "Tytuł tematu", "number-of-replies": "Ilość odpowiedzi", "number-of-views": "Ilość wyświetleń", - "topic-start-date": "Data utworzenia wątku", + "topic-start-date": "Data utworzenia tematu", "username": "Nazwa użytkownika", "category": "Kategoria", "descending": "W kolejności malejącej", diff --git a/public/language/pl/tags.json b/public/language/pl/tags.json index a2247f39e7..f5ad810ca2 100644 --- a/public/language/pl/tags.json +++ b/public/language/pl/tags.json @@ -1,7 +1,7 @@ { "no_tag_topics": "Nie ma tematów z tym tagiem", "tags": "Tagi", - "enter_tags_here": "Enter tags here, between %1 and %2 characters each.", + "enter_tags_here": "Wpisz tagi tutaj, każdy o długości %1 do %2 znaków.", "enter_tags_here_short": "Wpisz tagi...", "no_tags": "Jeszcze nie ma tagów." } \ No newline at end of file diff --git a/public/language/pl/topic.json b/public/language/pl/topic.json index 496c38ba51..daff04a60c 100644 --- a/public/language/pl/topic.json +++ b/public/language/pl/topic.json @@ -1,16 +1,16 @@ { - "topic": "Wątek", - "topic_id": "Identyfikator wątku", - "topic_id_placeholder": "Podaj identyfikator wątku", - "no_topics_found": "Nie znaleziono żadnych wątków.", + "topic": "Temat", + "topic_id": "Identyfikator Tematu", + "topic_id_placeholder": "Podaj identyfikator tematu", + "no_topics_found": "Nie znaleziono żadnych tematów!", "no_posts_found": "Nie znaleziono żadnych postów.", "post_is_deleted": "Ten post jest usunięty", - "topic_is_deleted": "This topic is deleted!", + "topic_is_deleted": "Ten temat jest usunięty!", "profile": "Profil", "posted_by": "Napisane przez %1", "posted_by_guest": "Wysłany przez Gościa", "chat": "Czat", - "notify_me": "Powiadamiaj mnie o nowych odpowiedziach w tym wątku", + "notify_me": "Powiadamiaj mnie o nowych odpowiedziach w tym temacie", "quote": "Cytuj", "reply": "Odpowiedz", "guest-login-reply": "Zaloguj się, aby odpowiedzieć.", @@ -25,35 +25,35 @@ "tools": "Narzędzia", "flag": "Zgłoś", "locked": "Zablokowany", - "bookmark_instructions": "Kliknij tutaj, aby wrócić do ostatniej pozycji lub zamknij, aby odrzucić.", + "bookmark_instructions": "Kliknij tutaj, aby powrócic do ostatniego nieprzeczytanego postu w tym wątku.", "flag_title": "Zgłoś post do moderacji", "flag_confirm": "Na pewno chcesz oznaczyć ten post?", "flag_success": "Ten post został oznaczony do moderacji.", "deleted_message": "Ten temat został skasowany. Tylko użytkownicy z uprawnieniami do zarządzania mogą go zobaczyć.", - "following_topic.message": "Będziesz otrzymywał powiadomienia, gdy ktoś odpowie w tym wątku.", - "not_following_topic.message": "Nie będziesz otrzymywał więcej powiadomień z tego wątku.", - "login_to_subscribe": "Zaloguj się, aby subskrybować ten wątek.", - "markAsUnreadForAll.success": "Wątek oznaczony jako nieprzeczytany dla wszystkich.", + "following_topic.message": "Będziesz od teraz otrzymywał powiadomienia, gdy ktoś odpowie w tym temacie.", + "not_following_topic.message": "Nie będziesz już otrzymywał powiadomień z tego tematu.", + "login_to_subscribe": "Zaloguj się, aby subskrybować ten temat.", + "markAsUnreadForAll.success": "Temat oznaczony jako nieprzeczytany dla wszystkich.", "watch": "Obserwuj", "unwatch": "Nie obserwuj", - "watch.title": "Otrzymuj powiadomienia o nowych odpowiedziach w tym wątku", - "unwatch.title": "Przestań obserwować ten wątek", + "watch.title": "Otrzymuj powiadomienia o nowych odpowiedziach w tym temacie", + "unwatch.title": "Przestań obserwować ten temat", "share_this_post": "Udostępnij", - "thread_tools.title": "Narzędzia wątku", + "thread_tools.title": "Narzędzia Tematu", "thread_tools.markAsUnreadForAll": "Oznacz jako nieprzeczytany", - "thread_tools.pin": "Przypnij wątek", - "thread_tools.unpin": "Odepnij wątek", - "thread_tools.lock": "Zamknij wątek", - "thread_tools.unlock": "Otwórz wątek", - "thread_tools.move": "Przenieś wątek", + "thread_tools.pin": "Przypnij Temat", + "thread_tools.unpin": "Odepnij Temat", + "thread_tools.lock": "Zablokuj Temat", + "thread_tools.unlock": "Odblokuj Temat", + "thread_tools.move": "Przenieś Temat", "thread_tools.move_all": "Przenieś wszystko", - "thread_tools.fork": "Podziel wątek", - "thread_tools.delete": "Usuń wątek", - "thread_tools.delete_confirm": "Na pewno chcesz skasować ten wątek?", - "thread_tools.restore": "Przywróć wątek", - "thread_tools.restore_confirm": "Na pewno chcesz przywrócić ten wątek?", - "thread_tools.purge": "Wymaż wątek", - "thread_tools.purge_confirm": "Na pewno chcesz wymazać ten wątek?", + "thread_tools.fork": "Skopiuj Temat", + "thread_tools.delete": "Usuń Temat", + "thread_tools.delete_confirm": "Na pewno chcesz skasować ten temat?", + "thread_tools.restore": "Przywróć Temat", + "thread_tools.restore_confirm": "Na pewno chcesz przywrócić ten temat?", + "thread_tools.purge": "Wymaż Temat", + "thread_tools.purge_confirm": "Na pewno chcesz wymazać ten temat?", "topic_move_success": "Temat przeniesiono do %1", "post_delete_confirm": "Na pewno chcesz usunąć ten post?", "post_restore_confirm": "Na pewno chcesz przywrócić ten post?", @@ -66,24 +66,24 @@ "favourites": "Ulubione", "favourites.has_no_favourites": "Nie masz żadnych ulubionych. Polub kilka postów!", "loading_more_posts": "Załaduj więcej postów", - "move_topic": "Przenieś wątek", - "move_topics": "Przenieś tematy", + "move_topic": "Przenieś Temat", + "move_topics": "Przenieś Tematy", "move_post": "Przenieś post", "post_moved": "Post przeniesiony", - "fork_topic": "Skopiuj wątek", - "topic_will_be_moved_to": "Ten wątek zostanie przeniesiony do kategorii", + "fork_topic": "Skopiuj Temat", + "topic_will_be_moved_to": "Ten temat zostanie przeniesiony do kategorii", "fork_topic_instruction": "Zaznacz posty, które chcesz sklonować", "fork_no_pids": "Nie zaznaczyłeś żadnych postów!", - "fork_success": "Udało się skopiować wątek. Kliknij tutaj, aby do niego przejść.", - "composer.title_placeholder": "Wpisz tytuł wątku tutaj", + "fork_success": "Udało się skopiować temat. Kliknij tutaj, aby do niego przejść.", + "composer.title_placeholder": "Wpisz tutaj tytuł tematu...", "composer.handle_placeholder": "Nazwa", "composer.discard": "Odrzuć", "composer.submit": "Wyślij", "composer.replying_to": "Odpowiadanie na %1", - "composer.new_topic": "Nowy wątek", + "composer.new_topic": "Nowy Temat", "composer.uploading": "wysyłanie...", - "composer.thumb_url_label": "Wklej adres miniaturki wątku", - "composer.thumb_title": "Dodaj miniaturkę do tego wątku", + "composer.thumb_url_label": "Wklej adres miniaturki tematu", + "composer.thumb_title": "Dodaj miniaturkę do tego tematu", "composer.thumb_url_placeholder": "http://example.com/thumb.png", "composer.thumb_file_label": "lub wyślij plik", "composer.thumb_remove": "Wyczyść pola", diff --git a/public/language/pl/unread.json b/public/language/pl/unread.json index 49c583d8a8..dbee60d817 100644 --- a/public/language/pl/unread.json +++ b/public/language/pl/unread.json @@ -1,10 +1,10 @@ { "title": "Nieprzeczytane", - "no_unread_topics": "Nie masz żadnych nieprzeczytanych wątków.", + "no_unread_topics": "Nie masz żadnych nieprzeczytanych tematów.", "load_more": "Więcej", "mark_as_read": "Oznacz jako przeczytane", "selected": "Wybrane", "all": "Wszystkie", - "all_categories": "All categories", - "topics_marked_as_read.success": "Wątki zostały oznaczone jako przeczytane!" + "all_categories": "Wszystkie kategorie", + "topics_marked_as_read.success": "Tematy zostały oznaczone jako przeczytane!" } \ No newline at end of file diff --git a/public/language/pl/user.json b/public/language/pl/user.json index 3ee12cf931..7102aab48c 100644 --- a/public/language/pl/user.json +++ b/public/language/pl/user.json @@ -6,13 +6,13 @@ "postcount": "Liczba postów", "email": "Adres e-mail", "confirm_email": "Potwierdź e-mail", - "ban_account": "Ban Account", - "ban_account_confirm": "Do you really want to ban this user?", - "unban_account": "Unban Account", + "ban_account": "Zbanuj Konto", + "ban_account_confirm": "Na pewno chcesz zbanować tego użytkownika?", + "unban_account": "Odbanuj Konto", "delete_account": "Skasuj konto", "delete_account_confirm": "Jesteś pewny, że chcesz skasować swoje konto?
Tej operacji nie można cofnąć i utracisz wszystkie swoje dane

Podaj swoją nazwę użytkownika, by potwierdzić skasowanie konta.", - "delete_this_account_confirm": "Are you sure you want to delete this account?
This action is irreversible and you will not be able to recover any data

", - "account-deleted": "Account deleted", + "delete_this_account_confirm": "Na pewno chcesz usunąć to konto?
Tej operacji nie można cofnąć i nie będzie możliwości odzyskania swoich danych

", + "account-deleted": "Konto usunięte", "fullname": "Pełna nazwa", "website": "Strona WWW", "location": "Położenie", @@ -26,7 +26,7 @@ "watched": "Obserwowane", "followers": "Obserwujących", "following": "Obserwowanych", - "aboutme": "About me", + "aboutme": "O mnie", "signature": "Sygnatura", "gravatar": "Gravatar", "birthday": "Urodziny", @@ -51,44 +51,45 @@ "confirm_password": "Potwierdź hasło", "password": "Hasło", "username_taken_workaround": "Wybrany login jest już zajęty, więc zmieniliśmy go trochę. Proponujemy %1", + "password_same_as_username": "Twoje hasło jest takie samo jak nazwa użytkownika, prosimy wybrać inne hasło.", "upload_picture": "Prześlij zdjęcie", "upload_a_picture": "Prześlij zdjęcie", - "remove_uploaded_picture": "Remove Uploaded Picture", + "remove_uploaded_picture": "Usuń Przesłane Zdjęcie", "image_spec": "Możesz przesłać tylko pliki PNG, JPG lub GIF.", "settings": "Ustawienia", "show_email": "Wyświetlaj mój adres e-mail", "show_fullname": "Wyświetlaj moją pełną nazwę", "restrict_chats": "Pozwalaj tylko na rozmowy z użytkownikami, których śledzę", "digest_label": "Przysyłaj okresowe podsumowanie wiadomości na forum", - "digest_description": "Subskrybuj by dostawać maile z tego forum (nowe powiadomienia i tematy) zgodnie z ustalonym harmonogramem.", + "digest_description": "Subskrybuj, aby otrzymywać maile dla tego forum (nowe powiadomienia i tematy) zgodnie z ustalonym harmonogramem", "digest_off": "Wyłączone", "digest_daily": "Codziennie", "digest_weekly": "Co tydzień", "digest_monthly": "Co miesiąc", "send_chat_notifications": "Wyślij e-maila, jeśli dostanę nową wiadomość, a nie jestem on-line", - "send_post_notifications": "Wyślij e-maila, kiedy wątki, które subskrybuję otrzymają odpowiedź", - "settings-require-reload": "Some setting changes require a reload. Click here to reload the page.", + "send_post_notifications": "Wyślij email, kiedy w tematach, które subskrybuję pojawią się odpowiedzi", + "settings-require-reload": "Niektóre zmiany ustawień wymagają przeładowania. Kliknij tutaj, aby przeładować stronę.", "has_no_follower": "Ten użytkownik nie ma jeszcze żadnych obserwujących", "follows_no_one": "Użytkownik jeszcze nikogo nie obsweruje.", - "has_no_posts": "This user hasn't posted anything yet.", - "has_no_topics": "This user hasn't posted any topics yet.", - "has_no_watched_topics": "This user hasn't watched any topics yet.", + "has_no_posts": "Ten użytkownik nic jeszcze nie napisał.", + "has_no_topics": "Ten użytkownik nie stworzył jeszcze żadnych tematów.", + "has_no_watched_topics": "Ten użytkownik nie obserwuje jeszcze żadnych tematów.", "email_hidden": "Adres e-mail ukryty", "hidden": "ukryty", - "paginate_description": "Paginate topics and posts instead of using infinite scroll", - "topics_per_page": "Wątków na stronę", + "paginate_description": "Dziel tematy i posty na strony zamiast używać nieskończonego przewijania", + "topics_per_page": "Tematów na Stronę", "posts_per_page": "Postów na stronę", - "notification_sounds": "Play a sound when you receive a notification", + "notification_sounds": "Odtwarzaj dźwięk, gdy otrzymujesz powiadomienie", "browsing": "Ustawienia szukania", - "open_links_in_new_tab": "Open outgoing links in new tab", - "enable_topic_searching": "Odblokuj szukanie w wątku", - "topic_search_help": "If enabled, in-topic searching will override the browser's default page search behaviour and allow you to search through the entire topic, instead of what is only shown on screen", - "follow_topics_you_reply_to": "Follow topics that you reply to", - "follow_topics_you_create": "Follow topics you create", - "grouptitle": "Select the group title you would like to display", - "no-group-title": "No group title", - "select-skin": "Select a Skin", - "sso.title": "Single Sign-on Services", - "sso.associated": "Associated with", - "sso.not-associated": "Click here to associate with" + "open_links_in_new_tab": "Otwieraj linki wychodzące w nowej karcie", + "enable_topic_searching": "Odblokuj szukanie w temacie", + "topic_search_help": "Jeśli włączone, wyszukiwanie w tematach zastąpi przeglądarkowe przeszukiwanie strony i pozwoli na przeszukanie całego tematu, zamiast ograniczonej zawartości aktualnie wyświetlonej na ekranie", + "follow_topics_you_reply_to": "Śledź tematy, na które odpowiadasz", + "follow_topics_you_create": "Śledź tematy, które tworzysz", + "grouptitle": "Wybierz tytuł grupy, który chcesz wyświetlać", + "no-group-title": "Brak tytułu grupy", + "select-skin": "Wybierz Skórkę", + "sso.title": "Usługi Pojedynczego Logowania", + "sso.associated": "Powiązane z", + "sso.not-associated": "Kliknij tutaj, aby powiązać z" } \ No newline at end of file diff --git a/public/language/pl/users.json b/public/language/pl/users.json index 4644860663..d587a4957e 100644 --- a/public/language/pl/users.json +++ b/public/language/pl/users.json @@ -3,19 +3,19 @@ "top_posters": "Najwięcej postów", "most_reputation": "Największa reputacja", "search": "Szukaj", - "enter_username": "Wpisz nazwę użytkownika", - "load_more": "Więcej", + "enter_username": "Wpisz wyszukiwaną nazwę użytkownika", + "load_more": "Wczytaj Więcej", "users-found-search-took": "Znaleziono %1 użytkownik(ów). Szukanie zajęło %2 sek.", "filter-by": "Filtruj", "online-only": "Tylko dostępny", "picture-only": "Tylko ze zdjęciem", - "invite": "Invite", - "invitation-email-sent": "An invitation email has been sent to %1", - "user_list": "User List", - "recent_topics": "Recent Topics", - "popular_topics": "Popular Topics", - "unread_topics": "Unread Topics", - "categories": "Categories", - "tags": "Tags", - "map": "Map" + "invite": "Zaproś", + "invitation-email-sent": "Email z zaproszeniem został wysłany do %1", + "user_list": "Lista Użytkowników", + "recent_topics": "Ostatnie Tematy", + "popular_topics": "Popularne Tematy", + "unread_topics": "Nieprzeczytane Tematy", + "categories": "Kategorie", + "tags": "Tagi", + "map": "Mapa" } \ No newline at end of file diff --git a/public/language/pt_BR/topic.json b/public/language/pt_BR/topic.json index 284aefdda8..c3f63259a4 100644 --- a/public/language/pt_BR/topic.json +++ b/public/language/pt_BR/topic.json @@ -25,7 +25,7 @@ "tools": "Ferramentas", "flag": "Sinalizar", "locked": "Trancado", - "bookmark_instructions": "Clique aqui para voltar a sua última posição ou feche para descartar.", + "bookmark_instructions": "Click here to return to the last unread post in this thread.", "flag_title": "Sinalizar este post para moderação", "flag_confirm": "Tem certeza que deseja sinalizar este post?", "flag_success": "Este post foi sinalizado para ser moderado.", diff --git a/public/language/pt_BR/user.json b/public/language/pt_BR/user.json index ddc6af6f1a..e74e11866b 100644 --- a/public/language/pt_BR/user.json +++ b/public/language/pt_BR/user.json @@ -51,6 +51,7 @@ "confirm_password": "Confirmar Senha", "password": "Senha", "username_taken_workaround": "O nome de usuário que você escolheu já existia, então nós o alteramos um pouquinho. Agora você é conhecido como %1", + "password_same_as_username": "Your password is the same as your username, please select another password.", "upload_picture": "Carregar Foto", "upload_a_picture": "Carregue uma Foto", "remove_uploaded_picture": "Remover Foto Enviada", diff --git a/public/language/ro/topic.json b/public/language/ro/topic.json index f6a2d86eef..eb113d5dba 100644 --- a/public/language/ro/topic.json +++ b/public/language/ro/topic.json @@ -25,7 +25,7 @@ "tools": "Unelte", "flag": "Semnalizează", "locked": "Închis", - "bookmark_instructions": "Apasă aici ca să te întorci la ultima pagină sau ignoră-mă.", + "bookmark_instructions": "Click here to return to the last unread post in this thread.", "flag_title": "Semnalizează acest mesaj pentru moderare", "flag_confirm": "Ești sigur că vrei să semnalezi acest mesaj?", "flag_success": "Acest mesaj a fost semnalizat pentru moderare.", diff --git a/public/language/ro/user.json b/public/language/ro/user.json index 0049328679..66ec016f65 100644 --- a/public/language/ro/user.json +++ b/public/language/ro/user.json @@ -51,6 +51,7 @@ "confirm_password": "Confirmă Parola", "password": "Parolă", "username_taken_workaround": "Numele de utilizator pe care l-ai cerut este deja luat, așa că l-am modificat puțin. Acum ești cunoscut ca %1", + "password_same_as_username": "Your password is the same as your username, please select another password.", "upload_picture": "Uploadează poză", "upload_a_picture": "Uploadează o poză", "remove_uploaded_picture": "Remove Uploaded Picture", diff --git a/public/language/ru/category.json b/public/language/ru/category.json index 5e7d137248..347af2bd0e 100644 --- a/public/language/ru/category.json +++ b/public/language/ru/category.json @@ -2,7 +2,7 @@ "category": "Категория", "subcategories": "Подкатегории", "new_topic_button": "Создать тему", - "guest-login-post": "Войдите чтобы создавать сообщения", + "guest-login-post": "Войдите, чтобы создавать сообщения", "no_topics": "В этой категории еще нет тем.
Почему бы вам не создать первую?", "browsing": "просматривают", "no_replies": "Нет ответов", diff --git a/public/language/ru/email.json b/public/language/ru/email.json index 5a703c7cc8..bdd0b2869e 100644 --- a/public/language/ru/email.json +++ b/public/language/ru/email.json @@ -4,7 +4,7 @@ "invite": "Приглашение от %1", "greeting_no_name": "Здравствуйте!", "greeting_with_name": "Здравствуйте, %1!", - "welcome.text1": "Благодарим за регистрацию %1! ", + "welcome.text1": "Благодарим за регистрацию %1!", "welcome.text2": "Для активации Вашей учетной записи мы должны убедиться, что Вы указали верный email адрес.", "welcome.text3": "Администратор принял ваше заявление о регистрации. Теперь Вы можете авторизоваться используя Ваш логин/пароль.", "welcome.cta": "Перейдите по ссылке для подтверждения Вашего email", @@ -12,19 +12,19 @@ "invitation.ctr": "Нажмите здесь, чтобы создать учетную запись.", "reset.text1": "Мы получили запрос на сброс Вашего пароля. Если Вы не подавали запрос, пожалуйста, проигнорируйте это сообщение.", "reset.text2": "Для продолжения процедуры изменения пароля, пожалуйста, перейдите по ссылке:", - "reset.cta": "Кликните здесь для изменения пароля", + "reset.cta": "Нажмите здесь для изменения пароля", "reset.notify.subject": "Пароль был успешно изменен", - "reset.notify.text1": "Мы уведомляем вас о том, что %1 ваш пароль был успешно изменен. ", + "reset.notify.text1": "Мы уведомляем вас о том, что %1 ваш пароль был успешно изменен.", "reset.notify.text2": "Если вы не совершали этого действия, пожалуйста, незамедлительно свяжитесь с администратором.", "digest.notifications": "У Вас непрочитанные уведомления от %1:", "digest.latest_topics": "Последние темы %1", - "digest.cta": "Кликните здесь для просмотра %1", + "digest.cta": "Нажмите здесь для просмотра %1", "digest.unsub.info": "Вам была выслана сводка новостей в соответствии с Вашими настройками.", "digest.no_topics": "Нет активных тем за указанный период времени: %1", "notif.chat.subject": "Новое сообщение от %1", "notif.chat.cta": "Нажмите для продолжения диалога", "notif.chat.unsub.info": "Вы получили это уведомление в соответствии с настройками подписок.", - "notif.post.cta": "Кликните для просмотра всей темы.", + "notif.post.cta": "Нажмите для просмотра всей темы.", "notif.post.unsub.info": "Вы получили это уведомление согласно вашим настройкам подписки.", "test.text1": "Это тестовое сообщение для проверки почтового сервиса NodeBB.", "unsub.cta": "Изменить настройки", diff --git a/public/language/ru/error.json b/public/language/ru/error.json index 37278cec98..fe56136b43 100644 --- a/public/language/ru/error.json +++ b/public/language/ru/error.json @@ -5,7 +5,7 @@ "search-requires-login": "Поиск требует аккаунта - пожалуйста, войдите или зарегистрируйтесь.", "invalid-cid": "Неверный ID категории", "invalid-tid": "Неверный ID темы", - "invalid-pid": "Неверный ID поста", + "invalid-pid": "Неверный ID сообщения", "invalid-uid": "Неверный ID пользователя", "invalid-username": "Неверное имя пользователя", "invalid-email": "Неверный Email", @@ -25,7 +25,7 @@ "username-too-short": "Слишком короткое имя пользователя", "username-too-long": "Имя пользователя слишком длинное", "user-banned": "Пользователь заблокирован", - "user-too-new": "Вы можете написать свой первый пост через %1 сек.", + "user-too-new": "Вы можете написать свое первой сообщение через %1 сек.", "no-category": "Категория не существует", "no-topic": "Тема не существует", "no-post": "Сообщение не существует", @@ -38,20 +38,20 @@ "topic-locked": "Тема закрыта", "post-edit-duration-expired": "Сообщения можно редактировать только в течение %1 секунд(ы) после опубликования", "still-uploading": "Пожалуйста, подождите завершения загрузки.", - "content-too-short": "Слишком короткий пост. Минимум символов: %1.", - "content-too-long": "Слишком длинный пост. Максимум символов: %1.", - "title-too-short": "Слишком короткий заголовок. Минимум символов: %1.", + "content-too-short": "Слишком короткое сообщение. Минимум символов: %1.", + "content-too-long": "Слишком длинное сообщение. Максимум символов: %1.", + "title-too-short": "Слишком короткое сообщение. Минимум символов: %1.", "title-too-long": "Слишком длинный заголовок. Максимум символов: %1.", - "too-many-posts": "Вы можете делать пост только один раз в %1 сек.", - "too-many-posts-newbie": "Вы новый пользователь, поэтому можете делать пост раз в %1 сек., пока не заработаете %2 п. репутации.", + "too-many-posts": "Вы можете создавать сообщение только один раз в %1 сек.", + "too-many-posts-newbie": "Вы новый пользователь, поэтому можете создавать сообщение раз в %1 сек., пока не заработаете %2 п. репутации.", "tag-too-short": "Слишком короткий тэг. Минимум символов: %1.", "tag-too-long": "Слишком длинный тэг. Максимум символов: %1.", "not-enough-tags": "Не хватает тегов. Тема должна иметь как минимум %1 тег(ов)", "too-many-tags": "Слишком много тегов. Тема должна иметь не больше %1 тега(ов)", "file-too-big": "Слишком большой файл. Максимальный размер: %1 Кбайт.", - "cant-vote-self-post": "Вы не можете проголосовать за Ваш пост", - "already-favourited": "Вы уже добавили этот пост в избранное", - "already-unfavourited": "Вы уже удалили этот пост из избранного", + "cant-vote-self-post": "Вы не можете проголосовать за Ваше сообщение", + "already-favourited": "Вы уже добавили это сообщение в избранное", + "already-unfavourited": "Вы уже удалили это сообщение из избранного", "cant-ban-other-admins": "Вы не можете забанить других администраторов!", "cant-remove-last-admin": "Вы единственный администратор. Назначьте другого пользователя администратором, прежде чем складывать с себя полномочия админа", "invalid-image-type": "Неверный формат изображения. Поддерживаемые форматы: %1", @@ -64,11 +64,11 @@ "group-needs-owner": "У группы должен быть как минимум один владелец", "group-already-invited": "Этот пользователь уже был приглашен", "group-already-requested": "Вы уже предоставили запрос на вступление", - "post-already-deleted": "Этот пост уже удалён", - "post-already-restored": "Этот пост уже восстановлен", + "post-already-deleted": "Это сообщение уже удалёно", + "post-already-restored": "Это сообщение уже восстановлено", "topic-already-deleted": "Тема уже удалена", "topic-already-restored": "Тема уже восстановлена", - "cant-purge-main-post": "Вы не можете уничтожить главное сообщение темы, вместо этого, пожалуйста, удалите топик", + "cant-purge-main-post": "Вы не можете стереть главное сообщение темы, вместо этого, пожалуйста, удалите топик", "topic-thumbnails-are-disabled": "Иконки для темы запрещены", "invalid-file": "Неверный файл", "uploads-are-disabled": "Загрузка запрещена", @@ -81,8 +81,8 @@ "chat-message-too-long": "Слишком длинное сообщение чата", "reputation-system-disabled": "Система репутации отключена.", "downvoting-disabled": "Понижение оценки отключено", - "not-enough-reputation-to-downvote": "У Вас недостаточно репутации для понижения оценки поста", - "not-enough-reputation-to-flag": "У Вас недостаточно репутации, чтобы пометить этот пост.", + "not-enough-reputation-to-downvote": "У Вас недостаточно репутации для понижения оценки сообщения", + "not-enough-reputation-to-flag": "У Вас недостаточно репутации, чтобы пометить это сообщение.", "already-flagged": "Вы уже отметили это сообщение", "reload-failed": "NodeBB обнаружил проблему при перезагрузке: \"%1\". NodeBB продолжит работать с существующими ресурсами клиента, но Вы должны отменить то, что сделали перед перезагрузкой.", "registration-error": "Ошибка при регистрации", diff --git a/public/language/ru/modules.json b/public/language/ru/modules.json index 137dddf0bf..10d28eb8e0 100644 --- a/public/language/ru/modules.json +++ b/public/language/ru/modules.json @@ -20,7 +20,7 @@ "composer.hide_preview": "Скрыть предпросмотр", "composer.user_said_in": "%1 сказал %2:", "composer.user_said": "%1 сказал:", - "composer.discard": "Вы уверены, что хотите отказаться от этого поста?", + "composer.discard": "Вы уверены, что хотите отменить все изменения?", "composer.submit_and_lock": "Отправить и закрыть", "composer.toggle_dropdown": "Показать выпадающий список", "bootbox.ok": "ОК", diff --git a/public/language/ru/notifications.json b/public/language/ru/notifications.json index 37c5982fd1..48739abaeb 100644 --- a/public/language/ru/notifications.json +++ b/public/language/ru/notifications.json @@ -11,16 +11,16 @@ "new_notification": "Новое Уведомление", "you_have_unread_notifications": "У вас есть непрочитанные уведомления.", "new_message_from": "Новое сообщение от %1", - "upvoted_your_post_in": "%1 проголосовал за Ваш пост в %2.", - "moved_your_post": "%1 переместил Ваш пост.", + "upvoted_your_post_in": "%1 проголосовал за Ваше сообщение в %2.", + "moved_your_post": "%1 переместил Ваше сообщение.", "moved_your_topic": "%1 переместил Вашу тему.", - "favourited_your_post_in": "%1 добавил в избранное Ваш пост в %2.", - "user_flagged_post_in": "%1 пометил пост в %2", + "favourited_your_post_in": "%1 добавил в избранное Ваше сообщение в %2.", + "user_flagged_post_in": "%1 пометил сообщение в %2", "user_posted_to": "%1 ответил на запись: %2", "user_posted_topic": "%1 открыл новую тему: %2", "user_mentioned_you_in": "%1 упомянул Вас в %2", "user_started_following_you": "%1 подписался на Вас.", - "new_register": "%1 отправлен запрос на регистрацию.\n", + "new_register": "%1 отправлен запрос на регистрацию.", "email-confirmed": "Email подтвержден", "email-confirmed-message": "Спасибо за подтверждение Вашего Email-адреса. Ваш аккаунт активирован.", "email-confirm-error-message": "Ошибка проверки Email-адреса. Возможно, код неверен, либо у него истек срок действия.", diff --git a/public/language/ru/search.json b/public/language/ru/search.json index 8ca07bdccf..63ba852516 100644 --- a/public/language/ru/search.json +++ b/public/language/ru/search.json @@ -1,11 +1,11 @@ { - "results_matching": "%1 результатов по фразе \"%2\", (%3 секунды) ", + "results_matching": "%1 результатов по фразе \"%2\", (%3 секунды)", "no-matches": "Совпадений не найдено", "advanced-search": "Расширенный поиск", "in": "В", "titles": "Названия", "titles-posts": "Названия и сообщения", - "posted-by": "Написано ", + "posted-by": "Написано", "in-categories": "В разделах", "search-child-categories": "Искать во вложенных разделах", "reply-count": "Количество ответов", diff --git a/public/language/ru/tags.json b/public/language/ru/tags.json index 8d0ced97f2..3c0b92d37e 100644 --- a/public/language/ru/tags.json +++ b/public/language/ru/tags.json @@ -1,5 +1,5 @@ { - "no_tag_topics": "Нет топиков с таким тегом.", + "no_tag_topics": "Нет тем с таким тегом.", "tags": "Теги", "enter_tags_here": "Укажите теги здесь. %1-%2 символов. Нажимайте Enter после каждого тэга.", "enter_tags_here_short": "Введите теги...", diff --git a/public/language/ru/topic.json b/public/language/ru/topic.json index 74927ae6be..d86a7a2288 100644 --- a/public/language/ru/topic.json +++ b/public/language/ru/topic.json @@ -16,7 +16,7 @@ "guest-login-reply": "Войдите чтобы оставить сообщение", "edit": "Редактировать", "delete": "Удалить", - "purge": "Уничтожить", + "purge": "Стереть", "restore": "Восстановить", "move": "Перенести", "fork": "Ответвление", @@ -25,7 +25,7 @@ "tools": "Опции", "flag": "Отметить", "locked": "Закрыт", - "bookmark_instructions": "Нажмите здесь, чтобы вернутся, или закройте, чтобы отменить", + "bookmark_instructions": "Нажмите здесь чтобы вернуться к последнему непрочитанному сообщению в теме.", "flag_title": "Отметить сообщение для модерирования", "flag_confirm": "Вы уверены, что хотите отметить это сообщение?", "flag_success": "Это сообщение было помечено для модерации", @@ -35,7 +35,7 @@ "login_to_subscribe": "Пожалуйста зарегистрируйтесь, или войдите под своим аккаунтом, чтобы подписаться на эту тему.", "markAsUnreadForAll.success": "Тема помечена как непрочитанная для всех.", "watch": "Следить", - "unwatch": "Отписаться", + "unwatch": "Не следить", "watch.title": "Сообщать мне об ответах в этой теме", "unwatch.title": "Не сообщать мне об ответах в этой теме", "share_this_post": "Поделиться этим Сообщением", @@ -52,12 +52,12 @@ "thread_tools.delete_confirm": "Вы уверены, что хотите удалить тему?", "thread_tools.restore": "Восстановить тему", "thread_tools.restore_confirm": "Вы уверены, что хотите восстановить тему?", - "thread_tools.purge": "Очистить тему", - "thread_tools.purge_confirm": "Вы уверены, что хотите очистить эту тему?", + "thread_tools.purge": "Стереть тему", + "thread_tools.purge_confirm": "Вы уверены, что хотите стереть эту тему?", "topic_move_success": "Эта тема успешно перемещена в %1", "post_delete_confirm": "Вы уверены, что хотите удалить это сообщение?", "post_restore_confirm": "Вы уверены, что хотите восстановить это сообщение?", - "post_purge_confirm": "Вы уверены, что хотите уничтожить это сообщение?", + "post_purge_confirm": "Вы уверены, что хотите стереть это сообщение?", "load_categories": "Загружаем категории", "disabled_categories_note": "Отключенные категории затемнены", "confirm_move": "Перенести", diff --git a/public/language/ru/user.json b/public/language/ru/user.json index 16306c6e89..dfa38d41c1 100644 --- a/public/language/ru/user.json +++ b/public/language/ru/user.json @@ -51,6 +51,7 @@ "confirm_password": "Подтвердите пароль", "password": "Пароль", "username_taken_workaround": "Логин, который Вы запросили, уже занят. Мы его немного изменили. Теперь Ваш логин %1", + "password_same_as_username": "Ваш пароль совпадает с именем пользователя, пожалуйста выберете другой пароль.", "upload_picture": "Загрузить фотографию", "upload_a_picture": "Загрузить фотографию", "remove_uploaded_picture": "Удалить загруженные фотографии", @@ -88,7 +89,7 @@ "grouptitle": "Выберите бейдж группы для отображения", "no-group-title": "Не показывать бейдж", "select-skin": "Выбрать скин", - "sso.title": "Сервис единого входа*(https://ru.wikipedia.org/wiki/%D0%A2%D0%B5%D1%85%D0%BD%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D1%8F_%D0%B5%D0%B4%D0%B8%D0%BD%D0%BE%D0%B3%D0%BE_%D0%B2%D1%85%D0%BE%D0%B4%D0%B0)", + "sso.title": "Сервис единого входа", "sso.associated": "Связан с", "sso.not-associated": "Нажмите здесь, что бы связать себя с" } \ No newline at end of file diff --git a/public/language/ru/users.json b/public/language/ru/users.json index dab85b910b..5f3a997f60 100644 --- a/public/language/ru/users.json +++ b/public/language/ru/users.json @@ -5,7 +5,7 @@ "search": "Поиск", "enter_username": "Введите имя пользователя для поиска", "load_more": "Загрузить еще", - "users-found-search-took": "Найдено %1 пользователя(ей). Поиск занял %2 секунд. ", + "users-found-search-took": "Найдено %1 пользователя(ей). Поиск занял %2 секунд.", "filter-by": "Сортировать по", "online-only": "Только онлайн", "picture-only": "Только с аватаром", @@ -16,6 +16,6 @@ "popular_topics": "Популярные темы", "unread_topics": "Непрочитанные темы", "categories": "Категории", - "tags": "Тэги", + "tags": "Теги", "map": "Карта" } \ No newline at end of file diff --git a/public/language/rw/topic.json b/public/language/rw/topic.json index 6e4804ed8b..06059ab9e4 100644 --- a/public/language/rw/topic.json +++ b/public/language/rw/topic.json @@ -25,7 +25,7 @@ "tools": "Ibikoresho", "flag": "Tambikana", "locked": "Birafungiranye", - "bookmark_instructions": "Kanda hano kugirango ugezwe aho wari ugeze usoma. Niba utabishaka, wafunga aka kadirishya. ", + "bookmark_instructions": "Click here to return to the last unread post in this thread.", "flag_title": "Bimenyeshe ubuyobozi", "flag_confirm": "Wiringiye neza ko ushaka kumenyesha ibi ubuyobozi? ", "flag_success": "Bimaze kumenyeshwa ubuyobozi ngo bikurikiranwe. ", diff --git a/public/language/rw/user.json b/public/language/rw/user.json index c9e207788d..e53cf8e1d8 100644 --- a/public/language/rw/user.json +++ b/public/language/rw/user.json @@ -51,6 +51,7 @@ "confirm_password": "Emeza Ijambobanga", "password": "Ijambobanga", "username_taken_workaround": "Izina ushaka kujya ukoresha twasanze ryarafashwe. Ntugire impungenge kuko twakuboneye iryo byenda kumera kimwe. Uzaba uzwi ku izina rya %1", + "password_same_as_username": "Your password is the same as your username, please select another password.", "upload_picture": "Gushyiraho ifoto", "upload_a_picture": "Shyiraho ifoto", "remove_uploaded_picture": "Remove Uploaded Picture", diff --git a/public/language/sc/topic.json b/public/language/sc/topic.json index 206ecf6465..7c2dc9db24 100644 --- a/public/language/sc/topic.json +++ b/public/language/sc/topic.json @@ -25,7 +25,7 @@ "tools": "Ainas", "flag": "Signala", "locked": "Locked", - "bookmark_instructions": "Carca inoghe pro torrare a s'ùrtimu logu o serra pro no aprovare.", + "bookmark_instructions": "Click here to return to the last unread post in this thread.", "flag_title": "Signala custu arresonu pro sa moderatzione", "flag_confirm": "Are you sure you want to flag this post?", "flag_success": "This post has been flagged for moderation.", diff --git a/public/language/sc/user.json b/public/language/sc/user.json index 49aecbd66d..c953713da5 100644 --- a/public/language/sc/user.json +++ b/public/language/sc/user.json @@ -51,6 +51,7 @@ "confirm_password": "Cunfirma Password", "password": "Password", "username_taken_workaround": "The username you requested was already taken, so we have altered it slightly. You are now known as %1", + "password_same_as_username": "Your password is the same as your username, please select another password.", "upload_picture": "Càrriga immàgine", "upload_a_picture": "Càrriga un'immàgine", "remove_uploaded_picture": "Remove Uploaded Picture", diff --git a/public/language/sk/topic.json b/public/language/sk/topic.json index 108ab80c20..4a81a78f15 100644 --- a/public/language/sk/topic.json +++ b/public/language/sk/topic.json @@ -25,7 +25,7 @@ "tools": "Nástroje", "flag": "Označiť", "locked": "Locked", - "bookmark_instructions": "Vrátiť sa na Vašu poslednú pozíciu v príspevku alebo zatvoriť pripomienku.", + "bookmark_instructions": "Click here to return to the last unread post in this thread.", "flag_title": "Označiť príspevok pre moderáciu", "flag_confirm": "Ste si istý, že chcete označit tento príspevok?", "flag_success": "Tento príspevok bol označený na úpravu. ", diff --git a/public/language/sk/user.json b/public/language/sk/user.json index 3a7c75e4a4..7b39e98986 100644 --- a/public/language/sk/user.json +++ b/public/language/sk/user.json @@ -51,6 +51,7 @@ "confirm_password": "Potvrdenie hesla", "password": "Heslo", "username_taken_workaround": "Vaše požadované prihlasovacie meno je už obsadené, tak sme si ho dovolili mierne upraviť. Budeme Vás evidovať ako %1", + "password_same_as_username": "Your password is the same as your username, please select another password.", "upload_picture": "Nahrať obrázok", "upload_a_picture": "Nahrať obrázok", "remove_uploaded_picture": "Remove Uploaded Picture", diff --git a/public/language/sr/topic.json b/public/language/sr/topic.json index 76098c8a82..25ba18bb76 100644 --- a/public/language/sr/topic.json +++ b/public/language/sr/topic.json @@ -25,7 +25,7 @@ "tools": "Алатке", "flag": "Означи", "locked": "Закључан", - "bookmark_instructions": "Click here to return to your last position or close to discard.", + "bookmark_instructions": "Click here to return to the last unread post in this thread.", "flag_title": "Flag this post for moderation", "flag_confirm": "Are you sure you want to flag this post?", "flag_success": "This post has been flagged for moderation.", diff --git a/public/language/sr/user.json b/public/language/sr/user.json index 08c42750c9..089b83a7e0 100644 --- a/public/language/sr/user.json +++ b/public/language/sr/user.json @@ -51,6 +51,7 @@ "confirm_password": "Потврда лозинке", "password": "Лозинка", "username_taken_workaround": "The username you requested was already taken, so we have altered it slightly. You are now known as %1", + "password_same_as_username": "Your password is the same as your username, please select another password.", "upload_picture": "Upload picture", "upload_a_picture": "Upload a picture", "remove_uploaded_picture": "Remove Uploaded Picture", diff --git a/public/language/sv/topic.json b/public/language/sv/topic.json index 15befb34f1..07175a083b 100644 --- a/public/language/sv/topic.json +++ b/public/language/sv/topic.json @@ -25,7 +25,7 @@ "tools": "Verktyg", "flag": "Rapportera", "locked": "Låst", - "bookmark_instructions": "Klicka här för att återgå till den senaste positionen eller stäng för att kasta.", + "bookmark_instructions": "Click here to return to the last unread post in this thread.", "flag_title": "Rapportera detta inlägg för granskning", "flag_confirm": "Är du säker på att du vill flagga det här inlägget?", "flag_success": "Det här inlägget har flaggats för moderering.", diff --git a/public/language/sv/user.json b/public/language/sv/user.json index 08260fbd34..cd3d10eb8d 100644 --- a/public/language/sv/user.json +++ b/public/language/sv/user.json @@ -51,6 +51,7 @@ "confirm_password": "Bekräfta lösenord", "password": "Lösenord", "username_taken_workaround": "Användarnamnet är redan upptaget, så vi förändrade det lite. Du kallas nu för %1", + "password_same_as_username": "Your password is the same as your username, please select another password.", "upload_picture": "Ladda upp bild", "upload_a_picture": "Ladda upp en bild", "remove_uploaded_picture": "Remove Uploaded Picture", diff --git a/public/language/th/topic.json b/public/language/th/topic.json index 15d1718498..feca2d753d 100644 --- a/public/language/th/topic.json +++ b/public/language/th/topic.json @@ -25,7 +25,7 @@ "tools": "เครื่องมือ", "flag": "ปักธง", "locked": "Locked", - "bookmark_instructions": "คลิกที่นี่เพื่อกลับคืนสู่ฐานะสุดท้าย หรือ คลิกปิดเพื่อยกเลิก", + "bookmark_instructions": "Click here to return to the last unread post in this thread.", "flag_title": "ปักธงโพสต์นี้เพื่อดำเนินการ", "flag_confirm": "มั่นใจแล้วหรือไม่ที่จะ Flag Post นี้?", "flag_success": "This post has been flagged for moderation.", diff --git a/public/language/th/user.json b/public/language/th/user.json index 8ba7ea1a9c..389beaed70 100644 --- a/public/language/th/user.json +++ b/public/language/th/user.json @@ -51,6 +51,7 @@ "confirm_password": "ยืนยันรหัสผ่าน", "password": "รหัสผ่าน", "username_taken_workaround": "ชื่อนี้มีคนใช้แล้ว เราเลยแก้ไขชื่อคุณ โดยคุณจะถูกรู้จักในชื่อ %1", + "password_same_as_username": "Your password is the same as your username, please select another password.", "upload_picture": "อัปโหลดรูป", "upload_a_picture": "อัปโหลดรูป", "remove_uploaded_picture": "Remove Uploaded Picture", diff --git a/public/language/tr/topic.json b/public/language/tr/topic.json index f5a42a48d2..3f50d42239 100644 --- a/public/language/tr/topic.json +++ b/public/language/tr/topic.json @@ -25,7 +25,7 @@ "tools": "Araçlar", "flag": "Bayrak", "locked": "Kilitli", - "bookmark_instructions": "En son kaldığınız yere dönmek için buraya tıklayın.", + "bookmark_instructions": "Click here to return to the last unread post in this thread.", "flag_title": "Bu iletiyi moderatöre haber et", "flag_confirm": "Bu iletiyi yöneticilere bildirmek istiyor musun?", "flag_success": "Bu ileti yöneticilere bildirildi.", diff --git a/public/language/tr/user.json b/public/language/tr/user.json index f6c4cfb4ca..ced803280f 100644 --- a/public/language/tr/user.json +++ b/public/language/tr/user.json @@ -51,6 +51,7 @@ "confirm_password": "Şifreyi Onayla", "password": "Şifre", "username_taken_workaround": "İstediğiniz kullanıcı ismi zaten alınmış, bu yüzden biraz degiştirdik. Şimdiki kullanıcı isminiz %1", + "password_same_as_username": "Your password is the same as your username, please select another password.", "upload_picture": "Resim Yükle", "upload_a_picture": "Bir Resim Yükle", "remove_uploaded_picture": "Yüklenmiş fotoğrafı kaldır", diff --git a/public/language/vi/topic.json b/public/language/vi/topic.json index b4db088e72..8fa016f673 100644 --- a/public/language/vi/topic.json +++ b/public/language/vi/topic.json @@ -25,7 +25,7 @@ "tools": "Công cụ", "flag": "Flag", "locked": "Khóa", - "bookmark_instructions": "Bấm vào đây để quay về hoặc đóng lại để hủy", + "bookmark_instructions": "Click here to return to the last unread post in this thread.", "flag_title": "Flag bài viết này để chỉnh sửa", "flag_confirm": "Bạn có chắc là muốn flag bài viết này không?", "flag_success": "Chủ đề này đã được flag để chỉnh sửa", diff --git a/public/language/vi/user.json b/public/language/vi/user.json index 5616494982..1f988e3854 100644 --- a/public/language/vi/user.json +++ b/public/language/vi/user.json @@ -51,6 +51,7 @@ "confirm_password": "Xác nhận mật khẩu", "password": "Mật khẩu", "username_taken_workaround": "Tên truy cập này đã tồn tại, vì vậy chúng tôi đã sửa đổi nó một chút. Tên truy cập của bạn giờ là %1", + "password_same_as_username": "Your password is the same as your username, please select another password.", "upload_picture": "Tải lên hình ảnh", "upload_a_picture": "Tải lên một hình ảnh", "remove_uploaded_picture": "Remove Uploaded Picture", diff --git a/public/language/zh_CN/topic.json b/public/language/zh_CN/topic.json index 77b4b80922..49dbf6ccfe 100644 --- a/public/language/zh_CN/topic.json +++ b/public/language/zh_CN/topic.json @@ -25,7 +25,7 @@ "tools": "工具", "flag": "举报", "locked": "已锁定", - "bookmark_instructions": "点击这里返回您最后浏览的位置。", + "bookmark_instructions": "点击这里返回最新的未读回帖。", "flag_title": "举报此帖", "flag_confirm": "您确认要举报此帖吗?", "flag_success": "已举报此回帖。", diff --git a/public/language/zh_CN/user.json b/public/language/zh_CN/user.json index 3694d0d07d..f478ec4f37 100644 --- a/public/language/zh_CN/user.json +++ b/public/language/zh_CN/user.json @@ -51,6 +51,7 @@ "confirm_password": "确认密码", "password": "密码", "username_taken_workaround": "您申请的用户名已被占用,所以我们稍作更改。您现在的用户名是 %1", + "password_same_as_username": "您的密码与用户名相同,请选择另外的密码。", "upload_picture": "上传头像", "upload_a_picture": "上传头像", "remove_uploaded_picture": "删除已上传的头像", @@ -88,7 +89,7 @@ "grouptitle": "选择展示的小组称号", "no-group-title": "不展示小组称号", "select-skin": "选择皮肤", - "sso.title": "Single Sign-on Services", - "sso.associated": "Associated with", - "sso.not-associated": "Click here to associate with" + "sso.title": "单点登录服务", + "sso.associated": "关联到", + "sso.not-associated": "点击这里关联" } \ No newline at end of file diff --git a/public/language/zh_TW/topic.json b/public/language/zh_TW/topic.json index f227f41050..dce8fa0cf4 100644 --- a/public/language/zh_TW/topic.json +++ b/public/language/zh_TW/topic.json @@ -25,7 +25,7 @@ "tools": "工具", "flag": "檢舉", "locked": "已鎖定", - "bookmark_instructions": "點擊這裡返回到您的最後的位置或離開放棄", + "bookmark_instructions": "Click here to return to the last unread post in this thread.", "flag_title": "檢舉這篇文章, 交給仲裁者來審閱.", "flag_confirm": "你確定要檢舉這文章嗎?", "flag_success": "這文章已經被檢舉要求仲裁.", diff --git a/public/language/zh_TW/user.json b/public/language/zh_TW/user.json index a555c69204..a75e3ca4b6 100644 --- a/public/language/zh_TW/user.json +++ b/public/language/zh_TW/user.json @@ -51,6 +51,7 @@ "confirm_password": "確認密碼", "password": "密碼", "username_taken_workaround": "您所註冊的使用者名稱已經被使用了,所以我們將它略微改變。你現在改稱 %1", + "password_same_as_username": "Your password is the same as your username, please select another password.", "upload_picture": "上傳頭像", "upload_a_picture": "上傳一張照片", "remove_uploaded_picture": "Remove Uploaded Picture", diff --git a/public/less/admin/general/navigation.less b/public/less/admin/general/navigation.less index 929e9afa0b..1353d35013 100644 --- a/public/less/admin/general/navigation.less +++ b/public/less/admin/general/navigation.less @@ -2,7 +2,7 @@ #navigation { - #main-nav { + #active-navigation { .active { background-color: #eee; } diff --git a/public/less/admin/manage/categories.less b/public/less/admin/manage/categories.less index b9be869550..7fe30eccba 100644 --- a/public/less/admin/manage/categories.less +++ b/public/less/admin/manage/categories.less @@ -71,7 +71,7 @@ div.categories { } .information { - float: left; + padding-left: 70px; } .category-header { diff --git a/public/src/admin/general/navigation.js b/public/src/admin/general/navigation.js index c15a6717e7..b7be36d576 100644 --- a/public/src/admin/general/navigation.js +++ b/public/src/admin/general/navigation.js @@ -10,19 +10,19 @@ define('admin/general/navigation', ['translator', 'iconSelect'], function(transl $('#enabled').html(translator.unescape($('#enabled').html())); - $('#main-nav').html(translator.unescape($('#main-nav').html())); + $('#active-navigation').html(translator.unescape($('#active-navigation').html())); translator.translate(translator.unescape($('#available').html()), function(html) { $('#available').html(html) .find('li .drag-item').draggable({ - connectToSortable: '#main-nav', + connectToSortable: '#active-navigation', helper: 'clone', distance: 10, stop: drop }); }); - $('#main-nav').sortable().droppable({ + $('#active-navigation').sortable().droppable({ accept: $('#available li .drag-item') }); @@ -31,12 +31,12 @@ define('admin/general/navigation', ['translator', 'iconSelect'], function(transl iconSelect.init(iconEl, function(el) { var newIconClass = el.attr('value'); var index = iconEl.parents('[data-index]').attr('data-index'); - $('#main-nav [data-index="' + index + '"] i').attr('class', 'fa fa-fw ' + newIconClass); + $('#active-navigation [data-index="' + index + '"] i').attr('class', 'fa fa-fw ' + newIconClass); iconEl.siblings('[name="iconClass"]').val(newIconClass); }); }); - $('#main-nav').on('click', 'li', onSelect); + $('#active-navigation').on('click', 'li', onSelect); $('#enabled') .on('click', '.delete', remove) @@ -47,7 +47,7 @@ define('admin/general/navigation', ['translator', 'iconSelect'], function(transl function onSelect() { var clickedIndex = $(this).attr('data-index'); - $('#main-nav li').removeClass('active'); + $('#active-navigation li').removeClass('active'); $(this).addClass('active'); var detailsForm = $('#enabled').children('[data-index="' + clickedIndex + '"]'); @@ -61,7 +61,7 @@ define('admin/general/navigation', ['translator', 'iconSelect'], function(transl function drop(ev, ui) { var id = ui.helper.attr('data-id'), - el = $('#main-nav [data-id="' + id + '"]'), + el = $('#active-navigation [data-id="' + id + '"]'), data = id === 'custom' ? {iconClass: 'fa-navicon'} : available[id]; data.enabled = false; @@ -83,7 +83,7 @@ define('admin/general/navigation', ['translator', 'iconSelect'], function(transl var nav = []; var indices = []; - $('#main-nav li').each(function() { + $('#active-navigation li').each(function() { indices.push($(this).attr('data-index')); }); @@ -123,7 +123,7 @@ define('admin/general/navigation', ['translator', 'iconSelect'], function(transl function remove() { var index = $(this).parents('[data-index]').attr('data-index'); - $('#main-nav [data-index="' + index + '"]').remove(); + $('#active-navigation [data-index="' + index + '"]').remove(); $('#enabled [data-index="' + index + '"]').remove(); return false; } diff --git a/public/src/app.js b/public/src/app.js index 2114c6b627..e2265fbe24 100644 --- a/public/src/app.js +++ b/public/src/app.js @@ -159,8 +159,9 @@ app.cacheBuster = null; } } - app.createUserTooltips = function() { - $('img[title].teaser-pic,img[title].user-img,div.user-icon').each(function() { + app.createUserTooltips = function(els) { + els = els || $('body'); + els.find('img[title].teaser-pic,img[title].user-img,div.user-icon').each(function() { $(this).tooltip({ placement: 'top', title: $(this).attr('title') diff --git a/public/src/client/account/edit.js b/public/src/client/account/edit.js index 6b4159d9d9..81e8896434 100644 --- a/public/src/client/account/edit.js +++ b/public/src/client/account/edit.js @@ -4,11 +4,13 @@ define('forum/account/edit', ['forum/account/header', 'uploader', 'translator'], function(header, uploader, translator) { var AccountEdit = {}, + gravatarPicture = '', uploadedPicture = '', selectedImageType = '', currentEmail; AccountEdit.init = function() { + gravatarPicture = ajaxify.data.gravatarpicture; uploadedPicture = ajaxify.data.uploadedpicture; header.init(); @@ -27,12 +29,10 @@ define('forum/account/edit', ['forum/account/header', 'uploader', 'translator'], handleImageChange(); handleAccountDelete(); - handleImageUpload(); handleEmailConfirm(); handlePasswordChange(); updateSignature(); updateAboutMe(); - updateImages(); }; function updateProfile() { @@ -59,9 +59,14 @@ define('forum/account/edit', ['forum/account/header', 'uploader', 'translator'], $('#user-current-picture').attr('src', data.picture); } + if (data.gravatarpicture) { + $('#user-gravatar-picture').attr('src', data.gravatarpicture); + gravatarPicture = data.gravatarpicture; + } + if (data.userslug) { var oldslug = $('.account-username-box').attr('data-userslug'); - $('.account-username-box a').each(function(index) { + $('.account-username-box a').each(function() { $(this).attr('href', $(this).attr('href').replace(oldslug, data.userslug)); }); @@ -73,25 +78,20 @@ define('forum/account/edit', ['forum/account/header', 'uploader', 'translator'], $('#confirm-email').removeClass('hide'); } - updateHeader(userData.username, data.userslug); + updateHeader(data.picture, userData.username, data.userslug); }); return false; } - function updateHeader(username, userslug) { + function updateHeader(picture, username, userslug) { require(['components'], function(components) { if (parseInt(ajaxify.data.theirid, 10) !== parseInt(ajaxify.data.yourid, 10)) { return; } - // Update the picture - if (ajaxify.data.picture !== null) { - components.get('header/usericon').hide(); - components.get('header/userpicture').prop('src', ajaxify.data.picture).show(); - } else { - components.get('header/userpicture').hide(); - components.get('header/usericon').show(); + if (picture) { + components.get('header/userpicture').attr('src', picture); } if (username && userslug) { @@ -102,43 +102,78 @@ define('forum/account/edit', ['forum/account/header', 'uploader', 'translator'], } function handleImageChange() { - function selectImageType(type) { - $('#default-box .fa-check').toggle(type === 'default'); - $('#uploaded-box .fa-check').toggle(type === 'uploaded'); - selectedImageType = type; - } $('#changePictureBtn').on('click', function() { - selectedImageType = ''; - updateImages(); + templates.parse('partials/modals/change_picture_modal', {uploadedpicture: uploadedPicture}, function(html) { + translator.translate(html, function(html) { + function updateImages() { + var currentPicture = $('#user-current-picture').attr('src'); - $('#change-picture-modal').modal('show'); - $('#change-picture-modal').removeClass('hide'); + if (gravatarPicture) { + modal.find('#user-gravatar-picture').attr('src', gravatarPicture); + } - return false; - }); + if (uploadedPicture) { + modal.find('#user-uploaded-picture').attr('src', uploadedPicture); + } - $('#default-box').on('click', function() { - selectImageType('default'); - }); + modal.find('#gravatar-box').toggle(!!gravatarPicture); + modal.find('#uploaded-box').toggle(!!uploadedPicture); - $('#uploaded-box').on('click', function() { - selectImageType('uploaded'); - }); + modal.find('#gravatar-box .fa-check').toggle(currentPicture !== uploadedPicture); + modal.find('#uploaded-box .fa-check').toggle(currentPicture === uploadedPicture); + } - $('#savePictureChangesBtn').on('click', function() { - $('#change-picture-modal').modal('hide'); + function selectImageType(type) { + modal.find('#gravatar-box .fa-check').toggle(type === 'gravatar'); + modal.find('#uploaded-box .fa-check').toggle(type === 'uploaded'); + selectedImageType = type; + } - if (!selectedImageType) { - return; - } - changeUserPicture(selectedImageType, function(err) { - if (err) { - return app.alertError(err.message); - } + var modal = $(html); + modal.on('hidden.bs.modal', function() { + modal.remove(); + }); + selectedImageType = ''; + updateImages(); + + modal.modal('show'); + + modal.find('#gravatar-box').on('click', function() { + selectImageType('gravatar'); + }); + + modal.find('#uploaded-box').on('click', function() { + selectImageType('uploaded'); + }); + + handleImageUpload(modal); - ajaxify.refresh(null, updateHeader); + modal.find('#savePictureChangesBtn').on('click', function() { + + modal.modal('hide'); + + if (!selectedImageType) { + return; + } + changeUserPicture(selectedImageType, function(err) { + if (err) { + return app.alertError(err.message); + } + + if (selectedImageType === 'gravatar') { + $('#user-current-picture').attr('src', gravatarPicture); + updateHeader(gravatarPicture); + } else if (selectedImageType === 'uploaded') { + $('#user-current-picture').attr('src', uploadedPicture); + updateHeader(uploadedPicture); + } + }); + }); + }); }); + + return false; }); } @@ -170,32 +205,23 @@ define('forum/account/edit', ['forum/account/header', 'uploader', 'translator'], }); } - function handleImageUpload() { + function handleImageUpload(modal) { function onUploadComplete(urlOnServer) { urlOnServer = urlOnServer + '?' + new Date().getTime(); $('#user-current-picture').attr('src', urlOnServer); - $('#user-uploaded-picture').attr('src', urlOnServer); - updateHeader(); + updateHeader(urlOnServer); uploadedPicture = urlOnServer; - $('#removeUploadedPictureBtn').removeClass('hide'); } function onRemoveComplete(urlOnServer) { $('#user-current-picture').attr('src', urlOnServer); - $('#user-uploaded-picture').attr('src', ''); - updateHeader(); + updateHeader(urlOnServer); uploadedPicture = ''; - $('#removeUploadedPictureBtn').addClass('hide'); } - $('#upload-picture-modal').on('hide', function() { - $('#userPhotoInput').val(''); - }); - - $('#uploadPictureBtn').on('click', function() { - - $('#change-picture-modal').modal('hide'); + modal.find('#uploadPictureBtn').on('click', function() { + modal.modal('hide'); uploader.open(config.relative_path + '/api/user/' + ajaxify.data.userslug + '/uploadpicture', {}, config.maximumProfileImageSize, function(imageUrlOnServer) { onUploadComplete(imageUrlOnServer); }); @@ -203,39 +229,44 @@ define('forum/account/edit', ['forum/account/header', 'uploader', 'translator'], return false; }); - $('#uploadFromUrlBtn').on('click', function() { - $('#change-picture-modal').modal('hide'); - var uploadModal = $('#upload-picture-from-url-modal'); - uploadModal.modal('show').removeClass('hide'); + modal.find('#uploadFromUrlBtn').on('click', function() { + modal.modal('hide'); + templates.parse('partials/modals/upload_picture_from_url_modal', {}, function(html) { + translator.translate(html, function(html) { + var uploadModal = $(html); + uploadModal.modal('show'); + + uploadModal.find('.upload-btn').on('click', function() { + var url = uploadModal.find('#uploadFromUrl').val(); + if (!url) { + return; + } + socket.emit('user.uploadProfileImageFromUrl', {url: url, uid: ajaxify.data.theirid}, function(err, imageUrlOnServer) { + if (err) { + return app.alertError(err.message); + } + onUploadComplete(imageUrlOnServer); - uploadModal.find('.upload-btn').on('click', function() { - var url = uploadModal.find('#uploadFromUrl').val(); - if (!url) { - return; - } - socket.emit('user.uploadProfileImageFromUrl', {url: url, uid: ajaxify.data.theirid}, function(err, imageUrlOnServer) { - if (err) { - return app.alertError(err.message); - } - onUploadComplete(imageUrlOnServer); + uploadModal.modal('hide'); + }); - uploadModal.modal('hide'); + return false; + }); }); - - return false; }); + return false; }); - $('#removeUploadedPictureBtn').on('click', function() { + modal.find('#removeUploadedPictureBtn').on('click', function() { socket.emit('user.removeUploadedPicture', {uid: ajaxify.data.theirid}, function(err, imageUrlOnServer) { + modal.modal('hide'); if (err) { return app.alertError(err.message); } onRemoveComplete(imageUrlOnServer); - $('#change-picture-modal').modal('hide'); }); - }) + }); } function handleEmailConfirm() { @@ -340,20 +371,6 @@ define('forum/account/edit', ['forum/account/header', 'uploader', 'translator'], }, callback); } - function updateImages() { - var currentPicture = $('#user-current-picture').attr('src'); - - if (uploadedPicture) { - $('#user-uploaded-picture').attr('src', uploadedPicture); - } - - $('#default-box').toggle(true).find('.user-icon').css('background-color', ajaxify.data['icon:bgColor']).text(ajaxify.data['username'].slice(0, 1).toUpperCase()); - $('#uploaded-box').toggle(!!uploadedPicture); - - $('#default-box .fa-check').toggle(currentPicture !== uploadedPicture); - $('#uploaded-box .fa-check').toggle(currentPicture === uploadedPicture); - } - function getCharsLeft(el, max) { return el.length ? '(' + el.val().length + '/' + max + ')' : ''; } @@ -396,4 +413,4 @@ define('forum/account/edit', ['forum/account/header', 'uploader', 'translator'], } return AccountEdit; -}); +}); \ No newline at end of file diff --git a/public/src/client/register.js b/public/src/client/register.js index 25d76a73fe..099b31c087 100644 --- a/public/src/client/register.js +++ b/public/src/client/register.js @@ -16,6 +16,8 @@ define('forum/register', ['csrf', 'translator'], function(csrf, translator) { register = $('#register'), agreeTerms = $('#agree-terms'); + handleLanguageOverride(); + $('#referrer').val(app.previousUrl); email.on('blur', function() { @@ -223,6 +225,14 @@ define('forum/register', ['csrf', 'translator'], function(csrf, translator) { }); } + function handleLanguageOverride() { + if (!app.user.uid && config.defaultLang !== config.userLang) { + var formEl = $('[component="register/local"]'), + langEl = $(''); + + formEl.append(langEl); + } + } return Register; }); diff --git a/public/src/client/topic.js b/public/src/client/topic.js index b8a60ceef3..89b6e30a1d 100644 --- a/public/src/client/topic.js +++ b/public/src/client/topic.js @@ -1,7 +1,7 @@ 'use strict'; -/* globals define, app, templates, socket, bootbox, config, ajaxify, RELATIVE_PATH, utils */ +/* globals define, app, socket, config, ajaxify, RELATIVE_PATH, utils */ define('forum/topic', [ 'forum/pagination', @@ -13,9 +13,8 @@ define('forum/topic', [ 'forum/topic/posts', 'navigator', 'sort', - 'components', - 'translator' -], function(pagination, infinitescroll, threadTools, postTools, events, browsing, posts, navigator, sort, components, translator) { + 'components' +], function(pagination, infinitescroll, threadTools, postTools, events, browsing, posts, navigator, sort, components) { var Topic = {}, currentUrl = ''; @@ -247,27 +246,6 @@ define('forum/topic', [ return 1; } - var bookmarkKey = 'topic:' + ajaxify.data.tid + ':bookmark'; - var currentBookmark = ajaxify.data.bookmark || localStorage.getItem(bookmarkKey); - - if (!currentBookmark || parseInt(index, 10) > parseInt(currentBookmark, 10)) { - if (app.user.uid) { - socket.emit('topics.bookmark', { - 'tid': ajaxify.data.tid, - 'index': index - }, function(err) { - ajaxify.data.bookmark = index; - }); - } else { - localStorage.setItem(bookmarkKey, index); - } - } - - // removes the bookmark alert when we get to / past the bookmark - if (!currentBookmark || parseInt(index, 10) >= parseInt(currentBookmark, 10)) { - app.removeAlert('bookmark'); - } - if (!navigator.scrollActive) { var parts = ajaxify.removeRelativePath(window.location.pathname.slice(1)).split('/'); var topicId = parts[1], @@ -283,6 +261,9 @@ define('forum/topic', [ } Topic.replaceURLTimeout = setTimeout(function() { + + updateUserBookmark(index); + Topic.replaceURLTimeout = 0; if (history.replaceState) { var search = (window.location.search ? window.location.search : ''); @@ -296,6 +277,33 @@ define('forum/topic', [ } }; + function updateUserBookmark(index) { + var bookmarkKey = 'topic:' + ajaxify.data.tid + ':bookmark'; + var currentBookmark = ajaxify.data.bookmark || localStorage.getItem(bookmarkKey); + + if (!currentBookmark || parseInt(index, 10) > parseInt(currentBookmark, 10)) { + if (app.user.uid) { + socket.emit('topics.bookmark', { + 'tid': ajaxify.data.tid, + 'index': index + }, function(err) { + if (err) { + return app.alertError(err.message); + } + ajaxify.data.bookmark = index; + }); + } else { + localStorage.setItem(bookmarkKey, index); + } + } + + // removes the bookmark alert when we get to / past the bookmark + if (!currentBookmark || parseInt(index, 10) >= parseInt(currentBookmark, 10)) { + app.removeAlert('bookmark'); + } + + } + return Topic; }); diff --git a/public/src/client/topic/events.js b/public/src/client/topic/events.js index 893a2cc9f6..fe9196e7fb 100644 --- a/public/src/client/topic/events.js +++ b/public/src/client/topic/events.js @@ -99,15 +99,19 @@ define('forum/topic/events', [ } var editedPostEl = components.get('post/content', data.post.pid), editorEl = $('[data-pid="' + data.post.pid + '"] [component="post/editor"]'), - topicTitle = components.get('topic/title'); + topicTitle = components.get('topic/title'), + breadCrumb = components.get('breadcrumb/current'); - if (topicTitle.length && data.topic.title) { + if (topicTitle.length && data.topic.title && topicTitle.html() !== data.topic.title) { var newUrl = 'topic/' + data.topic.slug + (window.location.search ? window.location.search : ''); history.replaceState({url: newUrl}, null, window.location.protocol + '//' + window.location.host + config.relative_path + '/' + newUrl); topicTitle.fadeOut(250, function() { topicTitle.html(data.topic.title).fadeIn(250); }); + breadCrumb.fadeOut(250, function() { + breadCrumb.html(data.topic.title).fadeIn(250); + }); } editedPostEl.fadeOut(250, function() { diff --git a/public/src/client/topic/postTools.js b/public/src/client/topic/postTools.js index 2492b300b6..002849f167 100644 --- a/public/src/client/topic/postTools.js +++ b/public/src/client/topic/postTools.js @@ -135,55 +135,67 @@ define('forum/topic/postTools', ['share', 'navigator', 'components', 'translator } function onReplyClicked(button, tid, topicName) { - var selectionText = '', - selection = window.getSelection ? window.getSelection() : document.selection.createRange(); + showStaleWarning(function(proceed) { + console.log('proceed is', proceed); + if (!proceed) { + var selectionText = '', + selection = window.getSelection ? window.getSelection() : document.selection.createRange(); + + if ($(selection.baseNode).parents('[component="post/content"]').length > 0) { + selectionText = selection.toString(); + } - if ($(selection.baseNode).parents('[component="post/content"]').length > 0) { - selectionText = selection.toString(); - } + var username = getUserName(selectionText ? $(selection.baseNode) : button); + if (getData(button, 'data-uid') === '0') { + username = ''; + } - var username = getUserName(selectionText ? $(selection.baseNode) : button); - if (getData(button, 'data-uid') === '0') { - username = ''; - } - if (selectionText.length) { - $(window).trigger('action:composer.addQuote', { - tid: tid, - slug: ajaxify.data.slug, - index: getData(button, 'data-index'), - pid: getData(button, 'data-pid'), - topicName: topicName, - username: username, - text: selectionText - }); - } else { - $(window).trigger('action:composer.post.new', { - tid: tid, - pid: getData(button, 'data-pid'), - topicName: topicName, - text: username ? username + ' ' : '' - }); - } + var toPid = button.is('[component="post/reply"]') ? getData(button, 'data-pid') : null; + + if (selectionText.length) { + $(window).trigger('action:composer.addQuote', { + tid: tid, + slug: ajaxify.data.slug, + index: getData(button, 'data-index'), + pid: toPid, + topicName: topicName, + username: username, + text: selectionText + }); + } else { + $(window).trigger('action:composer.post.new', { + tid: tid, + pid: toPid, + topicName: topicName, + text: username ? username + ' ' : '' + }); + } + } + }); } function onQuoteClicked(button, tid, topicName) { - var username = getUserName(button), - pid = getData(button, 'data-pid'); + showStaleWarning(function(proceed) { + if (!proceed) { + var username = getUserName(button), + pid = getData(button, 'data-pid'); - socket.emit('posts.getRawPost', pid, function(err, post) { - if(err) { - return app.alertError(err.message); - } + socket.emit('posts.getRawPost', pid, function(err, post) { + if(err) { + return app.alertError(err.message); + } - $(window).trigger('action:composer.addQuote', { - tid: tid, - slug: ajaxify.data.slug, - index: getData(button, 'data-index'), - pid: pid, - username: username, - topicName: topicName, - text: post - }); + $(window).trigger('action:composer.addQuote', { + tid: tid, + slug: ajaxify.data.slug, + index: getData(button, 'data-index'), + pid: pid, + username: username, + topicName: topicName, + text: post + }); + }); + } }); } @@ -376,5 +388,24 @@ define('forum/topic/postTools', ['share', 'navigator', 'components', 'translator return false; } + function showStaleWarning(callback) { + if (ajaxify.data.lastposttime < (Date.now() - (1000*60*60*24*config.topicStaleDays))) { + translator.translate('[[topic:stale_topic_warning]]', function(translated) { + bootbox.confirm(translated, function(create) { + if (create) { + $(window).trigger('action:composer.topic.new', { + cid: ajaxify.data.cid + }); + + } + + callback(create); + }); + }); + } else { + callback(false); + } + } + return PostTools; }); diff --git a/public/src/client/topic/posts.js b/public/src/client/topic/posts.js index f17e8cbab5..fd5f310b59 100644 --- a/public/src/client/topic/posts.js +++ b/public/src/client/topic/posts.js @@ -88,7 +88,7 @@ define('forum/topic/posts', [ } function removeAlreadyAddedPosts() { - var newPosts = components.get('topic').find('[data-index][data-index!="0"].new'); + var newPosts = $('[component="post"].new'); if (newPosts.length === data.posts.length) { var allSamePids = true; @@ -117,7 +117,7 @@ define('forum/topic/posts', [ } data.posts = data.posts.filter(function(post) { - return components.get('post', 'pid', post.pid).length === 0; + return $('[component="post"][data-pid="' + post.pid + '"]').length === 0; }); } @@ -137,7 +137,9 @@ define('forum/topic/posts', [ data.title = $('
').text(ajaxify.data.title).html(); data.slug = ajaxify.data.slug; + data.tags = ajaxify.data.tags; data.viewcount = ajaxify.data.viewcount; + data.isFollowing = ajaxify.data.isFollowing; $(window).trigger('action:posts.loading', {posts: data.posts, after: after, before: before}); @@ -157,7 +159,7 @@ define('forum/topic/posts', [ components.get('topic').append(html); } - infinitescroll.removeExtra(components.get('post'), direction, 40); + infinitescroll.removeExtra($('[component="post"]'), direction, 40); $(window).trigger('action:posts.loaded', {posts: data.posts}); @@ -195,7 +197,7 @@ define('forum/topic/posts', [ indicatorEl.fadeOut(); if (data && data.posts && data.posts.length) { - createNewPosts(data, components.get('post').not('[data-index=0]').not('.new'), direction, done); + createNewPosts(data, replies, direction, done); } else { if (app.user.uid) { socket.emit('topics.markAsRead', [tid]); @@ -207,7 +209,7 @@ define('forum/topic/posts', [ }; Posts.processPage = function(posts) { - app.createUserTooltips(); + app.createUserTooltips(posts); app.replaceSelfLinks(posts.find('a')); utils.addCommasToNumbers(posts.find('.formatted-number')); utils.makeNumbersHumanReadable(posts.find('.human-readable-number')); diff --git a/public/src/modules/navigator.js b/public/src/modules/navigator.js index b9ac5f6403..251cc78182 100644 --- a/public/src/modules/navigator.js +++ b/public/src/modules/navigator.js @@ -91,7 +91,7 @@ define('navigator', ['forum/pagination', 'components'], function(pagination, com toggle(!!count); var middleOfViewport = $(window).scrollTop() + $(window).height() / 2; - + index = parseInt($(navigator.selector).first().attr('data-index'), 10); $(navigator.selector).each(function() { @@ -111,7 +111,7 @@ define('navigator', ['forum/pagination', 'components'], function(pagination, com navigator.updateTextAndProgressBar = function() { index = index > count ? count : index; - $('#pagination').translateHtml('[[global:pagination.out_of, ' + index + ', ' + count + ']]'); + $('.pagination-block .pagination-text').translateHtml('[[global:pagination.out_of, ' + index + ', ' + count + ']]'); $('.pagination-block .progress-bar').width((index / count * 100) + '%'); }; diff --git a/public/src/modules/sort.js b/public/src/modules/sort.js index 6033b9680a..a6fe38f90b 100644 --- a/public/src/modules/sort.js +++ b/public/src/modules/sort.js @@ -10,7 +10,7 @@ define('sort', ['components'], function(components) { var currentSetting = threadSort.find('a[data-sort="' + config[field] + '"]'); currentSetting.find('i').addClass('fa-check'); - threadSort.on('click', 'a', function() { + components.get('topic').on('click', '[component="thread/sort"] a', function() { var newSetting = $(this).attr('data-sort'); socket.emit(method, newSetting, function(err) { if (err) { diff --git a/public/src/modules/uploader.js b/public/src/modules/uploader.js index 9352e71b0d..e951f0aabe 100644 --- a/public/src/modules/uploader.js +++ b/public/src/modules/uploader.js @@ -73,7 +73,7 @@ define('uploader', ['csrf'], function(csrf) { showAlert('success', '[[uploads:upload-success]]'); setTimeout(function() { - module.hideAlerts(); + module.hideAlerts(uploadModal); uploadModal.modal('hide'); }, 750); } diff --git a/src/categories/delete.js b/src/categories/delete.js index f2452ce893..ea3b567085 100644 --- a/src/categories/delete.js +++ b/src/categories/delete.js @@ -25,7 +25,7 @@ module.exports = function(Categories) { }; function purgeCategory(cid, callback) { - async.parallel([ + async.series([ function(next) { db.sortedSetRemove('categories:cid', cid, next); }, diff --git a/src/controllers/api.js b/src/controllers/api.js index 857f037635..56308ef535 100644 --- a/src/controllers/api.js +++ b/src/controllers/api.js @@ -41,6 +41,7 @@ apiController.getConfig = function(req, res, next) { config.maximumTitleLength = meta.config.maximumTitleLength; config.minimumPostLength = meta.config.minimumPostLength; config.maximumPostLength = meta.config.maximumPostLength; + config.topicStaleDays = parseInt(meta.config.topicStaleDays, 10) || 60; config.hasImageUploadPlugin = plugins.hasListeners('filter:uploadImage'); config.maximumProfileImageSize = meta.config.maximumProfileImageSize; config.minimumUsernameLength = meta.config.minimumUsernameLength; diff --git a/src/controllers/authentication.js b/src/controllers/authentication.js index 043776eda2..686a9d2717 100644 --- a/src/controllers/authentication.js +++ b/src/controllers/authentication.js @@ -69,6 +69,10 @@ authenticationController.register = function(req, res, next) { return res.status(400).send(err.message); } + if (req.body.userLang) { + user.setSetting(data.uid, 'userLang', req.body.userLang); + } + res.json(data); }); }; diff --git a/src/controllers/search.js b/src/controllers/search.js index 5382c3db5b..329f599783 100644 --- a/src/controllers/search.js +++ b/src/controllers/search.js @@ -75,7 +75,7 @@ function buildCategories(uid, callback) { ]; categories = categories.filter(function(category) { - return !category.link && !parseInt(category.parentCid, 10); + return category && !category.link && !parseInt(category.parentCid, 10); }); categories.forEach(function(category) { diff --git a/src/controllers/topics.js b/src/controllers/topics.js index 7632d26c5d..abbb245f28 100644 --- a/src/controllers/topics.js +++ b/src/controllers/topics.js @@ -3,9 +3,8 @@ var topicsController = {}, async = require('async'), S = require('string'), - validator = require('validator'), nconf = require('nconf'), - qs = require('querystring'), + user = require('../user'), meta = require('../meta'), topics = require('../topics'), @@ -124,6 +123,8 @@ topicsController.get = function(req, res, callback) { topicData.pageCount = pageCount; topicData.currentPage = page; + topics.modifyByPrivilege(topicData.posts, results.privileges); + plugins.fireHook('filter:controllers.topic.get', topicData, next); }); }, @@ -134,8 +135,7 @@ topicsController.get = function(req, res, callback) { url: nconf.get('relative_path') + '/category/' + topicData.category.slug }, { - text: topicData.title, - url: nconf.get('relative_path') + '/topic/' + topicData.slug + text: topicData.title } ]; diff --git a/src/messaging.js b/src/messaging.js index 76851ac9da..835361a930 100644 --- a/src/messaging.js +++ b/src/messaging.js @@ -76,7 +76,7 @@ var db = require('./database'), async.apply(Messaging.updateChatTime, touid, fromuid), async.apply(Messaging.markRead, fromuid, touid), async.apply(Messaging.markUnread, touid, fromuid), - ], function(err, results) { + ], function(err) { if (err) { return callback(err); } @@ -320,7 +320,17 @@ var db = require('./database'), }; Messaging.markUnread = function(uid, toUid, callback) { - db.sortedSetAdd('uid:' + uid + ':chats:unread', Date.now(), toUid, callback); + async.waterfall([ + function (next) { + user.exists(toUid, next); + }, + function (exists, next) { + if (!exists) { + return next(new Error('[[error:no-user]]')); + } + db.sortedSetAdd('uid:' + uid + ':chats:unread', Date.now(), toUid, next); + } + ], callback); }; Messaging.notifyUser = function(fromuid, touid, messageObj) { @@ -365,29 +375,29 @@ var db = require('./database'), return callback(new Error('[[error:chat-disabled]]')); } else if (toUid === fromUid) { return callback(new Error('[[error:cant-chat-with-yourself]]')); - } else if (fromUid === 0) { + } else if (!fromUid) { return callback(new Error('[[error:not-logged-in]]')); } async.waterfall([ - function(next) { - user.getUserFields(fromUid, ['banned', 'email:confirmed'], function(err, userData) { - if (err) { - return callback(err); - } - - if (parseInt(userData.banned, 10) === 1) { - return callback(new Error('[[error:user-banned]]')); - } + function (next) { + user.exists(toUid, next); + }, + function (exists, next) { + if (!exists) { + return next(new Error('[[error:no-user]]')); + } + user.getUserFields(fromUid, ['banned', 'email:confirmed'], next); + }, + function (userData, next) { + if (parseInt(userData.banned, 10) === 1) { + return next(new Error('[[error:user-banned]]')); + } - if (parseInt(meta.config.requireEmailConfirmation, 10) === 1 && parseInt(userData['email:confirmed'], 10) !== 1) { - return callback(new Error('[[error:email-not-confirmed-chat]]')); - } + if (parseInt(meta.config.requireEmailConfirmation, 10) === 1 && parseInt(userData['email:confirmed'], 10) !== 1) { + return next(new Error('[[error:email-not-confirmed-chat]]')); + } - next(); - }); - }, - function(next) { user.getSettings(toUid, next); }, function(settings, next) { diff --git a/src/meta.js b/src/meta.js index 316d6349ce..3209bb13d6 100644 --- a/src/meta.js +++ b/src/meta.js @@ -30,7 +30,7 @@ var async = require('async'), /* Assorted */ Meta.userOrGroupExists = function(slug, callback) { async.parallel([ - async.apply(user.exists, slug), + async.apply(user.existsBySlug, slug), async.apply(groups.existsBySlug, slug) ], function(err, results) { callback(err, results ? results.some(function(result) { return result; }) : false); diff --git a/src/notifications.js b/src/notifications.js index 1e2e71875e..48e59f168a 100644 --- a/src/notifications.js +++ b/src/notifications.js @@ -5,11 +5,8 @@ var async = require('async'), cron = require('cron').CronJob, nconf = require('nconf'), S = require('string'), - _ = require('underscore'), db = require('./database'), - utils = require('../public/src/utils'), - events = require('./events'), User = require('./user'), groups = require('./groups'), meta = require('./meta'), @@ -232,31 +229,43 @@ var async = require('async'), return callback(); } - db.getObjectField(nid, 'datetime', function(err, datetime) { - datetime = datetime || Date.now(); + db.getObject('notification:' + nid, function(err, notification) { + if (err || !notification) { + return callback(err || new Error('[[error:no-notification]]')); + } + notification.datetime = notification.datetime || Date.now(); async.parallel([ async.apply(db.sortedSetRemove, 'uid:' + uid + ':notifications:read', nid), - async.apply(db.sortedSetAdd, 'uid:' + uid + ':notifications:unread', datetime, nid) + async.apply(db.sortedSetAdd, 'uid:' + uid + ':notifications:unread', notification.datetime, nid) ], callback); }); }; Notifications.markReadMultiple = function(nids, uid, callback) { callback = callback || function() {}; + nids = nids.filter(Boolean); if (!Array.isArray(nids) || !nids.length) { return callback(); } - var notificationKeys = nids.filter(Boolean).map(function(nid) { + var notificationKeys = nids.map(function(nid) { return 'notifications:' + nid; }); - db.getObjectsFields(notificationKeys, ['datetime'], function(err, notificationData) { + db.getObjectsFields(notificationKeys, ['nid', 'datetime'], function(err, notificationData) { if (err) { return callback(err); } + notificationData = notificationData.filter(function(notification) { + return notification && notification.nid; + }); + + nids = notificationData.map(function(notification) { + return notification.nid; + }); + var datetimes = notificationData.map(function(notification) { return (notification && notification.datetime) || Date.now(); }); diff --git a/src/posts/edit.js b/src/posts/edit.js index 27f13a25e2..2eca8a8328 100644 --- a/src/posts/edit.js +++ b/src/posts/edit.js @@ -34,6 +34,9 @@ module.exports = function(Posts) { Posts.getPostData(data.pid, next); }, function (_postData, next) { + if (!_postData) { + return next(new Error('[[error:no-post]]')); + } postData = _postData; postData.content = data.content; postData.edited = now; diff --git a/src/posts/tools.js b/src/posts/tools.js index fbf043b32a..11b01b785a 100644 --- a/src/posts/tools.js +++ b/src/posts/tools.js @@ -18,10 +18,16 @@ module.exports = function(Posts) { function togglePostDelete(uid, pid, isDelete, callback) { async.waterfall([ - function(next) { + function (next) { + Posts.exists(pid, next); + }, + function (exists, next) { + if (!exists) { + return next(new Error('[[error:no-post]]')); + } Posts.getPostField(pid, 'deleted', next); }, - function(deleted, next) { + function (deleted, next) { if (parseInt(deleted, 10) === 1 && isDelete) { return next(new Error('[[error:post-already-deleted]]')); } else if(parseInt(deleted, 10) !== 1 && !isDelete) { @@ -30,13 +36,13 @@ module.exports = function(Posts) { privileges.posts.canEdit(pid, uid, next); }, - function(canEdit, next) { + function (canEdit, next) { if (!canEdit) { return next(new Error('[[error:no-privileges]]')); } next(); } - ], function(err) { + ], function (err) { if (err) { return callback(err); } diff --git a/src/routes/feeds.js b/src/routes/feeds.js index 798882e222..9574001c60 100644 --- a/src/routes/feeds.js +++ b/src/routes/feeds.js @@ -59,6 +59,8 @@ function generateForTopic(req, res, next) { return next(); } + topics.modifyByPrivilege(topicData.posts, userPrivileges); + var description = topicData.posts.length ? topicData.posts[0].content : ''; var image_url = topicData.posts.length ? topicData.posts[0].picture : ''; var author = topicData.posts.length ? topicData.posts[0].username : ''; diff --git a/src/socket.io/groups.js b/src/socket.io/groups.js index 30417c5e27..b75e6ba3df 100644 --- a/src/socket.io/groups.js +++ b/src/socket.io/groups.js @@ -22,20 +22,30 @@ SocketGroups.join = function(socket, data, callback) { return callback(new Error('[[error:invalid-uid]]')); } - if (meta.config.allowPrivateGroups !== '0') { + groups.exists(data.groupName, function(err, exists) { + if (err || !exists) { + return callback(err || new Error('[[error:no-group]]')); + } + + if (parseInt(meta.config.allowPrivateGroups, 10) !== 1) { + return groups.join(data.groupName, socket.uid, callback); + } + async.parallel({ isAdmin: async.apply(user.isAdministrator, socket.uid), isPrivate: async.apply(groups.isPrivate, data.groupName) }, function(err, checks) { + if (err) { + return callback(err); + } + if (checks.isPrivate && !checks.isAdmin) { groups.requestMembership(data.groupName, socket.uid, callback); } else { groups.join(data.groupName, socket.uid, callback); } }); - } else { - groups.join(data.groupName, socket.uid, callback); - } + }); }; SocketGroups.leave = function(socket, data, callback) { diff --git a/src/socket.io/helpers.js b/src/socket.io/helpers.js new file mode 100644 index 0000000000..c538aca14d --- /dev/null +++ b/src/socket.io/helpers.js @@ -0,0 +1,113 @@ +'use strict'; + +var async = require('async'); +var winston = require('winston'); +var nconf = require('nconf'); + +var websockets = require('./index'); +var user = require('../user'); +var posts = require('../posts'); +var topics = require('../topics'); +var privileges = require('../privileges'); +var notifications = require('../notifications'); +var plugins = require('../plugins'); + +var SocketHelpers = {}; + +SocketHelpers.notifyOnlineUsers = function(uid, result) { + var cid = result.posts[0].topic.cid; + async.waterfall([ + function(next) { + user.getUidsFromSet('users:online', 0, -1, next); + }, + function(uids, next) { + privileges.categories.filterUids('read', cid, uids, next); + }, + function(uids, next) { + plugins.fireHook('filter:sockets.sendNewPostToUids', {uidsTo: uids, uidFrom: uid, type: 'newPost'}, next); + } + ], function(err, data) { + if (err) { + return winston.error(err.stack); + } + + var uids = data.uidsTo; + + for(var i=0; i
-