diff --git a/package.json b/package.json index bcabe5992ae0..775870335214 100644 --- a/package.json +++ b/package.json @@ -47,7 +47,7 @@ "morgan": "^1.3.2", "mousetrap": "^1.5.3", "nconf": "~0.8.2", - "nodebb-plugin-composer-default": "4.1.4", + "nodebb-plugin-composer-default": "4.1.7", "nodebb-plugin-dbsearch": "1.0.2", "nodebb-plugin-emoji-extended": "1.1.1", "nodebb-plugin-emoji-one": "1.1.5", @@ -57,8 +57,8 @@ "nodebb-plugin-spam-be-gone": "0.4.9", "nodebb-rewards-essentials": "0.0.9", "nodebb-theme-lavender": "3.0.13", - "nodebb-theme-persona": "4.1.17", - "nodebb-theme-vanilla": "5.1.8", + "nodebb-theme-persona": "4.1.19", + "nodebb-theme-vanilla": "5.1.9", "nodebb-widget-essentials": "2.0.10", "nodemailer": "2.0.0", "nodemailer-sendmail-transport": "1.0.0", @@ -117,4 +117,4 @@ "url": "https://github.com/barisusakli" } ] -} \ No newline at end of file +} diff --git a/public/language/ar/register.json b/public/language/ar/register.json index 3c61bf8b3468..c6ccf2231eb6 100644 --- a/public/language/ar/register.json +++ b/public/language/ar/register.json @@ -1,6 +1,6 @@ { "register": "تسجيل", - "cancel_registration": "Cancel Registration", + "cancel_registration": "إلغاء التسجيل", "help.email": "افتراضيا، سيتم إخفاء بريدك الإلكتروني من العامة.", "help.username_restrictions": "اسم مستخدم فريدة من نوعها بين1% و2% حرفا. يمكن للآخرين ذكرك @ <'span id='your-username> اسم المستخدم .", "help.minimum_password_length": "كلمة المرور يجب أن تكون على الأقل بها 1% أحرف", diff --git a/public/language/ar/user.json b/public/language/ar/user.json index 6d6b23686586..0654ea0a719f 100644 --- a/public/language/ar/user.json +++ b/public/language/ar/user.json @@ -6,7 +6,7 @@ "postcount": "عدد المشاركات", "email": "البريد الإلكتروني", "confirm_email": "تأكيد عنوان البريد الإلكتروني", - "account_info": "Account Info", + "account_info": "معلومات الحساب", "ban_account": "Ban Account", "ban_account_confirm": "هل تريد حقاً حظر هاذا العضو؟", "unban_account": "Unban Account", diff --git a/public/language/nl/login.json b/public/language/nl/login.json index 9704cc7ce788..e6d21e1fa6e6 100644 --- a/public/language/nl/login.json +++ b/public/language/nl/login.json @@ -8,5 +8,5 @@ "failed_login_attempt": "Aanmelden mislukt", "login_successful": "Je bent succesvol ingelogd!", "dont_have_account": "Geen gebruikersaccount?", - "logged-out-due-to-inactivity": "You have been logged out of the Admin Control Panel due to inactivity" + "logged-out-due-to-inactivity": "Je bent uitgelogt van het admin control panel vanwege inactiviteit." } \ No newline at end of file diff --git a/public/language/nl/topic.json b/public/language/nl/topic.json index d938fb6c50b9..337f02bbea25 100644 --- a/public/language/nl/topic.json +++ b/public/language/nl/topic.json @@ -27,7 +27,7 @@ "flag": "Markeren", "locked": "Gesloten", "pinned": "Pinned", - "moved": "Moved", + "moved": "Verplaatst", "bookmark_instructions": "Klik hier om terug te keren naar de laatst gelezen post in deze thread.", "flag_title": "Bericht aan beheerders melden", "flag_success": "Dit bericht is gerapporteerd aan de beheerder.", diff --git a/public/language/sl/category.json b/public/language/sl/category.json index f2c156394dd8..63495a5f90e4 100644 --- a/public/language/sl/category.json +++ b/public/language/sl/category.json @@ -1,6 +1,6 @@ { "category": "Kategorija", - "subcategories": "Podkategorija", + "subcategories": "Podkategorije", "new_topic_button": "Nova tema", "guest-login-post": "Za objavljanje moraš biti prijavljen", "no_topics": "V tej kategoriji ni tem.
Boš odprl novo temo?", @@ -10,11 +10,11 @@ "share_this_category": "Deli to kategorijo", "watch": "Spremljaj", "ignore": "Ne spremljaj", - "watching": "Watching", - "ignoring": "Ignoring", - "watching.description": "Show topics in unread", - "ignoring.description": "Do not show topics in unread", + "watching": "Spremljanje", + "ignoring": "Prezri", + "watching.description": "Pokaži teme v neprebrano", + "ignoring.description": "Ne pokaži teme v neprebrano", "watch.message": "Trenutno spremljaš nove objave v tej kategoriji", "ignore.message": "Ne spremljaš novih objav v tej kategoriji", - "watched-categories": "Watched categories" + "watched-categories": "Spremljane kategorije" } \ No newline at end of file diff --git a/public/language/sl/email.json b/public/language/sl/email.json index b214e979b640..dcc9b4894612 100644 --- a/public/language/sl/email.json +++ b/public/language/sl/email.json @@ -1,36 +1,36 @@ { - "password-reset-requested": "Zahtevana ponastavitev gesla - %1!", + "password-reset-requested": "Zahtevana je ponastavitev gesla - %1!", "welcome-to": "Pozdravljeni na %1", "invite": "Povabilo od %1", "greeting_no_name": "Živjo", "greeting_with_name": "Živjo %1", "welcome.text1": "Hvala, ker ste se registrirali na %1!", - "welcome.text2": "Za popolno aktivacijo vašega računa morate potrditi elektronski naslov s katerim ste se registrirali.", - "welcome.text3": "Administrator je odobril prošnjo za registracijo. Sedaj se lahko registrirate z vašim uporabniškim imenom in geslom.", - "welcome.cta": "Kliknite za potrditev vašega elektronskega naslova", + "welcome.text2": "Za popolno aktivacijo vašega računa morate potrditi e-poštni naslov s katerim ste se registrirali.", + "welcome.text3": "Srbnik je odobril prošnjo za registracijo. Sedaj se lahko registrirate z vašim uporabniškim imenom in geslom.", + "welcome.cta": "Kliknite za potrditev vašega e-poštnega naslova", "invitation.text1": "%1 te je povabil, da se pridružiš %2", - "invitation.ctr": "Klikni tu za kreiranje vašega računa.", + "invitation.ctr": "Klikni tu in ustvari svoj račun.", "reset.text1": "Dobili smo zahtevo za ponastavitev vašega gesla. Če niste zahtevali ponastavitve gesla, prosimo prezrite to sporočilo.", "reset.text2": "Za nadaljevanje ponastavitve gesla prosimo kliknite na sledečo povezavo:", "reset.cta": "Kliknite tu za ponastavitev gesla", "reset.notify.subject": "Geslo uspešno spremenjeno", "reset.notify.text1": "Obveščamo vas, da je bilo na %1 uspešno spremenjeno vaše geslo.", - "reset.notify.text2": "Če niste dali te zahteve, prosimo nemudoma kontaktirajte administratorja.", + "reset.notify.text2": "Če niste dali te zahteve, prosimo nemudoma obvestite skrbnika.", "digest.notifications": "Imate eno neprebrano obvestilo na %1:", "digest.latest_topics": "Zadnja tema na %1", "digest.cta": "Kliknite tu za obisk %1", - "digest.unsub.info": "Ta izvleček je bil poslan zaradi vaših nastavitev obvestil.", - "digest.no_topics": "V preteklosti ni bilo aktivnih tem na %1", - "digest.day": "day", - "digest.week": "week", - "digest.month": "month", - "digest.subject": "Digest for %1", - "notif.chat.subject": "Novo sporočilo prejeto na %1", + "digest.unsub.info": "Ta izvleček vam je bil poslan zaradi vaših nastavitev naročnine.", + "digest.no_topics": "%1, ki je pretekel ni imel aktivnih tem.", + "digest.day": "dan", + "digest.week": "teden", + "digest.month": "mesec", + "digest.subject": "Povzetek za %1", + "notif.chat.subject": "Novo sporočilo klepeta prejeto na %1", "notif.chat.cta": "Kliknite tu za nadaljevanje pogovora", - "notif.chat.unsub.info": "Obvestilu o pogovoru je bilo poslano zaradi vaših nastavitev obvestil.", - "notif.post.cta": "Kliknite tu za celotno temo.", - "notif.post.unsub.info": "Obvestilo o odgovoru je bilo poslano zaradi vaših nastavitev obvestil.", - "test.text1": "To je testno elektronsko sporočilo za preverjanje prejemnika, če je pravilno nastavil NodeBB.", + "notif.chat.unsub.info": "Obvestilo o klepetu vam je bilo poslano zaradi vaših nastavitev naročnine.", + "notif.post.cta": "Kliknite tu, če želite prebrati celotno temo.", + "notif.post.unsub.info": "Obvestilo o objavi je bilo poslano zaradi vaših nastavitev naročnine.", + "test.text1": "To je testno elektronsko sporočilo, služi preverjanju pravilnosti nastavite podsistema za pošiljanje NodeBB poštnih sporočil.", "unsub.cta": "Kliknite tu za spremembo nastavitev.", "closing": "Hvala!" } \ No newline at end of file diff --git a/public/language/sl/error.json b/public/language/sl/error.json index be36f337e3e0..aa23d38025b4 100644 --- a/public/language/sl/error.json +++ b/public/language/sl/error.json @@ -26,8 +26,8 @@ "sendmail-not-found": "The sendmail executable could not be found, please ensure it is installed and executable by the user running NodeBB.", "username-too-short": "Uporabniško ime je prekratko", "username-too-long": "Uporabniško ime je predolgo", - "password-too-long": "Password too long", - "user-banned": "Uporabnik je blokiran", + "password-too-long": "Geslo je predolgo", + "user-banned": "Uporabnik je izločen", "user-too-new": "Oprostite, počakajte %1 sekund pred vašo prvo objavo", "blacklisted-ip": "Sorry, your IP address has been banned from this community. If you feel this is in error, please contact an administrator.", "ban-expiry-missing": "Please provide an end date for this ban", @@ -69,15 +69,15 @@ "guest-upload-disabled": "Guest uploading has been disabled", "already-favourited": "You have already bookmarked this post", "already-unfavourited": "You have already unbookmarked this post", - "cant-ban-other-admins": "Ne morete blokirati drugih administratorjev!", - "cant-remove-last-admin": "Ste edini administrator. Dodajte novega administratorja preden boste odstranili sebe.", + "cant-ban-other-admins": "Ne morete izločiti drugih skrbnikov!", + "cant-remove-last-admin": "Ste edini skrbnik. Preden se boste odstranili, dodajte novega skrbnika.", "cant-delete-admin": "Remove administrator privileges from this account before attempting to delete it.", "invalid-image-type": "Nedovoljen format slike. Dovoljeni formati so: %1", - "invalid-image-extension": "Nedovoljena končnica slike", - "invalid-file-type": "Nedovoljen format datoteke. Dovoljeni formati so: %1", + "invalid-image-extension": "Nedovoljena pripona slike", + "invalid-file-type": "Nedovoljena vrsta datoteke. Dovoljene vrste so: %1", "group-name-too-short": "Ime skupine je prekratko", - "group-name-too-long": "Group name too long", - "group-already-exists": "Skupina še obstaja", + "group-name-too-long": "Ime skupine je predolgo", + "group-already-exists": "Skupina že obstaja", "group-name-change-not-allowed": "Sprememba imena skupine ni dovoljena", "group-already-member": "Already part of this group", "group-not-member": "Not a member of this group", @@ -85,26 +85,26 @@ "group-already-invited": "Ta uporabnik je že bil povabljen", "group-already-requested": "Vaša prošnja za članstvo je že bila sprejeta.", "post-already-deleted": "Ta objava je že bila izbrisana", - "post-already-restored": "Ta objava je že bila razveljavljena", + "post-already-restored": "Ta objava je že bila obnovljena", "topic-already-deleted": "Ta tema je že bila izbrisana", - "topic-already-restored": "Ta tema je že bila razveljavljena", + "topic-already-restored": "Ta tema je že bila obnovljena", "cant-purge-main-post": "Ne morete odstraniti prve objave, prosimo izbrišite temo.", "topic-thumbnails-are-disabled": "Sličice teme so onemogočene.", "invalid-file": "Nedovoljena datoteka", - "uploads-are-disabled": "Nalaganje je onemogočeno", + "uploads-are-disabled": "Prenosi so onemogočeni", "signature-too-long": "Vaš podpis ne sme biti daljši od %1 znak(ov).", "about-me-too-long": "Rubrika \"O meni\" ne sme biti daljša od %1 znak(ov).", "cant-chat-with-yourself": "Ne morete klepetati s seboj!", - "chat-restricted": "Uporabnik je omejil klepetanje. Za možnost klepetanja vas mora uporabnik slediti", - "chat-disabled": "Chat system disabled", + "chat-restricted": "Uporabnik je omejil klepetanje. Za možnost klepetanja vas mora uporabnik spremljati", + "chat-disabled": "Klepet je onemogočen", "too-many-messages": "Poslali ste veliko število sporočil, prosimo počakajte nekaj časa.", - "invalid-chat-message": "Invalid chat message", - "chat-message-too-long": "Chat message is too long", + "invalid-chat-message": "Neveljavno sporočilo klepeta", + "chat-message-too-long": "Sporočilo klepeta je predolgo", "cant-edit-chat-message": "You are not allowed to edit this message", "cant-remove-last-user": "You can't remove the last user", "cant-delete-chat-message": "You are not allowed to delete this message", "already-voting-for-this-post": "You have already voted for this post.", - "reputation-system-disabled": "Možnost ugleda je onemogočena.", + "reputation-system-disabled": "Sistem za ugled je onemogočen.", "downvoting-disabled": "Negativno glasovanje je onemogočeno", "not-enough-reputation-to-downvote": "Nimate dovolj ugleda za negativno glasovanje", "not-enough-reputation-to-flag": "Nimate dovolj ugleda za prijavo te objave", @@ -112,7 +112,7 @@ "reload-failed": "NodeBB je zaznal težavo pri osveževanju: ", "registration-error": "Napaka pri registraciji", "parse-error": "Nekaj je šlo narobe pri pridobivanju odgovora s strežnika", - "wrong-login-type-email": "Uporabite svoj e-mail naslov za prijavo", + "wrong-login-type-email": "Uporabite svoj e-poštni naslov za prijavo", "wrong-login-type-username": "Uporabite svoje uporabniško ime za prijavo", "invite-maximum-met": "You have invited the maximum amount of people (%1 out of %2).", "no-session-found": "No login session found!", diff --git a/public/language/sl/global.json b/public/language/sl/global.json index f26add34d63f..5dd5474601a3 100644 --- a/public/language/sl/global.json +++ b/public/language/sl/global.json @@ -52,8 +52,8 @@ "best": "Best", "upvoters": "Upvoters", "upvoted": "Upvoted", - "downvoters": "Downvoters", - "downvoted": "Downvoted", + "downvoters": "Negativnih glasovalcev", + "downvoted": "Negativno glasovano", "views": "Ogledi", "reputation": "Ugled", "read_more": "preberi več", diff --git a/public/language/sl/pages.json b/public/language/sl/pages.json index 27eebd626a25..e89f93542185 100644 --- a/public/language/sl/pages.json +++ b/public/language/sl/pages.json @@ -39,7 +39,7 @@ "account/settings": "Uporabniške nastavitve", "account/watched": "Teme, ki jih spremlja uporabnik %1", "account/upvoted": "Posts upvoted by %1", - "account/downvoted": "Posts downvoted by %1", + "account/downvoted": "Negativno glasovane objave od %1", "account/best": "Best posts made by %1", "confirm": "Email Confirmed", "maintenance.text": "%1 je trenutno v prenovi. Prosimo pridite nazaj kasneje.", diff --git a/public/language/sl/tags.json b/public/language/sl/tags.json index 4fbbab14d8a5..954005559f22 100644 --- a/public/language/sl/tags.json +++ b/public/language/sl/tags.json @@ -3,5 +3,5 @@ "tags": "Oznake", "enter_tags_here": "Tu vpišite oznake, med %1 in %2 znaki.", "enter_tags_here_short": "Vpišite oznake...", - "no_tags": "Ni še oznak." + "no_tags": "Nobene oznake še ni." } \ No newline at end of file diff --git a/public/language/sl/topic.json b/public/language/sl/topic.json index 225d18110b8b..cc00affa9986 100644 --- a/public/language/sl/topic.json +++ b/public/language/sl/topic.json @@ -13,7 +13,7 @@ "notify_me": "Bodi obveščen o novih odgovorih na to temo", "quote": "Citiraj", "reply": "Odgovori", - "reply-as-topic": "Reply as topic", + "reply-as-topic": "Odgovori z temo", "guest-login-reply": "Prijavi se za odgovor", "edit": "Uredi", "delete": "Izbriši", @@ -26,44 +26,44 @@ "tools": "Orodja", "flag": "Prijavi", "locked": "Zaklenjeno", - "pinned": "Pinned", - "moved": "Moved", - "bookmark_instructions": "Click here to return to the last read post in this thread.", - "flag_title": "Prijavi to objavo v pregled administratorju", + "pinned": "Pripeto", + "moved": "Premaknjeno", + "bookmark_instructions": "Klikni tukaj za vrnitev na zadnje prebrano objavo v tej niti", + "flag_title": "Označi to objavo za vodenje", "flag_success": "Ta objava je bila prijavljena v pregled administratorju.", - "deleted_message": "Ta tema je bila izbrisana. Le uporabniki s pravicami teme jo lahko vidijo.", - "following_topic.message": "Sedaj boste dobili obvestila, ko bo nekdo objavil v to temo.", + "deleted_message": "Ta tema je bila izbrisana. Le uporabniki s pravicami upravljanja tem jo lahko vidijo.", + "following_topic.message": "Ob objavi v to temo, boste od sedaj dobivali obvestila. ", "not_following_topic.message": "You will see this topic in the unread topics list, but you will not receive notifications when somebody posts to this topic.", "ignoring_topic.message": "You will no longer see this topic in the unread topics list. You will be notified when you are mentioned or your post is up voted.", "login_to_subscribe": "Prosimo prijavite ali registrirajte se za naročanje o tej temi.", "markAsUnreadForAll.success": "Tema označena kot neprebrana za vse.", - "mark_unread": "Mark unread", - "mark_unread.success": "Topic marked as unread.", + "mark_unread": "Označi kot neprebrano", + "mark_unread.success": "Tema označena kot neprebrana.", "watch": "Spremljaj", "unwatch": "Ne spremljaj", "watch.title": "Bodi obveščen o novih odgovorih v tej temi", "unwatch.title": "Prenehaj spremljati to temo", "share_this_post": "Deli to objavo", - "watching": "Watching", - "not-watching": "Not Watching", - "ignoring": "Ignoring", + "watching": "Spremljano", + "not-watching": "Ni spremljano", + "ignoring": "Prezri", "watching.description": "Notify me of new replies.
Show topic in unread.", "not-watching.description": "Do not notify me of new replies.
Show topic in unread if category is not ignored.", "ignoring.description": "Do not notify me of new replies.
Do not show topic in unread.", "thread_tools.title": "Orodja teme", "thread_tools.markAsUnreadForAll": "Označi kot neprebrano", - "thread_tools.pin": "Prilepi temo", - "thread_tools.unpin": "Odlepi temo", + "thread_tools.pin": "Pripni temo", + "thread_tools.unpin": "Odpni temo", "thread_tools.lock": "Zakleni temo", "thread_tools.unlock": "Odkleni temo", - "thread_tools.move": "Prestavi temo", - "thread_tools.move_all": "Prestavi vse", + "thread_tools.move": "Premakni temo", + "thread_tools.move_all": "Premakni vse", "thread_tools.fork": "Razcepi temo", "thread_tools.delete": "Izbriši temo", - "thread_tools.delete-posts": "Delete Posts", + "thread_tools.delete-posts": "Izbriši objave", "thread_tools.delete_confirm": "Ste prepričani, da želite izbrisati to temo?", - "thread_tools.restore": "Razveljavi temo", - "thread_tools.restore_confirm": "Ste prepričani, da želite razveljaviti to temo?", + "thread_tools.restore": "Obnovi temo", + "thread_tools.restore_confirm": "Ste prepričani, da želite obnoviti to temo?", "thread_tools.purge": "Očisti temo", "thread_tools.purge_confirm": "Ste prepričani, da želite očistiti to temo?", "topic_move_success": "Ta tema je bila uspešno prestavljena v %1", @@ -74,9 +74,9 @@ "disabled_categories_note": "Onemogočene kategorije so obarvane sivo", "confirm_move": "Premakni", "confirm_fork": "Razcepi", - "favourite": "Bookmark", - "favourites": "Bookmarks", - "favourites.has_no_favourites": "You haven't bookmarked any posts yet.", + "favourite": "Zaznamek", + "favourites": "Zaznamki", + "favourites.has_no_favourites": "Zaznamovali še niste nobenih objav.", "loading_more_posts": "Nalagam več objav", "move_topic": "Premakni temo", "move_topics": "Premakni teme", diff --git a/public/language/sl/uploads.json b/public/language/sl/uploads.json index 1622cb5693f4..85ee20d0c2b4 100644 --- a/public/language/sl/uploads.json +++ b/public/language/sl/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": "Prenašanje datoteke ...", + "select-file-to-upload": "Izberete datoteko, ki jo želite prenesti!", + "upload-success": "Datoteka je bila uspešno prenesena!", + "maximum-file-size": "Največ %1 kb " } \ No newline at end of file diff --git a/public/language/sl/user.json b/public/language/sl/user.json index 57a2b00c4744..330d37b7eeb9 100644 --- a/public/language/sl/user.json +++ b/public/language/sl/user.json @@ -1,19 +1,19 @@ { - "banned": "Blokirani", + "banned": "Izločen", "offline": "Odjavljeni", "username": "Uporabniško ime", "joindate": "Datum pridružitve", "postcount": "Število objav", "email": "E-pošta", "confirm_email": "Potrdi e-poštni naslov", - "account_info": "Account Info", - "ban_account": "Blokiraj račun", - "ban_account_confirm": "Ali želiš blokirati uporabnika?", - "unban_account": "Odblokiraj račun", + "account_info": "Podatki računa", + "ban_account": "Izločen račun", + "ban_account_confirm": "Ali želiš izločiti uporabnika?", + "unban_account": "Ponovno vključi račun", "delete_account": "Izbriši račun", "delete_account_confirm": "Ali želiš izbrisati račun?
S potrditvijo bodo izbrisani vsi podatki, ki jih ne bo več možno obnoviti.

