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(); }); }); });