diff --git a/package.json b/package.json
index 02a85458c1..453f34bfee 100644
--- a/package.json
+++ b/package.json
@@ -60,14 +60,14 @@
"nodebb-plugin-emoji-extended": "1.1.1",
"nodebb-plugin-emoji-one": "1.2.1",
"nodebb-plugin-markdown": "7.1.1",
- "nodebb-plugin-mentions": "2.1.1",
+ "nodebb-plugin-mentions": "2.1.2",
"nodebb-plugin-soundpack-default": "1.0.0",
"nodebb-plugin-spam-be-gone": "0.5.0",
"nodebb-rewards-essentials": "0.0.9",
- "nodebb-theme-lavender": "4.0.1",
- "nodebb-theme-persona": "5.0.9",
+ "nodebb-theme-lavender": "4.0.2",
+ "nodebb-theme-persona": "5.0.11",
"nodebb-theme-slick": "1.1.0",
- "nodebb-theme-vanilla": "6.0.6",
+ "nodebb-theme-vanilla": "6.0.7",
"nodebb-widget-essentials": "3.0.0",
"nodemailer": "2.6.4",
"nodemailer-sendmail-transport": "1.0.0",
diff --git a/public/language/de/admin/manage/categories.json b/public/language/de/admin/manage/categories.json
index 8b45ca4b3a..74ad8d0e9b 100644
--- a/public/language/de/admin/manage/categories.json
+++ b/public/language/de/admin/manage/categories.json
@@ -10,7 +10,7 @@
"custom-class": "Benutzderdefinierte Klasse",
"num-recent-replies": "Anzahl neuer Antworten",
"ext-link": "Externer Link",
- "is-section": "Treat this category as a section",
+ "is-section": "Behandle diese Kategorie als Abschnitt",
"upload-image": "Bild hochladen",
"delete-image": "Entfernen",
"category-image": "Kategoriebild",
diff --git a/public/language/es/email.json b/public/language/es/email.json
index ed986ea853..7eed5d4d2d 100644
--- a/public/language/es/email.json
+++ b/public/language/es/email.json
@@ -32,9 +32,9 @@
"notif.post.unsub.info": "La notificación de este mensaje se te ha enviado debido a tus ajustes de subscripción.",
"test.text1": "Este es un email de prueba para verificar que el envío de email está ajustado correctamente para tu NodeBB",
"unsub.cta": "Haz click aquí para modificar los ajustes.",
- "banned.subject": "You have been banned from %1",
- "banned.text1": "The user %1 has been banned from %2.",
- "banned.text2": "This ban will last until %1.",
- "banned.text3": "This is the reason why you have been banned:",
+ "banned.subject": "Has sido baneado de %1",
+ "banned.text1": "El usuario %1 ha sido baneado de %2.",
+ "banned.text2": "Este ban dura hasta %1.",
+ "banned.text3": "La razón por la que has sido baneado: ",
"closing": "¡Gracias!"
}
\ No newline at end of file
diff --git a/public/language/es/error.json b/public/language/es/error.json
index 9fa27f3bc6..48c8a87c0b 100644
--- a/public/language/es/error.json
+++ b/public/language/es/error.json
@@ -1,6 +1,6 @@
{
"invalid-data": "Datos no válidos",
- "invalid-json": "Invalid JSON",
+ "invalid-json": "JSON no válido",
"not-logged-in": "No has iniciado sesión.",
"account-locked": "Tu cuenta ha sido bloqueada temporalmente.",
"search-requires-login": "¡Buscar requiere estar registrado! Por favor, entra o regístrate.",
@@ -13,7 +13,7 @@
"invalid-title": "¡Título no válido!",
"invalid-user-data": "Datos de usuario no válidos",
"invalid-password": "Contraseña no válida",
- "invalid-login-credentials": "Invalid login credentials",
+ "invalid-login-credentials": "Datos de acceso no válidos",
"invalid-username-or-password": "Por favor especifica tanto un usuario como contraseña",
"invalid-search-term": "Término de búsqueda inválido",
"csrf-invalid": "El acceso ha fallado porque tu sesión ha expirado. Por favor prueba otra vez.",
@@ -32,7 +32,7 @@
"password-too-long": "Contraseña muy corta",
"user-banned": "Usuario baneado",
"user-banned-reason": "Lo siento, esta cuenta ha sido baneada ( Razon: %1 )",
- "user-banned-reason-until": "Sorry, this account has been banned until %1 (Reason: %2)",
+ "user-banned-reason-until": "Lo siento, esta cuenta ha sido baneada hasta %1 ( Razon: %2 )",
"user-too-new": "Lo sentimos, es necesario que esperes %1 segundo(s) antes poder hacer tu primera publicación",
"blacklisted-ip": "Lo sentimos, tu dirección IP ha sido baneada de esta comunidad. Si crees que debe de haber un error, por favor contacte con un administrador.",
"ban-expiry-missing": "Por favor pon una fecha de fin del ban",
@@ -107,7 +107,7 @@
"chat-disabled": "El sistema de chat está deshabilitado",
"too-many-messages": "Has enviado demasiados mensajes, por favor espera un poco.",
"invalid-chat-message": "Mensaje de Chat inválido",
- "chat-message-too-long": "Chat messages can not be longer than %1 characters.",
+ "chat-message-too-long": "Los mensajes de chat no pueden ser mas largo de %1 caracteres.",
"cant-edit-chat-message": "No tienes permiso para editar este mensaje",
"cant-remove-last-user": "No puedes eliminar el último usuario",
"cant-delete-chat-message": "No tienes permiso para eliminar este mensaje",
diff --git a/public/language/es/flags.json b/public/language/es/flags.json
index 012d3181b0..24e723a0f4 100644
--- a/public/language/es/flags.json
+++ b/public/language/es/flags.json
@@ -17,7 +17,7 @@
"filter-targetUid": "Indicador UID",
"filter-type": "Tipo de indicador",
"filter-type-all": "Todo el contenido",
- "filter-type-post": "Post",
+ "filter-type-post": "Mensaje",
"filter-state": "estado",
"filter-assignee": "UID asignado",
"filter-cid": "Categoria",
@@ -56,5 +56,5 @@
"modal-reason-offensive": "Ofensivo",
"modal-reason-custom": "Razón para reportar este contenido...",
"modal-submit": "Enviar reporte",
- "modal-submit-success": "Content has been flagged for moderation."
+ "modal-submit-success": "El contenido se ha reportado para moderación."
}
\ No newline at end of file
diff --git a/public/language/es/global.json b/public/language/es/global.json
index 17c8273ea3..14a72a5039 100644
--- a/public/language/es/global.json
+++ b/public/language/es/global.json
@@ -104,6 +104,6 @@
"cookies.accept": "De Acuerdo!",
"cookies.learn_more": "Quiero saber más",
"edited": "Editado",
- "disabled": "Disabled",
- "select": "Select"
+ "disabled": "Desahabilitado",
+ "select": "Seleccionar"
}
\ No newline at end of file
diff --git a/public/language/es/groups.json b/public/language/es/groups.json
index 8179d021bb..b6e987ad0d 100644
--- a/public/language/es/groups.json
+++ b/public/language/es/groups.json
@@ -27,7 +27,7 @@
"details.disableJoinRequests": "Desactivar las peticiones de unión",
"details.grant": "Conceder/Rescindir Propiedad",
"details.kick": "Expulsar",
- "details.kick_confirm": "Are you sure you want to remove this member from the group?",
+ "details.kick_confirm": "¿ Estás seguro de que quieres eliminar a este miembro del grupo ?",
"details.owner_options": "Administración De Grupo",
"details.group_name": "Nombre de Grupo",
"details.member_count": "Numero de Miembros",
@@ -54,5 +54,5 @@
"upload-group-cover": "Cargar foto para el grupo",
"bulk-invite-instructions": "Escribe una lista de nombres de usuario separados por comas a invitar a este grupo",
"bulk-invite": "Invitación multiple",
- "remove_group_cover_confirm": "Are you sure you want to remove the cover picture?"
+ "remove_group_cover_confirm": "¿ Estás seguro de que quieres eliminar la imagen de portada?"
}
\ No newline at end of file
diff --git a/public/language/es/modules.json b/public/language/es/modules.json
index ce157b6c08..3658673ca1 100644
--- a/public/language/es/modules.json
+++ b/public/language/es/modules.json
@@ -13,14 +13,14 @@
"chat.contacts": "Contactos",
"chat.message-history": "Historial de mensajes",
"chat.pop-out": "Mostrar en ventana independiente",
- "chat.minimize": "Minimize",
+ "chat.minimize": "Minimizar",
"chat.maximize": "Maximizar",
"chat.seven_days": "7 días",
"chat.thirty_days": "30 días",
"chat.three_months": "3 meses",
"chat.delete_message_confirm": "¿Estás seguro de que deseas eliminar este mensaje?",
"chat.add-users-to-room": "Añadir usuarios a la sala",
- "chat.confirm-chat-with-dnd-user": "This user has set their status to DnD(Do not disturb). Do you still want to chat with them?",
+ "chat.confirm-chat-with-dnd-user": "Este usuario está en modo No molestar. ¿ Estás seguro de que quieres chatear con él ?",
"composer.compose": "Crear",
"composer.show_preview": "Ver Previsualización",
"composer.hide_preview": "Ocultar Previsualización",
diff --git a/public/language/es/notifications.json b/public/language/es/notifications.json
index d06ddc9069..9dc633bc9d 100644
--- a/public/language/es/notifications.json
+++ b/public/language/es/notifications.json
@@ -10,15 +10,15 @@
"return_to": "Regresar a %1",
"new_notification": "Nueva notificación",
"you_have_unread_notifications": "Tienes notificaciones sin leer.",
- "all": "All",
- "topics": "Topics",
- "replies": "Replies",
+ "all": "Todo",
+ "topics": "Temas",
+ "replies": "Respuestas",
"chat": "Chats",
- "follows": "Follows",
- "upvote": "Upvotes",
- "new-flags": "New Flags",
- "my-flags": "Flags assigned to me",
- "bans": "Bans",
+ "follows": "Seguidores",
+ "upvote": "Votos positivos",
+ "new-flags": "Nuevos reportes",
+ "my-flags": "Reportado asignado a mí",
+ "bans": "Baneos",
"new_message_from": "Nuevo mensaje de %1",
"upvoted_your_post_in": "%1 ha votado positivamente tu respuesta en %2.",
"upvoted_your_post_in_dual": "%1 y %2 han votado positivamente tu respuesta en %3.",
@@ -28,9 +28,9 @@
"user_flagged_post_in": "%1 ha reportado una respuesta en %2",
"user_flagged_post_in_dual": "%1 y %2 han reportado un post en %3",
"user_flagged_post_in_multiple": "%1 y otras %2 personas han reportado un post en %3",
- "user_flagged_user": "%1 flagged a user profile (%2)",
- "user_flagged_user_dual": "%1 and %2 flagged a user profile (%3)",
- "user_flagged_user_multiple": "%1 and %2 others flagged a user profile (%3)",
+ "user_flagged_user": "%1 reportó el perfil (%2) ",
+ "user_flagged_user_dual": "%1 y %2 reportaron el perfil (%3)",
+ "user_flagged_user_multiple": "%1 y otros %2 reportaron el perfil (%3) ",
"user_posted_to": "%1 ha respondido a: %2",
"user_posted_to_dual": "%1 y %2 han respondido a %3",
"user_posted_to_multiple": "%1 y otras %2 personas han respondido a: %3",
@@ -40,7 +40,7 @@
"user_started_following_you_multiple": "%1 y otras %2 personas comenzaron a seguirte.",
"new_register": "%1 envió una solicitud de registro.",
"new_register_multiple": "Hay %1 peticiones de registros pendientes de revisión",
- "flag_assigned_to_you": "Flag %1 has been assigned to you",
+ "flag_assigned_to_you": "Reporte %1 te ha sido asignado.",
"email-confirmed": "Correo electrónico confirmado",
"email-confirmed-message": "Gracias por validar tu correo electrónico. Tu cuenta ya está completamente activa.",
"email-confirm-error-message": "Hubo un problema al validar tu cuenta de correo electrónico. Quizá el código era erróneo o expiró...",
diff --git a/public/language/es/pages.json b/public/language/es/pages.json
index 59b1e2624d..dd59a3e867 100644
--- a/public/language/es/pages.json
+++ b/public/language/es/pages.json
@@ -6,7 +6,7 @@
"popular-month": "Temas populares del mes",
"popular-alltime": "Temas populares de siempre",
"recent": "Temas recientes",
- "flagged-content": "Flagged Content",
+ "flagged-content": "Contenido reportado",
"ip-blacklist": "Lista negra de IPS",
"users/online": "Conectados",
"users/latest": "Últimos usuarios",
@@ -27,8 +27,8 @@
"group": "Grupo de %1",
"chats": "Chats",
"chat": "Chatear con %1",
- "flags": "Flags",
- "flag-details": "Flag %1 Details",
+ "flags": "Reportes",
+ "flag-details": "Detalle de reporte %1",
"account/edit": "Editar \"%1\"",
"account/edit/password": "Editar contraseña de \"%1\"",
"account/edit/username": "Editar nombre de usuario de \"%1\"",
diff --git a/public/language/es/search.json b/public/language/es/search.json
index 0d2d0a26b9..594b020cb5 100644
--- a/public/language/es/search.json
+++ b/public/language/es/search.json
@@ -12,7 +12,7 @@
"reply-count": "Número de Respuestas",
"at-least": "De mínimo",
"at-most": "De máximo",
- "relevance": "Relevance",
+ "relevance": "Relevancia",
"post-time": "Fecha de publicación",
"newer-than": "Más reciente que",
"older-than": "Más antiguo que",
diff --git a/public/language/es/topic.json b/public/language/es/topic.json
index 482b548c18..50496a6106 100644
--- a/public/language/es/topic.json
+++ b/public/language/es/topic.json
@@ -13,9 +13,9 @@
"notify_me": "Serás notificado cuando haya nuevas respuestas en este tema",
"quote": "Citar",
"reply": "Responder",
- "replies_to_this_post": "%1 Replies",
- "one_reply_to_this_post": "1 Reply",
- "last_reply_time": "Last reply",
+ "replies_to_this_post": "%1 Respuestas",
+ "one_reply_to_this_post": "1 Respuesta",
+ "last_reply_time": "Última respuesta",
"reply-as-topic": "Responder como tema",
"guest-login-reply": "Accede para responder",
"edit": "Editar",
@@ -59,7 +59,7 @@
"thread_tools.unlock": "Reabrir tema",
"thread_tools.move": "Mover tema",
"thread_tools.move_all": "Mover todo",
- "thread_tools.select_category": "Select Category",
+ "thread_tools.select_category": "Seleccionar categoría",
"thread_tools.fork": "Dividir tema",
"thread_tools.delete": "Borrar tema",
"thread_tools.delete-posts": "Eliminar publicaciones",
diff --git a/public/language/es/user.json b/public/language/es/user.json
index cb3779855d..79a81acb3e 100644
--- a/public/language/es/user.json
+++ b/public/language/es/user.json
@@ -33,7 +33,7 @@
"chat": "Chat",
"chat_with": "Continuar chat con %1",
"new_chat_with": "Empezar chat con %1",
- "flag-profile": "Flag Profile",
+ "flag-profile": "Perfil de reporte",
"follow": "Seguir",
"unfollow": "Dejar de seguir",
"more": "Más",
@@ -60,14 +60,14 @@
"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.",
"password_same_as_email": "Tu contraseña es igual que tu dirección de correo, por favor elige otra contraseña.",
- "weak_password": "Weak password.",
+ "weak_password": "Clase débil",
"upload_picture": "Subir foto",
"upload_a_picture": "Subir una foto",
"remove_uploaded_picture": "Borrar Imagen subida",
"upload_cover_picture": "Subir imagen de portada",
- "remove_cover_picture_confirm": "Are you sure you want to remove the cover picture?",
- "crop_picture": "Crop picture",
- "upload_cropped_picture": "Crop and upload",
+ "remove_cover_picture_confirm": "¿ Estás seguro de borrar la imágen de portada ?",
+ "crop_picture": "Recortar imágen",
+ "upload_cropped_picture": "Recortar y subir",
"settings": "Opciones",
"show_email": "Mostrar mi correo electrónico",
"show_fullname": "Mostrar mi nombre completo",
@@ -132,5 +132,5 @@
"info.email-history": "HIstórico de Email",
"info.moderation-note": "Nota de Moderación",
"info.moderation-note.success": "Nota de moderación guardada",
- "info.moderation-note.add": "Add note"
+ "info.moderation-note.add": "Añadir nota"
}
\ No newline at end of file
diff --git a/public/language/fa-IR/user.json b/public/language/fa-IR/user.json
index b2d3fc29a4..99526d6ed0 100644
--- a/public/language/fa-IR/user.json
+++ b/public/language/fa-IR/user.json
@@ -114,8 +114,8 @@
"select-skin": "انتخاب یک پوسته",
"select-homepage": "انتخاب صفحه اصلی",
"homepage": "صفحه اصلی",
- "homepage_description": "Select a page to use as the forum homepage or 'None' to use the default homepage.",
- "custom_route": "Custom Homepage Route",
+ "homepage_description": "یک صفحه را به عنوان خانه انتخاب کنید یا با انتخاب \"هیچکدام\" صفحهی پیش فرض برای شما انتخاب میشود. ",
+ "custom_route": "مسیر صفحهی اختصاصی",
"custom_route_help": "Enter a route name here, without any preceding slash (e.g. \"recent\", or \"popular\")",
"sso.title": "Single Sign-on Services",
"sso.associated": "Associated with",
@@ -132,5 +132,5 @@
"info.email-history": "تاریخچه رایانامه",
"info.moderation-note": "یادداشت مدیر",
"info.moderation-note.success": "یادداشت مدیر ذخیره شد",
- "info.moderation-note.add": "Add note"
+ "info.moderation-note.add": "افزودن یادداشت"
}
\ No newline at end of file
diff --git a/public/language/he/email.json b/public/language/he/email.json
index e2a55f5437..1495b88c48 100644
--- a/public/language/he/email.json
+++ b/public/language/he/email.json
@@ -24,7 +24,7 @@
"digest.day": "יום",
"digest.week": "שבוע",
"digest.month": "חודש",
- "digest.subject": "Digest for %1",
+ "digest.subject": "מקבץ עבור %1",
"notif.chat.subject": "הודעת צ'אט חדשה התקבלה מ%1",
"notif.chat.cta": "לחץ כאן כדי להמשיך את השיחה",
"notif.chat.unsub.info": "התראה הצ'אט הזו נשלחה אליך על-פי הגדרות החשבון שלך.",
diff --git a/public/language/he/error.json b/public/language/he/error.json
index d8f8c296d4..f5e33a6e10 100644
--- a/public/language/he/error.json
+++ b/public/language/he/error.json
@@ -60,7 +60,7 @@
"post-delete-duration-expired-days": "You are only allowed to delete posts for %1 day(s) after posting",
"post-delete-duration-expired-days-hours": "You are only allowed to delete posts for %1 day(s) %2 hour(s) after posting",
"cant-delete-topic-has-reply": "אינך יכול למחוק נושא אחרי שכבר הגיבו בו.",
- "cant-delete-topic-has-replies": "You can't delete your topic after it has %1 replies",
+ "cant-delete-topic-has-replies": "לא ניתן למחוק את הנושא לאחר שקיבל %1 תגובות",
"content-too-short": "אנא הכנס פוסט ארוך יותר. פוסטים חייבים להכיל לפחות %1 תווים.",
"content-too-long": "אנא הכנס פוסט קצר יותר. פוסטים חייבים להיות קצרים יותר מ-%1 תווים.",
"title-too-short": "אנא הכנס כותרת ארוכה יותר. כותרות חייבות להכיל לפחות %1 תווים.",
@@ -129,6 +129,6 @@
"cant-kick-self": "אינך יכול להסיר את עצמך מהקבוצה",
"no-users-selected": "לא נבחרו משתמשים",
"invalid-home-page-route": "כתובת דף הבית הינה שגויה",
- "invalid-session": "Session Mismatch",
- "invalid-session-text": "It looks like your login session is no longer active, or no longer matches with the server. Please refresh this page."
+ "invalid-session": "סשן לא תקין",
+ "invalid-session-text": "נראה שסשן ההתחברות שלך כבר לא פעיל. אנא טען מחדש את העמוד."
}
\ No newline at end of file
diff --git a/public/language/he/global.json b/public/language/he/global.json
index 681c097cd3..7b98b840e7 100644
--- a/public/language/he/global.json
+++ b/public/language/he/global.json
@@ -10,7 +10,7 @@
"500.title": "שגיאה פנימית.",
"500.message": "אופס! נראה שמשהו השתבש!",
"400.title": "בקשה שגויה",
- "400.message": "It looks like this link is malformed, please double-check and try again. Otherwise, return to the home page.",
+ "400.message": "נראה שהלינק הזה לא תקין, בדוק ונסה שוב. אחרת, חזור לעמוד הבית.",
"register": "הרשמה",
"login": "התחברות",
"please_log_in": "אנא התחבר",
@@ -74,7 +74,7 @@
"norecentposts": "אין פוסטים מהזמן האחרון",
"norecenttopics": "אין נושאים מהזמן החרון",
"recentposts": "פוסטים אחרונים",
- "recentips": "כתובות IP שנכנסו למערכת לאחרונה",
+ "recentips": "כתובות IP שהתחברו למערכת לאחרונה",
"moderator_tools": "כלי מוד",
"away": "לא נמצא",
"dnd": "נא לא להפריע",
@@ -99,11 +99,11 @@
"allowed-file-types": "פורמטי הקבצים המורשים הם %1",
"unsaved-changes": "יש לך שינויים שאינם נשמרו. האם הנך בטוח שברצונך להמשיך?",
"reconnecting-message": "נראה שההתחברות שלך אל %1 אבדה, אנא המתן בזמן שהמערכת מנסה לחבר אותך מחדש",
- "play": "Play",
- "cookies.message": "This website uses cookies to ensure you get the best experience on our website.",
- "cookies.accept": "Got it!",
+ "play": "נגן",
+ "cookies.message": "אתר זה משתמש ב cookies על מנת לשפר את חוויות המשתמש.",
+ "cookies.accept": "קיבלתי!",
"cookies.learn_more": "למד עוד",
"edited": "נערך",
- "disabled": "Disabled",
- "select": "Select"
+ "disabled": "לא מאופשר",
+ "select": "בחר"
}
\ No newline at end of file
diff --git a/public/language/he/groups.json b/public/language/he/groups.json
index 3eda4f59ee..5be31f9d39 100644
--- a/public/language/he/groups.json
+++ b/public/language/he/groups.json
@@ -52,7 +52,7 @@
"membership.reject": "דחה",
"new-group.group_name": "שם קבוצה",
"upload-group-cover": "העלה תמונת נושא לקבוצה",
- "bulk-invite-instructions": "Enter a list of comma separated usernames to invite to this group",
- "bulk-invite": "Bulk Invite",
+ "bulk-invite-instructions": "הזן רשימה מופרדת בפסיק של משתמשים שתרצה להזמין לקבוצה זו.",
+ "bulk-invite": "הזמן מספר משתמשים",
"remove_group_cover_confirm": "האם אתה בטוח שאתה רוצה להסיר את תמונת הקאבר?"
}
\ No newline at end of file
diff --git a/public/language/he/login.json b/public/language/he/login.json
index 92c12c09d3..c0b5354129 100644
--- a/public/language/he/login.json
+++ b/public/language/he/login.json
@@ -8,5 +8,5 @@
"failed_login_attempt": "ההתחברות נכשלה",
"login_successful": "התחברת בהצלחה!",
"dont_have_account": "אין לך חשבון עדיין?",
- "logged-out-due-to-inactivity": "You have been logged out of the Admin Control Panel due to inactivity"
+ "logged-out-due-to-inactivity": "התנתקת מפאנל האדמין בגלל חוסר אקטיביות"
}
\ No newline at end of file
diff --git a/public/language/he/modules.json b/public/language/he/modules.json
index 6e41dad53f..2e4e6a5554 100644
--- a/public/language/he/modules.json
+++ b/public/language/he/modules.json
@@ -6,21 +6,21 @@
"chat.user_typing": "%1 מקליד ...",
"chat.user_has_messaged_you": "ל%1 יש הודעה עבורך.",
"chat.see_all": "צפה בכל הצ'אטים",
- "chat.mark_all_read": "Mark all chats read",
+ "chat.mark_all_read": "סמן את כל הצ'אטים כ'נקראו'",
"chat.no-messages": "אנא בחר נמען על מנת לראות את היסטוריית הצ'אט איתו",
"chat.no-users-in-room": "אין משתמשים בחדר הזה",
"chat.recent-chats": "צ'אטים אחרונים",
"chat.contacts": "אנשי קשר",
"chat.message-history": "היסטוריית הודעות",
"chat.pop-out": "הוצא את חלון הצ'אט",
- "chat.minimize": "Minimize",
+ "chat.minimize": "צמצם",
"chat.maximize": "הרחב",
"chat.seven_days": "7 ימים",
"chat.thirty_days": "30 ימים",
"chat.three_months": "3 חודשים",
"chat.delete_message_confirm": "האם אתה בטוח שברצונך למחוק הודעה זו?",
"chat.add-users-to-room": "הוסף משתמשים לצ'אט",
- "chat.confirm-chat-with-dnd-user": "This user has set their status to DnD(Do not disturb). Do you still want to chat with them?",
+ "chat.confirm-chat-with-dnd-user": "משתמש זה שינה את הסטטוס שלו ל 'לא להפריע'. אתה עדיין מעוניין לשוחח איתו?",
"composer.compose": "צור",
"composer.show_preview": "הצג תצוגה מקדימה",
"composer.hide_preview": "הסתר תצוגה מקדימה",
@@ -30,17 +30,17 @@
"composer.submit_and_lock": "אשר ונעל",
"composer.toggle_dropdown": "הדלק/כבה את התפריט הנפתח",
"composer.uploading": "העלאה %1",
- "composer.formatting.bold": "Bold",
- "composer.formatting.italic": "Italic",
- "composer.formatting.list": "List",
- "composer.formatting.strikethrough": "Strikethrough",
- "composer.formatting.link": "Link",
- "composer.formatting.picture": "Picture",
- "composer.upload-picture": "Upload Image",
- "composer.upload-file": "Upload File",
- "composer.zen_mode": "Zen Mode",
- "composer.select_category": "Select a category",
- "bootbox.ok": "בסדר",
+ "composer.formatting.bold": "מודגש",
+ "composer.formatting.italic": "נטוי",
+ "composer.formatting.list": "רשימה",
+ "composer.formatting.strikethrough": "קו פוסל",
+ "composer.formatting.link": "לינק",
+ "composer.formatting.picture": "תמונה",
+ "composer.upload-picture": "העלה תמונה",
+ "composer.upload-file": "העלה קובץ",
+ "composer.zen_mode": "מצב זן",
+ "composer.select_category": "בחר קטגוריה",
+ "bootbox.ok": "אוקיי",
"bootbox.cancel": "בטל",
"bootbox.confirm": "אשר",
"cover.dragging_title": "מיקום תמונת הנושא",
diff --git a/public/language/he/notifications.json b/public/language/he/notifications.json
index dd42edaaeb..2f3ff9acea 100644
--- a/public/language/he/notifications.json
+++ b/public/language/he/notifications.json
@@ -16,8 +16,8 @@
"chat": "צ'אטים",
"follows": "עוקבים",
"upvote": "הצבעות בעד",
- "new-flags": "New Flags",
- "my-flags": "Flags assigned to me",
+ "new-flags": "דיווחים חדשים",
+ "my-flags": "דיווחים שהוקצו עבורי",
"bans": "הרחקות",
"new_message_from": "הודעה חדשה מ %1",
"upvoted_your_post_in": "%1 הצביע בעד הפוסט שלך ב %2",
@@ -28,9 +28,9 @@
"user_flagged_post_in": "%1 דיווח על פוסט ב %2",
"user_flagged_post_in_dual": "%1 ו%2 סימנו פוסט ב%3",
"user_flagged_post_in_multiple": "%1 ו%2 נוספים סימנו פוסט ב%3",
- "user_flagged_user": "%1 flagged a user profile (%2)",
- "user_flagged_user_dual": "%1 and %2 flagged a user profile (%3)",
- "user_flagged_user_multiple": "%1 and %2 others flagged a user profile (%3)",
+ "user_flagged_user": "%1 דיווח על משתמש (%2)",
+ "user_flagged_user_dual": "%1 ו - %2 דיווחו על משתמש (%3)",
+ "user_flagged_user_multiple": "%1 ו-%2 נוספים דיווחו על משתמש (%3)",
"user_posted_to": "%1 פרסם תגובה ל: %2",
"user_posted_to_dual": "%1 ו%2 הגיבו ל: %3",
"user_posted_to_multiple": "%1 ו%2 אחרים הגיבו ל: %3",
@@ -39,8 +39,8 @@
"user_started_following_you_dual": "%1 ו%1 התחילו לעקוב אחריך.",
"user_started_following_you_multiple": "%1 ו%2 התחילו לעקוב אחריך.",
"new_register": "%1 שלח בקשת הרשמה.",
- "new_register_multiple": "There are %1 registration requests awaiting review.",
- "flag_assigned_to_you": "Flag %1 has been assigned to you",
+ "new_register_multiple": "ישנן %1 בקשות הרשמה שמחכות לבדיקה.",
+ "flag_assigned_to_you": "דיווח %1 הוקצה עבורך",
"email-confirmed": "כתובת המייל אושרה",
"email-confirmed-message": "תודה שאישרת את כתובת המייל שלך. החשבון שלך פעיל כעת.",
"email-confirm-error-message": "אירעה שגיאה בעת אישור המייל שלך. ייתכן כי הקוד היה שגוי או פג תוקף.",
diff --git a/public/language/he/pages.json b/public/language/he/pages.json
index 8832d5915a..854e1f33f4 100644
--- a/public/language/he/pages.json
+++ b/public/language/he/pages.json
@@ -6,20 +6,20 @@
"popular-month": "נושאים חמים החודש",
"popular-alltime": "הנושאים החמים בכל הזמנים",
"recent": "נושאים אחרונים",
- "flagged-content": "Flagged Content",
- "ip-blacklist": "IP Blacklist",
+ "flagged-content": "תוכן מדווח",
+ "ip-blacklist": "רשימת IP שחורה",
"users/online": "משתמשים מחוברים",
"users/latest": "משתמשים אחרונים",
"users/sort-posts": "משתמשים עם המונה הגבוה ביותר",
"users/sort-reputation": "משתמשים עם המוניטין הגבוה ביותר",
"users/banned": "משתמשים מורחקים",
- "users/most-flags": "Most flagged users",
+ "users/most-flags": "משתמשים שדווחו הכי הרבה",
"users/search": "חיפוש משתמשים",
"notifications": "התראות",
"tags": "תגיות",
"tag": "נושאים שתוייגו תחת \"%1\"",
"register": "יצירת חשבון",
- "registration-complete": "Registration complete",
+ "registration-complete": "ההרשמה הושלמה",
"login": "התחבר לחשבונך",
"reset": "איפוס סיסמה למשתמש",
"categories": "קטגוריות",
@@ -27,19 +27,19 @@
"group": "קבוצת %1",
"chats": "הודעות פרטיות",
"chat": "שלחו הודעה פרטית ל%1",
- "flags": "Flags",
- "flag-details": "Flag %1 Details",
+ "flags": "דיווחים",
+ "flag-details": "פרטי דיווח %1",
"account/edit": "לערוך את \"%1\"",
"account/edit/password": "עורך את הסיסמה של \"%1\"",
"account/edit/username": "עורך את שם המשתמש של \"%1\"",
"account/edit/email": "עורך את כתובת המייל של \"%1\"",
- "account/info": "Account Info",
+ "account/info": "פרטי חשבון",
"account/following": "אנשים ש%1 עוקב אחריהם",
"account/followers": "אנשים שעוקבים אחרי %1",
"account/posts": "הודעות שפורסמו על ידי %1",
"account/topics": "נושאים שנוצרו על ידי %1",
"account/groups": "הקבוצות של %1",
- "account/bookmarks": "%1's Bookmarked Posts",
+ "account/bookmarks": "הפוסטים השמורים של %1",
"account/settings": "הגדרות משתמש",
"account/watched": "נושאים שנצפו על ידי %1",
"account/upvoted": "פוסטים שהוצבעו לטובה על ידי %1",
diff --git a/public/language/he/search.json b/public/language/he/search.json
index cee9f0cc9a..2ce3728e7d 100644
--- a/public/language/he/search.json
+++ b/public/language/he/search.json
@@ -8,11 +8,11 @@
"posted-by": "פורסם על-ידי",
"in-categories": "בקטגוריות",
"search-child-categories": "חפש בתת קטגוריות",
- "has-tags": "Has tags",
+ "has-tags": "עם תגיות",
"reply-count": "כמות תגובות",
"at-least": "לפחות",
"at-most": "לכל היותר",
- "relevance": "Relevance",
+ "relevance": "רלוונטיות",
"post-time": "זמן הפוסט",
"newer-than": "חדש מ",
"older-than": "ישן מ",
diff --git a/public/language/he/unread.json b/public/language/he/unread.json
index 75fd54d9bd..3f869f734a 100644
--- a/public/language/he/unread.json
+++ b/public/language/he/unread.json
@@ -9,5 +9,5 @@
"topics_marked_as_read.success": "נושאים שמסומנים כנקרא!",
"all-topics": "כל הנושאים",
"new-topics": "נושאים חדשים",
- "watched-topics": "Watched Topics"
+ "watched-topics": "נושאים שאתה עוקב אחריהם"
}
\ No newline at end of file
diff --git a/public/language/he/uploads.json b/public/language/he/uploads.json
index 1622cb5693..887d827762 100644
--- a/public/language/he/uploads.json
+++ b/public/language/he/uploads.json
@@ -1,6 +1,6 @@
{
- "uploading-file": "Uploading the file...",
- "select-file-to-upload": "Select a file to upload!",
- "upload-success": "File uploaded successfully!",
- "maximum-file-size": "Maximum %1 kb"
+ "uploading-file": "מעלה את הקובץ...",
+ "select-file-to-upload": "בחר קובץ להעלאה!",
+ "upload-success": "הקובץ הועלה בהצלחה!",
+ "maximum-file-size": "מקסימום %1 קילובייט"
}
\ No newline at end of file
diff --git a/public/language/he/user.json b/public/language/he/user.json
index d5ad68e33b..bcb69d4c57 100644
--- a/public/language/he/user.json
+++ b/public/language/he/user.json
@@ -31,9 +31,9 @@
"signature": "חתימה",
"birthday": "יום הולדת",
"chat": "צ'אט",
- "chat_with": "Continue chat with %1",
- "new_chat_with": "Start new chat with %1",
- "flag-profile": "Flag Profile",
+ "chat_with": "המשך צ'אט עם %1",
+ "new_chat_with": "התחל צ'אט עם %1",
+ "flag-profile": "דווח על משתמש",
"follow": "עקוב",
"unfollow": "הפסק לעקוב",
"more": "עוד",
@@ -42,7 +42,7 @@
"change_username": "שנה שם משתמש",
"change_email": "שנה מייל",
"edit": "ערוך",
- "edit-profile": "Edit Profile",
+ "edit-profile": "ערוך פרופיל",
"default_picture": "אייקון ברירת מחדל",
"uploaded_picture": "התמונה הועלתה",
"upload_new_picture": "העלה תמונה חדשה",
@@ -60,14 +60,14 @@
"username_taken_workaround": "שם המשתמש שבחרת כבר תפוס, אז שינינו אותו מעט. שם המשתמש שלך כעת הוא %1",
"password_same_as_username": "הסיסמה שלך זהה לשם המשתמש, אנא בחר סיסמה שונה.",
"password_same_as_email": "הסיסמה שלך זהה לכתובת המייל שלך, אנא בחר סיסמה שונה.",
- "weak_password": "Weak password.",
+ "weak_password": "סיסמה חלשה.",
"upload_picture": "העלה תמונה",
"upload_a_picture": "העלה תמונה",
"remove_uploaded_picture": "מחק את התמונה שהועלתה",
"upload_cover_picture": "העלה תמונת נושא",
- "remove_cover_picture_confirm": "Are you sure you want to remove the cover picture?",
- "crop_picture": "Crop picture",
- "upload_cropped_picture": "Crop and upload",
+ "remove_cover_picture_confirm": "האם אתה בטוח שאתה רוצה למחוק את תמונת הקאבר?",
+ "crop_picture": "חתוך תמונה",
+ "upload_cropped_picture": "חתוך והעלה",
"settings": "הגדרות",
"show_email": "פרסם את כתובת האימייל שלי",
"show_fullname": "הצג את שמי המלא",
@@ -95,21 +95,21 @@
"topics_per_page": "כמות נושאים בעמוד",
"posts_per_page": "כמות פוסטים בעמוד",
"notification_sounds": "נגן סאונד כשמתקבלת התראה",
- "notifications_and_sounds": "Notifications & Sounds",
- "incoming-message-sound": "Incoming message sound",
- "outgoing-message-sound": "Outgoing message sound",
- "notification-sound": "Notification sound",
- "no-sound": "No sound",
+ "notifications_and_sounds": "התראות וצלילים",
+ "incoming-message-sound": "צליל הודעה נכנסת",
+ "outgoing-message-sound": "צליל הודעה יוצאת",
+ "notification-sound": "צליל הודעה",
+ "no-sound": "ללא צליל",
"browsing": "הגדרות צפייה",
"open_links_in_new_tab": "פתח קישורים חיצוניים בכרטיסייה חדשה",
"enable_topic_searching": "הפעל חיפוש בתוך נושא",
"topic_search_help": "אם מאופשר, החיפוש בתוך הנושא יעקוף את שיטת החיפוש של הדפדפן, ויאפשר לך לחפש בכל הנושא - ולא רק במה שמוצג על המסך",
- "delay_image_loading": "Delay Image Loading",
- "image_load_delay_help": "If enabled, images in topics will not load until they are scrolled into view",
- "scroll_to_my_post": "After posting a reply, show the new post",
- "follow_topics_you_reply_to": "Watch topics that you reply to",
- "follow_topics_you_create": "Watch topics you create",
- "grouptitle": "Group Title",
+ "delay_image_loading": "עכב טעינת תמונות",
+ "image_load_delay_help": "אם מאופשר, תמונות שנמצאות בתחתית העמוד יטענו רק כאשר תגלול אליהן",
+ "scroll_to_my_post": "הצג את הפוסט לאחר פרסום התגובה",
+ "follow_topics_you_reply_to": "עקוב אחר נושאים שהגבת עליהם",
+ "follow_topics_you_create": "עקוב אחר נושאים שפרסמת",
+ "grouptitle": "כותרת הקבוצה",
"no-group-title": "ללא כותרת לקבוצה",
"select-skin": "בחר מראה",
"select-homepage": "בחר דף בית",
@@ -120,17 +120,17 @@
"sso.title": "שירות יחיד להתחברות",
"sso.associated": "משוייך עם",
"sso.not-associated": "לחץ כאן כדי לשייך",
- "info.latest-flags": "Latest Flags",
- "info.no-flags": "No Flagged Posts Found",
- "info.ban-history": "Recent Ban History",
- "info.no-ban-history": "This user has never been banned",
- "info.banned-until": "Banned until %1",
- "info.banned-permanently": "Banned permanently",
+ "info.latest-flags": "דיווחים אחרונים",
+ "info.no-flags": "לא נמצאו פוסטים שמשתמשים דיווחו עליהם",
+ "info.ban-history": "היסטוריית הרחקות",
+ "info.no-ban-history": "משתמש זה מעולם לא הורחק",
+ "info.banned-until": "הורחק עד %1",
+ "info.banned-permanently": "הורחק לצמיתות",
"info.banned-reason-label": "סיבה",
- "info.banned-no-reason": "No reason given.",
- "info.username-history": "Username History",
- "info.email-history": "Email History",
- "info.moderation-note": "Moderation Note",
- "info.moderation-note.success": "Moderation note saved",
- "info.moderation-note.add": "Add note"
+ "info.banned-no-reason": "לא ניתנה סיבה.",
+ "info.username-history": "היסטוריית שם משתמש",
+ "info.email-history": "היסטוריית אימייל",
+ "info.moderation-note": "הערת מודרטור",
+ "info.moderation-note.success": "הערת מודרטור נשמרה",
+ "info.moderation-note.add": "הוסף הערה"
}
\ No newline at end of file
diff --git a/public/language/he/users.json b/public/language/he/users.json
index b4c068bd33..6dbd058eae 100644
--- a/public/language/he/users.json
+++ b/public/language/he/users.json
@@ -2,7 +2,7 @@
"latest_users": "משתמשים אחרונים",
"top_posters": "מפרסמים הכי הרבה",
"most_reputation": "המוניטין הגבוה ביותר",
- "most_flags": "Most Flags",
+ "most_flags": "הכי הרבה דיווחי משתמשים",
"search": "חיפוש",
"enter_username": "הכנס שם משתמש לחיפוש",
"load_more": "טען עוד",
diff --git a/public/language/ko/admin/manage/categories.json b/public/language/ko/admin/manage/categories.json
index c8e4cfe0b3..f5971d9b3e 100644
--- a/public/language/ko/admin/manage/categories.json
+++ b/public/language/ko/admin/manage/categories.json
@@ -10,7 +10,7 @@
"custom-class": "사용자 정의 클래스",
"num-recent-replies": "최근 답장 갯수",
"ext-link": "외부 링크",
- "is-section": "Treat this category as a section",
+ "is-section": "이 게시판을 섹션으로 취급",
"upload-image": "이미지 업로드",
"delete-image": "삭제",
"category-image": "게시판 이미지",
diff --git a/public/language/ko/global.json b/public/language/ko/global.json
index a874615582..283bed5f68 100644
--- a/public/language/ko/global.json
+++ b/public/language/ko/global.json
@@ -104,6 +104,6 @@
"cookies.accept": "알겠습니다!",
"cookies.learn_more": "더 보기",
"edited": "수정 되었습니다.",
- "disabled": "Disabled",
- "select": "Select"
+ "disabled": "비활성화",
+ "select": "선택"
}
\ No newline at end of file
diff --git a/public/language/ko/topic.json b/public/language/ko/topic.json
index e00d743911..11d0d8fc7e 100644
--- a/public/language/ko/topic.json
+++ b/public/language/ko/topic.json
@@ -59,7 +59,7 @@
"thread_tools.unlock": "잠금 해제",
"thread_tools.move": "이동",
"thread_tools.move_all": "모두 이동",
- "thread_tools.select_category": "Select Category",
+ "thread_tools.select_category": "게시판 선택",
"thread_tools.fork": "주제 분리",
"thread_tools.delete": "삭제",
"thread_tools.delete-posts": "포스트 삭제",
diff --git a/public/src/admin/manage/category.js b/public/src/admin/manage/category.js
index 70bcb571b2..65ff87e683 100644
--- a/public/src/admin/manage/category.js
+++ b/public/src/admin/manage/category.js
@@ -19,7 +19,7 @@ define('admin/manage/category', [
});
$('#category-selector').on('change', function () {
- ajaxify.go('admin/manage/categories/' + $(this).val());
+ ajaxify.go('admin/manage/categories/' + $(this).val() + window.location.hash);
});
function enableColorPicker(idx, inputEl) {
diff --git a/public/src/modules/categorySelector.js b/public/src/modules/categorySelector.js
index 51b71e7117..882206a42d 100644
--- a/public/src/modules/categorySelector.js
+++ b/public/src/modules/categorySelector.js
@@ -8,6 +8,7 @@ define('categorySelector', function () {
categorySelector.init = function (_el, callback) {
callback = callback || function () {};
el = _el;
+ selectedCategory = null;
el.on('click', '[data-cid]', function () {
var categoryEl = $(this);
categorySelector.selectCategory(categoryEl.attr('data-cid'));
diff --git a/public/src/modules/translator.js b/public/src/modules/translator.js
index 5296e1eef4..8c68b0c06a 100644
--- a/public/src/modules/translator.js
+++ b/public/src/modules/translator.js
@@ -617,7 +617,7 @@
// Add directional code if necessary
adaptor.translate('[[language:dir]]', function (value) {
- if (value) {
+ if (value && !$('html').attr('data-dir')) {
jQuery('html').css('direction', value).attr('data-dir', value);
}
});
diff --git a/src/middleware/header.js b/src/middleware/header.js
index deb8d87cac..d5c3d53e6f 100644
--- a/src/middleware/header.js
+++ b/src/middleware/header.js
@@ -8,6 +8,7 @@ var user = require('../user');
var meta = require('../meta');
var plugins = require('../plugins');
var navigation = require('../navigation');
+var translator = require('../translator');
var controllers = {
api: require('../controllers/api'),
@@ -97,6 +98,11 @@ module.exports = function (middleware) {
}
db.get('uid:' + req.uid + ':confirm:email:sent', next);
},
+ languageDirection: function (next) {
+ translator.translate('[[language:dir]]', res.locals.config.userLang, function (translated) {
+ next(null, translated);
+ });
+ },
navigation: async.apply(navigation.get),
tags: async.apply(meta.tags.parse, req, res.locals.metaTags, res.locals.linkTags),
banned: async.apply(user.isBanned, req.uid),
@@ -135,6 +141,7 @@ module.exports = function (middleware) {
templateValues.maintenanceHeader = parseInt(meta.config.maintenanceMode, 10) === 1 && !results.isAdmin;
templateValues.defaultLang = meta.config.defaultLang || 'en-GB';
templateValues.userLang = res.locals.config.userLang;
+ templateValues.languageDirection = results.languageDirection;
templateValues.privateUserInfo = parseInt(meta.config.privateUserInfo, 10) === 1;
templateValues.privateTagListing = parseInt(meta.config.privateTagListing, 10) === 1;
diff --git a/src/middleware/index.js b/src/middleware/index.js
index 149a455cac..2b39184b86 100644
--- a/src/middleware/index.js
+++ b/src/middleware/index.js
@@ -83,7 +83,13 @@ middleware.routeTouchIcon = function (req, res) {
if (meta.config['brand:touchIcon'] && validator.isURL(meta.config['brand:touchIcon'])) {
return res.redirect(meta.config['brand:touchIcon']);
}
- return res.sendFile(path.join(__dirname, '../../public', meta.config['brand:touchIcon'] || '/logo.png'), {
+ var iconPath = '../../public';
+ if (meta.config['brand:touchIcon']) {
+ iconPath += meta.config['brand:touchIcon'].replace(/assets\/uploads/, 'uploads');
+ } else {
+ iconPath += '/logo.png';
+ }
+ return res.sendFile(path.join(__dirname, iconPath), {
maxAge: req.app.enabled('cache') ? 5184000000 : 0,
});
};
diff --git a/src/routes/feeds.js b/src/routes/feeds.js
index 62b8e6f650..3884c76a50 100644
--- a/src/routes/feeds.js
+++ b/src/routes/feeds.js
@@ -263,7 +263,8 @@ function generateTopicsFeed(feedOptions, feedTopics, callback) {
if (topicData.teaser && topicData.teaser.user) {
feedItem.description = topicData.teaser.content;
feedItem.author = topicData.teaser.user.username;
- return next(null, feedItem);
+ feed.item(feedItem);
+ return next();
}
topics.getMainPost(topicData.tid, feedOptions.uid, function (err, mainPost) {
diff --git a/src/routes/index.js b/src/routes/index.js
index 15339b4e11..5023dcc3d3 100644
--- a/src/routes/index.js
+++ b/src/routes/index.js
@@ -181,7 +181,7 @@ module.exports = function (app, middleware, hotswapIds, callback) {
];
app.use(relativePath, function (req, res, next) {
if (deprecatedPaths.some(function (path) { return req.path.startsWith(path); })) {
- winston.warn('[deprecated] Accessing `' + req.path.slice(1) + '` from `/` is deprecated. ' +
+ winston.verbose('[deprecated] Accessing `' + req.path.slice(1) + '` from `/` is deprecated. ' +
'Use `/assets' + req.path + '` to access this file.');
res.redirect(relativePath + '/assets' + req.path + '?' + meta.config['cache-buster']);
} else {
@@ -190,7 +190,7 @@ module.exports = function (app, middleware, hotswapIds, callback) {
});
// DEPRECATED
app.use(relativePath + '/api/language', function (req, res) {
- winston.warn('[deprecated] Accessing language files from `/api/language` is deprecated. ' +
+ winston.verbose('[deprecated] Accessing language files from `/api/language` is deprecated. ' +
'Use `/assets/language' + req.path + '.json` for prefetch paths.');
res.redirect(relativePath + '/assets/language' + req.path + '.json?' + meta.config['cache-buster']);
});
diff --git a/src/socket.io/posts.js b/src/socket.io/posts.js
index f50c9e53fa..d5b586d627 100644
--- a/src/socket.io/posts.js
+++ b/src/socket.io/posts.js
@@ -22,7 +22,7 @@ require('./posts/bookmarks')(SocketPosts);
require('./posts/tools')(SocketPosts);
SocketPosts.reply = function (socket, data, callback) {
- if (!data || !data.tid || !data.content) {
+ if (!data || !data.tid || (parseInt(meta.config.minimumPostLength, 10) !== 0 && !data.content)) {
return callback(new Error('[[error:invalid-data]]'));
}
diff --git a/src/socket.io/posts/edit.js b/src/socket.io/posts/edit.js
index 646c51228f..00ae540496 100644
--- a/src/socket.io/posts/edit.js
+++ b/src/socket.io/posts/edit.js
@@ -15,7 +15,7 @@ module.exports = function (SocketPosts) {
SocketPosts.edit = function (socket, data, callback) {
if (!socket.uid) {
return callback(new Error('[[error:not-logged-in]]'));
- } else if (!data || !data.pid || !data.content) {
+ } else if (!data || !data.pid || (parseInt(meta.config.minimumPostLength, 10) !== 0 && !data.content)) {
return callback(new Error('[[error:invalid-data]]'));
}
@@ -30,7 +30,7 @@ module.exports = function (SocketPosts) {
return callback(new Error('[[error:not-enough-tags, ' + meta.config.minimumTagsPerTopic + ']]'));
} else if (data.tags && data.tags.length > parseInt(meta.config.maximumTagsPerTopic, 10)) {
return callback(new Error('[[error:too-many-tags, ' + meta.config.maximumTagsPerTopic + ']]'));
- } else if (contentLen < parseInt(meta.config.minimumPostLength, 10)) {
+ } else if (parseInt(meta.config.minimumPostLength, 10) !== 0 && contentLen < parseInt(meta.config.minimumPostLength, 10)) {
return callback(new Error('[[error:content-too-short, ' + meta.config.minimumPostLength + ']]'));
} else if (contentLen > parseInt(meta.config.maximumPostLength, 10)) {
return callback(new Error('[[error:content-too-long, ' + meta.config.maximumPostLength + ']]'));
diff --git a/src/topics/create.js b/src/topics/create.js
index e758f5f513..f5a51e7e77 100644
--- a/src/topics/create.js
+++ b/src/topics/create.js
@@ -104,6 +104,7 @@ module.exports = function (Topics) {
if (data.content) {
data.content = utils.rtrim(data.content);
}
+
check(data.content, meta.config.minimumPostLength, meta.config.maximumPostLength, 'content-too-short', 'content-too-long', next);
},
function (next) {
@@ -345,7 +346,7 @@ module.exports = function (Topics) {
item = S(item).stripTags().s.trim();
}
- if (!item || item.length < parseInt(min, 10)) {
+ if (item === null || item === undefined || item.length < parseInt(min, 10)) {
return callback(new Error('[[error:' + minError + ', ' + min + ']]'));
} else if (item.length > parseInt(max, 10)) {
return callback(new Error('[[error:' + maxError + ', ' + max + ']]'));
diff --git a/test/uploads.js b/test/uploads.js
index 959662e9b0..318428c298 100644
--- a/test/uploads.js
+++ b/test/uploads.js
@@ -4,6 +4,7 @@ var async = require('async');
var assert = require('assert');
var nconf = require('nconf');
var path = require('path');
+var request = require('request');
var db = require('./mocks/databasemock');
var categories = require('../src/categories');
@@ -247,12 +248,19 @@ describe('Upload Controllers', function () {
});
it('should upload touch icon', function (done) {
+ var touchiconAssetPath = '/assets/uploads/system/touchicon-orig.png';
helpers.uploadFile(nconf.get('url') + '/api/admin/uploadTouchIcon', path.join(__dirname, '../test/files/test.png'), {}, jar, csrf_token, function (err, res, body) {
assert.ifError(err);
assert.equal(res.statusCode, 200);
assert(Array.isArray(body));
- assert.equal(body[0].url, '/assets/uploads/system/touchicon-orig.png');
- done();
+ assert.equal(body[0].url, touchiconAssetPath);
+ meta.config['brand:touchIcon'] = touchiconAssetPath;
+ request(nconf.get('url') + '/apple-touch-icon', function (err, res, body) {
+ assert.ifError(err);
+ assert.equal(res.statusCode, 200);
+ assert(body);
+ done();
+ });
});
});
});
diff --git a/test/user.js b/test/user.js
index 93d2f77f6e..d7118e4a0b 100644
--- a/test/user.js
+++ b/test/user.js
@@ -991,20 +991,31 @@ describe('User', function () {
describe('digests', function () {
var uid;
before(function (done) {
- User.create({ username: 'digestuser', email: 'test@example.com' }, function (err, _uid) {
+ async.waterfall([
+ function (next) {
+ User.create({ username: 'digestuser', email: 'test@example.com' }, next);
+ },
+ function (_uid, next) {
+ uid = _uid;
+ User.updateDigestSetting(uid, 'day', next);
+ },
+ function (next) {
+ User.setSetting(uid, 'dailyDigestFreq', 'day', next);
+ },
+ ], done);
+ });
+
+ it('should send digests', function (done) {
+ User.digest.execute({ interval: 'day' }, function (err) {
assert.ifError(err);
- uid = _uid;
done();
});
});
- it('should send digests', function (done) {
- User.updateDigestSetting(uid, 'day', function (err) {
+ it('should not send digests', function (done) {
+ User.digest.execute({ interval: 'month' }, function (err) {
assert.ifError(err);
- User.digest.execute({ interval: 'day' }, function (err) {
- assert.ifError(err);
- done();
- });
+ done();
});
});
});