Vpiši svoje uporabniško ime za dokončanje procesa.", "delete_this_account_confirm": "Ali želiš izbrisati račun?
S potrditvijo bodo izbrisani vsi podatki, ki jih ne bo več možno obnoviti.

", - "account-deleted": "Account deleted", + "account-deleted": "Račun je izbrisan", "fullname": "Ime in priimek", "website": "Spletna stran", "location": "Lokacija", @@ -23,25 +23,25 @@ "profile": "Profil", "profile_views": "Ogledi", "reputation": "Naziv", - "favourites": "Bookmarks", - "watched": "Zgodovina ogledov", - "followers": "Sledilci", - "following": "Sledim", + "favourites": "Zaznamki", + "watched": "Spremljano", + "followers": "Spremljevalci", + "following": "Spremljano", "aboutme": "O meni", "signature": "Podpis", "birthday": "Rojstni datum", "chat": "Klepet", - "chat_with": "Chat with %1", + "chat_with": "Klepet z %1", "follow": "Spremljaj", "unfollow": "Ne spremljaj", "more": "Več", - "profile_update_success": "Prosil je bil uspešno posodobljen.", + "profile_update_success": "Profil je bil uspešno posodobljen.", "change_picture": "Spremeni sliko", - "change_username": "Change Username", - "change_email": "Change Email", + "change_username": "Spremeni uporabniško ime", + "change_email": "Spremeni e-poštni naslov", "edit": "Uredi", - "edit-profile": "Edit Profile", - "default_picture": "Default Icon", + "edit-profile": "Uredi profil", + "default_picture": "Privzeta ikona", "uploaded_picture": "Naloži fotografijo", "upload_new_picture": "Naloži novo fotografijo", "upload_new_picture_from_url": "Naloži novo fotografijo s spletnega naslova", @@ -56,12 +56,12 @@ "confirm_password": "Potrdi geslo", "password": "Geslo", "username_taken_workaround": "Predlagano uporabniško ime je že zasedeno, zato predlagamo %1", - "password_same_as_username": "Your password is the same as your username, please select another password.", - "password_same_as_email": "Your password is the same as your email, please select another password.", + "password_same_as_username": "Vaše geslo je enako kot vaše uporabniško ime, prosim izberite drugačno geslo.", + "password_same_as_email": "Vaše geslo je enako kot vaše e-poštni naslov, prosim izberite drugačno geslo.", "upload_picture": "Naloži fotografijo", "upload_a_picture": "Naloži fotografijo", - "remove_uploaded_picture": "Remove Uploaded Picture", - "upload_cover_picture": "Upload cover picture", + "remove_uploaded_picture": "Odstrani preneseno sliko ", + "upload_cover_picture": "Prenesi fotografijo naslovnice", "settings": "Nastavitve.", "show_email": "Pokaži moj e-poštni naslov.", "show_fullname": "Pokaži moj ime in priimek.", @@ -80,9 +80,9 @@ "has_no_posts": "Uporabnik še ni ustvaril nobene objave.", "has_no_topics": "Uporabnik še ni odprl nobene teme.", "has_no_watched_topics": "Uporabnik še ne spremlja nobene teme.", - "has_no_upvoted_posts": "This user hasn't upvoted any posts yet.", - "has_no_downvoted_posts": "This user hasn't downvoted any posts yet.", - "has_no_voted_posts": "This user has no voted posts", + "has_no_upvoted_posts": "Uporabnik še ni pritrdil nobeni objavi.", + "has_no_downvoted_posts": "Uporabnik še ni ne pritrdil nobeni objavi.", + "has_no_voted_posts": "Uporabnik še nima nobene pritrditve objavam", "email_hidden": "Skrit e-poštni naslov", "hidden": "skrit", "paginate_description": "Uporabi oštevilčenje strani namesto neskončnega drsenja", @@ -93,14 +93,14 @@ "open_links_in_new_tab": "Zunanje povezave odpri v novem zavihku", "enable_topic_searching": "Omogoči iskanje znotraj teme", "topic_search_help": "Če omogočite, bo iskanje prepisalo brskalnikove prevzete nastavitve in vam omogočilo iskanje skozi celotno temo.", - "delay_image_loading": "Delay Image Loading", + "delay_image_loading": "Zakasnitev pri nalaganju slike", "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", + "follow_topics_you_reply_to": "Spremljanj teme, na katere si odgovoril", + "follow_topics_you_create": "Spremljanj teme, ki si jih ustvaril", "grouptitle": "Group Title", "no-group-title": "Skupina nima imena", - "select-skin": "Izberi obliko", + "select-skin": "Izberi preobleko", "select-homepage": "Select a Homepage", "homepage": "Homepage", "homepage_description": "Select a page to use as the forum homepage or 'None' to use the default homepage.", diff --git a/public/src/admin/advanced/errors.js b/public/src/admin/advanced/errors.js index 2e72bcceb57d..52d642724069 100644 --- a/public/src/admin/advanced/errors.js +++ b/public/src/admin/advanced/errors.js @@ -29,7 +29,7 @@ define('admin/advanced/errors', ['Chart'], function(Chart) { dailyLabels = dailyLabels.slice(-7); if (utils.isMobile()) { - Chart.defaults.global.showTooltips = false; + Chart.defaults.global.tooltips.enabled = false; } var data = { @@ -38,12 +38,12 @@ define('admin/advanced/errors', ['Chart'], function(Chart) { datasets: [ { label: "", - fillColor: "rgba(186,139,175,0.2)", - strokeColor: "rgba(186,139,175,1)", - pointColor: "rgba(186,139,175,1)", - pointStrokeColor: "#fff", - pointHighlightFill: "#fff", - pointHighlightStroke: "rgba(186,139,175,1)", + backgroundColor: "rgba(186,139,175,0.2)", + borderColor: "rgba(186,139,175,1)", + pointBackgroundColor: "rgba(186,139,175,1)", + pointHoverBackgroundColor: "#fff", + pointBorderColor: "#fff", + pointHoverBorderColor: "rgba(186,139,175,1)", data: ajaxify.data.analytics['not-found'] } ] @@ -53,12 +53,12 @@ define('admin/advanced/errors', ['Chart'], function(Chart) { datasets: [ { label: "", - fillColor: "rgba(151,187,205,0.2)", - strokeColor: "rgba(151,187,205,1)", - pointColor: "rgba(151,187,205,1)", - pointStrokeColor: "#fff", - pointHighlightFill: "#fff", - pointHighlightStroke: "rgba(151,187,205,1)", + backgroundColor: "rgba(151,187,205,0.2)", + borderColor: "rgba(151,187,205,1)", + pointBackgroundColor: "rgba(151,187,205,1)", + pointHoverBackgroundColor: "#fff", + pointBorderColor: "#fff", + pointHoverBorderColor: "rgba(151,187,205,1)", data: ajaxify.data.analytics['toobusy'] } ] @@ -67,13 +67,41 @@ define('admin/advanced/errors', ['Chart'], function(Chart) { notFoundCanvas.width = $(notFoundCanvas).parent().width(); tooBusyCanvas.width = $(tooBusyCanvas).parent().width(); - new Chart(notFoundCanvas.getContext('2d')).Line(data['not-found'], { - responsive: true, - animation: false + + new Chart(notFoundCanvas.getContext('2d'), { + type: 'line', + data: data['not-found'], + options: { + responsive: true, + legend: { + display: false + }, + scales: { + yAxes: [{ + ticks: { + beginAtZero: true + } + }] + } + } }); - new Chart(tooBusyCanvas.getContext('2d')).Line(data['toobusy'], { - responsive: true, - animation: false + + new Chart(tooBusyCanvas.getContext('2d'), { + type: 'line', + data: data['toobusy'], + options: { + responsive: true, + legend: { + display: false + }, + scales: { + yAxes: [{ + ticks: { + beginAtZero: true + } + }] + } + } }); }; diff --git a/public/src/admin/general/dashboard.js b/public/src/admin/general/dashboard.js index 1071c76b0de6..1224d2ace2a4 100644 --- a/public/src/admin/general/dashboard.js +++ b/public/src/admin/general/dashboard.js @@ -165,8 +165,7 @@ define('admin/general/dashboard', ['semver', 'Chart'], function(semver, Chart) { trafficLabels = utils.getHoursArray(); if (isMobile) { - Chart.defaults.global.showTooltips = false; - Chart.defaults.global.animation = false; + Chart.defaults.global.tooltips.enabled = false; } var data = { diff --git a/src/controllers/accounts/info.js b/src/controllers/accounts/info.js index 6547db8076d8..6662c60cd6b3 100644 --- a/src/controllers/accounts/info.js +++ b/src/controllers/accounts/info.js @@ -13,9 +13,13 @@ infoController.get = function(req, res, next) { accountHelpers.getBaseUser(req.params.userslug, req.uid, function(err, userData) { async.parallel({ ips: async.apply(user.getIPs, res.locals.uid, 4), - history: async.apply(user.getModerationHistory, res.locals.uid) + history: async.apply(user.getModerationHistory, res.locals.uid), + fields: async.apply(user.getUserFields, res.locals.uid, ['banned']) }, function(err, data) { - data = _.extend(userData, data); + data = _.extend(userData, { + ips: data.ips, + history: data.history + }, data.fields); userData.title = '[[pages:account/info]]'; userData.breadcrumbs = helpers.buildBreadcrumbs([{text: userData.username, url: '/user/' + userData.userslug}, {text: '[[user:settings]]'}]); diff --git a/src/plugins/load.js b/src/plugins/load.js index a70fce41abcb..70aea70ccd86 100644 --- a/src/plugins/load.js +++ b/src/plugins/load.js @@ -153,22 +153,22 @@ module.exports = function(Plugins) { } Plugins.clientScripts = Plugins.clientScripts.concat(pluginData.scripts.map(function(file) { - return path.join(__dirname, '../../node_modules/', pluginData.id, file); - })); + return resolveModulePath(path.join(__dirname, '../../node_modules/', pluginData.id, file), file); + })).filter(Boolean); } if (Array.isArray(pluginData.acpScripts)) { if (global.env === 'development') { - winston.verbose('[plugins] Found ' + pluginData.acpScripts.length + ' js file(s) for plugin ' + pluginData.id); + winston.verbose('[plugins] Found ' + pluginData.acpScripts.length + ' ACP js file(s) for plugin ' + pluginData.id); } Plugins.acpScripts = Plugins.acpScripts.concat(pluginData.acpScripts.map(function(file) { - return path.join(__dirname, '../../node_modules/', pluginData.id, file); - })); + return resolveModulePath(path.join(__dirname, '../../node_modules/', pluginData.id, file), file); + })).filter(Boolean); } callback(); - }; + } function mapClientModules(pluginData, callback) { if (!pluginData.hasOwnProperty('modules')) { @@ -201,14 +201,16 @@ module.exports = function(Plugins) { } for (var name in pluginData.modules) { - modules[name] = path.join('./node_modules/', pluginData.id, pluginData.modules[name]); + if (pluginData.modules.hasOwnProperty(name)) { + modules[name] = path.join('./node_modules/', pluginData.id, pluginData.modules[name]); + } } meta.js.scripts.modules = _.extend(meta.js.scripts.modules, modules); } callback(); - }; + } function loadLanguages(pluginData, callback) { if (typeof pluginData.languages !== 'string') { @@ -265,6 +267,30 @@ module.exports = function(Plugins) { }); } + function resolveModulePath(fullPath, relPath) { + /** + * With npm@3, dependencies can become flattened, and appear at the root level. + * This method resolves these differences if it can. + */ + var atRootLevel = fullPath.match(/node_modules/g).length === 1; + + try { + fs.statSync(fullPath); + winston.verbose('[plugins/load] File found: ' + fullPath); + return fullPath; + } catch (e) { + // File not visible to the calling process, ascend to root level if possible and try again + if (!atRootLevel && relPath) { + winston.verbose('[plugins/load] File not found: ' + fullPath + ' (Ascending)'); + return resolveModulePath(path.join(__dirname, '../..', relPath)); + } else { + // Already at root level, file was simply not found + winston.warn('[plugins/load] File not found: ' + fullPath + ' (Ignoring)'); + return null; + } + } + } + Plugins.loadPluginInfo = function(pluginPath, callback) { async.parallel({ package: function(next) { diff --git a/src/socket.io/user.js b/src/socket.io/user.js index c38bcc5bbf89..44c17ea4768f 100644 --- a/src/socket.io/user.js +++ b/src/socket.io/user.js @@ -1,7 +1,7 @@ 'use strict'; var async = require('async'); - +var winston = require('winston'); var user = require('../user'); var topics = require('../topics'); @@ -91,7 +91,17 @@ SocketUser.reset.send = function(socket, email, callback) { return callback(new Error('[[error:invalid-data]]')); } - user.reset.send(email, callback); + user.reset.send(email, function(err) { + if (err && err.message !== '[[error:invalid-email]]') { + return callback(err); + } + if (err && err.message === '[[error:invalid-email]]') { + winston.verbose('[user/reset] Invalid email attempt: ' + email); + return setTimeout(callback, 2500); + } + + callback(); + }); }; SocketUser.reset.commit = function(socket, data, callback) { diff --git a/src/views/admin/settings/email.tpl b/src/views/admin/settings/email.tpl index 683a13f4cc94..cb49aa17b5ec 100644 --- a/src/views/admin/settings/email.tpl +++ b/src/views/admin/settings/email.tpl @@ -67,12 +67,14 @@
Email Testing
-
-
+
+ + +

The test email will be sent to the currently logged in user's email address.