From f3f67b31d56373d1cc87fc65830e133e51c9b7cc Mon Sep 17 00:00:00 2001 From: Erik Dasque Date: Tue, 3 Nov 2015 13:07:20 -0500 Subject: [PATCH 01/78] Insured we're on a recent & Long Time Support (LTS) version of node. Also added some helpful comment to explain what is doing what and the choices made. --- Dockerfile | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index c44b71096d..7229e6be25 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,8 +1,15 @@ -FROM node:0.10-onbuild +# The base image is the latest 4.x node (LTS) on jessie (debian) +# -onbuild will install the node dependencies found in the project package.json +# and copy its content in /usr/src/app, its WORKDIR +FROM node:4-onbuild ENV NODE_ENV=production \ daemon=false \ silent=false +# nodebb setup will ask you for connection information to a redis (default), mongodb then run the forum +# nodebb upgrade is not included and might be desired CMD node app --setup && npm start + +# the default port for NodeBB is exposed outside the container EXPOSE 4567 From ad5ddcbb7333fae4a7e0cc95ed5b90b5a672b38b Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Sat, 7 Nov 2015 12:31:19 -0500 Subject: [PATCH 02/78] whitespace fixes --- src/socket.io/admin/rooms.js | 4 ++-- src/upgrade.js | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/socket.io/admin/rooms.js b/src/socket.io/admin/rooms.js index 618d5b9c0b..bf66873a52 100644 --- a/src/socket.io/admin/rooms.js +++ b/src/socket.io/admin/rooms.js @@ -79,8 +79,8 @@ SocketRooms.getAll = function(socket, data, callback) { totals.topics = {}; topTenTopics.forEach(function(topic, index) { totals.topics[topic.tid] = { - value: topic.count || 0, - title: validator.escape(titles[index].title) + value: topic.count || 0, + title: validator.escape(titles[index].title) }; }); diff --git a/src/upgrade.js b/src/upgrade.js index ad31e95e8e..4a03f458b0 100644 --- a/src/upgrade.js +++ b/src/upgrade.js @@ -536,7 +536,7 @@ Upgrade.upgrade = function(callback) { if (err) { return next(err); } - + if (!userData.picture || !userData.gravatarpicture) { return next(); } @@ -548,7 +548,7 @@ Upgrade.upgrade = function(callback) { }, function (next) { db.deleteObjectField('user:' + uid, 'gravatarpicture', next); - } + } ], next); } else { db.deleteObjectField('user:' + uid, 'gravatarpicture', next); From 290f953475e5467b172dbafd8abb320a2f6ded57 Mon Sep 17 00:00:00 2001 From: barisusakli Date: Sat, 7 Nov 2015 16:09:54 -0500 Subject: [PATCH 03/78] up persona --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 529470c731..0d6935566d 100644 --- a/package.json +++ b/package.json @@ -49,7 +49,7 @@ "nodebb-plugin-spam-be-gone": "0.4.2", "nodebb-rewards-essentials": "0.0.5", "nodebb-theme-lavender": "2.0.13", - "nodebb-theme-persona": "4.0.31", + "nodebb-theme-persona": "4.0.32", "nodebb-theme-vanilla": "5.0.13", "nodebb-widget-essentials": "2.0.4", "nodemailer": "0.7.1", From 35eb0faac8badb3d06ee5edb8d794ddb79ef2839 Mon Sep 17 00:00:00 2001 From: barisusakli Date: Sat, 7 Nov 2015 17:11:35 -0500 Subject: [PATCH 04/78] closes #3850 --- src/controllers/accounts/settings.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/controllers/accounts/settings.js b/src/controllers/accounts/settings.js index 34f4f24478..1109f58813 100644 --- a/src/controllers/accounts/settings.js +++ b/src/controllers/accounts/settings.js @@ -131,6 +131,10 @@ settingsController.get = function(req, res, callback) { { "name": "Yeti", "value": "yeti" } ]; + userData.homePageRoutes.forEach(function(route) { + route.selected = route.route === userData.settings.homePageRoute; + }); + userData.bootswatchSkinOptions.forEach(function(skin) { skin.selected = skin.value === userData.settings.bootswatchSkin; }); From 323cc165b663a078c50da10ca9d79c48feddd4a4 Mon Sep 17 00:00:00 2001 From: barisusakli Date: Sat, 7 Nov 2015 18:34:40 -0500 Subject: [PATCH 05/78] closes #3851 dont use post file upload for cover uploads check cover upload file size against new setting store cover uploads in profile folder use `uid-profilecover` filename for cover uploads --- install/data/defaults.json | 1 + public/src/client/account/header.js | 2 +- src/controllers/accounts/edit.js | 4 +-- src/controllers/uploads.js | 4 --- src/user/picture.js | 50 ++++++++++++++++++++--------- src/views/admin/settings/user.tpl | 7 +++- 6 files changed, 44 insertions(+), 24 deletions(-) diff --git a/install/data/defaults.json b/install/data/defaults.json index 6d81fdbc82..39a2226c5a 100644 --- a/install/data/defaults.json +++ b/install/data/defaults.json @@ -25,6 +25,7 @@ "maximumSignatureLength": 255, "maximumAboutMeLength": 1000, "maximumProfileImageSize": 256, + "maximumCoverImageSize": 2048, "profileImageDimension": 128, "requireEmailConfirmation": 0, "profile:allowProfileImageUploads": 1, diff --git a/public/src/client/account/header.js b/public/src/client/account/header.js index bf64c92f9d..b67f9dd4a9 100644 --- a/public/src/client/account/header.js +++ b/public/src/client/account/header.js @@ -66,7 +66,7 @@ define('forum/account/header', [ }, function() { uploader.open(RELATIVE_PATH + '/api/user/' + ajaxify.data.userslug + '/uploadcover', { uid: yourid }, 0, function(imageUrlOnServer) { - components.get('account/cover').css('background-image', 'url(' + imageUrlOnServer + ')'); + components.get('account/cover').css('background-image', 'url(' + imageUrlOnServer + '?v=' + Date.now() + ')'); }); }, removeCover diff --git a/src/controllers/accounts/edit.js b/src/controllers/accounts/edit.js index 349a6c856e..a6b2f7ad55 100644 --- a/src/controllers/accounts/edit.js +++ b/src/controllers/accounts/edit.js @@ -122,9 +122,9 @@ editController.uploadPicture = function (req, res, next) { editController.uploadCoverPicture = function(req, res, next) { var params = JSON.parse(req.body.params); - + user.updateCoverPicture({ - file: req.files.files[0].path, + file: req.files.files[0], uid: params.uid }, function(err, image) { if (err) { diff --git a/src/controllers/uploads.js b/src/controllers/uploads.js index d798524f3e..3ee0c97c8e 100644 --- a/src/controllers/uploads.js +++ b/src/controllers/uploads.js @@ -96,10 +96,6 @@ uploadsController.uploadGroupCover = function(data, next) { uploadImage(0, data, next); }; -uploadsController.uploadUserCover = function(data, next) { - uploadImage(data.uid, data, next); -}; - function uploadImage(uid, image, callback) { if (plugins.hasListeners('filter:uploadImage')) { return plugins.fireHook('filter:uploadImage', {image: image, uid: uid}, callback); diff --git a/src/user/picture.js b/src/user/picture.js index 503efd8845..96612ee14c 100644 --- a/src/user/picture.js +++ b/src/user/picture.js @@ -9,7 +9,6 @@ var async = require('async'), request = require('request'), mime = require('mime'), - uploadsController = require('../controllers/uploads'), plugins = require('../plugins'), file = require('../file'), image = require('../image'), @@ -141,8 +140,18 @@ module.exports = function(User) { return User.updateCoverPosition(data.uid, data.position, callback); } - async.series([ + if (!data.imageData && !data.file) { + return callback(new Error('[[error:invalid-data]]')); + } + + async.waterfall([ function(next) { + var size = data.file ? data.file.size : data.imageData.length; + meta.config.maximumCoverImageSize = meta.config.maximumCoverImageSize || 2048; + if (size > parseInt(meta.config.maximumCoverImageSize, 10) * 1024) { + return next(new Error('[[error:file-too-big, ' + meta.config.maximumCoverImageSize + ']]')); + } + if (data.file) { return next(); } @@ -150,12 +159,6 @@ module.exports = function(User) { md5sum = crypto.createHash('md5'); md5sum.update(data.imageData); md5sum = md5sum.digest('hex'); - next(); - }, - function(next) { - if (data.file) { - return next(); - } tempPath = path.join(nconf.get('base_dir'), nconf.get('upload_path'), md5sum); var buffer = new Buffer(data.imageData.slice(data.imageData.indexOf('base64') + 7), 'base64'); @@ -165,24 +168,39 @@ module.exports = function(User) { }, next); }, function(next) { - uploadsController.uploadUserCover({ + var image = { name: 'profileCover', - path: data.file ? data.file : tempPath, + path: data.file ? data.file.path : tempPath, uid: data.uid - }, function(err, uploadData) { + }; + + if (plugins.hasListeners('filter:uploadImage')) { + return plugins.fireHook('filter:uploadImage', {image: image, uid: data.uid}, next); + } + + var filename = data.uid + '-profilecover'; + file.saveFileToLocal(filename, 'profile', image.path, function(err, upload) { if (err) { return next(err); } - url = uploadData.url; - next(); + next(null, { + url: nconf.get('relative_path') + upload.url, + name: image.name + }); }); }, - function(next) { - User.setUserField(data.uid, 'cover:url', url, next); + function(uploadData, next) { + url = uploadData.url; + User.setUserField(data.uid, 'cover:url', uploadData.url, next); }, function(next) { - require('fs').unlink(data.file ? data.file : tempPath, next); + require('fs').unlink(data.file ? data.file.path : tempPath, function(err) { + if (err) { + winston.error(err); + } + next(); + }); } ], function(err) { if (err) { diff --git a/src/views/admin/settings/user.tpl b/src/views/admin/settings/user.tpl index d361a92cc0..0b27b24175 100644 --- a/src/views/admin/settings/user.tpl +++ b/src/views/admin/settings/user.tpl @@ -100,9 +100,14 @@
- +
+ +
+ + +
From 27f77bf8323d690f3a3e7e8ce39d86552b613802 Mon Sep 17 00:00:00 2001 From: barisusakli Date: Sat, 7 Nov 2015 18:46:31 -0500 Subject: [PATCH 06/78] show proper error if user is not logged in --- src/socket.io/posts/favourites.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/socket.io/posts/favourites.js b/src/socket.io/posts/favourites.js index 71aab9100f..6883ece06a 100644 --- a/src/socket.io/posts/favourites.js +++ b/src/socket.io/posts/favourites.js @@ -100,6 +100,9 @@ module.exports = function(SocketPosts) { }; function favouriteCommand(socket, command, eventName, notification, data, callback) { + if (!socket.uid) { + return callback(new Error('[[error:not-logged-in]]')) + } if(!data || !data.pid || !data.room_id) { return callback(new Error('[[error:invalid-data]]')); } From 3bd83cd732abc8204de0c724478fefb572d19ece Mon Sep 17 00:00:00 2001 From: barisusakli Date: Sat, 7 Nov 2015 18:54:08 -0500 Subject: [PATCH 07/78] remove dupe code --- public/src/modules/coverPhoto.js | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/public/src/modules/coverPhoto.js b/public/src/modules/coverPhoto.js index df9246ab7f..c9794d3370 100644 --- a/public/src/modules/coverPhoto.js +++ b/public/src/modules/coverPhoto.js @@ -16,12 +16,7 @@ define('coverPhoto', [ coverEl.find('.upload').on('click', uploadFn); coverEl.find('.resize').on('click', function() { - coverEl - .toggleClass('active', 1) - .backgroundDraggable({ - axis: 'y', - units: 'percent' - }); + enableDragging(coverEl); }); coverEl.find('.remove').on('click', removeFn); @@ -53,16 +48,18 @@ define('coverPhoto', [ }; reader.readAsDataURL(files[0]); - - coverPhoto.coverEl - .addClass('active', 1) - .backgroundDraggable({ - axis: 'y', - units: 'percent' - }); + enableDragging(coverPhoto.coverEl); } }; + function enableDragging(coverEl) { + coverEl.toggleClass('active', 1) + .backgroundDraggable({ + axis: 'y', + units: 'percent' + }); + } + coverPhoto.save = function() { coverPhoto.coverEl.addClass('saving'); From 948c98b66860165d09af0c23e7c1a8b4b0d668e6 Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Sun, 8 Nov 2015 11:57:04 -0500 Subject: [PATCH 08/78] adding plaintext email via html-to-text module --- package.json | 1 + src/emailer.js | 15 +++++++++------ 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 529470c731..80a08c6cb6 100644 --- a/package.json +++ b/package.json @@ -30,6 +30,7 @@ "express-session": "^1.8.2", "gravatar": "^1.1.0", "heapdump": "^0.3.0", + "html-to-text": "1.3.2", "jimp": "^0.2.5", "less": "^2.0.0", "logrotate-stream": "^0.2.3", diff --git a/src/emailer.js b/src/emailer.js index fc96081b6f..2e1318d0cc 100644 --- a/src/emailer.js +++ b/src/emailer.js @@ -4,12 +4,16 @@ var async = require('async'), winston = require('winston'), templates = require('templates.js'), nodemailer = require('nodemailer'), + htmlToText = require('html-to-text'), User = require('./user'), Plugins = require('./plugins'), meta = require('./meta'), translator = require('../public/src/modules/translator'), + transports = { + direct: nodemailer.createTransport('direct') + }, app; (function(Emailer) { @@ -54,9 +58,6 @@ var async = require('async'), html: function(next) { renderAndTranslate('emails/' + template, params, lang, next); }, - plaintext: function(next) { - renderAndTranslate('emails/' + template + '_plaintext', params, lang, next); - }, subject: function(next) { translator.translate(params.subject, lang, function(translated) { next(null, translated); @@ -65,13 +66,16 @@ var async = require('async'), }, next); }, function (results, next) { + var data = { to: email, from: meta.config['email:from'] || 'no-reply@localhost.lan', from_name: meta.config['email:from_name'] || 'NodeBB', subject: results.subject, html: results.html, - plaintext: results.plaintext, + plaintext: htmlToText.fromString(results.html, { + ignoreImage: true + }), template: template, uid: params.uid, pid: params.pid, @@ -96,8 +100,7 @@ var async = require('async'), data.text = data.plaintext; delete data.plaintext; - nodemailer.mail(data); - callback(null); + transports.direct.sendMail(data, callback); }; function render(tpl, params, next) { From 8304740bd58690da0209e419b584f0bd489989ba Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Sun, 8 Nov 2015 11:57:18 -0500 Subject: [PATCH 09/78] fixing crash on settings save --- src/meta/settings.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/meta/settings.js b/src/meta/settings.js index 96ea0a8708..ed6702a943 100644 --- a/src/meta/settings.js +++ b/src/meta/settings.js @@ -29,7 +29,7 @@ module.exports = function(Meta) { settings: values }); - meta.reloadRequired = true; + Meta.reloadRequired = true; callback(); }); }; From e37709ad8bfae20c2f8f789af6377a01e22a214e Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Sun, 8 Nov 2015 12:28:48 -0500 Subject: [PATCH 10/78] something.. --- src/emailer.js | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/emailer.js b/src/emailer.js index 2e1318d0cc..d63aa1bb7e 100644 --- a/src/emailer.js +++ b/src/emailer.js @@ -2,9 +2,11 @@ var async = require('async'), winston = require('winston'), + nconf = require('nconf'), templates = require('templates.js'), nodemailer = require('nodemailer'), htmlToText = require('html-to-text'), + url = require('url'), User = require('./user'), Plugins = require('./plugins'), @@ -66,10 +68,9 @@ var async = require('async'), }, next); }, function (results, next) { - var data = { to: email, - from: meta.config['email:from'] || 'no-reply@localhost.lan', + from: meta.config['email:from'] || 'no-reply@' + getHostname(), from_name: meta.config['email:from_name'] || 'NodeBB', subject: results.subject, html: results.html, @@ -129,5 +130,12 @@ var async = require('async'), ], callback); } + function getHostname() { + var configUrl = nconf.get('url'), + parsed = url.parse(configUrl); + + return parsed.hostname; + }; + }(module.exports)); From efe0726f9be653ff7549f35405395aa0f141ff28 Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Sun, 8 Nov 2015 12:32:39 -0500 Subject: [PATCH 11/78] removing unused plaintext templates, closes #3854 --- src/views/emails/digest_plaintext.tpl | 30 ------------------- src/views/emails/invitation_plaintext.tpl | 10 ------- src/views/emails/notif_chat_plaintext.tpl | 14 --------- src/views/emails/notif_post_plaintext.tpl | 13 -------- .../registration_accepted_plaintext.tpl | 8 ----- src/views/emails/reset_notify_plaintext.tpl | 7 ----- src/views/emails/reset_plaintext.tpl | 9 ------ src/views/emails/test_plaintext.tpl | 5 ---- src/views/emails/welcome_plaintext.tpl | 10 ------- 9 files changed, 106 deletions(-) delete mode 100644 src/views/emails/digest_plaintext.tpl delete mode 100644 src/views/emails/invitation_plaintext.tpl delete mode 100644 src/views/emails/notif_chat_plaintext.tpl delete mode 100644 src/views/emails/notif_post_plaintext.tpl delete mode 100644 src/views/emails/registration_accepted_plaintext.tpl delete mode 100644 src/views/emails/reset_notify_plaintext.tpl delete mode 100644 src/views/emails/reset_plaintext.tpl delete mode 100644 src/views/emails/test_plaintext.tpl delete mode 100644 src/views/emails/welcome_plaintext.tpl diff --git a/src/views/emails/digest_plaintext.tpl b/src/views/emails/digest_plaintext.tpl deleted file mode 100644 index d47c3a0166..0000000000 --- a/src/views/emails/digest_plaintext.tpl +++ /dev/null @@ -1,30 +0,0 @@ -[[email:welcome.greeting, {username}]], - - -[[email:digest.notifications, {site_title}]] - - -* {notifications.text} ({url}{notifications.path}) - - -=== - - -[[email:digest.latest_topics]] - - - -* {recent.title} ({url}/topic/{recent.slug}) - - -* [[email:digest.no_topics, {interval}]] - - -[[email:digest.cta, {site_title}]]: {url} - - -{footer_plaintext} - -=== - -[[email:digest.unsub.info]] [[email:unsub.cta]]: {url}/user/{userslug}/settings. \ No newline at end of file diff --git a/src/views/emails/invitation_plaintext.tpl b/src/views/emails/invitation_plaintext.tpl deleted file mode 100644 index 0ec6501f05..0000000000 --- a/src/views/emails/invitation_plaintext.tpl +++ /dev/null @@ -1,10 +0,0 @@ -[[email:greeting_no_name]], - -[[email:invitation.text1, {username}, {site_title}]] - -[[email:invitation.ctr]] - - {registerLink} - -{footer_plaintext} - diff --git a/src/views/emails/notif_chat_plaintext.tpl b/src/views/emails/notif_chat_plaintext.tpl deleted file mode 100644 index 59cc5dc3ca..0000000000 --- a/src/views/emails/notif_chat_plaintext.tpl +++ /dev/null @@ -1,14 +0,0 @@ -[[email:greeting_with_name, {username}]], - -{summary}: - -{message.content} - -[[email:notif.chat.cta]]: {url}/chats/{fromUserslug} - - -{footer_plaintext} - -=== - -[[email:notif.chat.unsub.info]] [[email:unsub.cta]]. diff --git a/src/views/emails/notif_post_plaintext.tpl b/src/views/emails/notif_post_plaintext.tpl deleted file mode 100644 index a2bf23fe20..0000000000 --- a/src/views/emails/notif_post_plaintext.tpl +++ /dev/null @@ -1,13 +0,0 @@ -[[email:greeting_with_name, {username}]], - -{intro}: - -{postBody} - -[[email:notif.post.cta]]: {url} - -{footer_plaintext} - -=== - -[[email:notif.post.unsub.info]] [[email:unsub.cta]]. diff --git a/src/views/emails/registration_accepted_plaintext.tpl b/src/views/emails/registration_accepted_plaintext.tpl deleted file mode 100644 index 404afd083f..0000000000 --- a/src/views/emails/registration_accepted_plaintext.tpl +++ /dev/null @@ -1,8 +0,0 @@ -[[email:greeting_with_name, {username}]], - -[[email:welcome.text1, {site_title}]] - -[[email:welcome.text3]] - - -{footer_plaintext} \ No newline at end of file diff --git a/src/views/emails/reset_notify_plaintext.tpl b/src/views/emails/reset_notify_plaintext.tpl deleted file mode 100644 index a2239ec13c..0000000000 --- a/src/views/emails/reset_notify_plaintext.tpl +++ /dev/null @@ -1,7 +0,0 @@ -[[email:greeting_with_name, {username}]], - -[[email:reset.notify.text1, {date}]] - -[[email:reset.notify.text2]] - -{footer_plaintext} \ No newline at end of file diff --git a/src/views/emails/reset_plaintext.tpl b/src/views/emails/reset_plaintext.tpl deleted file mode 100644 index 7114b967a7..0000000000 --- a/src/views/emails/reset_plaintext.tpl +++ /dev/null @@ -1,9 +0,0 @@ -[[email:greeting_no_name]], - -[[email:reset.text1]] - -[[email:reset.text2]] [[email:reset.cta]] - - {reset_link} - -{footer_plaintext} \ No newline at end of file diff --git a/src/views/emails/test_plaintext.tpl b/src/views/emails/test_plaintext.tpl deleted file mode 100644 index b7036533f4..0000000000 --- a/src/views/emails/test_plaintext.tpl +++ /dev/null @@ -1,5 +0,0 @@ -[[email:greeting_no_name]], - -[[email:test.text1]] - -{footer_plaintext} \ No newline at end of file diff --git a/src/views/emails/welcome_plaintext.tpl b/src/views/emails/welcome_plaintext.tpl deleted file mode 100644 index 53d9543a0e..0000000000 --- a/src/views/emails/welcome_plaintext.tpl +++ /dev/null @@ -1,10 +0,0 @@ -[[email:greeting_with_name, {username}]], - -[[email:welcome.text1, {site_title}]] - -[[email:welcome.text2]] [[email:welcome.cta]]: - - {confirm_link} - - -{footer_plaintext} \ No newline at end of file From 6f864a635421a4eb22611fccd94c6edf8d8f4007 Mon Sep 17 00:00:00 2001 From: barisusakli Date: Sun, 8 Nov 2015 14:57:55 -0500 Subject: [PATCH 12/78] joindate iso --- src/controllers/accounts/helpers.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/controllers/accounts/helpers.js b/src/controllers/accounts/helpers.js index 75cbc4e7e0..77a71aba66 100644 --- a/src/controllers/accounts/helpers.js +++ b/src/controllers/accounts/helpers.js @@ -57,7 +57,7 @@ helpers.getUserDataByUserSlug = function(userslug, callerUID, callback) { var isAdmin = results.isAdmin; var self = parseInt(callerUID, 10) === parseInt(userData.uid, 10); - userData.joindate = utils.toISOString(userData.joindate); + userData.joindateISO = utils.toISOString(userData.joindate); userData.lastonlineISO = utils.toISOString(userData.lastonline || userData.joindate); userData.age = userData.birthday ? Math.floor((new Date().getTime() - new Date(userData.birthday).getTime()) / 31536000000) : ''; From 1c76dd9ae54fff6cc7d497402fcd8e9c777e144e Mon Sep 17 00:00:00 2001 From: barisusakli Date: Sun, 8 Nov 2015 15:13:41 -0500 Subject: [PATCH 13/78] up emoji extended --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index f81545da14..6574b91a1c 100644 --- a/package.json +++ b/package.json @@ -43,7 +43,7 @@ "nconf": "~0.8.2", "nodebb-plugin-composer-default": "1.0.20", "nodebb-plugin-dbsearch": "0.2.17", - "nodebb-plugin-emoji-extended": "0.4.15", + "nodebb-plugin-emoji-extended": "0.4.16", "nodebb-plugin-markdown": "4.0.7", "nodebb-plugin-mentions": "1.0.9", "nodebb-plugin-soundpack-default": "0.1.4", From 3acf2e0812f288d4dbee47c59c5936b7e5449fc2 Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Sun, 8 Nov 2015 15:25:44 -0500 Subject: [PATCH 14/78] pruned upgrade script --- src/upgrade.js | 429 +------------------------------------------------ 1 file changed, 2 insertions(+), 427 deletions(-) diff --git a/src/upgrade.js b/src/upgrade.js index 4a03f458b0..ecbfcfe6dd 100644 --- a/src/upgrade.js +++ b/src/upgrade.js @@ -3,21 +3,10 @@ var db = require('./database'), async = require('async'), winston = require('winston'), - fs = require('fs'), - path = require('path'), - - User = require('./user'), - Topics = require('./topics'), - Posts = require('./posts'), - Categories = require('./categories'), - Groups = require('./groups'), - Meta = require('./meta'), - Plugins = require('./plugins'), - Utils = require('../public/src/utils'), Upgrade = {}, - minSchemaDate = Date.UTC(2015, 0, 30), // This value gets updated every new MINOR version + minSchemaDate = Date.UTC(2015, 7, 18), // This value gets updated every new MINOR version schemaDate, thisSchemaDate, // IMPORTANT: REMEMBER TO UPDATE VALUE OF latestSchema @@ -58,7 +47,7 @@ Upgrade.upgrade = function(callback) { // Prepare for upgrade & check to make sure the upgrade is possible db.get('schemaDate', function(err, value) { if(!value) { - db.set('schemaDate', latestSchema, function(err) { + db.set('schemaDate', latestSchema, function() { next(); }); schemaDate = latestSchema; @@ -73,420 +62,6 @@ Upgrade.upgrade = function(callback) { } }); }, - function(next) { - thisSchemaDate = Date.UTC(2015, 1, 8); - if (schemaDate < thisSchemaDate) { - updatesMade = true; - winston.info('[2015/02/08] Clearing reset tokens'); - - db.deleteAll(['reset:expiry', 'reset:uid'], function(err) { - if (err) { - winston.error('[2015/02/08] Error encountered while Clearing reset tokens'); - return next(err); - } - - winston.info('[2015/02/08] Clearing reset tokens done'); - Upgrade.update(thisSchemaDate, next); - }); - } else { - winston.info('[2015/02/08] Clearing reset tokens skipped'); - next(); - } - }, - function(next) { - thisSchemaDate = Date.UTC(2015, 1, 17); - if (schemaDate < thisSchemaDate) { - updatesMade = true; - winston.info('[2015/02/17] renaming home.tpl to categories.tpl'); - - db.rename('widgets:home.tpl', 'widgets:categories.tpl', function(err) { - if (err) { - return next(err); - } - - winston.info('[2015/02/17] renaming home.tpl to categories.tpl done'); - Upgrade.update(thisSchemaDate, next); - }); - } else { - winston.info('[2015/02/17] renaming home.tpl to categories.tpl skipped'); - next(); - } - }, - function(next) { - thisSchemaDate = Date.UTC(2015, 1, 23); - if (schemaDate < thisSchemaDate) { - db.setAdd('plugins:active', 'nodebb-rewards-essentials', function(err) { - winston.info('[2015/2/23] Activating NodeBB Essential Rewards'); - Plugins.reload(function() { - if (err) { - next(err); - } else { - Upgrade.update(thisSchemaDate, next); - } - }); - }); - } else { - winston.info('[2015/2/23] Activating NodeBB Essential Rewards - skipped'); - next(); - } - }, - function(next) { - thisSchemaDate = Date.UTC(2015, 1, 24); - if (schemaDate < thisSchemaDate) { - updatesMade = true; - winston.info('[2015/02/24] Upgrading plugins:active to sorted set'); - - db.getSetMembers('plugins:active', function(err, activePlugins) { - if (err) { - return next(err); - } - if (!Array.isArray(activePlugins) || !activePlugins.length) { - winston.info('[2015/02/24] Upgrading plugins:active to sorted set done'); - Upgrade.update(thisSchemaDate, next); - } - - db.delete('plugins:active', function(err) { - if (err) { - return next(err); - } - var order = -1; - async.eachSeries(activePlugins, function(plugin, next) { - ++order; - db.sortedSetAdd('plugins:active', order, plugin, next); - }, function(err) { - if (err) { - return next(err); - } - winston.info('[2015/02/24] Upgrading plugins:active to sorted set done'); - Upgrade.update(thisSchemaDate, next); - }); - }); - }); - } else { - winston.info('[2015/02/24] Upgrading plugins:active to sorted set skipped'); - next(); - } - }, - function(next) { - thisSchemaDate = Date.UTC(2015, 1, 24, 1); - if (schemaDate < thisSchemaDate) { - updatesMade = true; - winston.info('[2015/02/24] Upgrading privilege groups to system groups'); - - var isPrivilegeGroup = /^cid:\d+:privileges:[\w:]+$/; - db.getSortedSetRange('groups:createtime', 0, -1, function (err, groupNames) { - groupNames = groupNames.filter(function(name) { - return isPrivilegeGroup.test(name); - }); - - async.eachLimit(groupNames, 5, function(groupName, next) { - db.setObjectField('group:' + groupName, 'system', '1', next); - }, function(err) { - if (err) { - return next(err); - } - winston.info('[2015/02/24] Upgrading privilege groups to system groups done'); - Upgrade.update(thisSchemaDate, next); - }); - }); - } else { - winston.info('[2015/02/24] Upgrading privilege groups to system groups skipped'); - next(); - } - }, - function(next) { - thisSchemaDate = Date.UTC(2015, 1, 25, 6); - if (schemaDate < thisSchemaDate) { - updatesMade = true; - winston.info('[2015/02/25] Upgrading menu items to dynamic navigation system'); - - require('./navigation/admin').save(require('../install/data/navigation.json'), function(err) { - if (err) { - return next(err); - } - - winston.info('[2015/02/25] Upgrading menu items to dynamic navigation system done'); - Upgrade.update(thisSchemaDate, next); - }); - } else { - winston.info('[2015/02/25] Upgrading menu items to dynamic navigation system skipped'); - next(); - } - }, - function(next) { - function upgradeHashToSortedSet(hash, callback) { - db.getObject(hash, function(err, oldHash) { - if (err || !oldHash) { - return callback(err); - } - - db.rename(hash, hash + '_old', function(err) { - if (err) { - return callback(err); - } - var keys = Object.keys(oldHash); - if (!keys.length) { - return callback(); - } - async.each(keys, function(key, next) { - db.sortedSetAdd(hash, oldHash[key], key, next); - }, callback); - }); - }); - } - - thisSchemaDate = Date.UTC(2015, 4, 7); - if (schemaDate < thisSchemaDate) { - updatesMade = true; - winston.info('[2015/05/07] Upgrading uid mappings to sorted set'); - - async.series([ - async.apply(upgradeHashToSortedSet, 'email:uid'), - async.apply(upgradeHashToSortedSet, 'fullname:uid'), - async.apply(upgradeHashToSortedSet, 'username:uid'), - async.apply(upgradeHashToSortedSet, 'userslug:uid'), - ], function(err) { - if (err) { - return next(err); - } - - winston.info('[2015/05/07] Upgrading uid mappings to sorted set done'); - Upgrade.update(thisSchemaDate, next); - }); - - } else { - winston.info('[2015/05/07] Upgrading uid mappings to sorted set skipped'); - next(); - } - }, - function(next) { - thisSchemaDate = Date.UTC(2015, 4, 8); - if (schemaDate < thisSchemaDate) { - updatesMade = true; - winston.info('[2015/05/08] Fixing emails'); - - db.getSortedSetRangeWithScores('email:uid', 0, -1, function(err, users) { - if (err) { - return next(err); - } - - async.eachLimit(users, 100, function(user, next) { - var newEmail = user.value.replace(/\uff0E/g, '.'); - if (newEmail === user.value) { - return process.nextTick(next); - } - async.series([ - async.apply(db.sortedSetRemove, 'email:uid', user.value), - async.apply(db.sortedSetAdd, 'email:uid', user.score, newEmail) - ], next); - - }, function(err) { - if (err) { - return next(err); - } - winston.info('[2015/05/08] Fixing emails done'); - Upgrade.update(thisSchemaDate, next); - }); - }); - - } else { - winston.info('[2015/05/08] Fixing emails skipped'); - next(); - } - }, - function(next) { - thisSchemaDate = Date.UTC(2015, 4, 11); - if (schemaDate < thisSchemaDate) { - updatesMade = true; - winston.info('[2015/05/11] Updating widgets to tjs 0.2x'); - - require('./widgets/admin').get(function(err, data) { - async.each(data.areas, function(area, next) { - require('./widgets').getArea(area.template, area.location, function(err, widgets) { - if (err) { - return next(err); - } - - for (var w in widgets) { - if (widgets.hasOwnProperty(w)) { - widgets[w].data.container = widgets[w].data.container - .replace(/\{\{([\s\S]*?)\}\}/g, '{$1}') - .replace(/\{([\s\S]*?)\}/g, '{{$1}}'); - } - } - - require('./widgets').setArea({ - template: area.template, - location: area.location, - widgets: widgets - }, next); - }); - }, function(err) { - if (err) { - return next(err); - } - - winston.info('[2015/05/11] Updating widgets to tjs 0.2x done'); - Upgrade.update(thisSchemaDate, next); - }); - }); - } else { - winston.info('[2015/05/11] Updating widgets to tjs 0.2x skipped'); - next(); - } - }, - function(next) { - function upgradeSet(set, callback) { - db.getSortedSetRangeWithScores(set + ':uid', 0, -1, function(err, userData) { - if (err) { - return callback(err); - } - - userData = userData.filter(function(user) { - return user && user.value; - }); - - async.eachLimit(userData, 500, function(userData, next) { - db.sortedSetAdd(set + ':sorted', 0, userData.value.toLowerCase() + ':' + userData.score, next); - }, function(err) { - callback(err); - }); - }); - } - - thisSchemaDate = Date.UTC(2015, 4, 20); - if (schemaDate < thisSchemaDate) { - updatesMade = true; - winston.info('[2015/05/20] Adding username:sorted and email:sorted'); - - async.series([ - function(next) { - upgradeSet('username', next); - }, - function(next) { - upgradeSet('email', next); - } - ], function(err) { - if (err) { - return next(err); - } - - winston.info('[2015/05/20] Added username:sorted and email:sorted'); - Upgrade.update(thisSchemaDate, next); - }); - } else { - winston.info('[2015/05/20] Adding username:sorted and email:sorted skipped'); - next(); - } - }, - function(next) { - thisSchemaDate = Date.UTC(2015, 5, 2); - if (schemaDate < thisSchemaDate) { - updatesMade = true; - winston.info('[2015/06/02] Creating group sorted sets'); - - db.getSortedSetRange('groups:createtime', 0, -1, function(err, groupNames) { - if (err) { - return callback(err); - } - - groupNames = groupNames.filter(Boolean); - - async.eachLimit(groupNames, 500, function(groupName, next) { - db.getObjectFields('group:' + groupName, ['hidden', 'system', 'createtime', 'memberCount'], function(err, groupData) { - if (err) { - return next(err); - } - - if (parseInt(groupData.hidden, 10) === 1 || parseInt(groupData.system, 10) === 1) { - return next(); - } - async.parallel([ - async.apply(db.sortedSetAdd, 'groups:visible:createtime', groupData.createtime, groupName), - async.apply(db.sortedSetAdd, 'groups:visible:memberCount', groupData.memberCount || 0, groupName), - async.apply(db.sortedSetAdd, 'groups:visible:name', 0, groupName.toLowerCase() + ':' + groupName) - ], next); - }); - }, function(err) { - if (err) { - return next(err); - } - - winston.info('[2015/06/02] Creating group sorted sets done'); - Upgrade.update(thisSchemaDate, next); - }); - }); - } else { - winston.info('[2015/06/02] Creating group sorted sets skipped'); - next(); - } - }, - function(next) { - thisSchemaDate = Date.UTC(2015, 6, 3); - if (schemaDate < thisSchemaDate) { - updatesMade = true; - winston.info('[2015/07/03] Enabling default composer plugin'); - - db.isSortedSetMember('plugins:active', 'nodebb-plugin-composer-default', function(err, active) { - if (!active) { - Plugins.toggleActive('nodebb-plugin-composer-default', function(err) { - if (err) { - return next(err); - } - - winston.info('[2015/07/03] Enabling default composer plugin done'); - Upgrade.update(thisSchemaDate, next); - }); - } else { - winston.info('[2015/07/03] Enabling default composer plugin done'); - Upgrade.update(thisSchemaDate, next); - } - }); - } else { - winston.info('[2015/07/03] Enabling default composer plugin skipped'); - next(); - } - }, - function(next) { - thisSchemaDate = Date.UTC(2015, 7, 18); - if (schemaDate < thisSchemaDate) { - updatesMade = true; - winston.info('[2015/08/18] Creating children category sorted sets'); - - db.getSortedSetRange('categories:cid', 0, -1, function(err, cids) { - if (err) { - return next(err); - } - - async.each(cids, function(cid, next) { - db.getObjectFields('category:' + cid, ['parentCid', 'order'], function(err, category) { - if (err) { - return next(err); - } - if (!category) { - return next(); - } - if (parseInt(category.parentCid, 10)) { - db.sortedSetAdd('cid:' + category.parentCid + ':children', parseInt(category.order, 10), cid, next); - } else { - db.sortedSetAdd('cid:0:children', parseInt(category.order, 10), cid, next); - } - }); - }, function(err) { - if (err) { - return next(err); - } - - winston.info('[2015/08/18] Creating children category sorted sets done'); - Upgrade.update(thisSchemaDate, next); - }); - }); - - } else { - winston.info('[2015/08/18] Creating children category sorted sets skipped'); - next(); - } - }, function(next) { thisSchemaDate = Date.UTC(2015, 8, 30); if (schemaDate < thisSchemaDate) { From ccdca39ad8eb9fcff7ad9c793fde85becc941c68 Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Mon, 9 Nov 2015 11:23:36 -0500 Subject: [PATCH 15/78] updated dependencies with versions that have proper nbbpm compatibility values --- package.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index 6574b91a1c..fb474b1f6c 100644 --- a/package.json +++ b/package.json @@ -41,18 +41,18 @@ "mmmagic": "^0.4.0", "morgan": "^1.3.2", "nconf": "~0.8.2", - "nodebb-plugin-composer-default": "1.0.20", + "nodebb-plugin-composer-default": "1.0.21", "nodebb-plugin-dbsearch": "0.2.17", "nodebb-plugin-emoji-extended": "0.4.16", - "nodebb-plugin-markdown": "4.0.7", - "nodebb-plugin-mentions": "1.0.9", - "nodebb-plugin-soundpack-default": "0.1.4", + "nodebb-plugin-markdown": "4.0.8", + "nodebb-plugin-mentions": "1.0.10", + "nodebb-plugin-soundpack-default": "0.1.5", "nodebb-plugin-spam-be-gone": "0.4.2", - "nodebb-rewards-essentials": "0.0.5", + "nodebb-rewards-essentials": "0.0.6", "nodebb-theme-lavender": "2.0.13", - "nodebb-theme-persona": "4.0.32", + "nodebb-theme-persona": "4.0.33", "nodebb-theme-vanilla": "5.0.13", - "nodebb-widget-essentials": "2.0.4", + "nodebb-widget-essentials": "2.0.5", "nodemailer": "0.7.1", "npm": "^2.1.4", "passport": "^0.3.0", From 8a90afeed20bb0ea5fcfd82fc07cb5ac5886564b Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Mon, 9 Nov 2015 11:55:44 -0500 Subject: [PATCH 16/78] fixes #3859 --- public/src/modules/search.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/public/src/modules/search.js b/public/src/modules/search.js index f88f62b066..7b889999ea 100644 --- a/public/src/modules/search.js +++ b/public/src/modules/search.js @@ -35,9 +35,11 @@ define('search', ['navigator', 'translator'], function(nav, translator) { }; function createQueryString(data) { - var searchIn = data.in || 'titlesposts'; + var searchIn = data['in'] || 'titlesposts'; var postedBy = data.by || ''; - var query = {in: searchIn}; + var query = { + 'in': searchIn + }; if (postedBy && (searchIn === 'posts' || searchIn === 'titles' || searchIn === 'titlesposts')) { query.by = postedBy; From b9c9e24ca71514afdc8cee8283c0932a83f11377 Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Mon, 9 Nov 2015 12:59:11 -0500 Subject: [PATCH 17/78] upping lav minver --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index fb474b1f6c..43e25a66f8 100644 --- a/package.json +++ b/package.json @@ -49,7 +49,7 @@ "nodebb-plugin-soundpack-default": "0.1.5", "nodebb-plugin-spam-be-gone": "0.4.2", "nodebb-rewards-essentials": "0.0.6", - "nodebb-theme-lavender": "2.0.13", + "nodebb-theme-lavender": "3.0.0", "nodebb-theme-persona": "4.0.33", "nodebb-theme-vanilla": "5.0.13", "nodebb-widget-essentials": "2.0.5", From 051a8e22df4ad8cdc0de31a25b0874722454e662 Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Mon, 9 Nov 2015 14:39:00 -0500 Subject: [PATCH 18/78] Removed allowedFileExtensions meta config Now, when NodeBB needs to determine file compatibility, jimp will attempt to open the file for reading. If it fails, file is considered to be of an invalid type. --- package.json | 2 +- src/controllers/uploads.js | 4 +-- src/file.js | 42 ++++--------------------------- src/user/picture.js | 2 +- src/views/admin/settings/post.tpl | 3 --- 5 files changed, 9 insertions(+), 44 deletions(-) diff --git a/package.json b/package.json index 43e25a66f8..b08527d70d 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,7 @@ "gravatar": "^1.1.0", "heapdump": "^0.3.0", "html-to-text": "1.3.2", - "jimp": "^0.2.5", + "jimp": "0.2.17", "less": "^2.0.0", "logrotate-stream": "^0.2.3", "lru-cache": "^2.6.1", diff --git a/src/controllers/uploads.js b/src/controllers/uploads.js index 3ee0c97c8e..7d45bea675 100644 --- a/src/controllers/uploads.js +++ b/src/controllers/uploads.js @@ -46,7 +46,7 @@ uploadsController.upload = function(req, res, filesIterator, next) { uploadsController.uploadPost = function(req, res, next) { uploadsController.upload(req, res, function(uploadedFile, next) { - file.isFileTypeAllowed(uploadedFile.path, file.allowedExtensions(), function(err) { + file.isFileTypeAllowed(uploadedFile.path, function(err) { if (err) { return next(err); } @@ -67,7 +67,7 @@ uploadsController.uploadThumb = function(req, res, next) { } uploadsController.upload(req, res, function(uploadedFile, next) { - file.isFileTypeAllowed(uploadedFile.path, file.allowedExtensions(), function(err) { + file.isFileTypeAllowed(uploadedFile.path, function(err) { if (err) { return next(err); } diff --git a/src/file.js b/src/file.js index 80f0289a59..4dc258aa37 100644 --- a/src/file.js +++ b/src/file.js @@ -7,6 +7,7 @@ var fs = require('fs'), mmmagic = require('mmmagic'), Magic = mmmagic.Magic, mime = require('mime'), + jimp = require('jimp'), utils = require('../public/src/utils'); @@ -40,46 +41,13 @@ file.saveFileToLocal = function(filename, folder, tempPath, callback) { is.pipe(os); }; -file.isFileTypeAllowed = function(path, allowedExtensions, callback) { - if (!Array.isArray(allowedExtensions) || !allowedExtensions.length) { - return callback(); - } - - var magic = new Magic(mmmagic.MAGIC_MIME_TYPE); - magic.detectFile(path, function(err, mimeType) { - if (err) { - return callback(err); - } - - var uploadedFileExtension = mime.extension(mimeType); - - if (allowedExtensions.indexOf(uploadedFileExtension) === -1) { - return callback(new Error('[[error:invalid-file-type, ' + allowedExtensions.join(', ') + ']]')); - } - - callback(); +file.isFileTypeAllowed = function(path, callback) { + // Attempt to read the file, if it passes, file type is allowed + jimp.read(path, function(err) { + callback(err); }); }; -file.allowedExtensions = function() { - var meta = require('./meta'); - var allowedExtensions = (meta.config.allowedFileExtensions || '').trim(); - if (!allowedExtensions) { - return []; - } - allowedExtensions = allowedExtensions.split(','); - allowedExtensions = allowedExtensions.filter(Boolean).map(function(extension) { - extension = extension.trim(); - return extension.replace(/\./g, ''); - }); - - if (allowedExtensions.indexOf('jpg') !== -1 && allowedExtensions.indexOf('jpeg') === -1) { - allowedExtensions.push('jpeg'); - } - - return allowedExtensions; -}; - file.exists = function(path, callback) { fs.stat(path, function(err, stat) { callback(!err && stat); diff --git a/src/user/picture.js b/src/user/picture.js index 96612ee14c..2d72d265d8 100644 --- a/src/user/picture.js +++ b/src/user/picture.js @@ -36,7 +36,7 @@ module.exports = function(User) { next(!extension ? new Error('[[error:invalid-image-extension]]') : null); }, function(next) { - file.isFileTypeAllowed(picture.path, ['png', 'jpeg', 'jpg', 'gif'], next); + file.isFileTypeAllowed(picture.path, next); }, function(next) { image.resizeImage({ diff --git a/src/views/admin/settings/post.tpl b/src/views/admin/settings/post.tpl index 84f2772086..96ceb01ff6 100644 --- a/src/views/admin/settings/post.tpl +++ b/src/views/admin/settings/post.tpl @@ -147,9 +147,6 @@ Topic Thumb Size

- - Allowed file types, (ie png, jpg, pdf, zip). Leave empty to allow all.

- From 277a3ba2af85f20d0cb6ade13e98513abf7e3e4a Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Mon, 9 Nov 2015 14:47:40 -0500 Subject: [PATCH 19/78] Updated guest user icon and bgColor Due to the label for guests being translatable, the first character for guests was actually "[", causing their user icon to be "[" with a colour. This commit changes it to be a hardcoded question mark and with a grey background colour. --- src/user/data.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/user/data.js b/src/user/data.js index e4bd7e8a2e..36dfc79247 100644 --- a/src/user/data.js +++ b/src/user/data.js @@ -105,6 +105,8 @@ module.exports = function(User) { user.username = '[[global:guest]]'; user.userslug = ''; user.picture = ''; + user['icon:text'] = '?'; + user['icon:bgColor'] = '#aaa'; } if (user.picture && user.picture === user.uploadedpicture) { @@ -118,7 +120,7 @@ module.exports = function(User) { } // User Icons - if (user.hasOwnProperty('picture') && user.username) { + if (user.hasOwnProperty('picture') && user.username && parseInt(user.uid, 10)) { user['icon:text'] = (user.username[0] || '').toUpperCase(); user['icon:bgColor'] = iconBackgrounds[Array.prototype.reduce.call(user.username, function(cur, next) { return cur + next.charCodeAt(); From ccf957f6814d850de4bfff389e49ed945bc41ea3 Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Mon, 9 Nov 2015 15:04:47 -0500 Subject: [PATCH 20/78] Added cancel button to picture change modal --- public/src/client/account/edit.js | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/public/src/client/account/edit.js b/public/src/client/account/edit.js index ed94cf4b57..baf6741078 100644 --- a/public/src/client/account/edit.js +++ b/public/src/client/account/edit.js @@ -89,6 +89,11 @@ define('forum/account/edit', ['forum/account/header', 'uploader', 'translator'], message: html, show: true, buttons: { + close: { + label: '[[global:close]]', + callback: onCloseModal, + className: 'btn-link' + }, update: { label: '[[global:save_changes]]', callback: saveSelection @@ -137,6 +142,10 @@ define('forum/account/edit', ['forum/account/header', 'uploader', 'translator'], ajaxify.refresh(); }); } + + function onCloseModal() { + modal.modal('hide'); + } }); }); }); From a9cb98c02ee816a28e0cee7ab4909d307b9f00f8 Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Mon, 9 Nov 2015 15:16:10 -0500 Subject: [PATCH 21/78] upped persona minver --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index b08527d70d..7219c2a55c 100644 --- a/package.json +++ b/package.json @@ -50,7 +50,7 @@ "nodebb-plugin-spam-be-gone": "0.4.2", "nodebb-rewards-essentials": "0.0.6", "nodebb-theme-lavender": "3.0.0", - "nodebb-theme-persona": "4.0.33", + "nodebb-theme-persona": "4.0.34", "nodebb-theme-vanilla": "5.0.13", "nodebb-widget-essentials": "2.0.5", "nodemailer": "0.7.1", From 61889d9c30b9204b6cb04b85277686dbd3d86c2f Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Mon, 9 Nov 2015 15:23:16 -0500 Subject: [PATCH 22/78] upped persona minver --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 7219c2a55c..0446b8226a 100644 --- a/package.json +++ b/package.json @@ -50,7 +50,7 @@ "nodebb-plugin-spam-be-gone": "0.4.2", "nodebb-rewards-essentials": "0.0.6", "nodebb-theme-lavender": "3.0.0", - "nodebb-theme-persona": "4.0.34", + "nodebb-theme-persona": "4.0.35", "nodebb-theme-vanilla": "5.0.13", "nodebb-widget-essentials": "2.0.5", "nodemailer": "0.7.1", From 96afd131552edf11180e318d18faf355903222af Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Mon, 9 Nov 2015 15:32:04 -0500 Subject: [PATCH 23/78] Removed mmmagic from dependencies, closes #3836 --- package.json | 1 - src/file.js | 2 -- 2 files changed, 3 deletions(-) diff --git a/package.json b/package.json index 0446b8226a..f630c487a4 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,6 @@ "mime": "^1.3.4", "minimist": "^1.1.1", "mkdirp": "~0.5.0", - "mmmagic": "^0.4.0", "morgan": "^1.3.2", "nconf": "~0.8.2", "nodebb-plugin-composer-default": "1.0.21", diff --git a/src/file.js b/src/file.js index 4dc258aa37..01a40ee6bd 100644 --- a/src/file.js +++ b/src/file.js @@ -4,8 +4,6 @@ var fs = require('fs'), nconf = require('nconf'), path = require('path'), winston = require('winston'), - mmmagic = require('mmmagic'), - Magic = mmmagic.Magic, mime = require('mime'), jimp = require('jimp'), From 8944856692cd21c5f0093e26c40098ced741dee4 Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Mon, 9 Nov 2015 15:59:16 -0500 Subject: [PATCH 24/78] updated approval queue message to use modal --- public/src/client/register.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/public/src/client/register.js b/public/src/client/register.js index 099b31c087..ef11e4a4bd 100644 --- a/public/src/client/register.js +++ b/public/src/client/register.js @@ -84,7 +84,12 @@ define('forum/register', ['csrf', 'translator'], function(csrf, translator) { if (data.referrer) { window.location.href = data.referrer; } else if (data.message) { - app.alert({message: data.message, timeout: 20000}); + require(['translator'], function(translator) { + translator.translate(data.message, function(msg) { + bootbox.alert(msg); + ajaxify.go('/'); + }); + }); } }, error: function(data, status) { From ec3ae307e976b395876a6df4ef0cf03fd3903023 Mon Sep 17 00:00:00 2001 From: barisusakli Date: Tue, 10 Nov 2015 13:13:16 -0500 Subject: [PATCH 25/78] closes #3853 --- src/user/create.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/user/create.js b/src/user/create.js index 9beca877f4..45fd9cbe62 100644 --- a/src/user/create.js +++ b/src/user/create.js @@ -151,7 +151,7 @@ module.exports = function(User) { } }, userNameValid: function(next) { - next((!utils.isUserNameValid(userData.username) || !userData.userslug) ? new Error('[[error:invalid-username]]') : null); + next((!utils.isUserNameValid(userData.username) || !userData.userslug) ? new Error('[[error:invalid-username, ' + userData.username + ']]') : null); }, passwordValid: function(next) { if (userData.password) { From e5cd92841915aaf992141b3ea17f7f9a1d35c279 Mon Sep 17 00:00:00 2001 From: barisusakli Date: Tue, 10 Nov 2015 13:18:06 -0500 Subject: [PATCH 26/78] closes #3826 --- public/src/client/topic/posts.js | 1 + 1 file changed, 1 insertion(+) diff --git a/public/src/client/topic/posts.js b/public/src/client/topic/posts.js index e83d30b36d..3af4945d51 100644 --- a/public/src/client/topic/posts.js +++ b/public/src/client/topic/posts.js @@ -212,6 +212,7 @@ define('forum/topic/posts', [ Posts.processPage = function(posts) { Posts.showBottomPostBar(); + posts.find('[component="post/content"] img:not(.not-responsive)').addClass('img-responsive'); app.createUserTooltips(posts); app.replaceSelfLinks(posts.find('a')); utils.addCommasToNumbers(posts.find('.formatted-number')); From dc035c11f3da18421640569940589323a8c14b9f Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Tue, 10 Nov 2015 14:40:11 -0500 Subject: [PATCH 27/78] updated widget code to work better with sidebar areas --- package.json | 2 +- public/src/widgets.js | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index f630c487a4..e3d766a9bb 100644 --- a/package.json +++ b/package.json @@ -49,7 +49,7 @@ "nodebb-plugin-spam-be-gone": "0.4.2", "nodebb-rewards-essentials": "0.0.6", "nodebb-theme-lavender": "3.0.0", - "nodebb-theme-persona": "4.0.35", + "nodebb-theme-persona": "4.0.36", "nodebb-theme-vanilla": "5.0.13", "nodebb-widget-essentials": "2.0.5", "nodemailer": "0.7.1", diff --git a/public/src/widgets.js b/public/src/widgets.js index 18d593ad1f..2a8b052bba 100644 --- a/public/src/widgets.js +++ b/public/src/widgets.js @@ -57,7 +57,13 @@ if (location === 'footer' && !$('#content [widget-area="footer"]').length) { $('#content').append($('
')); } else if (location === 'sidebar' && !$('#content [widget-area="sidebar"]').length) { - $('#content > *').wrapAll($('
')); + if ($('[component="account/cover"]').length) { + $('[component="account/cover"]').nextAll().wrapAll($('
')); + } else if ($('[component="groups/cover"]').length) { + $('[component="groups/cover"]').nextAll().wrapAll($('
')); + } else { + $('#content > *').wrapAll($('
')); + } } else if (location === 'header' && !$('#content [widget-area="header"]').length) { $('#content').prepend($('
')); } From 00a4ba6617a2c9f3d3632913902099d1f48a9893 Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Tue, 10 Nov 2015 15:36:49 -0500 Subject: [PATCH 28/78] latest translations --- public/language/bg/error.json | 4 +-- public/language/gl/error.json | 2 +- public/language/gl/user.json | 2 +- public/language/he/groups.json | 16 ++++++------ public/language/he/login.json | 6 ++--- public/language/he/modules.json | 12 ++++----- public/language/he/recent.json | 2 +- public/language/ro/global.json | 24 +++++++++--------- public/language/ro/groups.json | 2 +- public/language/ro/pages.json | 6 ++--- public/language/ro/search.json | 44 ++++++++++++++++----------------- public/language/ro/user.json | 2 +- public/language/ro/users.json | 16 ++++++------ 13 files changed, 69 insertions(+), 69 deletions(-) diff --git a/public/language/bg/error.json b/public/language/bg/error.json index c6eff6fd3f..f95a736f82 100644 --- a/public/language/bg/error.json +++ b/public/language/bg/error.json @@ -59,8 +59,8 @@ "group-name-too-short": "Името на групата е твърде кратко", "group-already-exists": "Вече съществува такава група", "group-name-change-not-allowed": "Промяната на името на групата не е разрешено", - "group-already-member": "Already part of this group", - "group-not-member": "Not a member of this group", + "group-already-member": "Вече членувате в тази група", + "group-not-member": "Не членувате в тази група", "group-needs-owner": "Тази група се нуждае от поне един собственик", "group-already-invited": "Този потребител вече е бил поканен", "group-already-requested": "Вашата заявка за членство вече е била изпратена", diff --git a/public/language/gl/error.json b/public/language/gl/error.json index 892e1d42ec..96a6409dae 100644 --- a/public/language/gl/error.json +++ b/public/language/gl/error.json @@ -73,7 +73,7 @@ "invalid-file": "Arquivo Inválido", "uploads-are-disabled": "As subidas están deshabilitadas", "signature-too-long": "Desculpa, a firma non pode ser maior de %1 carácter(es).", - "about-me-too-long": "Desculpa, o teu \"sobre min\" non pode superar-los %1 caracter(es),", + "about-me-too-long": "Desculpa, o teu \"sobre min\" non pode supera-los %1 caracteres,", "cant-chat-with-yourself": "Non podes falar contigo mesmo!", "chat-restricted": "Este usuario restrinxiu as charlas. Debedes seguirvos antes de que poidas falar con el. ", "too-many-messages": "Estás a enviar moitas mensaxes, por favor, agarda un anaco. ", diff --git a/public/language/gl/user.json b/public/language/gl/user.json index fc5bb19223..2c82c76f13 100644 --- a/public/language/gl/user.json +++ b/public/language/gl/user.json @@ -96,7 +96,7 @@ "homepage": "Páxina de inicio", "homepage_description": "Escolla unha páxina para o seu uso habitual como a páxina principal do foro ou \"Ningún\" para empregar a páxina de inicio", "custom_route": "Modificar páxina de ruta", - "custom_route_help": "Introduza o nome de ruta aquí, sen ningunha barra anterior (por exemplo, \"recente\", ou \"popular\")", + "custom_route_help": "Introduza o nome de ruta aquí, sen ningunha barra (por exemplo, \"recente\", ou \"popular\")", "sso.title": "Servizos de Inicio de Sesión Único", "sso.associated": "Asociado con", "sso.not-associated": "Pica aquí para asociarte con" diff --git a/public/language/he/groups.json b/public/language/he/groups.json index 1fa0c01e99..3b5aaf3a28 100644 --- a/public/language/he/groups.json +++ b/public/language/he/groups.json @@ -10,7 +10,7 @@ "pending.reject_all": "דחה הכל", "pending.none": "There are no pending members at this time", "invited.none": "There are no invited members at this time", - "invited.uninvite": "Rescind Invitation", + "invited.uninvite": "בטל הזמנה", "invited.search": "Search for a user to invite to this group", "invited.notification_title": "You have been invited to join %1", "request.notification_title": "Group Membership Request from %1", @@ -20,10 +20,10 @@ "details.title": "פרטי הקבוצה", "details.members": "רשימת חברי הקבוצה", "details.pending": "חברי קבוצה הממתינים לאישור", - "details.invited": "Invited Members", + "details.invited": "חברים מוזמנים", "details.has_no_posts": "חברי הקבוצה הזו לא העלו אף פוסט.", "details.latest_posts": "פוסטים אחרונים", - "details.private": "Private", + "details.private": "פרטי", "details.grant": "Grant/Rescind Ownership", "details.kick": "Kick", "details.owner_options": "ניהול הקבוצה", @@ -37,15 +37,15 @@ "details.badge_text": "Badge Text", "details.userTitleEnabled": "Show Badge", "details.private_help": "If enabled, joining of groups requires approval from a group owner", - "details.hidden": "Hidden", + "details.hidden": "מוסתר", "details.hidden_help": "If enabled, this group will not be found in the groups listing, and users will have to be invited manually", - "details.delete_group": "Delete Group", + "details.delete_group": "מחק קבוצה", "event.updated": "פרטי הקבוצה עודכנו", "event.deleted": "קבוצת \"%1\" נמחקה", "membership.accept-invitation": "Accept Invitation", "membership.invitation-pending": "Invitation Pending", - "membership.join-group": "Join Group", - "membership.leave-group": "Leave Group", + "membership.join-group": "הצטרף לקבוצה", + "membership.leave-group": "עזוב קבוצה", "membership.reject": "דחה", - "new-group.group_name": "Group Name:" + "new-group.group_name": "שם קבוצה" } \ No newline at end of file diff --git a/public/language/he/login.json b/public/language/he/login.json index 0a21aa92ba..6142a8a045 100644 --- a/public/language/he/login.json +++ b/public/language/he/login.json @@ -1,7 +1,7 @@ { - "username-email": "Username / Email", - "username": "Username", - "email": "Email", + "username-email": "שם משתמש/אימייל", + "username": "שם משתמש", + "email": "אימייל", "remember_me": "זכור אותי?", "forgot_password": "שכחת סיסמתך?", "alternative_logins": "התחבר באמצעות...", diff --git a/public/language/he/modules.json b/public/language/he/modules.json index fc02693c54..c1eb273a21 100644 --- a/public/language/he/modules.json +++ b/public/language/he/modules.json @@ -16,15 +16,15 @@ "chat.thirty_days": "30 ימים", "chat.three_months": "3 חודשים", "composer.compose": "Compose", - "composer.show_preview": "Show Preview", - "composer.hide_preview": "Hide Preview", + "composer.show_preview": "הצג תצוגה מקדימה", + "composer.hide_preview": "הסתר תצוגה מקדימה", "composer.user_said_in": "%1 אמר ב%2:", "composer.user_said": "%1 אמר:", "composer.discard": "האם למחוק פוסט זה?", "composer.submit_and_lock": "Submit and Lock", "composer.toggle_dropdown": "Toggle Dropdown", - "composer.uploading": "Uploading %1", - "bootbox.ok": "OK", - "bootbox.cancel": "Cancel", - "bootbox.confirm": "Confirm" + "composer.uploading": "העלאה %1", + "bootbox.ok": "בסדר", + "bootbox.cancel": "בטל", + "bootbox.confirm": "אשר" } \ No newline at end of file diff --git a/public/language/he/recent.json b/public/language/he/recent.json index 7d4d3bf1a9..913388686a 100644 --- a/public/language/he/recent.json +++ b/public/language/he/recent.json @@ -6,7 +6,7 @@ "year": "שנה", "alltime": "כל הזמן", "no_recent_topics": "אין נושאים חדשים", - "no_popular_topics": "There are no popular topics.", + "no_popular_topics": "אין נושאים פופולריים.", "there-is-a-new-topic": "יש נושא חדש.", "there-is-a-new-topic-and-a-new-post": "יש נושא ופוסט חדש.", "there-is-a-new-topic-and-new-posts": "יש נושא ו%1 פוסטים חדשים.", diff --git a/public/language/ro/global.json b/public/language/ro/global.json index 191551b1cd..6b956122d8 100644 --- a/public/language/ro/global.json +++ b/public/language/ro/global.json @@ -22,18 +22,18 @@ "pagination.out_of": "%1 din %2", "pagination.enter_index": "Introdu index", "header.admin": "Admin", - "header.categories": "Categories", + "header.categories": "Categorii", "header.recent": "Recente", "header.unread": "Necitite", "header.tags": "Taguri", "header.popular": "Populare", "header.users": "Utilizatori", - "header.groups": "Groups", + "header.groups": "Grupuri", "header.chats": "Conversații", "header.notifications": "Notificări", "header.search": "Căutare", "header.profile": "Profil", - "header.navigation": "Navigation", + "header.navigation": "Navigare", "notifications.loading": "Se încarcă notificările", "chats.loading": "Se încarcă conversațiile", "motd.welcome": "Bine ai venit la NodeBB, platforma de discuții a viitorului.", @@ -52,12 +52,12 @@ "views": "Vizualizări", "reputation": "Reputație", "read_more": "citește mai mult", - "more": "More", + "more": "Mai multe", "posted_ago_by_guest": "postat %1 de Vizitator", "posted_ago_by": "postat %1 de %2", "posted_ago": "postat %1", - "posted_in": "posted in %1", - "posted_in_by": "posted in %1 by %2", + "posted_in": "postat în %1", + "posted_in_by": "postat în %1 de %2", "posted_in_ago": "postat în %1 %2", "posted_in_ago_by": "postat în %1 %2 de %3", "posted_in_ago_by_guest": "postat în %1 %2 de Vizitator", @@ -70,7 +70,7 @@ "recentposts": "Mesaje Recente", "recentips": "Adrese IP autentificate recent", "away": "Plecat", - "dnd": "Do not disturb", + "dnd": "Nu mă deranja", "invisible": "Invizibil", "offline": "Deconectat", "email": "Email", @@ -79,9 +79,9 @@ "guests": "Vizitatori", "updated.title": "Forumul a fost actualizat", "updated.message": "Acest forum a fost actualizat la ultima version. Apasă aici pentru a reîmprospăta pagina.", - "privacy": "Privacy", - "follow": "Follow", - "unfollow": "Unfollow", - "delete_all": "Delete All", - "map": "Map" + "privacy": "Intimitate", + "follow": "Urmăreşte", + "unfollow": "Nu mai urmări", + "delete_all": "Şterge Tot", + "map": "Hartă" } \ No newline at end of file diff --git a/public/language/ro/groups.json b/public/language/ro/groups.json index 721276d096..de4a00d287 100644 --- a/public/language/ro/groups.json +++ b/public/language/ro/groups.json @@ -1,5 +1,5 @@ { - "groups": "Groups", + "groups": "Grupuri", "view_group": "Vezi Grup", "owner": "Group Owner", "new_group": "Create New Group", diff --git a/public/language/ro/pages.json b/public/language/ro/pages.json index 5d81331aaa..154c115150 100644 --- a/public/language/ro/pages.json +++ b/public/language/ro/pages.json @@ -13,13 +13,13 @@ "users/map": "User Map", "users/search": "User Search", "notifications": "Notificări", - "tags": "Tags", + "tags": "Taguri", "tag": "Topics tagged under \"%1\"", "register": "Register an account", "login": "Login to your account", "reset": "Reset your account password", - "categories": "Categories", - "groups": "Groups", + "categories": "Categorii", + "groups": "Grupuri", "group": "%1 group", "chats": "Chats", "chat": "Chatting with %1", diff --git a/public/language/ro/search.json b/public/language/ro/search.json index 6af7a31683..6ba92e0b84 100644 --- a/public/language/ro/search.json +++ b/public/language/ro/search.json @@ -1,28 +1,28 @@ { "results_matching": "%1 rezultat(e) pentru \"%2\", (%3 secunde)", - "no-matches": "No matches found", - "advanced-search": "Advanced Search", - "in": "In", - "titles": "Titles", - "titles-posts": "Titles and Posts", - "posted-by": "Posted by", - "in-categories": "In Categories", + "no-matches": "Nu a fost găsit nici un rezultat", + "advanced-search": "Căutare avansată", + "in": "În", + "titles": "Titluri", + "titles-posts": "Titluri şi Mesaje", + "posted-by": "Postat de", + "in-categories": "În Categorii", "search-child-categories": "Search child categories", - "reply-count": "Reply Count", - "at-least": "At least", - "at-most": "At most", - "post-time": "Post time", - "newer-than": "Newer than", - "older-than": "Older than", - "any-date": "Any date", - "yesterday": "Yesterday", - "one-week": "One week", - "two-weeks": "Two weeks", - "one-month": "One month", - "three-months": "Three months", - "six-months": "Six months", - "one-year": "One year", - "sort-by": "Sort by", + "reply-count": "Numărul de răspunsuri", + "at-least": "Cel puţin", + "at-most": "Cel mult", + "post-time": "Ora mesajului", + "newer-than": "Mai noi decât", + "older-than": "Mai vechi decât", + "any-date": "Orice Dată", + "yesterday": "Ieri", + "one-week": "Acum o săptămână", + "two-weeks": "Două săptămâni", + "one-month": "O lună", + "three-months": "Trei luni", + "six-months": "Şase luni", + "one-year": "Un an", + "sort-by": "Sortează după", "last-reply-time": "Last reply time", "topic-title": "Topic title", "number-of-replies": "Number of replies", diff --git a/public/language/ro/user.json b/public/language/ro/user.json index 6d0d199d07..587eb27570 100644 --- a/public/language/ro/user.json +++ b/public/language/ro/user.json @@ -33,7 +33,7 @@ "chat_with": "Chat with %1", "follow": "Urmărește", "unfollow": "Oprește urmărirea", - "more": "More", + "more": "Mai multe", "profile_update_success": "Profilul tău a fost actualizat cu succes!", "change_picture": "Schimbă Poza", "change_username": "Change Username", diff --git a/public/language/ro/users.json b/public/language/ro/users.json index 238636e567..d7a1a72fc4 100644 --- a/public/language/ro/users.json +++ b/public/language/ro/users.json @@ -9,13 +9,13 @@ "filter-by": "Filter By", "online-only": "Online only", "picture-only": "Picture only", - "invite": "Invite", + "invite": "Invită", "invitation-email-sent": "An invitation email has been sent to %1", - "user_list": "User List", - "recent_topics": "Recent Topics", - "popular_topics": "Popular Topics", - "unread_topics": "Unread Topics", - "categories": "Categories", - "tags": "Tags", - "map": "Map" + "user_list": "Listă utilizatori", + "recent_topics": "Subiecte Noi", + "popular_topics": "Subiecte Populare", + "unread_topics": "Subiecte Necitite", + "categories": "Categorii", + "tags": "Taguri", + "map": "Hartă" } \ No newline at end of file From 93c077dabd2e02a542d8f5ee6939f705a24be213 Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Tue, 10 Nov 2015 16:02:56 -0500 Subject: [PATCH 29/78] closes #3825 --- public/language/en_GB/modules.json | 6 +++++- public/src/modules/coverPhoto.js | 8 ++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/public/language/en_GB/modules.json b/public/language/en_GB/modules.json index 673ad026a9..6bb97b68a4 100644 --- a/public/language/en_GB/modules.json +++ b/public/language/en_GB/modules.json @@ -28,5 +28,9 @@ "bootbox.ok": "OK", "bootbox.cancel": "Cancel", - "bootbox.confirm": "Confirm" + "bootbox.confirm": "Confirm", + + "cover.dragging_title": "Cover Photo Positioning", + "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"", + "cover.saved": "Cover photo image and position saved" } \ No newline at end of file diff --git a/public/src/modules/coverPhoto.js b/public/src/modules/coverPhoto.js index c9794d3370..6a45732c9b 100644 --- a/public/src/modules/coverPhoto.js +++ b/public/src/modules/coverPhoto.js @@ -58,6 +58,13 @@ define('coverPhoto', [ axis: 'y', units: 'percent' }); + + app.alert({ + alert_id: 'drag_start', + title: '[[modules:cover.dragging_title]]', + message: '[[modules:cover.dragging_message]]', + timeout: 5000 + }); } coverPhoto.save = function() { @@ -69,6 +76,7 @@ define('coverPhoto', [ coverPhoto.coverEl.backgroundDraggable('disable'); coverPhoto.coverEl.off('dragover', coverPhoto.onDragOver); coverPhoto.coverEl.off('drop', coverPhoto.onDrop); + app.alertSuccess('[[modules:cover.saved]]'); } else { app.alertError(err.message); } From 3469c47a591524c7e708737520a827edd0ee137f Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Tue, 10 Nov 2015 16:04:13 -0500 Subject: [PATCH 30/78] language fallbacks for #3825 --- public/language/ar/modules.json | 5 ++++- public/language/bg/modules.json | 5 ++++- public/language/bn/modules.json | 5 ++++- public/language/cs/modules.json | 5 ++++- public/language/da/modules.json | 5 ++++- public/language/de/modules.json | 5 ++++- public/language/el/modules.json | 5 ++++- public/language/en@pirate/modules.json | 5 ++++- public/language/en_US/modules.json | 5 ++++- public/language/es/modules.json | 5 ++++- public/language/et/modules.json | 5 ++++- public/language/fa_IR/modules.json | 5 ++++- public/language/fi/modules.json | 5 ++++- public/language/fr/modules.json | 5 ++++- public/language/gl/modules.json | 5 ++++- public/language/he/modules.json | 5 ++++- public/language/hu/modules.json | 5 ++++- public/language/id/modules.json | 5 ++++- public/language/it/modules.json | 5 ++++- public/language/ja/modules.json | 5 ++++- public/language/ko/modules.json | 5 ++++- public/language/lt/modules.json | 5 ++++- public/language/ms/modules.json | 5 ++++- public/language/nb/modules.json | 5 ++++- public/language/nl/modules.json | 5 ++++- public/language/pl/modules.json | 5 ++++- public/language/pt_BR/modules.json | 5 ++++- public/language/ro/modules.json | 5 ++++- public/language/ru/modules.json | 5 ++++- public/language/rw/modules.json | 5 ++++- public/language/sc/modules.json | 5 ++++- public/language/sk/modules.json | 5 ++++- public/language/sl/modules.json | 5 ++++- public/language/sr/modules.json | 5 ++++- public/language/sv/modules.json | 5 ++++- public/language/th/modules.json | 5 ++++- public/language/tr/modules.json | 5 ++++- public/language/vi/modules.json | 5 ++++- public/language/zh_CN/modules.json | 5 ++++- public/language/zh_TW/modules.json | 5 ++++- 40 files changed, 160 insertions(+), 40 deletions(-) diff --git a/public/language/ar/modules.json b/public/language/ar/modules.json index d2ede1b1ca..17998d13f9 100644 --- a/public/language/ar/modules.json +++ b/public/language/ar/modules.json @@ -26,5 +26,8 @@ "composer.uploading": "Uploading %1", "bootbox.ok": "OK", "bootbox.cancel": "إلغاء", - "bootbox.confirm": "تأكيد" + "bootbox.confirm": "تأكيد", + "cover.dragging_title": "Cover Photo Positioning", + "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"", + "cover.saved": "Cover photo image and position saved" } \ No newline at end of file diff --git a/public/language/bg/modules.json b/public/language/bg/modules.json index 0be9ae627b..5f964a2b3d 100644 --- a/public/language/bg/modules.json +++ b/public/language/bg/modules.json @@ -26,5 +26,8 @@ "composer.uploading": "Качване на %1", "bootbox.ok": "Добре", "bootbox.cancel": "Отказ", - "bootbox.confirm": "Потвърждаване" + "bootbox.confirm": "Потвърждаване", + "cover.dragging_title": "Cover Photo Positioning", + "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"", + "cover.saved": "Cover photo image and position saved" } \ No newline at end of file diff --git a/public/language/bn/modules.json b/public/language/bn/modules.json index 4c586d7150..dc26f2fd17 100644 --- a/public/language/bn/modules.json +++ b/public/language/bn/modules.json @@ -26,5 +26,8 @@ "composer.uploading": "Uploading %1", "bootbox.ok": "OK", "bootbox.cancel": "Cancel", - "bootbox.confirm": "Confirm" + "bootbox.confirm": "Confirm", + "cover.dragging_title": "Cover Photo Positioning", + "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"", + "cover.saved": "Cover photo image and position saved" } \ No newline at end of file diff --git a/public/language/cs/modules.json b/public/language/cs/modules.json index 43d2a86062..cd4fe64059 100644 --- a/public/language/cs/modules.json +++ b/public/language/cs/modules.json @@ -26,5 +26,8 @@ "composer.uploading": "Uploading %1", "bootbox.ok": "OK", "bootbox.cancel": "Cancel", - "bootbox.confirm": "Confirm" + "bootbox.confirm": "Confirm", + "cover.dragging_title": "Cover Photo Positioning", + "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"", + "cover.saved": "Cover photo image and position saved" } \ No newline at end of file diff --git a/public/language/da/modules.json b/public/language/da/modules.json index 71b98a18c7..81f62a112c 100644 --- a/public/language/da/modules.json +++ b/public/language/da/modules.json @@ -26,5 +26,8 @@ "composer.uploading": "Uploading %1", "bootbox.ok": "OK", "bootbox.cancel": "Annuller", - "bootbox.confirm": "Bekræft" + "bootbox.confirm": "Bekræft", + "cover.dragging_title": "Cover Photo Positioning", + "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"", + "cover.saved": "Cover photo image and position saved" } \ No newline at end of file diff --git a/public/language/de/modules.json b/public/language/de/modules.json index 00c80cc01f..167eda7885 100644 --- a/public/language/de/modules.json +++ b/public/language/de/modules.json @@ -26,5 +26,8 @@ "composer.uploading": "Uploading %1", "bootbox.ok": "OK", "bootbox.cancel": "Abbrechen", - "bootbox.confirm": "Bestätigen" + "bootbox.confirm": "Bestätigen", + "cover.dragging_title": "Cover Photo Positioning", + "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"", + "cover.saved": "Cover photo image and position saved" } \ No newline at end of file diff --git a/public/language/el/modules.json b/public/language/el/modules.json index f2a6f3a7e2..a47af0e58a 100644 --- a/public/language/el/modules.json +++ b/public/language/el/modules.json @@ -26,5 +26,8 @@ "composer.uploading": "Uploading %1", "bootbox.ok": "OK", "bootbox.cancel": "Cancel", - "bootbox.confirm": "Confirm" + "bootbox.confirm": "Confirm", + "cover.dragging_title": "Cover Photo Positioning", + "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"", + "cover.saved": "Cover photo image and position saved" } \ No newline at end of file diff --git a/public/language/en@pirate/modules.json b/public/language/en@pirate/modules.json index 2a8d53b65f..7d2111c556 100644 --- a/public/language/en@pirate/modules.json +++ b/public/language/en@pirate/modules.json @@ -26,5 +26,8 @@ "composer.uploading": "Uploading %1", "bootbox.ok": "OK", "bootbox.cancel": "Cancel", - "bootbox.confirm": "Confirm" + "bootbox.confirm": "Confirm", + "cover.dragging_title": "Cover Photo Positioning", + "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"", + "cover.saved": "Cover photo image and position saved" } \ No newline at end of file diff --git a/public/language/en_US/modules.json b/public/language/en_US/modules.json index 9280b26f21..b089365c68 100644 --- a/public/language/en_US/modules.json +++ b/public/language/en_US/modules.json @@ -26,5 +26,8 @@ "composer.uploading": "Uploading %1", "bootbox.ok": "OK", "bootbox.cancel": "Cancel", - "bootbox.confirm": "Confirm" + "bootbox.confirm": "Confirm", + "cover.dragging_title": "Cover Photo Positioning", + "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"", + "cover.saved": "Cover photo image and position saved" } \ No newline at end of file diff --git a/public/language/es/modules.json b/public/language/es/modules.json index 95f7a7bfb6..ce265eaf87 100644 --- a/public/language/es/modules.json +++ b/public/language/es/modules.json @@ -26,5 +26,8 @@ "composer.uploading": "Subiendo %1", "bootbox.ok": "OK", "bootbox.cancel": "Cancelar", - "bootbox.confirm": "Confirmar" + "bootbox.confirm": "Confirmar", + "cover.dragging_title": "Cover Photo Positioning", + "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"", + "cover.saved": "Cover photo image and position saved" } \ No newline at end of file diff --git a/public/language/et/modules.json b/public/language/et/modules.json index 1b7c0c048f..99ab787405 100644 --- a/public/language/et/modules.json +++ b/public/language/et/modules.json @@ -26,5 +26,8 @@ "composer.uploading": "Uploading %1", "bootbox.ok": "Olgu", "bootbox.cancel": "Katkesta", - "bootbox.confirm": "Kinnita" + "bootbox.confirm": "Kinnita", + "cover.dragging_title": "Cover Photo Positioning", + "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"", + "cover.saved": "Cover photo image and position saved" } \ No newline at end of file diff --git a/public/language/fa_IR/modules.json b/public/language/fa_IR/modules.json index 738df3b45a..6548730c12 100644 --- a/public/language/fa_IR/modules.json +++ b/public/language/fa_IR/modules.json @@ -26,5 +26,8 @@ "composer.uploading": "Uploading %1", "bootbox.ok": "OK", "bootbox.cancel": "Cancel", - "bootbox.confirm": "Confirm" + "bootbox.confirm": "Confirm", + "cover.dragging_title": "Cover Photo Positioning", + "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"", + "cover.saved": "Cover photo image and position saved" } \ No newline at end of file diff --git a/public/language/fi/modules.json b/public/language/fi/modules.json index 76893f6b1a..cd30656984 100644 --- a/public/language/fi/modules.json +++ b/public/language/fi/modules.json @@ -26,5 +26,8 @@ "composer.uploading": "Uploading %1", "bootbox.ok": "OK", "bootbox.cancel": "Cancel", - "bootbox.confirm": "Confirm" + "bootbox.confirm": "Confirm", + "cover.dragging_title": "Cover Photo Positioning", + "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"", + "cover.saved": "Cover photo image and position saved" } \ No newline at end of file diff --git a/public/language/fr/modules.json b/public/language/fr/modules.json index 8b7892291f..2294209496 100644 --- a/public/language/fr/modules.json +++ b/public/language/fr/modules.json @@ -26,5 +26,8 @@ "composer.uploading": "Envoi en cours %1", "bootbox.ok": "OK", "bootbox.cancel": "Annuler", - "bootbox.confirm": "Confirmer" + "bootbox.confirm": "Confirmer", + "cover.dragging_title": "Cover Photo Positioning", + "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"", + "cover.saved": "Cover photo image and position saved" } \ No newline at end of file diff --git a/public/language/gl/modules.json b/public/language/gl/modules.json index 8c9102e625..cf3d04838f 100644 --- a/public/language/gl/modules.json +++ b/public/language/gl/modules.json @@ -26,5 +26,8 @@ "composer.uploading": "Subindo %1", "bootbox.ok": "De acordo", "bootbox.cancel": "Cancelar", - "bootbox.confirm": "Confirmar" + "bootbox.confirm": "Confirmar", + "cover.dragging_title": "Cover Photo Positioning", + "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"", + "cover.saved": "Cover photo image and position saved" } \ No newline at end of file diff --git a/public/language/he/modules.json b/public/language/he/modules.json index c1eb273a21..5e39866635 100644 --- a/public/language/he/modules.json +++ b/public/language/he/modules.json @@ -26,5 +26,8 @@ "composer.uploading": "העלאה %1", "bootbox.ok": "בסדר", "bootbox.cancel": "בטל", - "bootbox.confirm": "אשר" + "bootbox.confirm": "אשר", + "cover.dragging_title": "Cover Photo Positioning", + "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"", + "cover.saved": "Cover photo image and position saved" } \ No newline at end of file diff --git a/public/language/hu/modules.json b/public/language/hu/modules.json index 56ad4ac7ca..476f5a1ce4 100644 --- a/public/language/hu/modules.json +++ b/public/language/hu/modules.json @@ -26,5 +26,8 @@ "composer.uploading": "Uploading %1", "bootbox.ok": "OK", "bootbox.cancel": "Cancel", - "bootbox.confirm": "Confirm" + "bootbox.confirm": "Confirm", + "cover.dragging_title": "Cover Photo Positioning", + "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"", + "cover.saved": "Cover photo image and position saved" } \ No newline at end of file diff --git a/public/language/id/modules.json b/public/language/id/modules.json index 7dc353508e..e78074ee16 100644 --- a/public/language/id/modules.json +++ b/public/language/id/modules.json @@ -26,5 +26,8 @@ "composer.uploading": "Uploading %1", "bootbox.ok": "OK", "bootbox.cancel": "Cancel", - "bootbox.confirm": "Confirm" + "bootbox.confirm": "Confirm", + "cover.dragging_title": "Cover Photo Positioning", + "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"", + "cover.saved": "Cover photo image and position saved" } \ No newline at end of file diff --git a/public/language/it/modules.json b/public/language/it/modules.json index 03e6d27018..04b4d8df6f 100644 --- a/public/language/it/modules.json +++ b/public/language/it/modules.json @@ -26,5 +26,8 @@ "composer.uploading": "Uploading %1", "bootbox.ok": "OK", "bootbox.cancel": "Annulla", - "bootbox.confirm": "Conferma" + "bootbox.confirm": "Conferma", + "cover.dragging_title": "Cover Photo Positioning", + "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"", + "cover.saved": "Cover photo image and position saved" } \ No newline at end of file diff --git a/public/language/ja/modules.json b/public/language/ja/modules.json index 1daf348dc2..1bfece5756 100644 --- a/public/language/ja/modules.json +++ b/public/language/ja/modules.json @@ -26,5 +26,8 @@ "composer.uploading": "Uploading %1", "bootbox.ok": "OK", "bootbox.cancel": "Cancel", - "bootbox.confirm": "Confirm" + "bootbox.confirm": "Confirm", + "cover.dragging_title": "Cover Photo Positioning", + "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"", + "cover.saved": "Cover photo image and position saved" } \ No newline at end of file diff --git a/public/language/ko/modules.json b/public/language/ko/modules.json index 686e06078b..b398719598 100644 --- a/public/language/ko/modules.json +++ b/public/language/ko/modules.json @@ -26,5 +26,8 @@ "composer.uploading": "Uploading %1", "bootbox.ok": "OK", "bootbox.cancel": "Cancel", - "bootbox.confirm": "Confirm" + "bootbox.confirm": "Confirm", + "cover.dragging_title": "Cover Photo Positioning", + "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"", + "cover.saved": "Cover photo image and position saved" } \ No newline at end of file diff --git a/public/language/lt/modules.json b/public/language/lt/modules.json index 8edd717201..2ce3c13d35 100644 --- a/public/language/lt/modules.json +++ b/public/language/lt/modules.json @@ -26,5 +26,8 @@ "composer.uploading": "Uploading %1", "bootbox.ok": "OK", "bootbox.cancel": "Cancel", - "bootbox.confirm": "Confirm" + "bootbox.confirm": "Confirm", + "cover.dragging_title": "Cover Photo Positioning", + "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"", + "cover.saved": "Cover photo image and position saved" } \ No newline at end of file diff --git a/public/language/ms/modules.json b/public/language/ms/modules.json index a1f1fb2ca8..3278bad63d 100644 --- a/public/language/ms/modules.json +++ b/public/language/ms/modules.json @@ -26,5 +26,8 @@ "composer.uploading": "Memuat naik %1", "bootbox.ok": "Ok", "bootbox.cancel": "Batal", - "bootbox.confirm": "Pasti" + "bootbox.confirm": "Pasti", + "cover.dragging_title": "Cover Photo Positioning", + "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"", + "cover.saved": "Cover photo image and position saved" } \ No newline at end of file diff --git a/public/language/nb/modules.json b/public/language/nb/modules.json index 8e422b9a47..0a2e6a3b16 100644 --- a/public/language/nb/modules.json +++ b/public/language/nb/modules.json @@ -26,5 +26,8 @@ "composer.uploading": "Uploading %1", "bootbox.ok": "OK", "bootbox.cancel": "Avbryt", - "bootbox.confirm": "Bekreft" + "bootbox.confirm": "Bekreft", + "cover.dragging_title": "Cover Photo Positioning", + "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"", + "cover.saved": "Cover photo image and position saved" } \ No newline at end of file diff --git a/public/language/nl/modules.json b/public/language/nl/modules.json index 672f1dc3e3..3342832755 100644 --- a/public/language/nl/modules.json +++ b/public/language/nl/modules.json @@ -26,5 +26,8 @@ "composer.uploading": "Uploading %1", "bootbox.ok": "OK", "bootbox.cancel": "Anuleren", - "bootbox.confirm": "Bevestig" + "bootbox.confirm": "Bevestig", + "cover.dragging_title": "Cover Photo Positioning", + "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"", + "cover.saved": "Cover photo image and position saved" } \ No newline at end of file diff --git a/public/language/pl/modules.json b/public/language/pl/modules.json index efe8b450f8..47a4eb6fa3 100644 --- a/public/language/pl/modules.json +++ b/public/language/pl/modules.json @@ -26,5 +26,8 @@ "composer.uploading": "Uploading %1", "bootbox.ok": "OK", "bootbox.cancel": "Anuluj", - "bootbox.confirm": "Potwierdź" + "bootbox.confirm": "Potwierdź", + "cover.dragging_title": "Cover Photo Positioning", + "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"", + "cover.saved": "Cover photo image and position saved" } \ No newline at end of file diff --git a/public/language/pt_BR/modules.json b/public/language/pt_BR/modules.json index d19c5cc8b5..103c81a8e5 100644 --- a/public/language/pt_BR/modules.json +++ b/public/language/pt_BR/modules.json @@ -26,5 +26,8 @@ "composer.uploading": "Enviando %1", "bootbox.ok": "OK", "bootbox.cancel": "Cancelar", - "bootbox.confirm": "Confirmar" + "bootbox.confirm": "Confirmar", + "cover.dragging_title": "Cover Photo Positioning", + "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"", + "cover.saved": "Cover photo image and position saved" } \ No newline at end of file diff --git a/public/language/ro/modules.json b/public/language/ro/modules.json index 8dd9ea3d42..c3d76d0617 100644 --- a/public/language/ro/modules.json +++ b/public/language/ro/modules.json @@ -26,5 +26,8 @@ "composer.uploading": "Uploading %1", "bootbox.ok": "OK", "bootbox.cancel": "Cancel", - "bootbox.confirm": "Confirm" + "bootbox.confirm": "Confirm", + "cover.dragging_title": "Cover Photo Positioning", + "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"", + "cover.saved": "Cover photo image and position saved" } \ No newline at end of file diff --git a/public/language/ru/modules.json b/public/language/ru/modules.json index 2ec5e4306f..68032d3140 100644 --- a/public/language/ru/modules.json +++ b/public/language/ru/modules.json @@ -26,5 +26,8 @@ "composer.uploading": "Uploading %1", "bootbox.ok": "ОК", "bootbox.cancel": "Отмена", - "bootbox.confirm": "Подтвердить" + "bootbox.confirm": "Подтвердить", + "cover.dragging_title": "Cover Photo Positioning", + "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"", + "cover.saved": "Cover photo image and position saved" } \ No newline at end of file diff --git a/public/language/rw/modules.json b/public/language/rw/modules.json index c502325b1f..2990e472a1 100644 --- a/public/language/rw/modules.json +++ b/public/language/rw/modules.json @@ -26,5 +26,8 @@ "composer.uploading": "Uploading %1", "bootbox.ok": "OK", "bootbox.cancel": "Cancel", - "bootbox.confirm": "Confirm" + "bootbox.confirm": "Confirm", + "cover.dragging_title": "Cover Photo Positioning", + "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"", + "cover.saved": "Cover photo image and position saved" } \ No newline at end of file diff --git a/public/language/sc/modules.json b/public/language/sc/modules.json index 391fdad811..401825cafc 100644 --- a/public/language/sc/modules.json +++ b/public/language/sc/modules.json @@ -26,5 +26,8 @@ "composer.uploading": "Uploading %1", "bootbox.ok": "OK", "bootbox.cancel": "Cancel", - "bootbox.confirm": "Confirm" + "bootbox.confirm": "Confirm", + "cover.dragging_title": "Cover Photo Positioning", + "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"", + "cover.saved": "Cover photo image and position saved" } \ No newline at end of file diff --git a/public/language/sk/modules.json b/public/language/sk/modules.json index f88f61bbf5..655385ee82 100644 --- a/public/language/sk/modules.json +++ b/public/language/sk/modules.json @@ -26,5 +26,8 @@ "composer.uploading": "Uploading %1", "bootbox.ok": "OK", "bootbox.cancel": "Cancel", - "bootbox.confirm": "Confirm" + "bootbox.confirm": "Confirm", + "cover.dragging_title": "Cover Photo Positioning", + "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"", + "cover.saved": "Cover photo image and position saved" } \ No newline at end of file diff --git a/public/language/sl/modules.json b/public/language/sl/modules.json index a98131711a..ab7048bbfa 100644 --- a/public/language/sl/modules.json +++ b/public/language/sl/modules.json @@ -26,5 +26,8 @@ "composer.uploading": "Uploading %1", "bootbox.ok": "Vredu", "bootbox.cancel": "Prekliči", - "bootbox.confirm": "Potrdi" + "bootbox.confirm": "Potrdi", + "cover.dragging_title": "Cover Photo Positioning", + "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"", + "cover.saved": "Cover photo image and position saved" } \ No newline at end of file diff --git a/public/language/sr/modules.json b/public/language/sr/modules.json index b3dc55b245..e1410e6399 100644 --- a/public/language/sr/modules.json +++ b/public/language/sr/modules.json @@ -26,5 +26,8 @@ "composer.uploading": "Uploading %1", "bootbox.ok": "OK", "bootbox.cancel": "Cancel", - "bootbox.confirm": "Confirm" + "bootbox.confirm": "Confirm", + "cover.dragging_title": "Cover Photo Positioning", + "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"", + "cover.saved": "Cover photo image and position saved" } \ No newline at end of file diff --git a/public/language/sv/modules.json b/public/language/sv/modules.json index eeb6a32fb5..5df9836063 100644 --- a/public/language/sv/modules.json +++ b/public/language/sv/modules.json @@ -26,5 +26,8 @@ "composer.uploading": "Uploading %1", "bootbox.ok": "OK", "bootbox.cancel": "Cancel", - "bootbox.confirm": "Confirm" + "bootbox.confirm": "Confirm", + "cover.dragging_title": "Cover Photo Positioning", + "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"", + "cover.saved": "Cover photo image and position saved" } \ No newline at end of file diff --git a/public/language/th/modules.json b/public/language/th/modules.json index d6eb21f7a4..df389d716f 100644 --- a/public/language/th/modules.json +++ b/public/language/th/modules.json @@ -26,5 +26,8 @@ "composer.uploading": "Uploading %1", "bootbox.ok": "OK", "bootbox.cancel": "Cancel", - "bootbox.confirm": "Confirm" + "bootbox.confirm": "Confirm", + "cover.dragging_title": "Cover Photo Positioning", + "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"", + "cover.saved": "Cover photo image and position saved" } \ No newline at end of file diff --git a/public/language/tr/modules.json b/public/language/tr/modules.json index 05c8d40ebf..da7c7a156c 100644 --- a/public/language/tr/modules.json +++ b/public/language/tr/modules.json @@ -26,5 +26,8 @@ "composer.uploading": "Yükleniyor %1", "bootbox.ok": "Tamam", "bootbox.cancel": "İptal", - "bootbox.confirm": "Onayla" + "bootbox.confirm": "Onayla", + "cover.dragging_title": "Cover Photo Positioning", + "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"", + "cover.saved": "Cover photo image and position saved" } \ No newline at end of file diff --git a/public/language/vi/modules.json b/public/language/vi/modules.json index b015560386..9b1b93666d 100644 --- a/public/language/vi/modules.json +++ b/public/language/vi/modules.json @@ -26,5 +26,8 @@ "composer.uploading": "Uploading %1", "bootbox.ok": "OK", "bootbox.cancel": "Cancel", - "bootbox.confirm": "Confirm" + "bootbox.confirm": "Confirm", + "cover.dragging_title": "Cover Photo Positioning", + "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"", + "cover.saved": "Cover photo image and position saved" } \ No newline at end of file diff --git a/public/language/zh_CN/modules.json b/public/language/zh_CN/modules.json index 745e0f2b9f..839b1e3bc3 100644 --- a/public/language/zh_CN/modules.json +++ b/public/language/zh_CN/modules.json @@ -26,5 +26,8 @@ "composer.uploading": "Uploading %1", "bootbox.ok": "确认", "bootbox.cancel": "取消", - "bootbox.confirm": "确认" + "bootbox.confirm": "确认", + "cover.dragging_title": "Cover Photo Positioning", + "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"", + "cover.saved": "Cover photo image and position saved" } \ No newline at end of file diff --git a/public/language/zh_TW/modules.json b/public/language/zh_TW/modules.json index ce543360b5..a6b03030b8 100644 --- a/public/language/zh_TW/modules.json +++ b/public/language/zh_TW/modules.json @@ -26,5 +26,8 @@ "composer.uploading": "Uploading %1", "bootbox.ok": "OK", "bootbox.cancel": "Cancel", - "bootbox.confirm": "Confirm" + "bootbox.confirm": "Confirm", + "cover.dragging_title": "Cover Photo Positioning", + "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"", + "cover.saved": "Cover photo image and position saved" } \ No newline at end of file From 872e00849a6cdd93629477e2c40b964b8234b02b Mon Sep 17 00:00:00 2001 From: barisusakli Date: Wed, 11 Nov 2015 00:00:02 -0500 Subject: [PATCH 31/78] moved deleteVotes into deleteAccount --- src/user/delete.js | 85 ++++++++++++++++++++++------------------------ 1 file changed, 41 insertions(+), 44 deletions(-) diff --git a/src/user/delete.js b/src/user/delete.js index 778d270ecc..2fc444da42 100644 --- a/src/user/delete.js +++ b/src/user/delete.js @@ -22,35 +22,12 @@ module.exports = function(User) { function(next) { deleteTopics(uid, next); }, - function(next) { - deleteVotes(uid, next); - }, function(next) { User.deleteAccount(uid, next); } ], callback); }; - function deleteVotes(uid, callback) { - async.waterfall([ - function (next) { - async.parallel({ - upvotedPids: async.apply(db.getSortedSetRange, 'uid:' + uid + ':upvote', 0, -1), - downvotedPids: async.apply(db.getSortedSetRange, 'uid:' + uid + ':downvote', 0, -1) - }, next); - }, - function (pids, next) { - pids = pids.upvotedPids.concat(pids.downvotedPids).filter(function(pid, index, array) { - return pid && array.indexOf(pid) === index; - }); - - async.eachLimit(pids, 50, function(pid, next) { - favourites.unvote(pid, uid, next); - }, next); - } - ], callback); - } - function deletePosts(uid, callback) { deleteSortedSetElements('uid:' + uid + ':posts', posts.purge, callback); } @@ -66,18 +43,19 @@ module.exports = function(User) { } User.deleteAccount = function(uid, callback) { - User.getUserFields(uid, ['username', 'userslug', 'fullname', 'email'], function(err, userData) { - if (err) { - return callback(err); - } - - plugins.fireHook('static:user.delete', { - uid: uid - }, function(err) { - if (err) { - return callback(err); - } - + var userData; + async.waterfall([ + function (next) { + User.getUserFields(uid, ['username', 'userslug', 'fullname', 'email'], next); + }, + function (_userData, next) { + userData = _userData; + plugins.fireHook('static:user.delete', {uid: uid}, next); + }, + function (next) { + deleteVotes(uid, next); + }, + function (next) { async.parallel([ function(next) { db.sortedSetRemove('username:uid', userData.username, next); @@ -137,17 +115,36 @@ module.exports = function(User) { // Deprecated as of v0.7.4, remove in v1.0.0 plugins.fireHook('filter:user.delete', uid, next); } - ], function(err) { - if (err) { - return callback(err); - } - - db.deleteAll(['followers:' + uid, 'following:' + uid, 'user:' + uid], callback); - }); - }); - }); + ], next); + }, + function (results, next) { + db.deleteAll(['followers:' + uid, 'following:' + uid, 'user:' + uid], next); + } + ], callback); }; + function deleteVotes(uid, callback) { + async.waterfall([ + function (next) { + async.parallel({ + upvotedPids: async.apply(db.getSortedSetRange, 'uid:' + uid + ':upvote', 0, -1), + downvotedPids: async.apply(db.getSortedSetRange, 'uid:' + uid + ':downvote', 0, -1) + }, next); + }, + function (pids, next) { + pids = pids.upvotedPids.concat(pids.downvotedPids).filter(function(pid, index, array) { + return pid && array.indexOf(pid) === index; + }); + + async.eachLimit(pids, 50, function(pid, next) { + favourites.unvote(pid, uid, next); + }, next); + } + ], function(err) { + callback(err); + }); + } + function deleteUserIps(uid, callback) { async.waterfall([ function (next) { From dbe5b963bd9a490ff86e3ae419f2957440450b0b Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Wed, 11 Nov 2015 13:52:29 -0500 Subject: [PATCH 32/78] fixes #3863 :trollface: --- src/controllers/uploads.js | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/controllers/uploads.js b/src/controllers/uploads.js index 7d45bea675..511cfe2f8e 100644 --- a/src/controllers/uploads.js +++ b/src/controllers/uploads.js @@ -46,17 +46,17 @@ uploadsController.upload = function(req, res, filesIterator, next) { uploadsController.uploadPost = function(req, res, next) { uploadsController.upload(req, res, function(uploadedFile, next) { - file.isFileTypeAllowed(uploadedFile.path, function(err) { - if (err) { - return next(err); - } + if (uploadedFile.type.match(/image./)) { + file.isFileTypeAllowed(uploadedFile.path, function(err) { + if (err) { + return next(err); + } - if (uploadedFile.type.match(/image./)) { uploadImage(req.user.uid, uploadedFile, next); - } else { - uploadFile(req.user.uid, uploadedFile, next); - } - }); + }); + } else { + uploadFile(req.user.uid, uploadedFile, next); + } }, next); }; From 34725ec3e5df9f1523adf6fa756728cb31823304 Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Wed, 11 Nov 2015 14:20:43 -0500 Subject: [PATCH 33/78] Fixes #3852 Added meta data to user profile pages, and also added noEscape option to meta tag input. If set, validator escaping won't be run on that value. --- src/controllers/accounts/profile.js | 37 +++++++++++++++++++++++++++++ src/controllers/topics.js | 9 ++++--- src/meta/tags.js | 11 ++++++--- 3 files changed, 51 insertions(+), 6 deletions(-) diff --git a/src/controllers/accounts/profile.js b/src/controllers/accounts/profile.js index 7ecca84789..29e353b084 100644 --- a/src/controllers/accounts/profile.js +++ b/src/controllers/accounts/profile.js @@ -2,6 +2,7 @@ var nconf = require('nconf'), async = require('async'), + S = require('string'), user = require('../../user'), posts = require('../../posts'), @@ -80,6 +81,42 @@ profileController.get = function(req, res, callback) { userData.profileviews = 1; } + var plainAboutMe = S(userData.aboutme).decodeHTMLEntities().stripTags().s; + + res.locals.metaTags = [ + { + name: "title", + content: userData.fullname || userData.username + }, + { + name: "description", + content: plainAboutMe + }, + { + property: 'og:title', + content: userData.fullname || userData.username + }, + { + property: 'og:description', + content: plainAboutMe + } + ]; + + if (userData.picture) { + res.locals.metaTags.push( + { + property: 'og:image', + content: userData.picture, + noEscape: true + }, + { + property: "og:image:url", + content: userData.picture, + noEscape: true + } + ); + } + plugins.fireHook('filter:user.account', {userData: userData, uid: req.uid}, next); } ], function(err, results) { diff --git a/src/controllers/topics.js b/src/controllers/topics.js index f5fb015c15..aa3da51053 100644 --- a/src/controllers/topics.js +++ b/src/controllers/topics.js @@ -203,15 +203,18 @@ topicsController.get = function(req, res, callback) { }, { property: "og:url", - content: nconf.get('url') + '/topic/' + topicData.slug + (req.params.post_index ? ('/' + req.params.post_index) : '') + content: nconf.get('url') + '/topic/' + topicData.slug + (req.params.post_index ? ('/' + req.params.post_index) : ''), + noEscape: true }, { property: 'og:image', - content: ogImageUrl + content: ogImageUrl, + noEscape: true }, { property: "og:image:url", - content: ogImageUrl + content: ogImageUrl, + noEscape: true }, { property: "article:published_time", diff --git a/src/meta/tags.js b/src/meta/tags.js index d571038cc4..55e5bd32d2 100644 --- a/src/meta/tags.js +++ b/src/meta/tags.js @@ -32,10 +32,12 @@ module.exports = function(Meta) { content: Meta.config.keywords || '' }, { name: 'msapplication-badge', - content: 'frequency=30; polling-uri=' + nconf.get('url') + '/sitemap.xml' + content: 'frequency=30; polling-uri=' + nconf.get('url') + '/sitemap.xml', + noEscape: true }, { name: 'msapplication-square150x150logo', - content: Meta.config['brand:logo'] || '' + content: Meta.config['brand:logo'] || '', + noEscape: true }]; plugins.fireHook('filter:meta.getMetaTags', defaultTags, next); }, @@ -89,7 +91,10 @@ module.exports = function(Meta) { return tag; } - tag.content = validator.escape(tag.content); + if (!tag.noEscape) { + tag.content = validator.escape(tag.content); + } + return tag; }); From 440bd5c37c0b071cfbf30a089f6b26784bd5ac6c Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Wed, 11 Nov 2015 15:19:11 -0500 Subject: [PATCH 34/78] fixed crash on empty aboutme --- src/controllers/accounts/profile.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/controllers/accounts/profile.js b/src/controllers/accounts/profile.js index 29e353b084..278211e94e 100644 --- a/src/controllers/accounts/profile.js +++ b/src/controllers/accounts/profile.js @@ -81,7 +81,7 @@ profileController.get = function(req, res, callback) { userData.profileviews = 1; } - var plainAboutMe = S(userData.aboutme).decodeHTMLEntities().stripTags().s; + var plainAboutMe = userData.aboutme ? S(userData.aboutme).decodeHTMLEntities().stripTags().s : ''; res.locals.metaTags = [ { From 0260c5b68b2c5ea2c86e613be5972842ee17da7f Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Wed, 11 Nov 2015 15:38:34 -0500 Subject: [PATCH 35/78] updated image_spec to not have gif, but bmp --- public/language/en_GB/user.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/language/en_GB/user.json b/public/language/en_GB/user.json index 15cf8d7405..c789570359 100644 --- a/public/language/en_GB/user.json +++ b/public/language/en_GB/user.json @@ -62,7 +62,7 @@ "upload_picture": "Upload picture", "upload_a_picture": "Upload a picture", "remove_uploaded_picture" : "Remove Uploaded Picture", - "image_spec": "You may only upload PNG, JPG, or GIF files", + "image_spec": "You may only upload PNG, JPG, or BMP files", "settings": "Settings", "show_email": "Show My Email", From e35cb6d78db5cef2a2cff563058509c47ceb267d Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Wed, 11 Nov 2015 15:41:08 -0500 Subject: [PATCH 36/78] latest translations --- public/language/ar/user.json | 2 +- public/language/bg/user.json | 2 +- public/language/bn/user.json | 2 +- public/language/cs/user.json | 2 +- public/language/da/user.json | 18 +++++++++--------- public/language/de/user.json | 2 +- public/language/el/user.json | 2 +- public/language/en@pirate/user.json | 2 +- public/language/en_US/user.json | 2 +- public/language/es/search.json | 2 +- public/language/es/user.json | 2 +- public/language/et/user.json | 2 +- public/language/fa_IR/user.json | 2 +- public/language/fi/user.json | 2 +- public/language/fr/user.json | 2 +- public/language/gl/user.json | 2 +- public/language/he/user.json | 2 +- public/language/hu/user.json | 2 +- public/language/id/user.json | 2 +- public/language/it/user.json | 2 +- public/language/ja/user.json | 2 +- public/language/ko/user.json | 2 +- public/language/lt/user.json | 2 +- public/language/ms/user.json | 2 +- public/language/nb/user.json | 2 +- public/language/nl/user.json | 2 +- public/language/pl/user.json | 2 +- public/language/pt_BR/user.json | 2 +- public/language/ro/user.json | 2 +- public/language/ru/user.json | 2 +- public/language/rw/user.json | 2 +- public/language/sc/user.json | 2 +- public/language/sk/user.json | 2 +- public/language/sl/user.json | 2 +- public/language/sr/user.json | 2 +- public/language/sv/user.json | 2 +- public/language/th/user.json | 2 +- public/language/tr/user.json | 2 +- public/language/vi/user.json | 2 +- public/language/zh_CN/user.json | 2 +- public/language/zh_TW/user.json | 2 +- 41 files changed, 49 insertions(+), 49 deletions(-) diff --git a/public/language/ar/user.json b/public/language/ar/user.json index 2440385a2a..c5f21a0d78 100644 --- a/public/language/ar/user.json +++ b/public/language/ar/user.json @@ -58,7 +58,7 @@ "upload_picture": "ارفع الصورة", "upload_a_picture": "رفع صورة", "remove_uploaded_picture": "Remove Uploaded Picture", - "image_spec": "لايمكنك رفع إلا الصور ذات الصيغ PNG أو JPG أو GIF.", + "image_spec": "You may only upload PNG, JPG, or BMP files", "settings": "خيارات", "show_email": "أظهر بريدي الإلكتروني", "show_fullname": "أظهر اسمي الكامل", diff --git a/public/language/bg/user.json b/public/language/bg/user.json index ddcc7e54e9..01d20857ad 100644 --- a/public/language/bg/user.json +++ b/public/language/bg/user.json @@ -58,7 +58,7 @@ "upload_picture": "Качване на снимка", "upload_a_picture": "Качване на снимка", "remove_uploaded_picture": "Премахване на качената снимка", - "image_spec": "Можете да качвате само PNG, JPG, или GIF файлове", + "image_spec": "You may only upload PNG, JPG, or BMP files", "settings": "Настройки", "show_email": "Да се показва е-пощата ми", "show_fullname": "Да се показва цялото ми име", diff --git a/public/language/bn/user.json b/public/language/bn/user.json index 85f91b3a97..93f901f128 100644 --- a/public/language/bn/user.json +++ b/public/language/bn/user.json @@ -58,7 +58,7 @@ "upload_picture": "ছবি আপলোড করুন", "upload_a_picture": "ছবি (একটি) আপলোড করুন", "remove_uploaded_picture": "Remove Uploaded Picture", - "image_spec": "আপনি কেবলমাত্র PNG, JPG অথবা GIF ফাইল আপলোড করতে পারবেন", + "image_spec": "You may only upload PNG, JPG, or BMP files", "settings": "সেটিংস", "show_email": "আমার ইমেইল দেখাও", "show_fullname": "আমার সম্পূর্ণ নাম দেখাও", diff --git a/public/language/cs/user.json b/public/language/cs/user.json index 2866317dce..ef2e3ba003 100644 --- a/public/language/cs/user.json +++ b/public/language/cs/user.json @@ -58,7 +58,7 @@ "upload_picture": "Nahrát obrázek", "upload_a_picture": "Nahrát obrázek", "remove_uploaded_picture": "Remove Uploaded Picture", - "image_spec": "Nahrávat lze pouze soubory PNG, JPG a GIF", + "image_spec": "You may only upload PNG, JPG, or BMP files", "settings": "Nastavení", "show_email": "Zobrazovat můj email v profilu", "show_fullname": "Zobrazovat celé jméno", diff --git a/public/language/da/user.json b/public/language/da/user.json index aa2250f5fa..1eaefaf54a 100644 --- a/public/language/da/user.json +++ b/public/language/da/user.json @@ -30,16 +30,16 @@ "signature": "Signatur", "birthday": "Fødselsdag", "chat": "Chat", - "chat_with": "Chat with %1", + "chat_with": "Chat med %1", "follow": "Følg", "unfollow": "Følg ikke", "more": "Mere", "profile_update_success": "Din profil blev opdateret", "change_picture": "Skift billede", - "change_username": "Change Username", - "change_email": "Change Email", + "change_username": "Ændre brugernavn", + "change_email": "Ændre email", "edit": "Rediger", - "default_picture": "Default Icon", + "default_picture": "Standard ikon", "uploaded_picture": "Upload billede", "upload_new_picture": "Upload nyt billede", "upload_new_picture_from_url": "Upload nyt billede fra URL", @@ -54,11 +54,11 @@ "confirm_password": "Bekræft kodeord", "password": "Kodeord", "username_taken_workaround": "Det valgte brugernavn er allerede taget, så vi har ændret det en smule. Du hedder nu %1", - "password_same_as_username": "Your password is the same as your username, please select another password.", + "password_same_as_username": "Din adgangskode er det samme som dit brugernavn, vælg venligst en anden adgangskode.", "upload_picture": "Upload billede", "upload_a_picture": "Upload et billede", "remove_uploaded_picture": "Fjern uploaded billede", - "image_spec": "Du kan kun uploade PNG, JPG eller GIF billeder", + "image_spec": "You may only upload PNG, JPG, or BMP files", "settings": "Indstillinger", "show_email": "Vis min emailaddresse", "show_fullname": "Vis mit fulde navn", @@ -92,9 +92,9 @@ "grouptitle": "Vælg gruppe titlen du gerne vil fremvise", "no-group-title": "Ingen gruppe titel", "select-skin": "Vælg et skin", - "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.", + "select-homepage": "Vælg en hjemmeside", + "homepage": "Hjemmeside", + "homepage_description": "Vælg en side som forummets hjemmeside, eller 'Ingen' for at bruge standard hjemmesiden.", "custom_route": "Custom Homepage Route", "custom_route_help": "Enter a route name here, without any preceding slash (e.g. \"recent\", or \"popular\")", "sso.title": "Single Sign-on Services", diff --git a/public/language/de/user.json b/public/language/de/user.json index 0ae7801ae1..1156bdeea6 100644 --- a/public/language/de/user.json +++ b/public/language/de/user.json @@ -58,7 +58,7 @@ "upload_picture": "Bild hochladen", "upload_a_picture": "Ein Bild hochladen", "remove_uploaded_picture": "Hochgeladenes Bild entfernen", - "image_spec": "Sie dürfen nur Dateien vom Typ PNG, JPG oder GIF hochladen", + "image_spec": "You may only upload PNG, JPG, or BMP files", "settings": "Einstellungen", "show_email": "Zeige meine E-Mail Adresse an.", "show_fullname": "Zeige meinen kompletten Namen an", diff --git a/public/language/el/user.json b/public/language/el/user.json index d94895fdd4..530635982c 100644 --- a/public/language/el/user.json +++ b/public/language/el/user.json @@ -58,7 +58,7 @@ "upload_picture": "Ανέβασμα φωτογραφίας", "upload_a_picture": "Ανέβασε μια φωτογραφία", "remove_uploaded_picture": "Remove Uploaded Picture", - "image_spec": "Μπορείς να ανεβάσεις αρχεία τύπου PNG, JPG ή GIF μόνο", + "image_spec": "You may only upload PNG, JPG, or BMP files", "settings": "Επιλογές", "show_email": "Εμφάνιση του email μου", "show_fullname": "Show My Full Name", diff --git a/public/language/en@pirate/user.json b/public/language/en@pirate/user.json index 4f4841504b..95531ce7b3 100644 --- a/public/language/en@pirate/user.json +++ b/public/language/en@pirate/user.json @@ -58,7 +58,7 @@ "upload_picture": "Upload picture", "upload_a_picture": "Upload a picture", "remove_uploaded_picture": "Remove Uploaded Picture", - "image_spec": "You may only upload PNG, JPG, or GIF files", + "image_spec": "You may only upload PNG, JPG, or BMP files", "settings": "Settings", "show_email": "Show My Email", "show_fullname": "Show My Full Name", diff --git a/public/language/en_US/user.json b/public/language/en_US/user.json index 96cbd4ea14..3d59f40954 100644 --- a/public/language/en_US/user.json +++ b/public/language/en_US/user.json @@ -58,7 +58,7 @@ "upload_picture": "Upload picture", "upload_a_picture": "Upload a picture", "remove_uploaded_picture": "Remove Uploaded Picture", - "image_spec": "You may only upload PNG, JPG, or GIF files", + "image_spec": "You may only upload PNG, JPG, or BMP files", "settings": "Settings", "show_email": "Show My Email", "show_fullname": "Show My Full Name", diff --git a/public/language/es/search.json b/public/language/es/search.json index 06ace7e9a9..aa9fff4136 100644 --- a/public/language/es/search.json +++ b/public/language/es/search.json @@ -4,7 +4,7 @@ "advanced-search": "Búsqueda Avanzada", "in": "En", "titles": "Títulos", - "titles-posts": "Títulos y publicaciones", + "titles-posts": "Títulos y posts", "posted-by": "Publicado por", "in-categories": "En categorías", "search-child-categories": "Buscar categorías hijas", diff --git a/public/language/es/user.json b/public/language/es/user.json index a3c508ca0b..cf245bd3bc 100644 --- a/public/language/es/user.json +++ b/public/language/es/user.json @@ -58,7 +58,7 @@ "upload_picture": "Subir foto", "upload_a_picture": "Subir una foto", "remove_uploaded_picture": "Borrar Imagen subida", - "image_spec": "Sólo puedes subir imágenes en formato PNG, JPG o GIF.", + "image_spec": "You may only upload PNG, JPG, or BMP files", "settings": "Opciones", "show_email": "Mostrar mi correo electrónico", "show_fullname": "Mostrar mi nombre completo", diff --git a/public/language/et/user.json b/public/language/et/user.json index 50916c3513..dae31e0614 100644 --- a/public/language/et/user.json +++ b/public/language/et/user.json @@ -58,7 +58,7 @@ "upload_picture": "Laadi pilt", "upload_a_picture": "Lae pilt üles", "remove_uploaded_picture": "Eemalda üleslaetud pilt", - "image_spec": "Failid peavad olema PNG, JPG või GIF vormingus.", + "image_spec": "You may only upload PNG, JPG, or BMP files", "settings": "Seaded", "show_email": "Näita minu emaili", "show_fullname": "Näita minu täisnime", diff --git a/public/language/fa_IR/user.json b/public/language/fa_IR/user.json index 6e8715d0a6..e0249abb3c 100644 --- a/public/language/fa_IR/user.json +++ b/public/language/fa_IR/user.json @@ -58,7 +58,7 @@ "upload_picture": "بارگذاری تصویر", "upload_a_picture": "یک تصویر بارگذاری کنید", "remove_uploaded_picture": "Remove Uploaded Picture", - "image_spec": "شما تنها می‌توانید پرونده‌های PNG‏، JPG و GIF بار بگذارید.", + "image_spec": "You may only upload PNG, JPG, or BMP files", "settings": "تنظیمات", "show_email": "نمایش رایانامه‌ام", "show_fullname": "نام کامل من را نشان بده", diff --git a/public/language/fi/user.json b/public/language/fi/user.json index ac89e1a1f6..23d6279270 100644 --- a/public/language/fi/user.json +++ b/public/language/fi/user.json @@ -58,7 +58,7 @@ "upload_picture": "Lataa kuva", "upload_a_picture": "Lataa kuva", "remove_uploaded_picture": "Remove Uploaded Picture", - "image_spec": "Voit ladata vain PNG-, JPG- tai GIF-tiedostoja", + "image_spec": "You may only upload PNG, JPG, or BMP files", "settings": "Asetukset", "show_email": "Näytä sähköpostiosoitteeni", "show_fullname": "Näytä koko nimeni", diff --git a/public/language/fr/user.json b/public/language/fr/user.json index c3393c3e77..4f2eb535d9 100644 --- a/public/language/fr/user.json +++ b/public/language/fr/user.json @@ -58,7 +58,7 @@ "upload_picture": "Envoyer l'image", "upload_a_picture": "Envoyer une image", "remove_uploaded_picture": "Supprimer l'image envoyée", - "image_spec": "Vous ne pouvez envoyer que des fichiers PNG, JPG ou GIF", + "image_spec": "You may only upload PNG, JPG, or BMP files", "settings": "Paramètres", "show_email": "Afficher mon email", "show_fullname": "Afficher mon nom complet", diff --git a/public/language/gl/user.json b/public/language/gl/user.json index 2c82c76f13..f817958818 100644 --- a/public/language/gl/user.json +++ b/public/language/gl/user.json @@ -58,7 +58,7 @@ "upload_picture": "Subir foto", "upload_a_picture": "Subir unha foto", "remove_uploaded_picture": "Borrar unha foto subida", - "image_spec": "Só podes subir archivos en formato PNG, JPG ou GIF.", + "image_spec": "You may only upload PNG, JPG, or BMP files", "settings": "Opcións", "show_email": "Amosa-lo meu Email", "show_fullname": "Amosa-lo meu Nome Completo", diff --git a/public/language/he/user.json b/public/language/he/user.json index c0e51fbf68..be35b06e87 100644 --- a/public/language/he/user.json +++ b/public/language/he/user.json @@ -58,7 +58,7 @@ "upload_picture": "העלה תמונה", "upload_a_picture": "העלה תמונה", "remove_uploaded_picture": "Remove Uploaded Picture", - "image_spec": "ניתן להעלות תמונות בפורמט PNG, JPG או GIF בלבד", + "image_spec": "You may only upload PNG, JPG, or BMP files", "settings": "הגדרות", "show_email": "פרסם את כתובת האימייל שלי", "show_fullname": "הצג את שמי המלא", diff --git a/public/language/hu/user.json b/public/language/hu/user.json index 2e302dd195..957b5f070a 100644 --- a/public/language/hu/user.json +++ b/public/language/hu/user.json @@ -58,7 +58,7 @@ "upload_picture": "Kép feltöltése", "upload_a_picture": "Egy kép feltöltése", "remove_uploaded_picture": "Remove Uploaded Picture", - "image_spec": "Csak PNG, JPG vagy GIF kiterjesztésű fájlokat tölthetsz fel", + "image_spec": "You may only upload PNG, JPG, or BMP files", "settings": "Beállítások", "show_email": "E-mail címem mutatása", "show_fullname": "A teljes nevem mutatása", diff --git a/public/language/id/user.json b/public/language/id/user.json index 46762c3570..d9cb3ed1de 100644 --- a/public/language/id/user.json +++ b/public/language/id/user.json @@ -58,7 +58,7 @@ "upload_picture": "Unggah gambar/foto", "upload_a_picture": "Unggah sebuah gambar/foto", "remove_uploaded_picture": "Remove Uploaded Picture", - "image_spec": "Kamu hanya diijinkan mengunggah berkas dengan format PNG, JPG, atau GIF", + "image_spec": "You may only upload PNG, JPG, or BMP files", "settings": "Pengaturan", "show_email": "Tampilkan Email Saya", "show_fullname": "Tampilkan Nama Lengkap Saya", diff --git a/public/language/it/user.json b/public/language/it/user.json index c0c8933f96..9bd3466159 100644 --- a/public/language/it/user.json +++ b/public/language/it/user.json @@ -58,7 +58,7 @@ "upload_picture": "Carica foto", "upload_a_picture": "Carica una foto", "remove_uploaded_picture": "Elimina foto caricata", - "image_spec": "Puoi caricare solo file PNG, JPG o GIF", + "image_spec": "You may only upload PNG, JPG, or BMP files", "settings": "Impostazioni", "show_email": "Mostra la mia Email", "show_fullname": "Vedi il Mio Nome Completo", diff --git a/public/language/ja/user.json b/public/language/ja/user.json index 4dc2ef0327..dacec887db 100644 --- a/public/language/ja/user.json +++ b/public/language/ja/user.json @@ -58,7 +58,7 @@ "upload_picture": "画像をアップロード", "upload_a_picture": "画像をアップロード", "remove_uploaded_picture": "Remove Uploaded Picture", - "image_spec": "PNG、JPGかGIFフォーマットの画像をアップロードしてください。", + "image_spec": "You may only upload PNG, JPG, or BMP files", "settings": "設定", "show_email": "メールアドレスを表示", "show_fullname": "Show My Full Name", diff --git a/public/language/ko/user.json b/public/language/ko/user.json index ff571913d9..f8de5f2bbe 100644 --- a/public/language/ko/user.json +++ b/public/language/ko/user.json @@ -58,7 +58,7 @@ "upload_picture": "사진 업로드", "upload_a_picture": "사진 업로드", "remove_uploaded_picture": "Remove Uploaded Picture", - "image_spec": "PNG, JPG, GIF 파일만 업로드할 수 있습니다.", + "image_spec": "You may only upload PNG, JPG, or BMP files", "settings": "설정", "show_email": "이메일 공개", "show_fullname": "실명 공개", diff --git a/public/language/lt/user.json b/public/language/lt/user.json index eee369f195..e2de08e23a 100644 --- a/public/language/lt/user.json +++ b/public/language/lt/user.json @@ -58,7 +58,7 @@ "upload_picture": "Įkelti paveikslėlį", "upload_a_picture": "Įkelti paveikslėlį", "remove_uploaded_picture": "Remove Uploaded Picture", - "image_spec": "Galite įkelti tik PNG, JPG arba GIF failus", + "image_spec": "You may only upload PNG, JPG, or BMP files", "settings": "Nustatymai", "show_email": "Rodyti mano el. paštą viešai", "show_fullname": "Rodyti mano vardą ir pavardę", diff --git a/public/language/ms/user.json b/public/language/ms/user.json index fba7fabbd5..f073c8a168 100644 --- a/public/language/ms/user.json +++ b/public/language/ms/user.json @@ -58,7 +58,7 @@ "upload_picture": "Muatnaik gambar", "upload_a_picture": "Muatnaik sekeping gambar", "remove_uploaded_picture": "Buang Gambar Yang Dimuatnaik", - "image_spec": "Anda hanya boleh memuatnaikkan fail PNG, JPG atau GIF", + "image_spec": "You may only upload PNG, JPG, or BMP files", "settings": "Tetapan", "show_email": "Tunjukkan emel saya", "show_fullname": "Tunjukkan Nama Penuh", diff --git a/public/language/nb/user.json b/public/language/nb/user.json index 139c1bb6de..ed408e51c3 100644 --- a/public/language/nb/user.json +++ b/public/language/nb/user.json @@ -58,7 +58,7 @@ "upload_picture": "Last opp bilde", "upload_a_picture": "Last opp et bilde", "remove_uploaded_picture": "Fjern Opplastet Bilde", - "image_spec": "Du kan bare laste opp PNG, JPG eller GIF-filer", + "image_spec": "You may only upload PNG, JPG, or BMP files", "settings": "Innstillinger", "show_email": "Vis min e-post", "show_fullname": "Vis mitt fulle navn", diff --git a/public/language/nl/user.json b/public/language/nl/user.json index 95e6a74b89..f7c799b384 100644 --- a/public/language/nl/user.json +++ b/public/language/nl/user.json @@ -58,7 +58,7 @@ "upload_picture": "Upload afbeelding", "upload_a_picture": "Upload een afbeelding", "remove_uploaded_picture": "Verwijder gëuploade foto", - "image_spec": "Alleen afbeeldingsbestanden van het type PNG, JPG/JPEG, of GIF worden ondersteund.", + "image_spec": "You may only upload PNG, JPG, or BMP files", "settings": "Instellingen", "show_email": "Inschakelen weergave van e-mailadres op profielpagina", "show_fullname": "Laat mijn volledige naam zien", diff --git a/public/language/pl/user.json b/public/language/pl/user.json index 779e1aa2a5..5e4802a3b1 100644 --- a/public/language/pl/user.json +++ b/public/language/pl/user.json @@ -58,7 +58,7 @@ "upload_picture": "Prześlij zdjęcie", "upload_a_picture": "Prześlij zdjęcie", "remove_uploaded_picture": "Usuń Przesłane Zdjęcie", - "image_spec": "Możesz przesłać tylko pliki PNG, JPG lub GIF.", + "image_spec": "You may only upload PNG, JPG, or BMP files", "settings": "Ustawienia", "show_email": "Wyświetlaj mój adres e-mail", "show_fullname": "Wyświetlaj moją pełną nazwę", diff --git a/public/language/pt_BR/user.json b/public/language/pt_BR/user.json index 643df3ee7c..b282e24bfb 100644 --- a/public/language/pt_BR/user.json +++ b/public/language/pt_BR/user.json @@ -58,7 +58,7 @@ "upload_picture": "Carregar Foto", "upload_a_picture": "Carregue uma Foto", "remove_uploaded_picture": "Remover Foto Enviada", - "image_spec": "Você pode usar somente arquivos PNG, JPG ou GIF", + "image_spec": "You may only upload PNG, JPG, or BMP files", "settings": "Configurações", "show_email": "Mostrar Meu Email", "show_fullname": "Mostrar Meu Nome Completo", diff --git a/public/language/ro/user.json b/public/language/ro/user.json index 587eb27570..1c2c0dc235 100644 --- a/public/language/ro/user.json +++ b/public/language/ro/user.json @@ -58,7 +58,7 @@ "upload_picture": "Uploadează poză", "upload_a_picture": "Uploadează o poză", "remove_uploaded_picture": "Remove Uploaded Picture", - "image_spec": "Ai voie să uploadezi doar fișiere PNG, JPG sau GIF", + "image_spec": "You may only upload PNG, JPG, or BMP files", "settings": "Setări", "show_email": "Arată adresa mea de email", "show_fullname": "Show My Full Name", diff --git a/public/language/ru/user.json b/public/language/ru/user.json index 998520d30f..83a614e156 100644 --- a/public/language/ru/user.json +++ b/public/language/ru/user.json @@ -58,7 +58,7 @@ "upload_picture": "Загрузить фотографию", "upload_a_picture": "Загрузить фотографию", "remove_uploaded_picture": "Удалить загруженные фотографии", - "image_spec": "Поддерживаются только PNG, JPG или GIF файлы", + "image_spec": "You may only upload PNG, JPG, or BMP files", "settings": "Настройки", "show_email": "Показывать мой Email", "show_fullname": "Показывать Полное Имя", diff --git a/public/language/rw/user.json b/public/language/rw/user.json index db6db6ba1c..6ec759ab7d 100644 --- a/public/language/rw/user.json +++ b/public/language/rw/user.json @@ -58,7 +58,7 @@ "upload_picture": "Gushyiraho ifoto", "upload_a_picture": "Shyiraho ifoto", "remove_uploaded_picture": "Remove Uploaded Picture", - "image_spec": "Wemerewe gushyiraho ifoto iri muri foruma ya PNG, JPG, cyangwa GIF ", + "image_spec": "You may only upload PNG, JPG, or BMP files", "settings": "Itunganya", "show_email": "Hagaragazwe Email Yanjye", "show_fullname": "Hagaragazwe Izina Ryuzuye Ryanjye", diff --git a/public/language/sc/user.json b/public/language/sc/user.json index 4fedaf0f10..a9ffcb66e0 100644 --- a/public/language/sc/user.json +++ b/public/language/sc/user.json @@ -58,7 +58,7 @@ "upload_picture": "Càrriga immàgine", "upload_a_picture": "Càrriga un'immàgine", "remove_uploaded_picture": "Remove Uploaded Picture", - "image_spec": "Podes carrigare isceti files PNG, JPG o GIF", + "image_spec": "You may only upload PNG, JPG, or BMP files", "settings": "Sèberos", "show_email": "Ammustra s'Email Mia", "show_fullname": "Show My Full Name", diff --git a/public/language/sk/user.json b/public/language/sk/user.json index 3682b618ad..50d1ee152f 100644 --- a/public/language/sk/user.json +++ b/public/language/sk/user.json @@ -58,7 +58,7 @@ "upload_picture": "Nahrať obrázok", "upload_a_picture": "Nahrať obrázok", "remove_uploaded_picture": "Remove Uploaded Picture", - "image_spec": "Môžeš pridať len obrázky typu PNG, JPG alebo GIF", + "image_spec": "You may only upload PNG, JPG, or BMP files", "settings": "Nastavenia", "show_email": "Zobrazovať môj email v profile", "show_fullname": "Show My Full Name", diff --git a/public/language/sl/user.json b/public/language/sl/user.json index 5164354e1c..f25c54c9aa 100644 --- a/public/language/sl/user.json +++ b/public/language/sl/user.json @@ -58,7 +58,7 @@ "upload_picture": "Naloži fotografijo", "upload_a_picture": "Naloži fotografijo", "remove_uploaded_picture": "Remove Uploaded Picture", - "image_spec": "Lahko naložiš fotografije formata PNG, JPG ali GIF.", + "image_spec": "You may only upload PNG, JPG, or BMP files", "settings": "Nastavitve.", "show_email": "Pokaži moj e-poštni naslov.", "show_fullname": "Pokaži moj ime in priimek.", diff --git a/public/language/sr/user.json b/public/language/sr/user.json index cf48284b19..cc69327a27 100644 --- a/public/language/sr/user.json +++ b/public/language/sr/user.json @@ -58,7 +58,7 @@ "upload_picture": "Upload picture", "upload_a_picture": "Upload a picture", "remove_uploaded_picture": "Remove Uploaded Picture", - "image_spec": "You may only upload PNG, JPG, or GIF files", + "image_spec": "You may only upload PNG, JPG, or BMP files", "settings": "Подешавања", "show_email": "Прикажи моју лозинку", "show_fullname": "Прикажи моје пуно име", diff --git a/public/language/sv/user.json b/public/language/sv/user.json index 8b99037cbd..8646ffbd78 100644 --- a/public/language/sv/user.json +++ b/public/language/sv/user.json @@ -58,7 +58,7 @@ "upload_picture": "Ladda upp bild", "upload_a_picture": "Ladda upp en bild", "remove_uploaded_picture": "Ta bort uppladdad bild", - "image_spec": "Du får bara ladda upp PNG, JPG eller GIF-filer", + "image_spec": "You may only upload PNG, JPG, or BMP files", "settings": "Inställningar", "show_email": "Visa min epost", "show_fullname": "Visa Fullständigt Namn", diff --git a/public/language/th/user.json b/public/language/th/user.json index 51fe75806e..6d009aeab5 100644 --- a/public/language/th/user.json +++ b/public/language/th/user.json @@ -58,7 +58,7 @@ "upload_picture": "อัปโหลดรูป", "upload_a_picture": "อัปโหลดรูป", "remove_uploaded_picture": "Remove Uploaded Picture", - "image_spec": "คุณสามารถอัปโหลด PNG, JPG หรือ GIF ไฟล์เท่านั้น", + "image_spec": "You may only upload PNG, JPG, or BMP files", "settings": "ตั้งค่า", "show_email": "แสดงอีเมล์", "show_fullname": "แสดงชื่อจริง", diff --git a/public/language/tr/user.json b/public/language/tr/user.json index 9cc4e77220..861dfb90b5 100644 --- a/public/language/tr/user.json +++ b/public/language/tr/user.json @@ -58,7 +58,7 @@ "upload_picture": "Resim Yükle", "upload_a_picture": "Bir Resim Yükle", "remove_uploaded_picture": "Yüklenmiş fotoğrafı kaldır", - "image_spec": "Sadece PNG, JPG veya GIF dosyaları yükleyebilirsiniz", + "image_spec": "You may only upload PNG, JPG, or BMP files", "settings": "Ayarlar", "show_email": "E-postamı göster", "show_fullname": "Tam ismimi göster", diff --git a/public/language/vi/user.json b/public/language/vi/user.json index 9c257683b2..f3c4b7af34 100644 --- a/public/language/vi/user.json +++ b/public/language/vi/user.json @@ -58,7 +58,7 @@ "upload_picture": "Tải lên hình ảnh", "upload_a_picture": "Tải lên một hình ảnh", "remove_uploaded_picture": "Remove Uploaded Picture", - "image_spec": "Bạn chỉ có thể tải lên được các file PNG, JPG hoặc GIF", + "image_spec": "You may only upload PNG, JPG, or BMP files", "settings": "Thiết lập", "show_email": "Hiện Email của tôi", "show_fullname": "Hiện tên đầy đủ", diff --git a/public/language/zh_CN/user.json b/public/language/zh_CN/user.json index ee038e9da6..93614b3486 100644 --- a/public/language/zh_CN/user.json +++ b/public/language/zh_CN/user.json @@ -58,7 +58,7 @@ "upload_picture": "上传头像", "upload_a_picture": "上传头像", "remove_uploaded_picture": "删除已上传的头像", - "image_spec": "您只能上传 PNG, JPG 或者 GIF 图片文件", + "image_spec": "You may only upload PNG, JPG, or BMP files", "settings": "设置", "show_email": "显示我的电子邮箱", "show_fullname": "显示我的全名", diff --git a/public/language/zh_TW/user.json b/public/language/zh_TW/user.json index 457dd493f1..b31915819b 100644 --- a/public/language/zh_TW/user.json +++ b/public/language/zh_TW/user.json @@ -58,7 +58,7 @@ "upload_picture": "上傳頭像", "upload_a_picture": "上傳一張照片", "remove_uploaded_picture": "Remove Uploaded Picture", - "image_spec": "支援的圖檔格式包含 PNG, JPG, 或是 GIF", + "image_spec": "You may only upload PNG, JPG, or BMP files", "settings": "設定", "show_email": "顯示我的郵箱", "show_fullname": "顯示我的全名", From b02fd102cbf115ce08af601d51bfe88bd15c5bd6 Mon Sep 17 00:00:00 2001 From: barisusakli Date: Wed, 11 Nov 2015 20:28:42 -0500 Subject: [PATCH 37/78] update async uglify --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index e3d766a9bb..683a1dd4e1 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,7 @@ "test": "mocha ./tests -t 10000" }, "dependencies": { - "async": "~1.4.2", + "async": "~1.5.0", "bcryptjs": "~2.3.0", "body-parser": "^1.9.0", "colors": "^1.1.0", @@ -70,7 +70,7 @@ "string": "^3.0.0", "templates.js": "0.3.0", "toobusy-js": "^0.4.2", - "uglify-js": "^2.4.24", + "uglify-js": "^2.5.0", "underscore": "~1.8.3", "underscore.deep": "^0.5.1", "validator": "^4.0.5", From 13c7fc0e7ffdcef715fa97188adb41926f25b26a Mon Sep 17 00:00:00 2001 From: barisusakli Date: Wed, 11 Nov 2015 20:32:24 -0500 Subject: [PATCH 38/78] update winston --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 683a1dd4e1..bdd90daeac 100644 --- a/package.json +++ b/package.json @@ -74,7 +74,7 @@ "underscore": "~1.8.3", "underscore.deep": "^0.5.1", "validator": "^4.0.5", - "winston": "^1.0.1", + "winston": "^2.1.0", "xregexp": "~3.0.0" }, "devDependencies": { From a6b561d8c03fb646061026971b57577dced3daa1 Mon Sep 17 00:00:00 2001 From: barisusakli Date: Wed, 11 Nov 2015 20:53:22 -0500 Subject: [PATCH 39/78] removed gravatar from package.json --- package.json | 1 - 1 file changed, 1 deletion(-) diff --git a/package.json b/package.json index bdd90daeac..6306febe4d 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,6 @@ "daemon": "~1.1.0", "express": "^4.9.5", "express-session": "^1.8.2", - "gravatar": "^1.1.0", "heapdump": "^0.3.0", "html-to-text": "1.3.2", "jimp": "0.2.17", From 20c841128722b66c8daa17b08641598cf0e98a5e Mon Sep 17 00:00:00 2001 From: barisusakli Date: Thu, 12 Nov 2015 14:14:27 -0500 Subject: [PATCH 40/78] closes #3767 closes #3774 --- public/src/client/category.js | 10 ++++------ public/src/modules/navigator.js | 9 ++++++--- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/public/src/client/category.js b/public/src/client/category.js index d213663aa8..34ecb73fec 100644 --- a/public/src/client/category.js +++ b/public/src/client/category.js @@ -104,7 +104,9 @@ define('forum/category', [ var bookmarkIndex = localStorage.getItem('category:' + cid + ':bookmark'); var clickedIndex = localStorage.getItem('category:' + cid + ':bookmark:clicked'); - if (!bookmarkIndex) { + bookmarkIndex = Math.max(0, parseInt(bookmarkIndex, 10) || 0); + clickedIndex = Math.max(0, parseInt(clickedIndex, 10) || 0); + if (!parseInt(bookmarkIndex, 10)) { return; } @@ -123,13 +125,9 @@ define('forum/category', [ return; } - if (bookmarkIndex < 0) { - bookmarkIndex = 0; - } - $('[component="category"]').empty(); - loadTopicsAfter(bookmarkIndex - 1, 1, function() { + loadTopicsAfter(Math.max(0, bookmarkIndex - 1), 1, function() { Category.scrollToTopic(bookmarkIndex, clickedIndex, 0); }); } diff --git a/public/src/modules/navigator.js b/public/src/modules/navigator.js index d635eae181..33d3599228 100644 --- a/public/src/modules/navigator.js +++ b/public/src/modules/navigator.js @@ -95,11 +95,14 @@ define('navigator', ['forum/pagination', 'components'], function(pagination, com navigator.update = function() { toggle(!!count); - var middleOfViewport = $(window).scrollTop() + $(window).height() / 2; + var els = $(navigator.selector); + if (els.length) { + index = parseInt(els.first().attr('data-index'), 10) + 1; + } - index = parseInt($(navigator.selector).first().attr('data-index'), 10) + 1; + var middleOfViewport = $(window).scrollTop() + $(window).height() / 2; var previousDistance = Number.MAX_VALUE; - $(navigator.selector).each(function() { + els.each(function() { var distanceToMiddle = Math.abs(middleOfViewport - $(this).offset().top); if (distanceToMiddle > previousDistance) { From 23e57a800112d76d3a2bf5b95476db1758d8dc98 Mon Sep 17 00:00:00 2001 From: barisusakli Date: Thu, 12 Nov 2015 14:17:04 -0500 Subject: [PATCH 41/78] closes #3861 --- src/views/admin/settings/group.tpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/views/admin/settings/group.tpl b/src/views/admin/settings/group.tpl index 17cefdf00e..13b5121b24 100644 --- a/src/views/admin/settings/group.tpl +++ b/src/views/admin/settings/group.tpl @@ -6,7 +6,7 @@
From 78307c48a6f95cb7d192395b0210ddc440be8bfa Mon Sep 17 00:00:00 2001 From: barisusakli Date: Thu, 12 Nov 2015 14:18:33 -0500 Subject: [PATCH 42/78] up uglify js --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 6306febe4d..d5c87417d1 100644 --- a/package.json +++ b/package.json @@ -69,7 +69,7 @@ "string": "^3.0.0", "templates.js": "0.3.0", "toobusy-js": "^0.4.2", - "uglify-js": "^2.5.0", + "uglify-js": "^2.6.0", "underscore": "~1.8.3", "underscore.deep": "^0.5.1", "validator": "^4.0.5", From 8514b6e1755e20e0d56510fb1e4da519b18821a3 Mon Sep 17 00:00:00 2001 From: barisusakli Date: Thu, 12 Nov 2015 21:25:50 -0500 Subject: [PATCH 43/78] up t.js --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index d5c87417d1..f19e4fdedc 100644 --- a/package.json +++ b/package.json @@ -67,7 +67,7 @@ "socket.io-redis": "^0.1.3", "socketio-wildcard": "~0.1.1", "string": "^3.0.0", - "templates.js": "0.3.0", + "templates.js": "0.3.1", "toobusy-js": "^0.4.2", "uglify-js": "^2.6.0", "underscore": "~1.8.3", From 65396000d210d1afd41391c7d5035f44e600721d Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Fri, 13 Nov 2015 16:22:27 -0500 Subject: [PATCH 44/78] Updated modal to not be .confirm() but .dialog() Also updated composer code to actually send a link back to the other topic... Closes #3693 --- public/language/en_GB/topic.json | 6 +++- public/src/client/topic/postTools.js | 46 ++++++++++++++++++++++------ 2 files changed, 41 insertions(+), 11 deletions(-) diff --git a/public/language/en_GB/topic.json b/public/language/en_GB/topic.json index c26d0c05f8..dcc651fc24 100644 --- a/public/language/en_GB/topic.json +++ b/public/language/en_GB/topic.json @@ -116,7 +116,11 @@ "most_votes": "Most votes", "most_posts": "Most posts", - "stale_topic_warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.title": "Create new topic instead?", + "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.create": "Create a new topic", + "stale.reply_anyway": "Reply to this topic anyway", + "stale.link_back": "Re: [%1](%2)\n\n", "spam": "Spam", "offensive": "Offensive", diff --git a/public/src/client/topic/postTools.js b/public/src/client/topic/postTools.js index 0232932d6e..c07cb2417c 100644 --- a/public/src/client/topic/postTools.js +++ b/public/src/client/topic/postTools.js @@ -408,18 +408,44 @@ define('forum/topic/postTools', ['share', 'navigator', 'components', 'translator function showStaleWarning(callback) { if (ajaxify.data.lastposttime < (Date.now() - (1000*60*60*24*config.topicStaleDays))) { - translator.translate('[[topic:stale_topic_warning]]', function(translated) { - bootbox.confirm(translated, function(create) { - if (create) { - $(window).trigger('action:composer.topic.new', { - cid: ajaxify.data.cid - }); + translator.translate('[[topic:stale.warning]]', function(translated) { + var warning = bootbox.dialog({ + title: '[[topic:stale.title]]', + message: translated, + buttons: { + reply: { + label: '[[topic:stale.reply_anyway]]', + className: 'btn-link', + callback: function() { + callback(false); + } + }, + create: { + label: '[[topic:stale.create]]', + className: 'btn-primary', + callback: function() { + translator.translate('[[topic:stale.link_back, ' + ajaxify.data.title + ', ' + config.relative_path + '/topic/' + ajaxify.data.slug + ']]', function(body) { + $(window).trigger('action:composer.topic.new', { + cid: ajaxify.data.cid, + body: body + }); + }); + } + } + } + }); - } - - callback(create); - }); + warning.modal(); }); + // bootbox.confirm(translated, function(create) { + // if (create) { + + + // } + + // callback(create); + // }); + // }); } else { callback(false); } From c2963a7ca94fb66cfa3d004864d195d8b8f5a4c1 Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Fri, 13 Nov 2015 16:25:20 -0500 Subject: [PATCH 45/78] Composer minver, #3693 --- package.json | 2 +- public/src/client/topic/postTools.js | 9 --------- 2 files changed, 1 insertion(+), 10 deletions(-) diff --git a/package.json b/package.json index f19e4fdedc..767454d4be 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,7 @@ "mkdirp": "~0.5.0", "morgan": "^1.3.2", "nconf": "~0.8.2", - "nodebb-plugin-composer-default": "1.0.21", + "nodebb-plugin-composer-default": "1.0.22", "nodebb-plugin-dbsearch": "0.2.17", "nodebb-plugin-emoji-extended": "0.4.16", "nodebb-plugin-markdown": "4.0.8", diff --git a/public/src/client/topic/postTools.js b/public/src/client/topic/postTools.js index c07cb2417c..0d36139403 100644 --- a/public/src/client/topic/postTools.js +++ b/public/src/client/topic/postTools.js @@ -437,15 +437,6 @@ define('forum/topic/postTools', ['share', 'navigator', 'components', 'translator warning.modal(); }); - // bootbox.confirm(translated, function(create) { - // if (create) { - - - // } - - // callback(create); - // }); - // }); } else { callback(false); } From 053f450f691a64d06f776e4697a870f109cb3917 Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Fri, 13 Nov 2015 16:26:59 -0500 Subject: [PATCH 46/78] upped composer minver again, #3693 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 767454d4be..cf138da3cc 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,7 @@ "mkdirp": "~0.5.0", "morgan": "^1.3.2", "nconf": "~0.8.2", - "nodebb-plugin-composer-default": "1.0.22", + "nodebb-plugin-composer-default": "1.0.23", "nodebb-plugin-dbsearch": "0.2.17", "nodebb-plugin-emoji-extended": "0.4.16", "nodebb-plugin-markdown": "4.0.8", From 5cdcf0f642284f7ead5377e63e4830666570fab4 Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Fri, 13 Nov 2015 16:30:10 -0500 Subject: [PATCH 47/78] updating composer minver again because I am dumb, #3693 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index cf138da3cc..a9d3dfb98c 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,7 @@ "mkdirp": "~0.5.0", "morgan": "^1.3.2", "nconf": "~0.8.2", - "nodebb-plugin-composer-default": "1.0.23", + "nodebb-plugin-composer-default": "1.0.24", "nodebb-plugin-dbsearch": "0.2.17", "nodebb-plugin-emoji-extended": "0.4.16", "nodebb-plugin-markdown": "4.0.8", From fcd13e48f5ee655ba9649f31ca0d897a131bc2d7 Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Fri, 13 Nov 2015 16:42:30 -0500 Subject: [PATCH 48/78] spam-be-gone minver --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index a9d3dfb98c..97f52bb396 100644 --- a/package.json +++ b/package.json @@ -45,7 +45,7 @@ "nodebb-plugin-markdown": "4.0.8", "nodebb-plugin-mentions": "1.0.10", "nodebb-plugin-soundpack-default": "0.1.5", - "nodebb-plugin-spam-be-gone": "0.4.2", + "nodebb-plugin-spam-be-gone": "0.4.3", "nodebb-rewards-essentials": "0.0.6", "nodebb-theme-lavender": "3.0.0", "nodebb-theme-persona": "4.0.36", From 6ad715f948230a0e59c0d9791225ae5fbf0dd0e6 Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Fri, 13 Nov 2015 16:58:22 -0500 Subject: [PATCH 49/78] fallbacks for nodebb.topic --- public/language/ar/topic.json | 6 +++++- public/language/bg/topic.json | 6 +++++- public/language/bn/topic.json | 6 +++++- public/language/cs/topic.json | 6 +++++- public/language/da/topic.json | 10 +++++++--- public/language/de/topic.json | 6 +++++- public/language/el/topic.json | 6 +++++- public/language/en@pirate/topic.json | 6 +++++- public/language/en_US/topic.json | 6 +++++- public/language/es/topic.json | 6 +++++- public/language/et/topic.json | 6 +++++- public/language/fa_IR/topic.json | 6 +++++- public/language/fi/topic.json | 6 +++++- public/language/fr/topic.json | 6 +++++- public/language/gl/topic.json | 6 +++++- public/language/he/topic.json | 6 +++++- public/language/hu/topic.json | 6 +++++- public/language/id/topic.json | 6 +++++- public/language/it/topic.json | 6 +++++- public/language/ja/topic.json | 6 +++++- public/language/ko/topic.json | 6 +++++- public/language/lt/topic.json | 6 +++++- public/language/ms/topic.json | 6 +++++- public/language/nb/topic.json | 6 +++++- public/language/nl/topic.json | 10 +++++++--- public/language/pl/topic.json | 6 +++++- public/language/pt_BR/topic.json | 6 +++++- public/language/ro/topic.json | 6 +++++- public/language/ru/topic.json | 6 +++++- public/language/rw/topic.json | 6 +++++- public/language/sc/topic.json | 6 +++++- public/language/sk/topic.json | 6 +++++- public/language/sl/topic.json | 6 +++++- public/language/sr/topic.json | 6 +++++- public/language/sv/topic.json | 6 +++++- public/language/th/topic.json | 6 +++++- public/language/tr/topic.json | 12 ++++++++---- public/language/vi/topic.json | 6 +++++- public/language/zh_CN/topic.json | 6 +++++- public/language/zh_TW/topic.json | 6 +++++- 40 files changed, 207 insertions(+), 47 deletions(-) diff --git a/public/language/ar/topic.json b/public/language/ar/topic.json index b05a0f631f..9b4286ae11 100644 --- a/public/language/ar/topic.json +++ b/public/language/ar/topic.json @@ -96,7 +96,11 @@ "newest_to_oldest": "من الأحدث إلى الأقدم", "most_votes": "الأكثر تصويتًا", "most_posts": "اﻷكثر رداً", - "stale_topic_warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.title": "Create new topic instead?", + "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.create": "Create a new topic", + "stale.reply_anyway": "Reply to this topic anyway", + "stale.link_back": "Re: [%1](%2)", "spam": "Spam", "offensive": "Offensive", "custom-flag-reason": "Enter a flagging reason" diff --git a/public/language/bg/topic.json b/public/language/bg/topic.json index 785c8415b5..31ab34be70 100644 --- a/public/language/bg/topic.json +++ b/public/language/bg/topic.json @@ -96,7 +96,11 @@ "newest_to_oldest": "Първо най-новите", "most_votes": "Най-много гласове", "most_posts": "Най-много публикации", - "stale_topic_warning": "Темата, в която отговаряте, е доста стара. Искате ли вместо това да създадете нова и да направите препратка към тази в отговора си?", + "stale.title": "Create new topic instead?", + "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.create": "Create a new topic", + "stale.reply_anyway": "Reply to this topic anyway", + "stale.link_back": "Re: [%1](%2)", "spam": "Спам", "offensive": "Обидно", "custom-flag-reason": "Изберете причина за докладване" diff --git a/public/language/bn/topic.json b/public/language/bn/topic.json index 79efe5eab8..6808b0a2dd 100644 --- a/public/language/bn/topic.json +++ b/public/language/bn/topic.json @@ -96,7 +96,11 @@ "newest_to_oldest": "নতুন থেকে পুরাতন", "most_votes": "সর্বোচ্চ ভোট", "most_posts": "Most posts", - "stale_topic_warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.title": "Create new topic instead?", + "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.create": "Create a new topic", + "stale.reply_anyway": "Reply to this topic anyway", + "stale.link_back": "Re: [%1](%2)", "spam": "Spam", "offensive": "Offensive", "custom-flag-reason": "Enter a flagging reason" diff --git a/public/language/cs/topic.json b/public/language/cs/topic.json index 27915ee85f..14713c8f27 100644 --- a/public/language/cs/topic.json +++ b/public/language/cs/topic.json @@ -96,7 +96,11 @@ "newest_to_oldest": "Newest to Oldest", "most_votes": "Most votes", "most_posts": "Most posts", - "stale_topic_warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.title": "Create new topic instead?", + "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.create": "Create a new topic", + "stale.reply_anyway": "Reply to this topic anyway", + "stale.link_back": "Re: [%1](%2)", "spam": "Spam", "offensive": "Offensive", "custom-flag-reason": "Enter a flagging reason" diff --git a/public/language/da/topic.json b/public/language/da/topic.json index a90ea673d5..4824da48dc 100644 --- a/public/language/da/topic.json +++ b/public/language/da/topic.json @@ -25,7 +25,7 @@ "tools": "Værktøjer", "flag": "Marker", "locked": "Låst", - "bookmark_instructions": "Click here to return to the last unread post in this thread.", + "bookmark_instructions": "Klik her for at returnere til det seneste ulæste indlæg i denne tråd.", "flag_title": "Meld dette indlæg til moderation", "flag_success": "Dette indlæg er blevet meldt til moderation.", "deleted_message": "Denne tråd er blevet slettet. Kun brugere med emne behandlings privilegier kan se den.", @@ -96,8 +96,12 @@ "newest_to_oldest": "Nyeste til ældste", "most_votes": "Flest stemmer", "most_posts": "Flest indlæg", - "stale_topic_warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.title": "Create new topic instead?", + "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.create": "Create a new topic", + "stale.reply_anyway": "Reply to this topic anyway", + "stale.link_back": "Re: [%1](%2)", "spam": "Spam", - "offensive": "Offensive", + "offensive": "Stødende", "custom-flag-reason": "Enter a flagging reason" } \ No newline at end of file diff --git a/public/language/de/topic.json b/public/language/de/topic.json index 056d7a6737..eee6769e85 100644 --- a/public/language/de/topic.json +++ b/public/language/de/topic.json @@ -96,7 +96,11 @@ "newest_to_oldest": "Neuste zuerst", "most_votes": "Die meisten Stimmen", "most_posts": "Die meisten Beiträge", - "stale_topic_warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.title": "Create new topic instead?", + "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.create": "Create a new topic", + "stale.reply_anyway": "Reply to this topic anyway", + "stale.link_back": "Re: [%1](%2)", "spam": "Spam", "offensive": "Offensive", "custom-flag-reason": "Enter a flagging reason" diff --git a/public/language/el/topic.json b/public/language/el/topic.json index c05bdbeb98..3a86b8ac6c 100644 --- a/public/language/el/topic.json +++ b/public/language/el/topic.json @@ -96,7 +96,11 @@ "newest_to_oldest": "Νεότερο προς Παλαιότερο", "most_votes": "Περισσότερες ψήφοι", "most_posts": "Most posts", - "stale_topic_warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.title": "Create new topic instead?", + "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.create": "Create a new topic", + "stale.reply_anyway": "Reply to this topic anyway", + "stale.link_back": "Re: [%1](%2)", "spam": "Spam", "offensive": "Offensive", "custom-flag-reason": "Enter a flagging reason" diff --git a/public/language/en@pirate/topic.json b/public/language/en@pirate/topic.json index 49107da35d..d3eefbba08 100644 --- a/public/language/en@pirate/topic.json +++ b/public/language/en@pirate/topic.json @@ -96,7 +96,11 @@ "newest_to_oldest": "Newest to Oldest", "most_votes": "Most votes", "most_posts": "Most posts", - "stale_topic_warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.title": "Create new topic instead?", + "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.create": "Create a new topic", + "stale.reply_anyway": "Reply to this topic anyway", + "stale.link_back": "Re: [%1](%2)", "spam": "Spam", "offensive": "Offensive", "custom-flag-reason": "Enter a flagging reason" diff --git a/public/language/en_US/topic.json b/public/language/en_US/topic.json index 19f7e125fc..4b2ea05e59 100644 --- a/public/language/en_US/topic.json +++ b/public/language/en_US/topic.json @@ -96,7 +96,11 @@ "newest_to_oldest": "Newest to Oldest", "most_votes": "Most votes", "most_posts": "Most posts", - "stale_topic_warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.title": "Create new topic instead?", + "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.create": "Create a new topic", + "stale.reply_anyway": "Reply to this topic anyway", + "stale.link_back": "Re: [%1](%2)", "spam": "Spam", "offensive": "Offensive", "custom-flag-reason": "Enter a flagging reason" diff --git a/public/language/es/topic.json b/public/language/es/topic.json index 8144941bcb..5f3d3c6588 100644 --- a/public/language/es/topic.json +++ b/public/language/es/topic.json @@ -96,7 +96,11 @@ "newest_to_oldest": "Más nuevo a más antiguo", "most_votes": "Mayor número de votos", "most_posts": "Mayor número de mensajes", - "stale_topic_warning": "El tema no ha sido respondido desde hace bastante tiempo. ¿Quieres crear un nuevo tema en su lugar, y crear una referencia de éste en su respuesta?", + "stale.title": "Create new topic instead?", + "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.create": "Create a new topic", + "stale.reply_anyway": "Reply to this topic anyway", + "stale.link_back": "Re: [%1](%2)", "spam": "SPAM", "offensive": "Ofensivo", "custom-flag-reason": "Introduzca una razón indicatoria." diff --git a/public/language/et/topic.json b/public/language/et/topic.json index 4c70410b4d..3dbaa52ace 100644 --- a/public/language/et/topic.json +++ b/public/language/et/topic.json @@ -96,7 +96,11 @@ "newest_to_oldest": "Uuematest vanemateni", "most_votes": "Kõige rohkem hääli", "most_posts": "Kõige rohkem postitusi", - "stale_topic_warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.title": "Create new topic instead?", + "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.create": "Create a new topic", + "stale.reply_anyway": "Reply to this topic anyway", + "stale.link_back": "Re: [%1](%2)", "spam": "Spam", "offensive": "Offensive", "custom-flag-reason": "Enter a flagging reason" diff --git a/public/language/fa_IR/topic.json b/public/language/fa_IR/topic.json index ec40bfeac5..aea16ab1ab 100644 --- a/public/language/fa_IR/topic.json +++ b/public/language/fa_IR/topic.json @@ -96,7 +96,11 @@ "newest_to_oldest": "جدید‌ترین به قدیمی‌ترین", "most_votes": "بیشترین رای‌ها", "most_posts": "بیشتر دیدگاه ها", - "stale_topic_warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.title": "Create new topic instead?", + "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.create": "Create a new topic", + "stale.reply_anyway": "Reply to this topic anyway", + "stale.link_back": "Re: [%1](%2)", "spam": "Spam", "offensive": "Offensive", "custom-flag-reason": "Enter a flagging reason" diff --git a/public/language/fi/topic.json b/public/language/fi/topic.json index e282dd1775..2372f7707a 100644 --- a/public/language/fi/topic.json +++ b/public/language/fi/topic.json @@ -96,7 +96,11 @@ "newest_to_oldest": "Newest to Oldest", "most_votes": "Most votes", "most_posts": "Most posts", - "stale_topic_warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.title": "Create new topic instead?", + "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.create": "Create a new topic", + "stale.reply_anyway": "Reply to this topic anyway", + "stale.link_back": "Re: [%1](%2)", "spam": "Spam", "offensive": "Offensive", "custom-flag-reason": "Enter a flagging reason" diff --git a/public/language/fr/topic.json b/public/language/fr/topic.json index 43b69bfc66..a7c62d1de1 100644 --- a/public/language/fr/topic.json +++ b/public/language/fr/topic.json @@ -96,7 +96,11 @@ "newest_to_oldest": "Du plus récent au plus ancien", "most_votes": "Les mieux notés", "most_posts": "Nombre de messages", - "stale_topic_warning": "Le sujet auquel vous répondez est assez ancien. Ne préféreriez-vous pas créer un nouveau sujet à la place, et référencer celui-ci dans votre réponse ?", + "stale.title": "Create new topic instead?", + "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.create": "Create a new topic", + "stale.reply_anyway": "Reply to this topic anyway", + "stale.link_back": "Re: [%1](%2)", "spam": "Spam", "offensive": "Offensif", "custom-flag-reason": "Entrez une raison pour laquelle vous signalez ce message" diff --git a/public/language/gl/topic.json b/public/language/gl/topic.json index 479618b337..c6a38a4374 100644 --- a/public/language/gl/topic.json +++ b/public/language/gl/topic.json @@ -96,7 +96,11 @@ "newest_to_oldest": "Máis novo a máis antigo", "most_votes": "Maior número de votos", "most_posts": "Maior número de respostas", - "stale_topic_warning": "O tema non ten respostas dende hai bastante tempo. Queres crear un novo tema no seu canto e crear unha referencia deste na publicación?", + "stale.title": "Create new topic instead?", + "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.create": "Create a new topic", + "stale.reply_anyway": "Reply to this topic anyway", + "stale.link_back": "Re: [%1](%2)", "spam": "Spam", "offensive": "Ofensivo", "custom-flag-reason": "Describe o motivo do reporte" diff --git a/public/language/he/topic.json b/public/language/he/topic.json index 1c496da8e6..5e87dbafb0 100644 --- a/public/language/he/topic.json +++ b/public/language/he/topic.json @@ -96,7 +96,11 @@ "newest_to_oldest": "מהחדש לישן", "most_votes": "הכי הרבה הצבעות", "most_posts": "הכי הרבה פוסטים", - "stale_topic_warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.title": "Create new topic instead?", + "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.create": "Create a new topic", + "stale.reply_anyway": "Reply to this topic anyway", + "stale.link_back": "Re: [%1](%2)", "spam": "Spam", "offensive": "Offensive", "custom-flag-reason": "Enter a flagging reason" diff --git a/public/language/hu/topic.json b/public/language/hu/topic.json index 542365b1f9..2d97d66729 100644 --- a/public/language/hu/topic.json +++ b/public/language/hu/topic.json @@ -96,7 +96,11 @@ "newest_to_oldest": "Newest to Oldest", "most_votes": "Most votes", "most_posts": "Most posts", - "stale_topic_warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.title": "Create new topic instead?", + "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.create": "Create a new topic", + "stale.reply_anyway": "Reply to this topic anyway", + "stale.link_back": "Re: [%1](%2)", "spam": "Spam", "offensive": "Offensive", "custom-flag-reason": "Enter a flagging reason" diff --git a/public/language/id/topic.json b/public/language/id/topic.json index 3fd78e6eb4..c771884629 100644 --- a/public/language/id/topic.json +++ b/public/language/id/topic.json @@ -96,7 +96,11 @@ "newest_to_oldest": "Terbaru ke Terlama", "most_votes": "Vote terbanyak", "most_posts": "Postingan terbanyak", - "stale_topic_warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.title": "Create new topic instead?", + "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.create": "Create a new topic", + "stale.reply_anyway": "Reply to this topic anyway", + "stale.link_back": "Re: [%1](%2)", "spam": "Spam", "offensive": "Offensive", "custom-flag-reason": "Enter a flagging reason" diff --git a/public/language/it/topic.json b/public/language/it/topic.json index 56d6cd7047..f8d8a48d1b 100644 --- a/public/language/it/topic.json +++ b/public/language/it/topic.json @@ -96,7 +96,11 @@ "newest_to_oldest": "Da Nuovi a Vecchi", "most_votes": "Più votati", "most_posts": "Ulteriori post", - "stale_topic_warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.title": "Create new topic instead?", + "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.create": "Create a new topic", + "stale.reply_anyway": "Reply to this topic anyway", + "stale.link_back": "Re: [%1](%2)", "spam": "Spam", "offensive": "Offensive", "custom-flag-reason": "Enter a flagging reason" diff --git a/public/language/ja/topic.json b/public/language/ja/topic.json index 8b96257f6a..4e3089c294 100644 --- a/public/language/ja/topic.json +++ b/public/language/ja/topic.json @@ -96,7 +96,11 @@ "newest_to_oldest": "Newest to Oldest", "most_votes": "Most votes", "most_posts": "Most posts", - "stale_topic_warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.title": "Create new topic instead?", + "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.create": "Create a new topic", + "stale.reply_anyway": "Reply to this topic anyway", + "stale.link_back": "Re: [%1](%2)", "spam": "Spam", "offensive": "Offensive", "custom-flag-reason": "Enter a flagging reason" diff --git a/public/language/ko/topic.json b/public/language/ko/topic.json index 9b792bea19..3a0319e903 100644 --- a/public/language/ko/topic.json +++ b/public/language/ko/topic.json @@ -96,7 +96,11 @@ "newest_to_oldest": "최신 순으로 정렬", "most_votes": "추천수 순으로 정렬", "most_posts": "Most posts", - "stale_topic_warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.title": "Create new topic instead?", + "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.create": "Create a new topic", + "stale.reply_anyway": "Reply to this topic anyway", + "stale.link_back": "Re: [%1](%2)", "spam": "Spam", "offensive": "Offensive", "custom-flag-reason": "Enter a flagging reason" diff --git a/public/language/lt/topic.json b/public/language/lt/topic.json index df43294896..c5820d3815 100644 --- a/public/language/lt/topic.json +++ b/public/language/lt/topic.json @@ -96,7 +96,11 @@ "newest_to_oldest": "Nuo naujausių iki seniausių", "most_votes": "Daugiausiai balsų", "most_posts": "Daugiausia įrašų", - "stale_topic_warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.title": "Create new topic instead?", + "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.create": "Create a new topic", + "stale.reply_anyway": "Reply to this topic anyway", + "stale.link_back": "Re: [%1](%2)", "spam": "Spam", "offensive": "Offensive", "custom-flag-reason": "Enter a flagging reason" diff --git a/public/language/ms/topic.json b/public/language/ms/topic.json index d7a1ae3ed9..a432260a2b 100644 --- a/public/language/ms/topic.json +++ b/public/language/ms/topic.json @@ -96,7 +96,11 @@ "newest_to_oldest": "Baru ke Lama", "most_votes": "Terbanyak Undi", "most_posts": "Terbanyak Kiriman", - "stale_topic_warning": "Topik yang anda ingin balas sudah terlalu lama. Adakah anda mahu membuka topik baru, dan merujuk kepada topik ini?", + "stale.title": "Create new topic instead?", + "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.create": "Create a new topic", + "stale.reply_anyway": "Reply to this topic anyway", + "stale.link_back": "Re: [%1](%2)", "spam": "Spam", "offensive": "Menyinggung", "custom-flag-reason": "Nyatakan alasan anda" diff --git a/public/language/nb/topic.json b/public/language/nb/topic.json index 5b136c1bc1..70c1ac5ff4 100644 --- a/public/language/nb/topic.json +++ b/public/language/nb/topic.json @@ -96,7 +96,11 @@ "newest_to_oldest": "Nyeste til eldste", "most_votes": "Flest stemmer", "most_posts": "Flest innlegg", - "stale_topic_warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.title": "Create new topic instead?", + "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.create": "Create a new topic", + "stale.reply_anyway": "Reply to this topic anyway", + "stale.link_back": "Re: [%1](%2)", "spam": "Spam", "offensive": "Offensive", "custom-flag-reason": "Enter a flagging reason" diff --git a/public/language/nl/topic.json b/public/language/nl/topic.json index 27d60cabec..4f19d8089c 100644 --- a/public/language/nl/topic.json +++ b/public/language/nl/topic.json @@ -96,8 +96,12 @@ "newest_to_oldest": "Meest recente berichten bovenaan", "most_votes": "Meeste aantal stemmen", "most_posts": "Meeste aantal reacties", - "stale_topic_warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.title": "Create new topic instead?", + "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.create": "Create a new topic", + "stale.reply_anyway": "Reply to this topic anyway", + "stale.link_back": "Re: [%1](%2)", "spam": "Spam", - "offensive": "Offensive", - "custom-flag-reason": "Enter a flagging reason" + "offensive": "Onbeleefd", + "custom-flag-reason": "Geef een reden voor de melding." } \ No newline at end of file diff --git a/public/language/pl/topic.json b/public/language/pl/topic.json index 12136112f2..9bc4f6d051 100644 --- a/public/language/pl/topic.json +++ b/public/language/pl/topic.json @@ -96,7 +96,11 @@ "newest_to_oldest": "Najpierw najnowsze", "most_votes": "Najwięcej głosów", "most_posts": "Najwięcej postów", - "stale_topic_warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.title": "Create new topic instead?", + "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.create": "Create a new topic", + "stale.reply_anyway": "Reply to this topic anyway", + "stale.link_back": "Re: [%1](%2)", "spam": "Spam", "offensive": "Offensive", "custom-flag-reason": "Enter a flagging reason" diff --git a/public/language/pt_BR/topic.json b/public/language/pt_BR/topic.json index 62a30f1e87..3adb66b4da 100644 --- a/public/language/pt_BR/topic.json +++ b/public/language/pt_BR/topic.json @@ -96,7 +96,11 @@ "newest_to_oldest": "Mais Recente para Mais Antigo", "most_votes": "Mais votados", "most_posts": "Mais posts", - "stale_topic_warning": "O tópico que você está tentando responder é muito velho. Gostaria de criar um novo tópico ao invés disso, e referenciá-lo este em sua resposta?", + "stale.title": "Create new topic instead?", + "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.create": "Create a new topic", + "stale.reply_anyway": "Reply to this topic anyway", + "stale.link_back": "Re: [%1](%2)", "spam": "Spam", "offensive": "Ofensivo", "custom-flag-reason": "Informe um motivo para a sinalização" diff --git a/public/language/ro/topic.json b/public/language/ro/topic.json index b51b6839e5..d131c5610b 100644 --- a/public/language/ro/topic.json +++ b/public/language/ro/topic.json @@ -96,7 +96,11 @@ "newest_to_oldest": "Noi la Vechi", "most_votes": "Cele mai votate", "most_posts": "Most posts", - "stale_topic_warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.title": "Create new topic instead?", + "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.create": "Create a new topic", + "stale.reply_anyway": "Reply to this topic anyway", + "stale.link_back": "Re: [%1](%2)", "spam": "Spam", "offensive": "Offensive", "custom-flag-reason": "Enter a flagging reason" diff --git a/public/language/ru/topic.json b/public/language/ru/topic.json index c1a98da3b2..b733f7305a 100644 --- a/public/language/ru/topic.json +++ b/public/language/ru/topic.json @@ -96,7 +96,11 @@ "newest_to_oldest": "От новых к старым", "most_votes": "По голосам", "most_posts": "По количеству ответов", - "stale_topic_warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.title": "Create new topic instead?", + "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.create": "Create a new topic", + "stale.reply_anyway": "Reply to this topic anyway", + "stale.link_back": "Re: [%1](%2)", "spam": "Spam", "offensive": "Offensive", "custom-flag-reason": "Enter a flagging reason" diff --git a/public/language/rw/topic.json b/public/language/rw/topic.json index 81defcbb7b..3643a1332e 100644 --- a/public/language/rw/topic.json +++ b/public/language/rw/topic.json @@ -96,7 +96,11 @@ "newest_to_oldest": "Ibya Vuba Ujya ku bya Kera", "most_votes": "Amajwi yiganje", "most_posts": "Ibyashyizweho byiganje", - "stale_topic_warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.title": "Create new topic instead?", + "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.create": "Create a new topic", + "stale.reply_anyway": "Reply to this topic anyway", + "stale.link_back": "Re: [%1](%2)", "spam": "Spam", "offensive": "Offensive", "custom-flag-reason": "Enter a flagging reason" diff --git a/public/language/sc/topic.json b/public/language/sc/topic.json index be840735e2..bda28ac947 100644 --- a/public/language/sc/topic.json +++ b/public/language/sc/topic.json @@ -96,7 +96,11 @@ "newest_to_oldest": "Newest to Oldest", "most_votes": "Most votes", "most_posts": "Most posts", - "stale_topic_warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.title": "Create new topic instead?", + "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.create": "Create a new topic", + "stale.reply_anyway": "Reply to this topic anyway", + "stale.link_back": "Re: [%1](%2)", "spam": "Spam", "offensive": "Offensive", "custom-flag-reason": "Enter a flagging reason" diff --git a/public/language/sk/topic.json b/public/language/sk/topic.json index 9a81d85cb4..339f492c94 100644 --- a/public/language/sk/topic.json +++ b/public/language/sk/topic.json @@ -96,7 +96,11 @@ "newest_to_oldest": "Newest to Oldest", "most_votes": "Most votes", "most_posts": "Most posts", - "stale_topic_warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.title": "Create new topic instead?", + "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.create": "Create a new topic", + "stale.reply_anyway": "Reply to this topic anyway", + "stale.link_back": "Re: [%1](%2)", "spam": "Spam", "offensive": "Offensive", "custom-flag-reason": "Enter a flagging reason" diff --git a/public/language/sl/topic.json b/public/language/sl/topic.json index 251fb6206d..f2b6ea8b6a 100644 --- a/public/language/sl/topic.json +++ b/public/language/sl/topic.json @@ -96,7 +96,11 @@ "newest_to_oldest": "Od novejšega do starejšega", "most_votes": "Največ glasov", "most_posts": "Največ objav", - "stale_topic_warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.title": "Create new topic instead?", + "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.create": "Create a new topic", + "stale.reply_anyway": "Reply to this topic anyway", + "stale.link_back": "Re: [%1](%2)", "spam": "Spam", "offensive": "Offensive", "custom-flag-reason": "Enter a flagging reason" diff --git a/public/language/sr/topic.json b/public/language/sr/topic.json index 59bd1d8d5e..413f764d39 100644 --- a/public/language/sr/topic.json +++ b/public/language/sr/topic.json @@ -96,7 +96,11 @@ "newest_to_oldest": "Newest to Oldest", "most_votes": "Most votes", "most_posts": "Most posts", - "stale_topic_warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.title": "Create new topic instead?", + "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.create": "Create a new topic", + "stale.reply_anyway": "Reply to this topic anyway", + "stale.link_back": "Re: [%1](%2)", "spam": "Spam", "offensive": "Offensive", "custom-flag-reason": "Enter a flagging reason" diff --git a/public/language/sv/topic.json b/public/language/sv/topic.json index 457ae21aeb..8d644154ee 100644 --- a/public/language/sv/topic.json +++ b/public/language/sv/topic.json @@ -96,7 +96,11 @@ "newest_to_oldest": "Nyaste till äldst", "most_votes": "Mest röster", "most_posts": "Felst inlägg", - "stale_topic_warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.title": "Create new topic instead?", + "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.create": "Create a new topic", + "stale.reply_anyway": "Reply to this topic anyway", + "stale.link_back": "Re: [%1](%2)", "spam": "Spam", "offensive": "Offensive", "custom-flag-reason": "Enter a flagging reason" diff --git a/public/language/th/topic.json b/public/language/th/topic.json index 8b394ab8f1..ea1b8c1abd 100644 --- a/public/language/th/topic.json +++ b/public/language/th/topic.json @@ -96,7 +96,11 @@ "newest_to_oldest": "Newest to Oldest", "most_votes": "Most votes", "most_posts": "Most posts", - "stale_topic_warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.title": "Create new topic instead?", + "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.create": "Create a new topic", + "stale.reply_anyway": "Reply to this topic anyway", + "stale.link_back": "Re: [%1](%2)", "spam": "Spam", "offensive": "Offensive", "custom-flag-reason": "Enter a flagging reason" diff --git a/public/language/tr/topic.json b/public/language/tr/topic.json index 81fd9410a7..d8f6627461 100644 --- a/public/language/tr/topic.json +++ b/public/language/tr/topic.json @@ -25,7 +25,7 @@ "tools": "Araçlar", "flag": "Bayrak", "locked": "Kilitli", - "bookmark_instructions": "Click here to return to the last unread post in this thread.", + "bookmark_instructions": "Bu başlıkta okuduğun en son iletiye gitmek için buraya tıklayınız", "flag_title": "Bu iletiyi moderatöre haber et", "flag_success": "Bu ileti yöneticilere bildirildi.", "deleted_message": "Bu başlık silindi. Sadece başlık düzenleme yetkisi olan kullanıcılar görebilir.", @@ -96,8 +96,12 @@ "newest_to_oldest": "En yeniden en eskiye", "most_votes": "En çok oy", "most_posts": "En sık yayın", - "stale_topic_warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", - "spam": "Spam", - "offensive": "Offensive", + "stale.title": "Create new topic instead?", + "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.create": "Create a new topic", + "stale.reply_anyway": "Reply to this topic anyway", + "stale.link_back": "Re: [%1](%2)", + "spam": "Gereksiz", + "offensive": "Saldırgan", "custom-flag-reason": "Şikayetinizin nedenini girin" } \ No newline at end of file diff --git a/public/language/vi/topic.json b/public/language/vi/topic.json index a2a3faa507..e2d2933e0f 100644 --- a/public/language/vi/topic.json +++ b/public/language/vi/topic.json @@ -96,7 +96,11 @@ "newest_to_oldest": "Mới đến cũ", "most_votes": "Bình chọn nhiều nhất", "most_posts": "Có nhiều bài viết nhất", - "stale_topic_warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.title": "Create new topic instead?", + "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.create": "Create a new topic", + "stale.reply_anyway": "Reply to this topic anyway", + "stale.link_back": "Re: [%1](%2)", "spam": "Spam", "offensive": "Offensive", "custom-flag-reason": "Enter a flagging reason" diff --git a/public/language/zh_CN/topic.json b/public/language/zh_CN/topic.json index 38417d8500..f5a3f1398d 100644 --- a/public/language/zh_CN/topic.json +++ b/public/language/zh_CN/topic.json @@ -96,7 +96,11 @@ "newest_to_oldest": "从新到旧", "most_votes": "最多投票", "most_posts": "最多回复", - "stale_topic_warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.title": "Create new topic instead?", + "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.create": "Create a new topic", + "stale.reply_anyway": "Reply to this topic anyway", + "stale.link_back": "Re: [%1](%2)", "spam": "Spam", "offensive": "Offensive", "custom-flag-reason": "Enter a flagging reason" diff --git a/public/language/zh_TW/topic.json b/public/language/zh_TW/topic.json index 53907479a5..bf69262e75 100644 --- a/public/language/zh_TW/topic.json +++ b/public/language/zh_TW/topic.json @@ -96,7 +96,11 @@ "newest_to_oldest": "從新到舊", "most_votes": "得票最多", "most_posts": "最多post", - "stale_topic_warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.title": "Create new topic instead?", + "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.create": "Create a new topic", + "stale.reply_anyway": "Reply to this topic anyway", + "stale.link_back": "Re: [%1](%2)", "spam": "Spam", "offensive": "Offensive", "custom-flag-reason": "Enter a flagging reason" From c55abdd095cb73824158eae32f7a3598812fabe4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Fri, 13 Nov 2015 17:45:23 -0500 Subject: [PATCH 50/78] closes #3815 --- public/src/variables.js | 5 ++--- src/middleware/render.js | 6 ++++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/public/src/variables.js b/public/src/variables.js index 6b443caa5d..9f303852c3 100644 --- a/public/src/variables.js +++ b/public/src/variables.js @@ -6,10 +6,9 @@ ajaxify.variables = {}; ajaxify.variables.parse = function() { - var dataEl = $('#content [ajaxify-data]'); + var dataEl = $('#content #ajaxify-data'); if (dataEl.length) { - ajaxify.data = JSON.parse(decodeURIComponent(dataEl.attr('ajaxify-data'))); - dataEl.remove(); + ajaxify.data = JSON.parse(dataEl.text()); } }; }(ajaxify || {})); diff --git a/src/middleware/render.js b/src/middleware/render.js index 4cf5567ae8..eecfe4d55c 100644 --- a/src/middleware/render.js +++ b/src/middleware/render.js @@ -45,13 +45,15 @@ module.exports = function(middleware) { fn = defaultFn; } - var ajaxifyData = encodeURIComponent(JSON.stringify(options)); + var ajaxifyData = JSON.stringify(options); + render.call(self, template, options, function(err, str) { if (err) { return fn(err); } + + str = str + ''; - str = str + ''; str = (res.locals.postHeader ? res.locals.postHeader : '') + str + (res.locals.preFooter ? res.locals.preFooter : ''); if (res.locals.footer) { From 52e71b5f2ea5ff945eafbdca18e238cddef60ec1 Mon Sep 17 00:00:00 2001 From: barisusakli Date: Sat, 14 Nov 2015 20:28:51 -0500 Subject: [PATCH 51/78] up dbsearch --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index f19e4fdedc..25366a9ba7 100644 --- a/package.json +++ b/package.json @@ -40,7 +40,7 @@ "morgan": "^1.3.2", "nconf": "~0.8.2", "nodebb-plugin-composer-default": "1.0.21", - "nodebb-plugin-dbsearch": "0.2.17", + "nodebb-plugin-dbsearch": "0.2.18", "nodebb-plugin-emoji-extended": "0.4.16", "nodebb-plugin-markdown": "4.0.8", "nodebb-plugin-mentions": "1.0.10", From 396b6230396aeb21fb47f1e39b71cb737301d2b3 Mon Sep 17 00:00:00 2001 From: Jared Busch Date: Sun, 15 Nov 2015 22:44:26 -0600 Subject: [PATCH 52/78] update copyright in footer --- install/data/footer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/data/footer.json b/install/data/footer.json index 69d55448ac..7c71cad648 100644 --- a/install/data/footer.json +++ b/install/data/footer.json @@ -2,7 +2,7 @@ { "widget": "html", "data" : { - "html": "", + "html": "", "title":"", "container":"" } From 6bb4a8ec85ad01f3da024fca0d58e3c0b5cea646 Mon Sep 17 00:00:00 2001 From: barisusakli Date: Mon, 16 Nov 2015 14:46:00 -0500 Subject: [PATCH 53/78] up vanilla --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index d5a4025ee3..4c221d4adc 100644 --- a/package.json +++ b/package.json @@ -49,7 +49,7 @@ "nodebb-rewards-essentials": "0.0.6", "nodebb-theme-lavender": "3.0.0", "nodebb-theme-persona": "4.0.36", - "nodebb-theme-vanilla": "5.0.13", + "nodebb-theme-vanilla": "5.0.14", "nodebb-widget-essentials": "2.0.5", "nodemailer": "0.7.1", "npm": "^2.1.4", From 65ce8a50b318b2a2d611727cb4a05062a52b6a3a Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Mon, 16 Nov 2015 15:02:24 -0500 Subject: [PATCH 54/78] Removed cant-vote-self-post As suggested in nodebb/nodebb-theme-persona#203, a positive action has been applied when a user attempts to upvote their own post. It will now open the upvoters modal instead of throwing an alertError. Closes nodebb/nodebb-theme-persona#203 --- public/language/en_GB/error.json | 1 - public/src/client/topic/postTools.js | 4 +++- src/favourites.js | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/public/language/en_GB/error.json b/public/language/en_GB/error.json index 720541d0c1..4159d211d8 100644 --- a/public/language/en_GB/error.json +++ b/public/language/en_GB/error.json @@ -62,7 +62,6 @@ "file-too-big": "Maximum allowed file size is %1 kB - please upload a smaller file", - "cant-vote-self-post": "You cannot vote for your own post", "already-favourited": "You have already favourited this post", "already-unfavourited": "You have already unfavourited this post", diff --git a/public/src/client/topic/postTools.js b/public/src/client/topic/postTools.js index 0d36139403..423637e21e 100644 --- a/public/src/client/topic/postTools.js +++ b/public/src/client/topic/postTools.js @@ -255,7 +255,9 @@ define('forum/topic/postTools', ['share', 'navigator', 'components', 'translator pid: post.attr('data-pid'), room_id: app.currentRoom }, function(err) { - if (err) { + if (err.message === 'self-vote') { + showVotes(post.attr('data-pid')); + } else { app.alertError(err.message); } }); diff --git a/src/favourites.js b/src/favourites.js index c55702b433..c5d71f6de2 100644 --- a/src/favourites.js +++ b/src/favourites.js @@ -204,7 +204,7 @@ var async = require('async'), } if (parseInt(uid, 10) === parseInt(results.owner, 10)) { - return callback(new Error('[[error:cant-vote-self-post]]')); + return callback(new Error('self-vote')); } var voteStatus = results.voteStatus, From 1b7ca555e09d50368f030a5327dc4d8b0050ce4d Mon Sep 17 00:00:00 2001 From: barisusakli Date: Mon, 16 Nov 2015 16:51:19 -0500 Subject: [PATCH 55/78] closes #3879 --- src/posts/parse.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/posts/parse.js b/src/posts/parse.js index 486c961554..efc675b1c9 100644 --- a/src/posts/parse.js +++ b/src/posts/parse.js @@ -24,7 +24,10 @@ module.exports = function(Posts) { if (err) { return callback(err); } - cache.set(data.postData.pid, data.postData.content); + + if (global.env === 'production') { + cache.set(data.postData.pid, data.postData.content); + } callback(null, data.postData); }); From cf7b7a8d4c4d609b7670d211a4f7597d7264a6d8 Mon Sep 17 00:00:00 2001 From: Raphael Beer Date: Tue, 17 Nov 2015 09:10:20 +0100 Subject: [PATCH 56/78] Respond with 404 when topic inside hidden category --- src/controllers/topics.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/controllers/topics.js b/src/controllers/topics.js index aa3da51053..8cbd31014d 100644 --- a/src/controllers/topics.js +++ b/src/controllers/topics.js @@ -119,6 +119,10 @@ topicsController.get = function(req, res, callback) { return next(err); } + if (topicData.category.disabled) { + return callback(); + } + topics.modifyByPrivilege(topicData.posts, results.privileges); plugins.fireHook('filter:controllers.topic.get', topicData, next); From 5a9edf5973fe56cd76e55a8d26a561907bb25d86 Mon Sep 17 00:00:00 2001 From: barisusakli Date: Tue, 17 Nov 2015 12:25:46 -0500 Subject: [PATCH 57/78] closes #3881 --- src/middleware/render.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/middleware/render.js b/src/middleware/render.js index eecfe4d55c..b2bc9c0bd2 100644 --- a/src/middleware/render.js +++ b/src/middleware/render.js @@ -32,6 +32,7 @@ module.exports = function(middleware) { options.bodyClass = buildBodyClass(req); res.locals.template = template; + options._locals = undefined; if (res.locals.isAPI) { if (req.route && req.route.path === '/api/') { @@ -46,12 +47,14 @@ module.exports = function(middleware) { } var ajaxifyData = JSON.stringify(options); - + render.call(self, template, options, function(err, str) { if (err) { return fn(err); } - + + ajaxifyData = ajaxifyData.replace(/<\//g, '<\\/'); + str = str + ''; str = (res.locals.postHeader ? res.locals.postHeader : '') + str + (res.locals.preFooter ? res.locals.preFooter : ''); From d7ea418ba960e8360cf53c38242bd1044fec71f4 Mon Sep 17 00:00:00 2001 From: barisusakli Date: Tue, 17 Nov 2015 14:23:15 -0500 Subject: [PATCH 58/78] up jimp & persona --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 4c221d4adc..e82d44e59b 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,7 @@ "express-session": "^1.8.2", "heapdump": "^0.3.0", "html-to-text": "1.3.2", - "jimp": "0.2.17", + "jimp": "0.2.19", "less": "^2.0.0", "logrotate-stream": "^0.2.3", "lru-cache": "^2.6.1", @@ -48,7 +48,7 @@ "nodebb-plugin-spam-be-gone": "0.4.3", "nodebb-rewards-essentials": "0.0.6", "nodebb-theme-lavender": "3.0.0", - "nodebb-theme-persona": "4.0.36", + "nodebb-theme-persona": "4.0.37", "nodebb-theme-vanilla": "5.0.14", "nodebb-widget-essentials": "2.0.5", "nodemailer": "0.7.1", From b08f6073ded6e9d93a969acb0010424801d62bf5 Mon Sep 17 00:00:00 2001 From: barisusakli Date: Tue, 17 Nov 2015 15:49:01 -0500 Subject: [PATCH 59/78] check ogImageUrl --- src/controllers/topics.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/controllers/topics.js b/src/controllers/topics.js index 8cbd31014d..fd4e6ebc2e 100644 --- a/src/controllers/topics.js +++ b/src/controllers/topics.js @@ -41,7 +41,6 @@ topicsController.get = function(req, res, callback) { }, next); }, function (results, next) { - if (!results.topic.slug) { return callback(); } @@ -178,7 +177,7 @@ topicsController.get = function(req, res, callback) { ogImageUrl = '/logo.png'; } - if (ogImageUrl.indexOf('http') === -1) { + if (typeof ogImageUrl === 'string' && ogImageUrl.indexOf('http') === -1) { ogImageUrl = nconf.get('url') + ogImageUrl; } From 59ed276dcefff4717a17f340c55afb9fe27e8a0c Mon Sep 17 00:00:00 2001 From: barisusakli Date: Fri, 20 Nov 2015 10:43:37 -0500 Subject: [PATCH 60/78] dont allow banned users to flag --- src/socket.io/posts/flag.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/socket.io/posts/flag.js b/src/socket.io/posts/flag.js index 3e5230db6b..aa82e84626 100644 --- a/src/socket.io/posts/flag.js +++ b/src/socket.io/posts/flag.js @@ -47,7 +47,7 @@ module.exports = function(SocketPosts) { privileges.categories.isAdminOrMod(post.topic.cid, socket.uid, next); }, userData: function(next) { - user.getUserFields(socket.uid, ['username', 'reputation'], next); + user.getUserFields(socket.uid, ['username', 'reputation', 'banned'], next); } }, next); }, @@ -56,6 +56,10 @@ module.exports = function(SocketPosts) { return next(new Error('[[error:not-enough-reputation-to-flag]]')); } + if (parseInt(user.banned, 10) === 1) { + return next(new Error('[[error:user-banned]]')); + } + flaggingUser = user.userData; flaggingUser.uid = socket.uid; From a695d3029b89c057b0a1e47626ad54ab01056736 Mon Sep 17 00:00:00 2001 From: Aziz Khoury Date: Fri, 20 Nov 2015 10:53:42 -0500 Subject: [PATCH 61/78] updating spam-be-gone's version to 0.4.5 related to https://github.com/akhoury/nodebb-plugin-spam-be-gone/issues/44 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index e82d44e59b..4d882e231d 100644 --- a/package.json +++ b/package.json @@ -45,7 +45,7 @@ "nodebb-plugin-markdown": "4.0.8", "nodebb-plugin-mentions": "1.0.10", "nodebb-plugin-soundpack-default": "0.1.5", - "nodebb-plugin-spam-be-gone": "0.4.3", + "nodebb-plugin-spam-be-gone": "0.4.5", "nodebb-rewards-essentials": "0.0.6", "nodebb-theme-lavender": "3.0.0", "nodebb-theme-persona": "4.0.37", From ecd777b659d0746f896912aa3c9c18cf2aa88639 Mon Sep 17 00:00:00 2001 From: barisusakli Date: Mon, 23 Nov 2015 10:57:36 -0500 Subject: [PATCH 62/78] closes https://github.com/NodeBB/nodebb-theme-persona/issues/206 --- public/src/variables.js | 2 +- src/middleware/render.js | 7 +++---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/public/src/variables.js b/public/src/variables.js index 9f303852c3..056c616555 100644 --- a/public/src/variables.js +++ b/public/src/variables.js @@ -6,7 +6,7 @@ ajaxify.variables = {}; ajaxify.variables.parse = function() { - var dataEl = $('#content #ajaxify-data'); + var dataEl = $('#ajaxify-data'); if (dataEl.length) { ajaxify.data = JSON.parse(dataEl.text()); } diff --git a/src/middleware/render.js b/src/middleware/render.js index b2bc9c0bd2..559692f800 100644 --- a/src/middleware/render.js +++ b/src/middleware/render.js @@ -47,16 +47,13 @@ module.exports = function(middleware) { } var ajaxifyData = JSON.stringify(options); + ajaxifyData = ajaxifyData.replace(/<\//g, '<\\/'); render.call(self, template, options, function(err, str) { if (err) { return fn(err); } - ajaxifyData = ajaxifyData.replace(/<\//g, '<\\/'); - - str = str + ''; - str = (res.locals.postHeader ? res.locals.postHeader : '') + str + (res.locals.preFooter ? res.locals.preFooter : ''); if (res.locals.footer) { @@ -75,10 +72,12 @@ module.exports = function(middleware) { var language = res.locals.config ? res.locals.config.userLang || 'en_GB' : 'en_GB'; language = req.query.lang || language; translator.translate(str, language, function(translated) { + translated = translated + ''; fn(err, translated); }); }); } else { + str = str + ''; fn(err, str); } }); From 33f07b82f99f60d9b48689601b5cf4dc1f37bc92 Mon Sep 17 00:00:00 2001 From: barisusakli Date: Mon, 23 Nov 2015 11:59:00 -0500 Subject: [PATCH 63/78] closes #3893 --- src/controllers/authentication.js | 2 +- src/middleware/index.js | 4 +--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/controllers/authentication.js b/src/controllers/authentication.js index 579f8462c3..1f5d049dc3 100644 --- a/src/controllers/authentication.js +++ b/src/controllers/authentication.js @@ -155,7 +155,7 @@ function continueLogin(req, res, next) { // Alter user cookie depending on passed-in option if (req.body.remember === 'on') { - var duration = 1000*60*60*24*parseInt(meta.config.loginDays || 14, 10); + var duration = 1000 * 60 * 60 * 24 * (parseInt(meta.config.loginDays, 10) || 14); req.session.cookie.maxAge = duration; req.session.cookie.expires = new Date(Date.now() + duration); } else { diff --git a/src/middleware/index.js b/src/middleware/index.js index 80b6677970..e61bae0afe 100644 --- a/src/middleware/index.js +++ b/src/middleware/index.js @@ -6,9 +6,7 @@ var meta = require('../meta'), auth = require('../routes/authentication'), path = require('path'), - fs = require('fs'), nconf = require('nconf'), - winston = require('winston'), flash = require('connect-flash'), templates = require('templates.js'), bodyParser = require('body-parser'), @@ -51,7 +49,7 @@ module.exports = function(app) { app.use(cookieParser()); var cookie = { - maxAge: 1000 * 60 * 60 * 24 * parseInt(meta.config.loginDays || 14, 10) + maxAge: 1000 * 60 * 60 * 24 * (parseInt(meta.config.loginDays, 10) || 14) }; if (meta.config.cookieDomain) { From 9589de551eea6bd0dc64a73814944ae5f1131a9a Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Tue, 24 Nov 2015 14:07:47 -0500 Subject: [PATCH 64/78] added toggler to disable toobusy if necessary --- src/middleware/middleware.js | 2 +- src/views/admin/settings/advanced.tpl | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/middleware/middleware.js b/src/middleware/middleware.js index 9cc9d2d523..e2c5747ab6 100644 --- a/src/middleware/middleware.js +++ b/src/middleware/middleware.js @@ -221,7 +221,7 @@ middleware.privateUploads = function(req, res, next) { }; middleware.busyCheck = function(req, res, next) { - if (global.env === 'production' && toobusy()) { + if (global.env === 'production' && (!meta.config.hasOwnProperty('eventLoopCheckEnabled') || parseInt(meta.config.eventLoopCheckEnabled, 10) === 1) && toobusy()) { res.type('text/html').sendFile(path.join(__dirname, '../../public/503.html')); } else { next(); diff --git a/src/views/admin/settings/advanced.tpl b/src/views/admin/settings/advanced.tpl index 3a0a314106..b53cabacfb 100644 --- a/src/views/admin/settings/advanced.tpl +++ b/src/views/admin/settings/advanced.tpl @@ -50,6 +50,12 @@ point.

+
+ +
From 97ce08f5af2b0a324b10682246fc19aaa85d98da Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Wed, 25 Nov 2015 11:27:23 -0500 Subject: [PATCH 65/78] Removed rel="canonical", closes #3758 On the advice of the following articles: - http://googlewebmastercentral.blogspot.com/2013/04/5-common-mistakes-with-relcanonical.html - https://moz.com/blog/rel-confused-answers-to-your-rel-canonical-questions rel="canonical" should not be shown on the same page as rel="prev" and rel="next" as Google will implicitly assume that they all point to the same page. With the "pageless" variety only showing the first page of posts, it explains exactly why any post content after the first page is not indexed by Google. ... or perhaps it *is* indexed, but not returned. Who the heck knows. :smile: --- src/controllers/topics.js | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/controllers/topics.js b/src/controllers/topics.js index fd4e6ebc2e..d3cd6140e7 100644 --- a/src/controllers/topics.js +++ b/src/controllers/topics.js @@ -238,10 +238,6 @@ topicsController.get = function(req, res, callback) { rel: 'alternate', type: 'application/rss+xml', href: nconf.get('url') + '/topic/' + tid + '.rss' - }, - { - rel: 'canonical', - href: nconf.get('url') + '/topic/' + topicData.slug + (currentPage > 1 ? '?page=' + currentPage : '') } ]; From d3778a052a605d3258ed54a70d8e116c11af69fe Mon Sep 17 00:00:00 2001 From: barisusakli Date: Wed, 25 Nov 2015 12:02:03 -0500 Subject: [PATCH 66/78] fix ajaxify data --- public/src/variables.js | 1 + 1 file changed, 1 insertion(+) diff --git a/public/src/variables.js b/public/src/variables.js index 056c616555..487099ac3c 100644 --- a/public/src/variables.js +++ b/public/src/variables.js @@ -9,6 +9,7 @@ var dataEl = $('#ajaxify-data'); if (dataEl.length) { ajaxify.data = JSON.parse(dataEl.text()); + dataEl.remove(); } }; }(ajaxify || {})); From 1c71001e1dd65e2ea44e7511e3a601ebde9d2b42 Mon Sep 17 00:00:00 2001 From: barisusakli Date: Wed, 25 Nov 2015 12:20:37 -0500 Subject: [PATCH 67/78] check err and print info --- src/install.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/install.js b/src/install.js index 6c06328c70..80da3a52c1 100644 --- a/src/install.js +++ b/src/install.js @@ -460,10 +460,15 @@ function createWelcomePost(next) { db.getObjectField('global', 'topicCount', next); } ], function(err, results) { + if (err) { + return next(err); + } + var content = results[0], numTopics = results[1]; if (!parseInt(numTopics, 10)) { + process.stdout.write('Creating welcome post!\n'); Topics.post({ uid: 1, cid: 2, From 9f48d3e6d23b6894abfd8b9284aba18bb0ceb4ee Mon Sep 17 00:00:00 2001 From: barisusakli Date: Wed, 25 Nov 2015 12:30:43 -0500 Subject: [PATCH 68/78] check pid before setting cache --- src/posts/parse.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/posts/parse.js b/src/posts/parse.js index efc675b1c9..4d18f9dd7f 100644 --- a/src/posts/parse.js +++ b/src/posts/parse.js @@ -25,7 +25,7 @@ module.exports = function(Posts) { return callback(err); } - if (global.env === 'production') { + if (global.env === 'production' && data.postData.pid) { cache.set(data.postData.pid, data.postData.content); } From 9c1b0674459e78cb269d16ad373b3b9ae93ca028 Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Wed, 25 Nov 2015 14:22:32 -0500 Subject: [PATCH 69/78] Closes #3884 Added toggles to change graph to monthly view vs regular single-day view. Also fixed issue where labels were out of date as the graph data changed. --- public/src/admin/general/dashboard.js | 52 ++++++++++++++++++++++----- src/socket.io/admin.js | 52 ++++++++++++++++++++++----- src/views/admin/general/dashboard.tpl | 4 +-- 3 files changed, 90 insertions(+), 18 deletions(-) diff --git a/public/src/admin/general/dashboard.js b/public/src/admin/general/dashboard.js index 62280f2a79..08f47c9a22 100644 --- a/public/src/admin/general/dashboard.js +++ b/public/src/admin/general/dashboard.js @@ -150,12 +150,26 @@ define('admin/general/dashboard', ['semver'], function(semver) { for (var i = currentHour, ii = currentHour - 24; i > ii; i--) { var hour = i < 0 ? 24 + i : i; - labels.push(hour + ':00 '); + labels.push(hour + ':00'); } return labels.reverse(); } + function getDaysArray() { + var currentDay = new Date().getTime(), + months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + labels = [], + tmpDate; + + for(var x=29;x>=0;x--) { + tmpDate = new Date(currentDay - (1000*60*60*24*x)); + labels.push(months[tmpDate.getMonth()] + ' ' + tmpDate.getDate()); + } + + return labels; + } + function setupGraphs() { var trafficCanvas = document.getElementById('analytics-traffic'), registeredCanvas = document.getElementById('analytics-registered'), @@ -263,6 +277,10 @@ define('admin/general/dashboard', ['semver'], function(semver) { $(window).on('resize', adjustPieCharts); adjustPieCharts(); + + $('[data-action="updateGraph"]').on('click', function() { + updateTrafficGraph($(this).attr('data-units')); + }) } function adjustPieCharts() { @@ -277,26 +295,44 @@ define('admin/general/dashboard', ['semver'], function(semver) { }); } - function updateTrafficGraph() { + function updateTrafficGraph(units) { if (!app.isFocused) { return; } - socket.emit('admin.analytics.get', {graph: "traffic"}, function (err, data) { + socket.emit('admin.analytics.get', { + graph: 'traffic', + units: units || 'hours' + }, function (err, data) { if (JSON.stringify(graphData.traffic) === JSON.stringify(data)) { return; } graphData.traffic = data; - for (var i = 0, ii = data.pageviews.length; i < ii; i++) { - graphs.traffic.datasets[0].points[i].value = data.pageviews[i]; - graphs.traffic.datasets[1].points[i].value = data.uniqueVisitors[i]; + // If new data set contains fewer points than currently shown, truncate + while(graphs.traffic.datasets[0].points.length > data.pageviews.length) { + graphs.traffic.removeData(); } - var currentHour = new Date().getHours(); + if (units === 'days') { + graphs.traffic.scale.xLabels = getDaysArray(); + } else { + graphs.traffic.scale.xLabels = getHoursArray(); + } + + for (var i = 0, ii = data.pageviews.length; i < ii; i++) { + if (graphs.traffic.datasets[0].points[i]) { + graphs.traffic.datasets[0].points[i].value = data.pageviews[i]; + graphs.traffic.datasets[0].points[i].label = graphs.traffic.scale.xLabels[i]; + graphs.traffic.datasets[1].points[i].value = data.uniqueVisitors[i]; + graphs.traffic.datasets[1].points[i].label = graphs.traffic.scale.xLabels[i]; + } else { + // No points to replace? Add data. + graphs.traffic.addData([data.pageviews[i], data.uniqueVisitors[i]], graphs.traffic.scale.xLabels[i]); + } + } - graphs.traffic.scale.xLabels = getHoursArray(); graphs.traffic.update(); $('#pageViewsThisMonth').html(data.monthlyPageViews.thisMonth); diff --git a/src/socket.io/admin.js b/src/socket.io/admin.js index d5ada9d4e0..df00925dad 100644 --- a/src/socket.io/admin.js +++ b/src/socket.io/admin.js @@ -206,17 +206,29 @@ SocketAdmin.email.test = function(socket, data, callback) { }; SocketAdmin.analytics.get = function(socket, data, callback) { - data.units = 'hours'; // temp - data.amount = 24; + // Default returns views from past 24 hours, by hour + if (data.units === 'days') { + data.amount = 30; + } else { + data.amount = 24; + } if (data && data.graph && data.units && data.amount) { if (data.graph === 'traffic') { async.parallel({ uniqueVisitors: function(next) { - getHourlyStatsForSet('analytics:uniquevisitors', data.amount, next); + if (data.units === 'days') { + getDailyStatsForSet('analytics:uniquevisitors', Date.now(), data.amount, next); + } else { + getHourlyStatsForSet('analytics:uniquevisitors', Date.now(), data.amount, next); + } }, pageviews: function(next) { - getHourlyStatsForSet('analytics:pageviews', data.amount, next); + if (data.units === 'days') { + getDailyStatsForSet('analytics:pageviews', Date.now(), data.amount, next); + } else { + getHourlyStatsForSet('analytics:pageviews', Date.now(), data.amount, next); + } }, monthlyPageViews: function(next) { analytics.getMonthlyPageViews(next); @@ -240,14 +252,14 @@ SocketAdmin.logs.clear = function(socket, data, callback) { meta.logs.clear(callback); }; -function getHourlyStatsForSet(set, hours, callback) { - var hour = new Date(), - terms = {}, +function getHourlyStatsForSet(set, hour, numHours, callback) { + var terms = {}, hoursArr = []; + hour = new Date(hour); hour.setHours(hour.getHours(), 0, 0, 0); - for (var i = 0, ii = hours; i < ii; i++) { + for (var i = 0, ii = numHours; i < ii; i++) { hoursArr.push(hour.getTime()); hour.setHours(hour.getHours() - 1, 0, 0, 0); } @@ -272,6 +284,30 @@ function getHourlyStatsForSet(set, hours, callback) { }); } +function getDailyStatsForSet(set, day, numDays, callback) { + var daysArr = []; + + day = new Date(day); + day.setHours(0, 0, 0, 0); + + async.whilst(function() { + return numDays--; + }, function(next) { + getHourlyStatsForSet(set, day.getTime()-(1000*60*60*24*numDays), 24, function(err, day) { + if (err) { + return next(err); + } + + daysArr.push(day.reduce(function(cur, next) { + return cur+next; + })); + next(); + }); + }, function(err) { + callback(err, daysArr); + }); +}; + SocketAdmin.getMoreEvents = function(socket, next, callback) { var start = parseInt(next, 10); if (start < 0) { diff --git a/src/views/admin/general/dashboard.tpl b/src/views/admin/general/dashboard.tpl index 3aa18f8867..153dd643be 100644 --- a/src/views/admin/general/dashboard.tpl +++ b/src/views/admin/general/dashboard.tpl @@ -17,11 +17,11 @@
-
Page views This Month
+
-
Page views in last 24 hours
+
From 027d80debde3a7f20d1d6a6427ed4a65706502ff Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Wed, 25 Nov 2015 14:26:38 -0500 Subject: [PATCH 70/78] Fixed issue where graph would always switch back to single-day --- public/src/admin/general/dashboard.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/public/src/admin/general/dashboard.js b/public/src/admin/general/dashboard.js index 08f47c9a22..d4a0fae102 100644 --- a/public/src/admin/general/dashboard.js +++ b/public/src/admin/general/dashboard.js @@ -11,7 +11,8 @@ define('admin/general/dashboard', ['semver'], function(semver) { graphData = { rooms: {}, traffic: {} - }; + }, + currentGraph = 'hours'; var DEFAULTS = { roomInterval: 10000, @@ -302,7 +303,7 @@ define('admin/general/dashboard', ['semver'], function(semver) { socket.emit('admin.analytics.get', { graph: 'traffic', - units: units || 'hours' + units: units || currentGraph }, function (err, data) { if (JSON.stringify(graphData.traffic) === JSON.stringify(data)) { return; @@ -334,6 +335,7 @@ define('admin/general/dashboard', ['semver'], function(semver) { } graphs.traffic.update(); + currentGraph = units; $('#pageViewsThisMonth').html(data.monthlyPageViews.thisMonth); $('#pageViewsLastMonth').html(data.monthlyPageViews.lastMonth); From 7f9ac3f1fe84bb10127db4929856f54f52442f5a Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Wed, 25 Nov 2015 14:31:27 -0500 Subject: [PATCH 71/78] Fixing bug where the labels would revert back to hours --- public/src/admin/general/dashboard.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/public/src/admin/general/dashboard.js b/public/src/admin/general/dashboard.js index d4a0fae102..e4ed52d39c 100644 --- a/public/src/admin/general/dashboard.js +++ b/public/src/admin/general/dashboard.js @@ -301,9 +301,11 @@ define('admin/general/dashboard', ['semver'], function(semver) { return; } + units = units || currentGraph; + socket.emit('admin.analytics.get', { graph: 'traffic', - units: units || currentGraph + units: units }, function (err, data) { if (JSON.stringify(graphData.traffic) === JSON.stringify(data)) { return; From 6d386dd2ee989b49da88be19afe2bea7639bc8a5 Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Wed, 25 Nov 2015 14:48:32 -0500 Subject: [PATCH 72/78] Fixed some labelling issues and added support for last month --- public/src/admin/general/dashboard.js | 37 ++++++++++++++++++--------- src/socket.io/admin.js | 8 +++--- src/views/admin/general/dashboard.tpl | 2 +- 3 files changed, 30 insertions(+), 17 deletions(-) diff --git a/public/src/admin/general/dashboard.js b/public/src/admin/general/dashboard.js index e4ed52d39c..3b9134b10c 100644 --- a/public/src/admin/general/dashboard.js +++ b/public/src/admin/general/dashboard.js @@ -12,7 +12,10 @@ define('admin/general/dashboard', ['semver'], function(semver) { rooms: {}, traffic: {} }, - currentGraph = 'hours'; + currentGraph = { + units: 'hours', + until: undefined + }; var DEFAULTS = { roomInterval: 10000, @@ -157,8 +160,8 @@ define('admin/general/dashboard', ['semver'], function(semver) { return labels.reverse(); } - function getDaysArray() { - var currentDay = new Date().getTime(), + function getDaysArray(from) { + var currentDay = new Date(from || Date.now()).getTime(), months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], labels = [], tmpDate; @@ -280,8 +283,15 @@ define('admin/general/dashboard', ['semver'], function(semver) { adjustPieCharts(); $('[data-action="updateGraph"]').on('click', function() { - updateTrafficGraph($(this).attr('data-units')); - }) + var until = undefined; + switch($(this).attr('data-until')) { + case 'last-month': + var lastMonth = new Date(); + lastMonth.setDate(lastMonth.getDate()-30); + until = lastMonth.getTime(); + } + updateTrafficGraph($(this).attr('data-units'), until); + }); } function adjustPieCharts() { @@ -296,20 +306,20 @@ define('admin/general/dashboard', ['semver'], function(semver) { }); } - function updateTrafficGraph(units) { + function updateTrafficGraph(units, until) { if (!app.isFocused) { return; } - units = units || currentGraph; - socket.emit('admin.analytics.get', { graph: 'traffic', - units: units + units: units || 'hours', + until: until }, function (err, data) { if (JSON.stringify(graphData.traffic) === JSON.stringify(data)) { return; } + console.log(data); graphData.traffic = data; @@ -319,7 +329,7 @@ define('admin/general/dashboard', ['semver'], function(semver) { } if (units === 'days') { - graphs.traffic.scale.xLabels = getDaysArray(); + graphs.traffic.scale.xLabels = getDaysArray(until); } else { graphs.traffic.scale.xLabels = getHoursArray(); } @@ -337,7 +347,8 @@ define('admin/general/dashboard', ['semver'], function(semver) { } graphs.traffic.update(); - currentGraph = units; + currentGraph.units = units; + currentGraph.until = until; $('#pageViewsThisMonth').html(data.monthlyPageViews.thisMonth); $('#pageViewsLastMonth').html(data.monthlyPageViews.lastMonth); @@ -483,7 +494,9 @@ define('admin/general/dashboard', ['semver'], function(semver) { } }, realtime ? DEFAULTS.realtimeInterval : DEFAULTS.roomInterval); - intervals.graphs = setInterval(updateTrafficGraph, realtime ? DEFAULTS.realtimeInterval : DEFAULTS.graphInterval); + intervals.graphs = setInterval(function() { + updateTrafficGraph(currentGraph.units, currentGraph.until); + }, realtime ? DEFAULTS.realtimeInterval : DEFAULTS.graphInterval); } return Admin; diff --git a/src/socket.io/admin.js b/src/socket.io/admin.js index df00925dad..95af8c7122 100644 --- a/src/socket.io/admin.js +++ b/src/socket.io/admin.js @@ -218,16 +218,16 @@ SocketAdmin.analytics.get = function(socket, data, callback) { async.parallel({ uniqueVisitors: function(next) { if (data.units === 'days') { - getDailyStatsForSet('analytics:uniquevisitors', Date.now(), data.amount, next); + getDailyStatsForSet('analytics:uniquevisitors', data.until || Date.now(), data.amount, next); } else { - getHourlyStatsForSet('analytics:uniquevisitors', Date.now(), data.amount, next); + getHourlyStatsForSet('analytics:uniquevisitors', data.until || Date.now(), data.amount, next); } }, pageviews: function(next) { if (data.units === 'days') { - getDailyStatsForSet('analytics:pageviews', Date.now(), data.amount, next); + getDailyStatsForSet('analytics:pageviews', data.until || Date.now(), data.amount, next); } else { - getHourlyStatsForSet('analytics:pageviews', Date.now(), data.amount, next); + getHourlyStatsForSet('analytics:pageviews', data.until || Date.now(), data.amount, next); } }, monthlyPageViews: function(next) { diff --git a/src/views/admin/general/dashboard.tpl b/src/views/admin/general/dashboard.tpl index 153dd643be..6ea841352a 100644 --- a/src/views/admin/general/dashboard.tpl +++ b/src/views/admin/general/dashboard.tpl @@ -13,7 +13,7 @@
-
Page views Last Month
+
From d12ccfacb5888f6e18a0dc26dddd32fb914a73a0 Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Wed, 25 Nov 2015 15:11:35 -0500 Subject: [PATCH 73/78] latest translations --- public/language/ar/error.json | 1 - public/language/bg/error.json | 1 - public/language/bg/modules.json | 6 +-- public/language/bg/topic.json | 10 ++-- public/language/bg/user.json | 2 +- public/language/bn/category.json | 18 +++---- public/language/bn/email.json | 16 +++---- public/language/bn/error.json | 1 - public/language/bn/search.json | 2 +- public/language/cs/error.json | 1 - public/language/da/error.json | 5 +- public/language/da/global.json | 4 +- public/language/da/modules.json | 2 +- public/language/da/notifications.json | 4 +- public/language/da/pages.json | 8 ++-- public/language/de/error.json | 5 +- public/language/de/global.json | 4 +- public/language/de/modules.json | 8 ++-- public/language/de/notifications.json | 4 +- public/language/de/pages.json | 8 ++-- public/language/de/topic.json | 12 ++--- public/language/de/user.json | 20 ++++---- public/language/el/error.json | 1 - public/language/en@pirate/error.json | 1 - public/language/en_US/error.json | 1 - public/language/es/error.json | 1 - public/language/es/modules.json | 6 +-- public/language/es/topic.json | 8 ++-- public/language/es/user.json | 2 +- public/language/et/error.json | 1 - public/language/fa_IR/error.json | 1 - public/language/fi/error.json | 1 - public/language/fr/error.json | 1 - public/language/fr/modules.json | 6 +-- public/language/fr/topic.json | 10 ++-- public/language/fr/user.json | 2 +- public/language/gl/error.json | 1 - public/language/gl/modules.json | 6 +-- public/language/gl/topic.json | 8 ++-- public/language/gl/user.json | 2 +- public/language/he/error.json | 1 - public/language/hu/error.json | 1 - public/language/id/error.json | 1 - public/language/id/register.json | 2 +- public/language/it/error.json | 1 - public/language/ja/error.json | 1 - public/language/ko/error.json | 1 - public/language/lt/error.json | 1 - public/language/ms/error.json | 5 +- public/language/ms/global.json | 4 +- public/language/ms/modules.json | 6 +-- public/language/ms/pages.json | 2 +- public/language/ms/topic.json | 10 ++-- public/language/ms/user.json | 14 +++--- public/language/nb/error.json | 1 - public/language/nl/error.json | 1 - public/language/nl/global.json | 4 +- public/language/nl/modules.json | 8 ++-- public/language/nl/pages.json | 4 +- public/language/nl/topic.json | 8 ++-- public/language/nl/user.json | 14 +++--- public/language/pl/error.json | 1 - public/language/pt_BR/error.json | 1 - public/language/ro/error.json | 1 - public/language/ru/error.json | 1 - public/language/rw/error.json | 1 - public/language/sc/error.json | 1 - public/language/sk/email.json | 60 ++++++++++++------------ public/language/sk/error.json | 1 - public/language/sk/groups.json | 4 +- public/language/sk/language.json | 2 +- public/language/sk/modules.json | 4 +- public/language/sk/notifications.json | 4 +- public/language/sk/pages.json | 8 ++-- public/language/sk/recent.json | 2 +- public/language/sk/reset_password.json | 2 +- public/language/sk/search.json | 2 +- public/language/sk/success.json | 2 +- public/language/sk/tags.json | 6 +-- public/language/sk/user.json | 4 +- public/language/sk/users.json | 2 +- public/language/sl/error.json | 1 - public/language/sr/error.json | 1 - public/language/sv/error.json | 1 - public/language/th/error.json | 1 - public/language/tr/error.json | 1 - public/language/tr/modules.json | 6 +-- public/language/tr/notifications.json | 2 +- public/language/tr/topic.json | 4 +- public/language/tr/user.json | 14 +++--- public/language/vi/error.json | 1 - public/language/zh_CN/error.json | 5 +- public/language/zh_CN/global.json | 4 +- public/language/zh_CN/modules.json | 8 ++-- public/language/zh_CN/notifications.json | 4 +- public/language/zh_CN/pages.json | 8 ++-- public/language/zh_CN/topic.json | 16 +++---- public/language/zh_CN/user.json | 20 ++++---- public/language/zh_TW/error.json | 1 - 99 files changed, 229 insertions(+), 269 deletions(-) diff --git a/public/language/ar/error.json b/public/language/ar/error.json index d778ce8faa..7bb7290cec 100644 --- a/public/language/ar/error.json +++ b/public/language/ar/error.json @@ -48,7 +48,6 @@ "not-enough-tags": "Not enough tags. Topics must have at least %1 tag(s)", "too-many-tags": "Too many tags. Topics can't have more than %1 tag(s)", "file-too-big": "Maximum allowed file size is %1 kB - please upload a smaller file", - "cant-vote-self-post": "لايمكنك التصويت لردك", "already-favourited": "لقد سبق وأضفت هذا الرد إلى المفضلة", "already-unfavourited": "لقد سبق وحذفت هذا الرد من المفضلة", "cant-ban-other-admins": "لايمكن حظر مدبر نظام آخر.", diff --git a/public/language/bg/error.json b/public/language/bg/error.json index f95a736f82..cbc97af490 100644 --- a/public/language/bg/error.json +++ b/public/language/bg/error.json @@ -48,7 +48,6 @@ "not-enough-tags": "Недостатъчно етикети. Темите трябва да имат поне %1 етикет(а)", "too-many-tags": "Твърде много етикети. Темите не могат да имат повече от %1 етикет(а)", "file-too-big": "Максималният разрешен размер на файл е %1 КБ – моля, качете по-малък файл", - "cant-vote-self-post": "Не можете да гласувате за собствената си публикация", "already-favourited": "Вече сте отбелязали тази публикация като любима", "already-unfavourited": "Вече сте премахнали тази публикация от любимите си", "cant-ban-other-admins": "Не можете да блокирате другите администратори!", diff --git a/public/language/bg/modules.json b/public/language/bg/modules.json index 5f964a2b3d..cb4509c571 100644 --- a/public/language/bg/modules.json +++ b/public/language/bg/modules.json @@ -27,7 +27,7 @@ "bootbox.ok": "Добре", "bootbox.cancel": "Отказ", "bootbox.confirm": "Потвърждаване", - "cover.dragging_title": "Cover Photo Positioning", - "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"", - "cover.saved": "Cover photo image and position saved" + "cover.dragging_title": "Наместване на снимката", + "cover.dragging_message": "Преместете снимката на желаното положение и натиснете „Запазване“", + "cover.saved": "Снимката и мястото ѝ бяха запазени" } \ No newline at end of file diff --git a/public/language/bg/topic.json b/public/language/bg/topic.json index 31ab34be70..217b68c211 100644 --- a/public/language/bg/topic.json +++ b/public/language/bg/topic.json @@ -96,11 +96,11 @@ "newest_to_oldest": "Първо най-новите", "most_votes": "Най-много гласове", "most_posts": "Най-много публикации", - "stale.title": "Create new topic instead?", - "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", - "stale.create": "Create a new topic", - "stale.reply_anyway": "Reply to this topic anyway", - "stale.link_back": "Re: [%1](%2)", + "stale.title": "Създаване на нова тема вместо това?", + "stale.warning": "Темата, в която отговаряте, е доста стара. Искате ли вместо това да създадете нова и да направите препратка към тази в отговора си?", + "stale.create": "Създаване на нова тема", + "stale.reply_anyway": "Отговаряне в тази тема въпреки това", + "stale.link_back": "Отговор: [%1](%2)", "spam": "Спам", "offensive": "Обидно", "custom-flag-reason": "Изберете причина за докладване" diff --git a/public/language/bg/user.json b/public/language/bg/user.json index 01d20857ad..c6f82b78d8 100644 --- a/public/language/bg/user.json +++ b/public/language/bg/user.json @@ -58,7 +58,7 @@ "upload_picture": "Качване на снимка", "upload_a_picture": "Качване на снимка", "remove_uploaded_picture": "Премахване на качената снимка", - "image_spec": "You may only upload PNG, JPG, or BMP files", + "image_spec": "Можете да качвате само файлове във форматите PNG, JPG или BMP", "settings": "Настройки", "show_email": "Да се показва е-пощата ми", "show_fullname": "Да се показва цялото ми име", diff --git a/public/language/bn/category.json b/public/language/bn/category.json index 6dd740e4ac..b76b0724d2 100644 --- a/public/language/bn/category.json +++ b/public/language/bn/category.json @@ -1,16 +1,16 @@ { - "category": "Category", - "subcategories": "Subcategories", + "category": "বিভাগ", + "subcategories": "উপবিভাগ", "new_topic_button": "নতুন টপিক", - "guest-login-post": "Log in to post", - "no_topics": "এই বিভাগে কোন টপিক নেই!
আপনি চাইলে একটি পোষ্ট করতে পারেন।", + "guest-login-post": "উত্তর দিতে লগিন করুন", + "no_topics": "এই বিভাগে কোন আলোচনা নেই!
আপনি চাইলে নতুন আলোচনা শুরু করতে পারেন।", "browsing": "ব্রাউজিং", "no_replies": "কোন রিপ্লাই নেই", - "no_new_posts": "No new posts.", + "no_new_posts": "নতুন কোন পোস্ট নাই", "share_this_category": "এই বিভাগটি অন্যের সাথে ভাগাভাগি করুন", - "watch": "Watch", + "watch": "নজর রাখুন", "ignore": "উপেক্ষা করুন", - "watch.message": "You are now watching updates from this category", - "ignore.message": "You are now ignoring updates from this category", - "watched-categories": "Watched categories" + "watch.message": "আপনি এই বিভাগটিতে নজর রাখছেন", + "ignore.message": "আপনি এই বিভাগটির উপেক্ষা করছেন ", + "watched-categories": "প্রেক্ষিত বিভাগসমূহ" } \ No newline at end of file diff --git a/public/language/bn/email.json b/public/language/bn/email.json index 2ac4ae8057..22b62b9dd2 100644 --- a/public/language/bn/email.json +++ b/public/language/bn/email.json @@ -1,21 +1,21 @@ { "password-reset-requested": "পাসওয়ার্ড রিসেটের জন্য অনুরোধ করা হয়েছে - %1!", "welcome-to": "%1 এ স্বাগতম", - "invite": "Invitation from %1", + "invite": "%1 থেকে আমন্ত্রণ", "greeting_no_name": "স্বাগতম", "greeting_with_name": "স্বাগতম %1", "welcome.text1": "%1 এ নিবন্ধন করার জন্য আপনাকে ধন্যবাদ!", "welcome.text2": "আপনার একাউন্ট এ্যাক্টিভেট করার জন্য, আপনি যে ইমেইল এড্রেস ব্যাবহার করে নিবন্ধন করেছেন তা যাচাই করতে হবে", "welcome.text3": "An administrator has accepted your registration application. You can login with your username/password now.", "welcome.cta": "আপনার ইমেইল এড্রেস নিশ্চিত করার জন্য এখানে ক্লিক করুন", - "invitation.text1": "%1 has invited you to join %2", - "invitation.ctr": "Click here to create your account.", + "invitation.text1": "%1 আপনাকে %2 তে যোগ দিতে আমন্ত্রণ জানিয়েছেন ", + "invitation.ctr": "আপনার একাউন্ট খুলতে এখানে ক্লিক করুন", "reset.text1": "আমরা আপনার পাসওয়ার্ড রিসেট করার অনুরোধ পেয়েছি, সম্ভবত আপনি আপনার পাসওয়ার্ড ভুলে গিয়েছেন বলেই। তবে যদি তা না হয়ে থাকে, তাহলে এই মেইলকে উপেক্ষা করতে পারেন।", "reset.text2": "পাসওয়ার্ড রিসেট করতে নিচের লিংকে ক্লিক করুন", "reset.cta": "পাসওয়ার্ড রিসেট করতে এখানে ক্লিক করুন", - "reset.notify.subject": "Password successfully changed", - "reset.notify.text1": "We are notifying you that on %1, your password was changed successfully.", - "reset.notify.text2": "If you did not authorise this, please notify an administrator immediately.", + "reset.notify.subject": "পাসওয়ার্ড পরিবর্তন সফল হয়েছে", + "reset.notify.text1": "আপনাকে জানাচ্ছি যে %1 এ আপনার পাসওয়ার্ড পরিবর্তন হয়েছে", + "reset.notify.text2": "এটা আপনার অজান্তে হলে এখনই প্রশাসককে আবহিত করুন", "digest.notifications": "%1 থেকে আনরিড নোটিফিকেশন আছে।", "digest.latest_topics": "%1 এর সর্বশেষ টপিকসমূহ", "digest.cta": "%1 ভিজিট করতে এখানে ক্লিক করুন", @@ -24,8 +24,8 @@ "notif.chat.subject": "%1 এর থেকে নতুন মেসেজ এসেছে।", "notif.chat.cta": "কথপোকথন চালিয়ে যেতে এখানে ক্লিক করুন", "notif.chat.unsub.info": "আপনার সাবস্ক্রীপশন সেটিংসের কারনে আপনার এই নোটিফিকেশন পাঠানো হয়েছে", - "notif.post.cta": "Click here to read the full topic", - "notif.post.unsub.info": "This post notification was sent to you due to your subscription settings.", + "notif.post.cta": "পুরো বিষয়টি পড়তে এখানে ক্লিক করুন", + "notif.post.unsub.info": "আপনার সাবস্ক্রিপশন সেটিংসের কারনে আপনার এই বার্তাটি পাঠানো হয়েছে", "test.text1": "আপনি সঠিকভাবে নোডবিবির জন্য মেইলার সেটাপ করেছেন কিনা নিশ্চিত করার জন্য এই টেষ্ট ইমেইল পাঠানো হয়েছে", "unsub.cta": "সেটিংসগুলো পরিবর্তন করতে এখানে ক্লিক করুন", "closing": "ধন্যবাদ!" diff --git a/public/language/bn/error.json b/public/language/bn/error.json index 137e395821..a8273c1320 100644 --- a/public/language/bn/error.json +++ b/public/language/bn/error.json @@ -48,7 +48,6 @@ "not-enough-tags": "Not enough tags. Topics must have at least %1 tag(s)", "too-many-tags": "Too many tags. Topics can't have more than %1 tag(s)", "file-too-big": "Maximum allowed file size is %1 kB - please upload a smaller file", - "cant-vote-self-post": "আপনি নিজের পোস্টে ভোট দিতে পারবেন না।", "already-favourited": "আপনি ইতিমধ্যে এই পোষ্টটি পছন্দের তালিকায় যোগ করেছেন", "already-unfavourited": "আপনি ইতিমধ্যে এই পোষ্টটি আপনার পছন্দের তালিকা থেকে সরিয়ে ফেলেছেন", "cant-ban-other-admins": "আপনি অন্য এ্যাডমিনদের নিষিদ্ধ করতে পারেন না!", diff --git a/public/language/bn/search.json b/public/language/bn/search.json index 66f4c69a7e..12552601c6 100644 --- a/public/language/bn/search.json +++ b/public/language/bn/search.json @@ -29,7 +29,7 @@ "number-of-views": "Number of views", "topic-start-date": "Topic start date", "username": "Username", - "category": "Category", + "category": "বিভাগ", "descending": "In descending order", "ascending": "In ascending order", "save-preferences": "Save preferences", diff --git a/public/language/cs/error.json b/public/language/cs/error.json index f677568322..3efb6790f4 100644 --- a/public/language/cs/error.json +++ b/public/language/cs/error.json @@ -48,7 +48,6 @@ "not-enough-tags": "Not enough tags. Topics must have at least %1 tag(s)", "too-many-tags": "Too many tags. Topics can't have more than %1 tag(s)", "file-too-big": "Maximum allowed file size is %1 kB - please upload a smaller file", - "cant-vote-self-post": "Nemůžete hlasovat pro svůj vlastní příspěvek", "already-favourited": "You have already favourited this post", "already-unfavourited": "You have already unfavourited this post", "cant-ban-other-admins": "Nemůžete zakazovat ostatní administrátory!", diff --git a/public/language/da/error.json b/public/language/da/error.json index 8e3a777613..fb02400438 100644 --- a/public/language/da/error.json +++ b/public/language/da/error.json @@ -48,7 +48,6 @@ "not-enough-tags": "Ikke nok tags. Tråde skal have mindst %1 tag(s)", "too-many-tags": "For mange tags. Tråde kan ikke have mere end %1 tag(s)", "file-too-big": "Maksimum filstørrelse er %1 kB - venligst overfør en mindre fil", - "cant-vote-self-post": "Du kan ikke stemme på dit eget indlæg", "already-favourited": "Du har allerede føjet dette indlæg til dine favoritter", "already-unfavourited": "Du har allerede fjernet dette indlæg fra dine favoritter", "cant-ban-other-admins": "Du kan ikke udlukke andre administatrorer!", @@ -59,8 +58,8 @@ "group-name-too-short": "Gruppe navn for kort", "group-already-exists": "Gruppen eksisterer allerede", "group-name-change-not-allowed": "Ændring af gruppe navn er ikke tilladt", - "group-already-member": "Already part of this group", - "group-not-member": "Not a member of this group", + "group-already-member": "Allerede medlem af denne gruppe", + "group-not-member": "Ikke medlem af denne gruppe", "group-needs-owner": "Denne grupper kræver mindst én ejer", "group-already-invited": "Denne bruger er allerede blevet inviteret", "group-already-requested": "Din medlemskabs anmodning er allerede blevet afsendt", diff --git a/public/language/da/global.json b/public/language/da/global.json index 7641d69280..2b0efe6d46 100644 --- a/public/language/da/global.json +++ b/public/language/da/global.json @@ -56,8 +56,8 @@ "posted_ago_by_guest": "indsendt %1 af gæst", "posted_ago_by": "indsendt %1 siden af %2", "posted_ago": "Indsendt %1 siden", - "posted_in": "posted in %1", - "posted_in_by": "posted in %1 by %2", + "posted_in": "skrevet i %1", + "posted_in_by": "skrevet i %1 af %2", "posted_in_ago": "skrivet i %1 %2", "posted_in_ago_by": "skrevet i %1 %2 af %3", "posted_in_ago_by_guest": "insendt i %1 %2 siden af gæst", diff --git a/public/language/da/modules.json b/public/language/da/modules.json index 81f62a112c..a15c48fffd 100644 --- a/public/language/da/modules.json +++ b/public/language/da/modules.json @@ -23,7 +23,7 @@ "composer.discard": "Er du sikker på at du vil kassere dette indlæg?", "composer.submit_and_lock": "Send og lås", "composer.toggle_dropdown": "Skift mellem dropdown", - "composer.uploading": "Uploading %1", + "composer.uploading": "Uploader %1", "bootbox.ok": "OK", "bootbox.cancel": "Annuller", "bootbox.confirm": "Bekræft", diff --git a/public/language/da/notifications.json b/public/language/da/notifications.json index 0379b3b8c8..aa278bfca8 100644 --- a/public/language/da/notifications.json +++ b/public/language/da/notifications.json @@ -12,8 +12,8 @@ "you_have_unread_notifications": "Du har ulæste notifikationer.", "new_message_from": "Ny besked fra %1", "upvoted_your_post_in": "%1 har upvotet dit indlæg i %2.", - "moved_your_post": "%1 has moved your post to %2", - "moved_your_topic": "%1 has moved %2", + "moved_your_post": "%1 har flyttet dit indlæg til %2", + "moved_your_topic": "%1 har flyttet %2", "favourited_your_post_in": "%1 har favoriseret dit indlæg i %2.", "user_flagged_post_in": "%1 har anmeldt et indlæg i %2", "user_posted_to": "%1 har skrevet et svar til: %2", diff --git a/public/language/da/pages.json b/public/language/da/pages.json index a615f32452..cb7115dc02 100644 --- a/public/language/da/pages.json +++ b/public/language/da/pages.json @@ -24,9 +24,9 @@ "chats": "Chats", "chat": "Chatter med %1", "account/edit": "Redigere \"%1\"", - "account/edit/password": "Editing password of \"%1\"", - "account/edit/username": "Editing username of \"%1\"", - "account/edit/email": "Editing email of \"%1\"", + "account/edit/password": "Redigerer adgangskode for \"%1\"", + "account/edit/username": "Redigerer brugernavn for \"%1\"", + "account/edit/email": "Redigerer email for \"%1\"", "account/following": "Personer som %1 følger", "account/followers": "Personer som følger %1", "account/posts": "Indlæg oprettet af %1", @@ -37,5 +37,5 @@ "account/watched": "Tråde fulgt af %1", "maintenance.text": "%1 er under vedligeholdelse. Kom venligst tilbage senere.", "maintenance.messageIntro": "Administratoren har yderligere vedlagt denne besked:", - "throttled.text": "%1 is currently unavailable due to excessive load. Please come back another time." + "throttled.text": "%1 er ikke tilgængelig på grund af overbelastning. Venligst kom tilbage senere." } \ No newline at end of file diff --git a/public/language/de/error.json b/public/language/de/error.json index 704bf500b8..e4918e8800 100644 --- a/public/language/de/error.json +++ b/public/language/de/error.json @@ -48,7 +48,6 @@ "not-enough-tags": "Nicht genügend Tags. Themen müssen mindestens %1 Tag(s) enthalten", "too-many-tags": "Zu viele Tags. Themen dürfen nicht mehr als %1 Tag(s) enthalten", "file-too-big": "Die maximale Dateigröße ist %1 kB, bitte laden Sie eine kleinere Datei hoch.", - "cant-vote-self-post": "Du kannst deinen eigenen Beitrag nicht bewerten", "already-favourited": "Dieser Beitrag ist bereits in deinen Favoriten enthalten", "already-unfavourited": "Du hast diesen Beitrag bereits aus deinen Favoriten entfernt", "cant-ban-other-admins": "Du kannst andere Administratoren nicht sperren!", @@ -59,8 +58,8 @@ "group-name-too-short": "Gruppenname zu kurz", "group-already-exists": "Gruppe existiert bereits", "group-name-change-not-allowed": "Du kannst den Namen der Gruppe nicht ändern", - "group-already-member": "Already part of this group", - "group-not-member": "Not a member of this group", + "group-already-member": "Du bist bereits Teil dieser Gruppe", + "group-not-member": "Du bist kein Mitglied dieser Gruppe", "group-needs-owner": "Diese Gruppe muss mindestens einen Besitzer vorweisen", "group-already-invited": "Dieser Benutzer wurde bereits eingeladen", "group-already-requested": "Deine Mitgliedsanfrage wurde bereits eingereicht", diff --git a/public/language/de/global.json b/public/language/de/global.json index 88db392aee..8e165959e9 100644 --- a/public/language/de/global.json +++ b/public/language/de/global.json @@ -56,8 +56,8 @@ "posted_ago_by_guest": "%1 von einem Gast geschrieben", "posted_ago_by": "%1 von %2 geschrieben", "posted_ago": "%1 geschrieben", - "posted_in": "posted in %1", - "posted_in_by": "posted in %1 by %2", + "posted_in": "Verfasst in %1", + "posted_in_by": "verfasst in %1 von %2", "posted_in_ago": "Verfasst in %1 %2", "posted_in_ago_by": "Verfasst in %1 %2 von %3", "posted_in_ago_by_guest": "verfasst in %1 %2 von einem Gast", diff --git a/public/language/de/modules.json b/public/language/de/modules.json index 167eda7885..4c0a2058d1 100644 --- a/public/language/de/modules.json +++ b/public/language/de/modules.json @@ -23,11 +23,11 @@ "composer.discard": "Bist du sicher, dass du diesen Beitrag verwerfen möchtest?", "composer.submit_and_lock": "Einreichen und Sperren", "composer.toggle_dropdown": "Menu aus-/einblenden", - "composer.uploading": "Uploading %1", + "composer.uploading": "Lade %1 hoch", "bootbox.ok": "OK", "bootbox.cancel": "Abbrechen", "bootbox.confirm": "Bestätigen", - "cover.dragging_title": "Cover Photo Positioning", - "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"", - "cover.saved": "Cover photo image and position saved" + "cover.dragging_title": "Titelbildpositionierung", + "cover.dragging_message": "Ziehe das Titelbild an die gewünschte Position und klicke auf \"Speichern\"", + "cover.saved": "Titelbild und -position gespeichert" } \ No newline at end of file diff --git a/public/language/de/notifications.json b/public/language/de/notifications.json index b48c212214..8b7f000672 100644 --- a/public/language/de/notifications.json +++ b/public/language/de/notifications.json @@ -12,8 +12,8 @@ "you_have_unread_notifications": "Du hast ungelesene Benachrichtigungen.", "new_message_from": "Neue Nachricht von %1", "upvoted_your_post_in": "%1 hat deinen Beitrag in %2 positiv bewertet.", - "moved_your_post": "%1 has moved your post to %2", - "moved_your_topic": "%1 has moved %2", + "moved_your_post": "%1 hat deinen Beitrag nach %2 verschoben.", + "moved_your_topic": "%1 hat %2 verschoben.", "favourited_your_post_in": "%1 hat deinen Beitrag in %2 favorisiert.", "user_flagged_post_in": "%1 hat einen Beitrag in %2 gemeldet", "user_posted_to": "%1 hat auf %2 geantwortet.", diff --git a/public/language/de/pages.json b/public/language/de/pages.json index 11a73bc94c..adf3339f1d 100644 --- a/public/language/de/pages.json +++ b/public/language/de/pages.json @@ -24,9 +24,9 @@ "chats": "Chats", "chat": "Chatte mit %1", "account/edit": "Bearbeite %1", - "account/edit/password": "Editing password of \"%1\"", - "account/edit/username": "Editing username of \"%1\"", - "account/edit/email": "Editing email of \"%1\"", + "account/edit/password": "Bearbeite Passwort von \"%1\"", + "account/edit/username": "Bearbeite Benutzernamen von \"%1\"", + "account/edit/email": "Bearbeite E-Mail von \"%1\"", "account/following": "Nutzer, die %1 folgt", "account/followers": "Nutzer, die %1 folgen", "account/posts": "Beiträge von %1", @@ -37,5 +37,5 @@ "account/watched": "Themen angeschaut von %1", "maintenance.text": "%1 befindet sich derzeit in der Wartung. Bitte komm später wieder.", "maintenance.messageIntro": "Zusätzlich hat der Administrator diese Nachricht hinterlassen:", - "throttled.text": "%1 is currently unavailable due to excessive load. Please come back another time." + "throttled.text": "%1 ist momentan aufgrund von Überlastung nicht verfügbar. Bitte komm später wieder." } \ No newline at end of file diff --git a/public/language/de/topic.json b/public/language/de/topic.json index eee6769e85..0dfbd18ef1 100644 --- a/public/language/de/topic.json +++ b/public/language/de/topic.json @@ -96,12 +96,12 @@ "newest_to_oldest": "Neuste zuerst", "most_votes": "Die meisten Stimmen", "most_posts": "Die meisten Beiträge", - "stale.title": "Create new topic instead?", - "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", - "stale.create": "Create a new topic", - "stale.reply_anyway": "Reply to this topic anyway", + "stale.title": "Stattdessen ein neues Thema erstellen?", + "stale.warning": "Das Thema auf das du antworten möchtest ist ziemlich alt. Möchtest du stattdessen ein neues Thema erstellen und auf dieses in deiner Antwort hinweisen?", + "stale.create": "Ein neues Thema erstellen", + "stale.reply_anyway": "Auf dieses Thema trotzdem antworten", "stale.link_back": "Re: [%1](%2)", "spam": "Spam", - "offensive": "Offensive", - "custom-flag-reason": "Enter a flagging reason" + "offensive": "Beleidigend", + "custom-flag-reason": "Gib einen Grund für die Markierung ein" } \ No newline at end of file diff --git a/public/language/de/user.json b/public/language/de/user.json index 1156bdeea6..53bac70aa3 100644 --- a/public/language/de/user.json +++ b/public/language/de/user.json @@ -30,16 +30,16 @@ "signature": "Signatur", "birthday": "Geburtstag", "chat": "Chat", - "chat_with": "Chat with %1", + "chat_with": "Chat mit %1", "follow": "Folgen", "unfollow": "Nicht mehr folgen", "more": "Mehr", "profile_update_success": "Profil erfolgreich aktualisiert!", "change_picture": "Profilbild ändern", - "change_username": "Change Username", - "change_email": "Change Email", + "change_username": "Benutzernamen ändern", + "change_email": "E-Mail ändern", "edit": "Ändern", - "default_picture": "Default Icon", + "default_picture": "Standardsymbol", "uploaded_picture": "Hochgeladene Bilder", "upload_new_picture": "Neues Bild hochladen", "upload_new_picture_from_url": "Neues Bild von URL hochladen", @@ -58,7 +58,7 @@ "upload_picture": "Bild hochladen", "upload_a_picture": "Ein Bild hochladen", "remove_uploaded_picture": "Hochgeladenes Bild entfernen", - "image_spec": "You may only upload PNG, JPG, or BMP files", + "image_spec": "Du solltest nur PNG-, JPG- oder BMP-Dateien hochladen", "settings": "Einstellungen", "show_email": "Zeige meine E-Mail Adresse an.", "show_fullname": "Zeige meinen kompletten Namen an", @@ -92,11 +92,11 @@ "grouptitle": "Wähle den anzuzeigenden Gruppen Titel aus", "no-group-title": "Kein Gruppentitel", "select-skin": "Einen Skin auswählen", - "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.", - "custom_route": "Custom Homepage Route", - "custom_route_help": "Enter a route name here, without any preceding slash (e.g. \"recent\", or \"popular\")", + "select-homepage": "Eine Startseite auswählen", + "homepage": "Startseite", + "homepage_description": "Wähle eine Seite die als Forumstartseite benutzt werden soll aus oder 'Keine' um die Standardstartseite zu verwenden.", + "custom_route": "Eigener Startseitenpfad", + "custom_route_help": "Gib hier einen Pfadnamen ohne vorangehenden Slash ein (z.B. \"recent\" oder \"popular\")", "sso.title": "Einmalanmeldungsdienste", "sso.associated": "Verbunden mit", "sso.not-associated": "Hier klicken um Dich mit %1 zu verbinden" diff --git a/public/language/el/error.json b/public/language/el/error.json index 007c6e2978..2b18e271de 100644 --- a/public/language/el/error.json +++ b/public/language/el/error.json @@ -48,7 +48,6 @@ "not-enough-tags": "Not enough tags. Topics must have at least %1 tag(s)", "too-many-tags": "Too many tags. Topics can't have more than %1 tag(s)", "file-too-big": "Maximum allowed file size is %1 kB - please upload a smaller file", - "cant-vote-self-post": "Δεν μπορείς να ψηφίσεις την δημοσίευσή σου", "already-favourited": "You have already favourited this post", "already-unfavourited": "You have already unfavourited this post", "cant-ban-other-admins": "Δεν μπορείς να αποκλείσεις άλλους διαχειριστές!", diff --git a/public/language/en@pirate/error.json b/public/language/en@pirate/error.json index 4cf3ab8f4e..c9751317f1 100644 --- a/public/language/en@pirate/error.json +++ b/public/language/en@pirate/error.json @@ -48,7 +48,6 @@ "not-enough-tags": "Not enough tags. Topics must have at least %1 tag(s)", "too-many-tags": "Too many tags. Topics can't have more than %1 tag(s)", "file-too-big": "Maximum allowed file size is %1 kB - please upload a smaller file", - "cant-vote-self-post": "You cannot vote for your own post", "already-favourited": "You have already favourited this post", "already-unfavourited": "You have already unfavourited this post", "cant-ban-other-admins": "You can't ban other admins!", diff --git a/public/language/en_US/error.json b/public/language/en_US/error.json index cae39a519c..2789d31b2d 100644 --- a/public/language/en_US/error.json +++ b/public/language/en_US/error.json @@ -48,7 +48,6 @@ "not-enough-tags": "Not enough tags. Topics must have at least %1 tag(s)", "too-many-tags": "Too many tags. Topics can't have more than %1 tag(s)", "file-too-big": "Maximum allowed file size is %1 kB - please upload a smaller file", - "cant-vote-self-post": "You cannot vote for your own post", "already-favourited": "You have already favorited this post", "already-unfavourited": "You have already unfavorited this post", "cant-ban-other-admins": "You can't ban other admins!", diff --git a/public/language/es/error.json b/public/language/es/error.json index e836909902..6b3cf3948b 100644 --- a/public/language/es/error.json +++ b/public/language/es/error.json @@ -48,7 +48,6 @@ "not-enough-tags": "Etiquetas insuficientes. El tema debe tener al menos %1 etiqueta(s).", "too-many-tags": "Demasiadas etiquetas. El tema no puede tener mas de %1 etiqueta(s)", "file-too-big": "El tamaño de fichero máximo es de %1 kB - por favor, suba un fichero más pequeño", - "cant-vote-self-post": "No puedes votar tus propios posts", "already-favourited": "Ya ha marcado esta publicación como favorita", "already-unfavourited": "Ya ha desmarcado esta publicación como favorita", "cant-ban-other-admins": "¡No puedes expulsar a otros administradores!", diff --git a/public/language/es/modules.json b/public/language/es/modules.json index ce265eaf87..6badc0c562 100644 --- a/public/language/es/modules.json +++ b/public/language/es/modules.json @@ -27,7 +27,7 @@ "bootbox.ok": "OK", "bootbox.cancel": "Cancelar", "bootbox.confirm": "Confirmar", - "cover.dragging_title": "Cover Photo Positioning", - "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"", - "cover.saved": "Cover photo image and position saved" + "cover.dragging_title": "Colocar la foto de portada", + "cover.dragging_message": "Arrastra la foto de portada al lugar que quieras y haz click en \"Guardar\"", + "cover.saved": "Imagen y posición de la foto de portada guardadas." } \ No newline at end of file diff --git a/public/language/es/topic.json b/public/language/es/topic.json index 5f3d3c6588..bab23cdc36 100644 --- a/public/language/es/topic.json +++ b/public/language/es/topic.json @@ -96,10 +96,10 @@ "newest_to_oldest": "Más nuevo a más antiguo", "most_votes": "Mayor número de votos", "most_posts": "Mayor número de mensajes", - "stale.title": "Create new topic instead?", - "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", - "stale.create": "Create a new topic", - "stale.reply_anyway": "Reply to this topic anyway", + "stale.title": "¿Crear un nuevo hilo en su lugar?", + "stale.warning": "El hilo al que estás respondiendo es muy antiguo. ¿Quieres crear un nuevo hilo en su lugar y añadir una referencia a este en tu mensaje?", + "stale.create": "Crear un nuevo hilo", + "stale.reply_anyway": "Publicar este hilo de todos modos.", "stale.link_back": "Re: [%1](%2)", "spam": "SPAM", "offensive": "Ofensivo", diff --git a/public/language/es/user.json b/public/language/es/user.json index cf245bd3bc..b89ee677cb 100644 --- a/public/language/es/user.json +++ b/public/language/es/user.json @@ -58,7 +58,7 @@ "upload_picture": "Subir foto", "upload_a_picture": "Subir una foto", "remove_uploaded_picture": "Borrar Imagen subida", - "image_spec": "You may only upload PNG, JPG, or BMP files", + "image_spec": "Sólo puedes subir imágenes en formato PNG, JPG o BMP", "settings": "Opciones", "show_email": "Mostrar mi correo electrónico", "show_fullname": "Mostrar mi nombre completo", diff --git a/public/language/et/error.json b/public/language/et/error.json index 800f1fc06e..666098ff89 100644 --- a/public/language/et/error.json +++ b/public/language/et/error.json @@ -48,7 +48,6 @@ "not-enough-tags": "Liiga vähe märksõnu. Teemadel peab olemalt vähemalt %1 märksõna", "too-many-tags": "Liiga palju märksõnu. Teemadel ei tohi olla rohkem kui %1 märksõna", "file-too-big": "Maksimaalne üleslaetava faili suurus on %1 kB - valige väiksema mahuga fail.", - "cant-vote-self-post": "Sa ei saa hääletada enda postituse poolt", "already-favourited": "Sa juba märkisid selle postituse lemmikuks", "already-unfavourited": "Sa juba eemaldasid selle postituse lemmikute hulgast", "cant-ban-other-admins": "Sa ei saa bannida teisi administraatoreid!", diff --git a/public/language/fa_IR/error.json b/public/language/fa_IR/error.json index 93f5c52807..be76d173ad 100644 --- a/public/language/fa_IR/error.json +++ b/public/language/fa_IR/error.json @@ -48,7 +48,6 @@ "not-enough-tags": "Not enough tags. Topics must have at least %1 tag(s)", "too-many-tags": "Too many tags. Topics can't have more than %1 tag(s)", "file-too-big": "Maximum allowed file size is %1 kB - please upload a smaller file", - "cant-vote-self-post": "شما نمی‌توانید به دیدگاه خود رای بدهید.", "already-favourited": "شما قبلا این دیدگاه را محبوب کرده اید", "already-unfavourited": "شما قبلا این دیدگاه را نامحبوب کرده اید", "cant-ban-other-admins": "شما نمی‌توانید دیگر مدیران را محروم کنید!", diff --git a/public/language/fi/error.json b/public/language/fi/error.json index 87f847c387..a7e414f19b 100644 --- a/public/language/fi/error.json +++ b/public/language/fi/error.json @@ -48,7 +48,6 @@ "not-enough-tags": "Not enough tags. Topics must have at least %1 tag(s)", "too-many-tags": "Too many tags. Topics can't have more than %1 tag(s)", "file-too-big": "Maximum allowed file size is %1 kB - please upload a smaller file", - "cant-vote-self-post": "Et voi antaa ääntä omalle viestillesi", "already-favourited": "Tämä viesti on jo suosikeissasi", "already-unfavourited": "Olet jo poistanut tämän viestin suosikeistasi", "cant-ban-other-admins": "Et voi estää muita ylläpitäjiä!", diff --git a/public/language/fr/error.json b/public/language/fr/error.json index 0db2e31173..c2d2e44ef5 100644 --- a/public/language/fr/error.json +++ b/public/language/fr/error.json @@ -48,7 +48,6 @@ "not-enough-tags": "Pas assez de mots-clés. Les sujets doivent avoir au moins %1 mots-clé(s).", "too-many-tags": "Trop de mots-clés. Les sujets ne peuvent avoir au plus que %1 mots-clé(s).", "file-too-big": "La taille maximale autorisée pour un fichier est de %1 kb. Veuillez envoyer un fichier plus petit.", - "cant-vote-self-post": "Vous ne pouvez pas voter pour vos propres messages", "already-favourited": "Vous avez déjà mis ce message en favoris", "already-unfavourited": "Vous avez déjà retiré ce message des favoris", "cant-ban-other-admins": "Vous ne pouvez pas bannir les autres administrateurs !", diff --git a/public/language/fr/modules.json b/public/language/fr/modules.json index 2294209496..7b175d741d 100644 --- a/public/language/fr/modules.json +++ b/public/language/fr/modules.json @@ -27,7 +27,7 @@ "bootbox.ok": "OK", "bootbox.cancel": "Annuler", "bootbox.confirm": "Confirmer", - "cover.dragging_title": "Cover Photo Positioning", - "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"", - "cover.saved": "Cover photo image and position saved" + "cover.dragging_title": "Positionnement de la photo de couverture", + "cover.dragging_message": "Déplacez la photo de couverture à la position désiré et cliquez sur \"Enregistrer\"", + "cover.saved": "Photo de couverture et position sauvegardé. " } \ No newline at end of file diff --git a/public/language/fr/topic.json b/public/language/fr/topic.json index a7c62d1de1..3e513f2d52 100644 --- a/public/language/fr/topic.json +++ b/public/language/fr/topic.json @@ -96,11 +96,11 @@ "newest_to_oldest": "Du plus récent au plus ancien", "most_votes": "Les mieux notés", "most_posts": "Nombre de messages", - "stale.title": "Create new topic instead?", - "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", - "stale.create": "Create a new topic", - "stale.reply_anyway": "Reply to this topic anyway", - "stale.link_back": "Re: [%1](%2)", + "stale.title": "Créer un nouveau sujet à la place ?", + "stale.warning": "Le sujet auquel vous répondez est assez ancien. Ne voudriez-vous pas créer un nouveau sujet à la place et placer une référence vers celui-ci dans votre réponse ?", + "stale.create": "Créer un nouveau sujet", + "stale.reply_anyway": "Répondre à ce sujet quand même", + "stale.link_back": "Re : [%1](%2)", "spam": "Spam", "offensive": "Offensif", "custom-flag-reason": "Entrez une raison pour laquelle vous signalez ce message" diff --git a/public/language/fr/user.json b/public/language/fr/user.json index 4f2eb535d9..7670b5c2d6 100644 --- a/public/language/fr/user.json +++ b/public/language/fr/user.json @@ -58,7 +58,7 @@ "upload_picture": "Envoyer l'image", "upload_a_picture": "Envoyer une image", "remove_uploaded_picture": "Supprimer l'image envoyée", - "image_spec": "You may only upload PNG, JPG, or BMP files", + "image_spec": "Vous ne pouvez envoyer que des fichiers PNG, JPG ou BMP", "settings": "Paramètres", "show_email": "Afficher mon email", "show_fullname": "Afficher mon nom complet", diff --git a/public/language/gl/error.json b/public/language/gl/error.json index 96a6409dae..79659f458b 100644 --- a/public/language/gl/error.json +++ b/public/language/gl/error.json @@ -48,7 +48,6 @@ "not-enough-tags": "Non hai etiquetas dabondas. Os temas deben ter %1 etiqueta(s) como mínimo.", "too-many-tags": "Moitas etiquetas. Os temas non poden ter máis de %1 etiqueta(s).", "file-too-big": "O tamaño máximo permitido é %1 kB - por favor, sube un arquivo máis pequeno", - "cant-vote-self-post": "Non podes votar pola túa publicación", "already-favourited": "Marcache como favorita esta publicación", "already-unfavourited": "Desmarcache como favorita esta publicación", "cant-ban-other-admins": "Non podes botar outros administradores!", diff --git a/public/language/gl/modules.json b/public/language/gl/modules.json index cf3d04838f..276bee77cd 100644 --- a/public/language/gl/modules.json +++ b/public/language/gl/modules.json @@ -27,7 +27,7 @@ "bootbox.ok": "De acordo", "bootbox.cancel": "Cancelar", "bootbox.confirm": "Confirmar", - "cover.dragging_title": "Cover Photo Positioning", - "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"", - "cover.saved": "Cover photo image and position saved" + "cover.dragging_title": "Colocar foto de portada", + "cover.dragging_message": "Arrastra a foto d portada ó lugar que desexes e fai clic en \"Gardar\"", + "cover.saved": "Imaxe e posición da foto de portada gardadas." } \ No newline at end of file diff --git a/public/language/gl/topic.json b/public/language/gl/topic.json index c6a38a4374..03c0b42d87 100644 --- a/public/language/gl/topic.json +++ b/public/language/gl/topic.json @@ -96,10 +96,10 @@ "newest_to_oldest": "Máis novo a máis antigo", "most_votes": "Maior número de votos", "most_posts": "Maior número de respostas", - "stale.title": "Create new topic instead?", - "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", - "stale.create": "Create a new topic", - "stale.reply_anyway": "Reply to this topic anyway", + "stale.title": "Crear un novo tema no seu lugar?", + "stale.warning": "O tema no que queres publicar é bastante vello. Queres crear un novo tema no seu lugar e incluir unha referencia a este na túa mensaxe?", + "stale.create": "Crear un novo tema", + "stale.reply_anyway": "Publicar neste tema de tódolos xeitos", "stale.link_back": "Re: [%1](%2)", "spam": "Spam", "offensive": "Ofensivo", diff --git a/public/language/gl/user.json b/public/language/gl/user.json index f817958818..d1c201ff0b 100644 --- a/public/language/gl/user.json +++ b/public/language/gl/user.json @@ -58,7 +58,7 @@ "upload_picture": "Subir foto", "upload_a_picture": "Subir unha foto", "remove_uploaded_picture": "Borrar unha foto subida", - "image_spec": "You may only upload PNG, JPG, or BMP files", + "image_spec": "Só podes subir imaxes en formato PNG, JPG ou BMP", "settings": "Opcións", "show_email": "Amosa-lo meu Email", "show_fullname": "Amosa-lo meu Nome Completo", diff --git a/public/language/he/error.json b/public/language/he/error.json index f53a9a7510..e94ba5754f 100644 --- a/public/language/he/error.json +++ b/public/language/he/error.json @@ -48,7 +48,6 @@ "not-enough-tags": "Not enough tags. Topics must have at least %1 tag(s)", "too-many-tags": "Too many tags. Topics can't have more than %1 tag(s)", "file-too-big": "Maximum allowed file size is %1 kB - please upload a smaller file", - "cant-vote-self-post": "לא ניתן להצביע לפוסט שלך", "already-favourited": "כבר הוספת פוסט זה למועדפים", "already-unfavourited": "כבר הסרת פוסט זה מהמועדפים", "cant-ban-other-admins": "אינך יכול לחסום מנהלים אחרים!", diff --git a/public/language/hu/error.json b/public/language/hu/error.json index 38d3763109..9a1dee1cd1 100644 --- a/public/language/hu/error.json +++ b/public/language/hu/error.json @@ -48,7 +48,6 @@ "not-enough-tags": "Not enough tags. Topics must have at least %1 tag(s)", "too-many-tags": "Too many tags. Topics can't have more than %1 tag(s)", "file-too-big": "Maximum allowed file size is %1 kB - please upload a smaller file", - "cant-vote-self-post": "Nem szavazhatsz a saját hozzászólásodra", "already-favourited": "Már bejelölted Kedvencnek ezt a hozzászólást", "already-unfavourited": "Már kivetted a Kedvenceid közül ezt a hozzászólást", "cant-ban-other-admins": "Nem tilthatsz ki másik adminisztrátort!", diff --git a/public/language/id/error.json b/public/language/id/error.json index e83bf2e4bd..bf90d17b14 100644 --- a/public/language/id/error.json +++ b/public/language/id/error.json @@ -48,7 +48,6 @@ "not-enough-tags": "Not enough tags. Topics must have at least %1 tag(s)", "too-many-tags": "Too many tags. Topics can't have more than %1 tag(s)", "file-too-big": "Maximum allowed file size is %1 kB - please upload a smaller file", - "cant-vote-self-post": "Kamu tidak dapat vote postingan sendiri", "already-favourited": "Post ini sudah kamu favorit", "already-unfavourited": "Postingan ini sudah kamu unfavorit", "cant-ban-other-admins": "Kamu tidak dapat ban admin lainnya!", diff --git a/public/language/id/register.json b/public/language/id/register.json index 37c26cb4a7..305cb2c19f 100644 --- a/public/language/id/register.json +++ b/public/language/id/register.json @@ -2,7 +2,7 @@ "register": "Daftar", "help.email": "Secara default, emailmu akan disembunyikan dari publik.", "help.username_restrictions": "Nama Pengguna yang unik antara %1 dan %2 karakter. Pengguna lain dapat menyebutmu dengan menggunakan @nama pengguna.", - "help.minimum_password_length": "Panjang passwordmu harus memuat setidaknya %1 karakter.", + "help.minimum_password_length": "Panjang password harus setidaknya %1 karakter.", "email_address": "Alamat Email", "email_address_placeholder": "Masukkan Alamat Email", "username": "Nama Pengguna", diff --git a/public/language/it/error.json b/public/language/it/error.json index b4f373c864..4ea8d69813 100644 --- a/public/language/it/error.json +++ b/public/language/it/error.json @@ -48,7 +48,6 @@ "not-enough-tags": "Tag non sufficienti. Gli argomenti devono avere almeno %1 Tag", "too-many-tags": "Troppi Tag. Gli argomenti non possono avere più di %1 Tag", "file-too-big": "La dimensione massima consentita è di %1 kB - si prega di caricare un file più piccolo", - "cant-vote-self-post": "Non puoi votare il tuo stesso post", "already-favourited": "Hai già inserito tra i preferiti questo post", "already-unfavourited": "Hai già inserito tra i Non Preferiti questo post", "cant-ban-other-admins": "Non puoi bannare altri amministratori!", diff --git a/public/language/ja/error.json b/public/language/ja/error.json index 40f8476647..de02133cd3 100644 --- a/public/language/ja/error.json +++ b/public/language/ja/error.json @@ -48,7 +48,6 @@ "not-enough-tags": "Not enough tags. Topics must have at least %1 tag(s)", "too-many-tags": "Too many tags. Topics can't have more than %1 tag(s)", "file-too-big": "Maximum allowed file size is %1 kB - please upload a smaller file", - "cant-vote-self-post": "自分のポストに評価することはできません。", "already-favourited": "You have already favourited this post", "already-unfavourited": "You have already unfavourited this post", "cant-ban-other-admins": "ほかの管理者を停止することはできません!", diff --git a/public/language/ko/error.json b/public/language/ko/error.json index 0051677e61..726ae49716 100644 --- a/public/language/ko/error.json +++ b/public/language/ko/error.json @@ -48,7 +48,6 @@ "not-enough-tags": "Not enough tags. Topics must have at least %1 tag(s)", "too-many-tags": "Too many tags. Topics can't have more than %1 tag(s)", "file-too-big": "Maximum allowed file size is %1 kB - please upload a smaller file", - "cant-vote-self-post": "자신의 게시물에는 투표할 수 없습니다.", "already-favourited": "You have already favourited this post", "already-unfavourited": "You have already unfavourited this post", "cant-ban-other-admins": "다른 관리자를 차단할 수 없습니다.", diff --git a/public/language/lt/error.json b/public/language/lt/error.json index 0674bc3c5d..dbf3491455 100644 --- a/public/language/lt/error.json +++ b/public/language/lt/error.json @@ -48,7 +48,6 @@ "not-enough-tags": "Neužteka žymių. Temos turi turėti mažiausiai %1 žyme(s)", "too-many-tags": "Per daug žymių. Temos turi turėti daugiausiai %1 žyme(s)", "file-too-big": "Didžiausias įkelimo dydis yra %1 kB - prašome kelti mažesni failą", - "cant-vote-self-post": "Jūs negalite balsuoti už savo pranešimą", "already-favourited": "Jums jau patinka šis pranešimas", "already-unfavourited": "Jums jau nebepatinka šis pranešimas", "cant-ban-other-admins": "Jūs negalite užblokuoti kitų administratorių!", diff --git a/public/language/ms/error.json b/public/language/ms/error.json index 5273ae3c0c..08762edc17 100644 --- a/public/language/ms/error.json +++ b/public/language/ms/error.json @@ -48,7 +48,6 @@ "not-enough-tags": "Tag tidak mencukupi. Topik memerlukan sekurang-kurangnya %1 tag()", "too-many-tags": "Tag terlalu banyak. Topik tidak boleh lebih %1 tag()", "file-too-big": "Maksimum saiz fail yang dibenarkan ialah %1 kB - sila muatnaik fail yang lebih kecil", - "cant-vote-self-post": "Anda tidak boleh mengundi kiriman sendiri", "already-favourited": "Anda telah pun menggemari kiriman ini", "already-unfavourited": "Anda telah pun nyah-gemar kiriman ini", "cant-ban-other-admins": "Anda tidak boleh haramkan admin / pentadbir!", @@ -59,8 +58,8 @@ "group-name-too-short": "Nama kumpulan terlalu pendek", "group-already-exists": "Kumpulan telah wujud", "group-name-change-not-allowed": "Pengubahan nama kumpulan tidak dibenarkan", - "group-already-member": "Already part of this group", - "group-not-member": "Not a member of this group", + "group-already-member": "Sudah pun sebahagian dari kumpulan ini", + "group-not-member": "Bukan ahli kumpulan ini", "group-needs-owner": "Kumpulan ini memerlukan sekurang-kurangnya seorang pemilik", "group-already-invited": "Pengguna ini telah pun dijemput", "group-already-requested": "Permintaan anda untuk menjadi telah pun dihantar", diff --git a/public/language/ms/global.json b/public/language/ms/global.json index c60ceb2072..4996ec100f 100644 --- a/public/language/ms/global.json +++ b/public/language/ms/global.json @@ -56,8 +56,8 @@ "posted_ago_by_guest": "dikirim %1 oleh pelawat", "posted_ago_by": "dikirim %1 oleh %2", "posted_ago": "dikirim %1", - "posted_in": "posted in %1", - "posted_in_by": "posted in %1 by %2", + "posted_in": "dikirim pada %1", + "posted_in_by": "dikirim pada %1 oleh %2", "posted_in_ago": "dikirim pada %1 %2", "posted_in_ago_by": "dikirim pada %1 %2 oleh %3", "posted_in_ago_by_guest": "dikirim pada %1 %2 oleh pelawat", diff --git a/public/language/ms/modules.json b/public/language/ms/modules.json index 3278bad63d..5f49a6dddf 100644 --- a/public/language/ms/modules.json +++ b/public/language/ms/modules.json @@ -27,7 +27,7 @@ "bootbox.ok": "Ok", "bootbox.cancel": "Batal", "bootbox.confirm": "Pasti", - "cover.dragging_title": "Cover Photo Positioning", - "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"", - "cover.saved": "Cover photo image and position saved" + "cover.dragging_title": "Kedudukan Gambar Muka", + "cover.dragging_message": "Seret gambar muka ke kedudukan yang diingini dan klik \"Simpan\"", + "cover.saved": "Gambar muka dan kedudukan disimpan" } \ No newline at end of file diff --git a/public/language/ms/pages.json b/public/language/ms/pages.json index e6fe498b9d..5658d8b244 100644 --- a/public/language/ms/pages.json +++ b/public/language/ms/pages.json @@ -37,5 +37,5 @@ "account/watched": "Topik Diperhati Oleh %1", "maintenance.text": "%1 sedang berada dalam mod pembaikpulihan. Sila cuba lagi nanti.", "maintenance.messageIntro": "Tambahan, admin meninggalkan mesej ini :", - "throttled.text": "%1 is currently unavailable due to excessive load. Please come back another time." + "throttled.text": "%1 tiada buat masa ini kerana permintaan yang berlebihan. Sila datang lagi lain kali." } \ No newline at end of file diff --git a/public/language/ms/topic.json b/public/language/ms/topic.json index a432260a2b..5ec84f65fd 100644 --- a/public/language/ms/topic.json +++ b/public/language/ms/topic.json @@ -96,11 +96,11 @@ "newest_to_oldest": "Baru ke Lama", "most_votes": "Terbanyak Undi", "most_posts": "Terbanyak Kiriman", - "stale.title": "Create new topic instead?", - "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", - "stale.create": "Create a new topic", - "stale.reply_anyway": "Reply to this topic anyway", - "stale.link_back": "Re: [%1](%2)", + "stale.title": "Bukan topik baru?", + "stale.warning": "Topik yang anda nak balas agak lapuk. Adakah anda ingin buka topik baru dan rujukkan topik ini dalam balasan anda?", + "stale.create": "Buka topik baru", + "stale.reply_anyway": "Tetap balas topik ini", + "stale.link_back": "Bls: [%1](%2)", "spam": "Spam", "offensive": "Menyinggung", "custom-flag-reason": "Nyatakan alasan anda" diff --git a/public/language/ms/user.json b/public/language/ms/user.json index f073c8a168..ada284b502 100644 --- a/public/language/ms/user.json +++ b/public/language/ms/user.json @@ -30,7 +30,7 @@ "signature": "Tandatangan", "birthday": "Tarikh lahir", "chat": "Bersembang", - "chat_with": "Chat with %1", + "chat_with": "Sembang dengan %1", "follow": "Ikuti", "unfollow": "Henti mengikuti", "more": "Lagi", @@ -58,7 +58,7 @@ "upload_picture": "Muatnaik gambar", "upload_a_picture": "Muatnaik sekeping gambar", "remove_uploaded_picture": "Buang Gambar Yang Dimuatnaik", - "image_spec": "You may only upload PNG, JPG, or BMP files", + "image_spec": "Anda hanya boleh muatnaik fail PNG, JPG atau BMP sahaja", "settings": "Tetapan", "show_email": "Tunjukkan emel saya", "show_fullname": "Tunjukkan Nama Penuh", @@ -92,11 +92,11 @@ "grouptitle": "Pilih nama kumpulan yang anda ingin tunjukkan", "no-group-title": "Tiada nama kumpulan", "select-skin": "Pilih skin", - "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.", - "custom_route": "Custom Homepage Route", - "custom_route_help": "Enter a route name here, without any preceding slash (e.g. \"recent\", or \"popular\")", + "select-homepage": "Pilih Laman Utama", + "homepage": "Laman Utama", + "homepage_description": "Pilih satu halaman untuk digunakan sebagai Laman Utama forum atau 'Tiada' untuk guna tetapan lalai", + "custom_route": "Laluan Laman Utama Tersuai", + "custom_route_help": "Masukkan nama laluan disini, tanpa garis miring (cth: \"terkini\", atau \"popular\")", "sso.title": "Servis Satu Log Masuk", "sso.associated": "Associated with", "sso.not-associated": "Click here to associate with" diff --git a/public/language/nb/error.json b/public/language/nb/error.json index f80fcbe6cd..828d5f3179 100644 --- a/public/language/nb/error.json +++ b/public/language/nb/error.json @@ -48,7 +48,6 @@ "not-enough-tags": "Ikke nok emneord. Emner må ha minst %1.", "too-many-tags": "For mange emneord. Emner kan ikke ha flere enn %1.", "file-too-big": "Største tillatte filstørrelse er %1 kB – vennligst last opp en mindre fil", - "cant-vote-self-post": "Du kan ikke stemme på ditt eget innlegg", "already-favourited": "Du har allerede favorittmerket dette innlegget", "already-unfavourited": "Du har allerede avfavorisert dette innlegget", "cant-ban-other-admins": "Du kan ikke utestenge andre administratorer!", diff --git a/public/language/nl/error.json b/public/language/nl/error.json index 80ab25b776..34dc9092e5 100644 --- a/public/language/nl/error.json +++ b/public/language/nl/error.json @@ -48,7 +48,6 @@ "not-enough-tags": "Niet genoeg labels. Onderwerp moeten tenminste %1 label(s) hebben", "too-many-tags": "Teveel labels. Onderwerpen kunnen niet meer dan %1 label(s) hebben", "file-too-big": "Maximum toegestane bestandsgrootte is %1 kB - probeer een kleiner bestand te verzenden", - "cant-vote-self-post": "Het is niet mogelijk om op eigen berichten te stemmen", "already-favourited": "Dit bericht staat al tussen de favorieten", "already-unfavourited": "Dit bericht is al uit favorieten verwijderd", "cant-ban-other-admins": "Het is niet toegestaan andere beheerders te verbannen!", diff --git a/public/language/nl/global.json b/public/language/nl/global.json index 6e9ca559da..916ff8d374 100644 --- a/public/language/nl/global.json +++ b/public/language/nl/global.json @@ -56,8 +56,8 @@ "posted_ago_by_guest": "geplaatst %1 door gast", "posted_ago_by": "geplaatst %1 door %2", "posted_ago": "geplaatst door %1", - "posted_in": "posted in %1", - "posted_in_by": "posted in %1 by %2", + "posted_in": "geplaatst in %1", + "posted_in_by": "geplaatst in %1 door %2", "posted_in_ago": "geplaatst in %1 %2", "posted_in_ago_by": "geplaatst in %1 %2 door %3", "posted_in_ago_by_guest": "geplaatst in %1 %2 door gast", diff --git a/public/language/nl/modules.json b/public/language/nl/modules.json index 3342832755..d31e411c96 100644 --- a/public/language/nl/modules.json +++ b/public/language/nl/modules.json @@ -23,11 +23,11 @@ "composer.discard": "Bericht plaatsen annuleren?", "composer.submit_and_lock": "Plaats een bericht en vergrendel direct het onderwerp", "composer.toggle_dropdown": "Keuzelijst schakelen", - "composer.uploading": "Uploading %1", + "composer.uploading": "Uploaden van %1", "bootbox.ok": "OK", "bootbox.cancel": "Anuleren", "bootbox.confirm": "Bevestig", - "cover.dragging_title": "Cover Photo Positioning", - "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"", - "cover.saved": "Cover photo image and position saved" + "cover.dragging_title": "Omslag Foto Positionering", + "cover.dragging_message": "Sleep de omslag foto voor de gewilde positie en klik \"Opslaan\"", + "cover.saved": "Omslag foto en positie opgeslagen" } \ No newline at end of file diff --git a/public/language/nl/pages.json b/public/language/nl/pages.json index 907033da4c..eaf439dbfd 100644 --- a/public/language/nl/pages.json +++ b/public/language/nl/pages.json @@ -35,7 +35,7 @@ "account/favourites": "Favoriete berichten van %1", "account/settings": "Gebruikersinstellingen", "account/watched": "Berichten die door %1 bekeken worden", - "maintenance.text": "%1 is momenteel in onderhoud. Excuses voor het ongemak en probeer het later nog eens", + "maintenance.text": "%1 is momenteel in onderhoud. Excuses voor het ongemak en probeer het later nog eens.", "maintenance.messageIntro": "Daarnaast heeft de beheerder het volgende bericht achtergelaten:", - "throttled.text": "%1 is currently unavailable due to excessive load. Please come back another time." + "throttled.text": "%1 is momenteel niet beschikbaar door overmatig gebruikt. Excuses voor het ongemak en probeer het later nog eens." } \ No newline at end of file diff --git a/public/language/nl/topic.json b/public/language/nl/topic.json index 4f19d8089c..ad7a62de35 100644 --- a/public/language/nl/topic.json +++ b/public/language/nl/topic.json @@ -96,10 +96,10 @@ "newest_to_oldest": "Meest recente berichten bovenaan", "most_votes": "Meeste aantal stemmen", "most_posts": "Meeste aantal reacties", - "stale.title": "Create new topic instead?", - "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", - "stale.create": "Create a new topic", - "stale.reply_anyway": "Reply to this topic anyway", + "stale.title": "Een nieuw onderwerp maken in de plaats?", + "stale.warning": "Het onderwerp waar je op antwoord is vrij oud. Zou je graag een nieuw onderwerp maken met een referentie naar dit onderwerp in je antwoord?", + "stale.create": "Maak een nieuw onderwerp", + "stale.reply_anyway": "Antwoord toch op dit onderwerp", "stale.link_back": "Re: [%1](%2)", "spam": "Spam", "offensive": "Onbeleefd", diff --git a/public/language/nl/user.json b/public/language/nl/user.json index f7c799b384..1c492e48b2 100644 --- a/public/language/nl/user.json +++ b/public/language/nl/user.json @@ -30,7 +30,7 @@ "signature": "Handtekening", "birthday": "Verjaardag", "chat": "Chat", - "chat_with": "Chat with %1", + "chat_with": "Chatten met %1", "follow": "Volgen", "unfollow": "Ontvolgen", "more": "Meer", @@ -58,7 +58,7 @@ "upload_picture": "Upload afbeelding", "upload_a_picture": "Upload een afbeelding", "remove_uploaded_picture": "Verwijder gëuploade foto", - "image_spec": "You may only upload PNG, JPG, or BMP files", + "image_spec": "U mag alleen PNG, JPG of BMP bestanden uploaden.", "settings": "Instellingen", "show_email": "Inschakelen weergave van e-mailadres op profielpagina", "show_fullname": "Laat mijn volledige naam zien", @@ -92,11 +92,11 @@ "grouptitle": "Selecteer de groepstitel voor weergave", "no-group-title": "Geen groepstitel", "select-skin": "Selecteer een skin", - "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.", - "custom_route": "Custom Homepage Route", - "custom_route_help": "Enter a route name here, without any preceding slash (e.g. \"recent\", or \"popular\")", + "select-homepage": "Selecteer een startpagina", + "homepage": "Startpagina", + "homepage_description": "Selecteer een pagina om te gebruiken als startpagina, of selecteer geen om de standaard pagina te gebruiken.", + "custom_route": "Startpagina Route", + "custom_route_help": "Voer een route naam hier, zonder enige voorafgaande schuine streep (zoals, \"recente\" of \"populaire\")", "sso.title": "Single Sign-on Services", "sso.associated": "Geassocieerd met", "sso.not-associated": "Klik hier om geassocieerd te worden met" diff --git a/public/language/pl/error.json b/public/language/pl/error.json index 48ff2aed48..1b405773f0 100644 --- a/public/language/pl/error.json +++ b/public/language/pl/error.json @@ -48,7 +48,6 @@ "not-enough-tags": "Zbyt mało tagów. Tematy muszą posiadać przynajmniej %1 tag(ów)", "too-many-tags": "Zbyt wiele tagów. Tematy nie mogą posiadać więcej niż %1 tag(ów)", "file-too-big": "Maksymalny dopuszczalny rozmiar pliku to %1kB - prosimy przesłać mniejszy plik", - "cant-vote-self-post": "Nie możesz głosować na własny post", "already-favourited": "Już polubiłeś ten post", "already-unfavourited": "Już przestałeś lubić ten post", "cant-ban-other-admins": "Nie możesz zbanować innych adminów!", diff --git a/public/language/pt_BR/error.json b/public/language/pt_BR/error.json index 94f49133f4..9d4558f368 100644 --- a/public/language/pt_BR/error.json +++ b/public/language/pt_BR/error.json @@ -48,7 +48,6 @@ "not-enough-tags": "Sem tags suficientes. Tópicos devem ter no mínimo %1 tag(s)", "too-many-tags": "Muitas tags. Tópicos não podem ter mais que %1 tag(s)", "file-too-big": "O tamanho máximo permitido de arquivo é de %1 kB - por favor faça upload de um arquivo menor", - "cant-vote-self-post": "Você não pode votar no seu próprio post", "already-favourited": "Você já adicionou este post aos favoritos", "already-unfavourited": "Você já removeu este post dos favoritos", "cant-ban-other-admins": "Você não pode banir outros administradores!", diff --git a/public/language/ro/error.json b/public/language/ro/error.json index 10fb322848..09f303afff 100644 --- a/public/language/ro/error.json +++ b/public/language/ro/error.json @@ -48,7 +48,6 @@ "not-enough-tags": "Not enough tags. Topics must have at least %1 tag(s)", "too-many-tags": "Too many tags. Topics can't have more than %1 tag(s)", "file-too-big": "Maximum allowed file size is %1 kB - please upload a smaller file", - "cant-vote-self-post": "Nu poți vota propriul tău mesaj", "already-favourited": "You have already favourited this post", "already-unfavourited": "You have already unfavourited this post", "cant-ban-other-admins": "Nu poți bana alți administratori!", diff --git a/public/language/ru/error.json b/public/language/ru/error.json index 427654d068..6b93882e6e 100644 --- a/public/language/ru/error.json +++ b/public/language/ru/error.json @@ -48,7 +48,6 @@ "not-enough-tags": "Не хватает тегов. Тема должна иметь как минимум %1 тег(ов)", "too-many-tags": "Слишком много тегов. Тема должна иметь не больше %1 тега(ов)", "file-too-big": "Слишком большой файл. Максимальный размер: %1 Кбайт.", - "cant-vote-self-post": "Вы не можете проголосовать за Ваше сообщение", "already-favourited": "Вы уже добавили это сообщение в избранное", "already-unfavourited": "Вы уже удалили это сообщение из избранного", "cant-ban-other-admins": "Вы не можете забанить других администраторов!", diff --git a/public/language/rw/error.json b/public/language/rw/error.json index 2dda1ee73a..4c2ebfffdd 100644 --- a/public/language/rw/error.json +++ b/public/language/rw/error.json @@ -48,7 +48,6 @@ "not-enough-tags": "Nta tumenyetso turiho duhagije. Ibiganiro bigomba kugira utumenyetso (akamenyetso) nibura %1", "too-many-tags": "Hariho utumenyetso twinshi. Ibiganiro ntibyarenza utumenyetso (akamenyetso) %1", "file-too-big": "Ubunini bwemewe bushoboka bw'ifayilo ni kB %1. Gerageza upakire ifayilo ntoyaho", - "cant-vote-self-post": "Ntabwo wemerewe kwiha amanota", "already-favourited": "Wari wararangije gutonesha iki ngiki", "already-unfavourited": "Wari wararekeye aho gutonesha iki ngiki", "cant-ban-other-admins": "Ntabwo wakwirukana abandi bayobozi!", diff --git a/public/language/sc/error.json b/public/language/sc/error.json index 4cf3ab8f4e..c9751317f1 100644 --- a/public/language/sc/error.json +++ b/public/language/sc/error.json @@ -48,7 +48,6 @@ "not-enough-tags": "Not enough tags. Topics must have at least %1 tag(s)", "too-many-tags": "Too many tags. Topics can't have more than %1 tag(s)", "file-too-big": "Maximum allowed file size is %1 kB - please upload a smaller file", - "cant-vote-self-post": "You cannot vote for your own post", "already-favourited": "You have already favourited this post", "already-unfavourited": "You have already unfavourited this post", "cant-ban-other-admins": "You can't ban other admins!", diff --git a/public/language/sk/email.json b/public/language/sk/email.json index d8114d0231..844562b8a6 100644 --- a/public/language/sk/email.json +++ b/public/language/sk/email.json @@ -1,32 +1,32 @@ { - "password-reset-requested": "Password Reset Requested - %1!", - "welcome-to": "Welcome to %1", - "invite": "Invitation from %1", - "greeting_no_name": "Hello", - "greeting_with_name": "Hello %1", - "welcome.text1": "Thank you for registering with %1!", - "welcome.text2": "To fully activate your account, we need to verify that you own the email address you registered with.", - "welcome.text3": "An administrator has accepted your registration application. You can login with your username/password now.", - "welcome.cta": "Click here to confirm your email address", - "invitation.text1": "%1 has invited you to join %2", - "invitation.ctr": "Click here to create your account.", - "reset.text1": "We received a request to reset your password, possibly because you have forgotten it. If this is not the case, please ignore this email.", - "reset.text2": "To continue with the password reset, please click on the following link:", - "reset.cta": "Click here to reset your password", - "reset.notify.subject": "Password successfully changed", - "reset.notify.text1": "We are notifying you that on %1, your password was changed successfully.", - "reset.notify.text2": "If you did not authorise this, please notify an administrator immediately.", - "digest.notifications": "You have unread notifications from %1:", - "digest.latest_topics": "Latest topics from %1", - "digest.cta": "Click here to visit %1", - "digest.unsub.info": "This digest was sent to you due to your subscription settings.", - "digest.no_topics": "There have been no active topics in the past %1", - "notif.chat.subject": "New chat message received from %1", - "notif.chat.cta": "Click here to continue the conversation", - "notif.chat.unsub.info": "This chat notification was sent to you due to your subscription settings.", - "notif.post.cta": "Click here to read the full topic", - "notif.post.unsub.info": "This post notification was sent to you due to your subscription settings.", - "test.text1": "This is a test email to verify that the emailer is set up correctly for your NodeBB.", - "unsub.cta": "Click here to alter those settings", - "closing": "Thanks!" + "password-reset-requested": "Vyžiadaná obnova hesla - %1!", + "welcome-to": "Vitajte %1", + "invite": "Pozvánka od %1", + "greeting_no_name": "Ahoj", + "greeting_with_name": "Ahoj %1", + "welcome.text1": "Ďakujeme za registráciu s %1!", + "welcome.text2": "Váš účet bude aktivovaný po overení Vašej email adresy.", + "welcome.text3": "Administrátor prijal Vašu registráciu. Môžete sa prihlásiť na svoj účet.", + "welcome.cta": "Kliknite sem pre potvrdenie Vašej email adresy", + "invitation.text1": "%1 Vás pozval aby ste sa pridali %2", + "invitation.ctr": "Kliknite sem pre vytvorenie účtu", + "reset.text1": "Obdržali sme žiadosť o obnovu Vášho hesla. Ak ste o zmenu hesla nežiadali, prosím ignorujte tento email.", + "reset.text2": "Pre pokračovanie v obnove hesla, kliknite na nasledovný odkaz:", + "reset.cta": "Kliknite sem pre obnovu hesla", + "reset.notify.subject": "Heslo bolo úspešne zmenené", + "reset.notify.text1": "Oznamujeme že %1, bolo Vaše heslo úspešne zmenené.", + "reset.notify.text2": "Ak ste o to nežiadali, kontaktujte čo najskôr administrátora.", + "digest.notifications": "Máte neprečitané upozornenia od %1:", + "digest.latest_topics": "Najnovšie diskusie od %1", + "digest.cta": "Kliknite sem a navštívte %1", + "digest.unsub.info": "Tento oznam ste prijali na základe Vašich nastavení účtu.", + "digest.no_topics": "Neboli žadne aktívne diskusie za posledných %1", + "notif.chat.subject": "Máte novú správu od %1", + "notif.chat.cta": "Kliknite sem pre pokračovanie v konverzácii", + "notif.chat.unsub.info": "Toto upozornenie o správach ste prijali na základe Vašich nastavení účtu.", + "notif.post.cta": "Kliknite sem pre zobrazenie celej diskusie", + "notif.post.unsub.info": "Toto upozornenie o príspevkoch ste prijali na základe Vašich nastavení účtu.", + "test.text1": "Toto je skúšobný email na overenie funkčnosti email aplikácie Vášho NodeBB fóra.", + "unsub.cta": "Kliknite sem pre zmenu týchto nastavení", + "closing": "Ďakujeme!" } \ No newline at end of file diff --git a/public/language/sk/error.json b/public/language/sk/error.json index c0fbf78eeb..d9f7faba24 100644 --- a/public/language/sk/error.json +++ b/public/language/sk/error.json @@ -48,7 +48,6 @@ "not-enough-tags": "Not enough tags. Topics must have at least %1 tag(s)", "too-many-tags": "Too many tags. Topics can't have more than %1 tag(s)", "file-too-big": "Maximum allowed file size is %1 kB - please upload a smaller file", - "cant-vote-self-post": "Nedá sa hlasovať za vlastný príspevok", "already-favourited": "You have already favourited this post", "already-unfavourited": "You have already unfavourited this post", "cant-ban-other-admins": "Nemožte zakázať druhých adminov.", diff --git a/public/language/sk/groups.json b/public/language/sk/groups.json index dac30e51b8..2b57a16493 100644 --- a/public/language/sk/groups.json +++ b/public/language/sk/groups.json @@ -1,7 +1,7 @@ { "groups": "Groups", - "view_group": "View Group", - "owner": "Group Owner", + "view_group": "Zobraz skupinu", + "owner": "Majiteľ skupiny", "new_group": "Create New Group", "no_groups_found": "There are no groups to see", "pending.accept": "Accept", diff --git a/public/language/sk/language.json b/public/language/sk/language.json index 8949fa5f3b..674748a327 100644 --- a/public/language/sk/language.json +++ b/public/language/sk/language.json @@ -1,5 +1,5 @@ { - "name": "Slovak", + "name": "Anglicky (Anglicko/Kanada)", "code": "sk", "dir": "ltr" } \ No newline at end of file diff --git a/public/language/sk/modules.json b/public/language/sk/modules.json index 655385ee82..6849172112 100644 --- a/public/language/sk/modules.json +++ b/public/language/sk/modules.json @@ -1,10 +1,10 @@ { "chat.chatting_with": "Rozhovor s ", - "chat.placeholder": "Type chat message here, press enter to send", + "chat.placeholder": "Sem napíšte správu, správa sa odošle po stlačení 'enter'", "chat.send": "Odoslať", "chat.no_active": "Nemáte žiadne aktívne konverzácie.", "chat.user_typing": "%1 práve píše ...", - "chat.user_has_messaged_you": "%1 má pre Vás správu.", + "chat.user_has_messaged_you": "%1 Vám zaslal správu.", "chat.see_all": "See all chats", "chat.no-messages": "Please select a recipient to view chat message history", "chat.recent-chats": "Recent Chats", diff --git a/public/language/sk/notifications.json b/public/language/sk/notifications.json index eff3d2edf5..b44a9af1be 100644 --- a/public/language/sk/notifications.json +++ b/public/language/sk/notifications.json @@ -1,9 +1,9 @@ { "title": "Notifikácie", "no_notifs": "Nemáte žiadne nové notifikácie", - "see_all": "See all notifications", + "see_all": "Zobraz všetky upozornenia", "mark_all_read": "Mark all notifications read", - "back_to_home": "Back to %1", + "back_to_home": "Naspäť na %1", "outgoing_link": "Odkaz mimo fórum", "outgoing_link_message": "You are now leaving %1.", "continue_to": "Continue to %1", diff --git a/public/language/sk/pages.json b/public/language/sk/pages.json index 383796a342..e736d474cc 100644 --- a/public/language/sk/pages.json +++ b/public/language/sk/pages.json @@ -1,8 +1,8 @@ { - "home": "Home", + "home": "Domov", "unread": "Neprečítané príspevky", - "popular-day": "Popular topics today", - "popular-week": "Popular topics this week", + "popular-day": "Dnešné populárne témy", + "popular-week": "Populárne témy tohto týždňa", "popular-month": "Popular topics this month", "popular-alltime": "All time popular topics", "recent": "Najnovšie príspevky", @@ -13,7 +13,7 @@ "users/map": "User Map", "users/search": "User Search", "notifications": "Notifikácie", - "tags": "Tags", + "tags": "Tagy", "tag": "Topics tagged under \"%1\"", "register": "Register an account", "login": "Login to your account", diff --git a/public/language/sk/recent.json b/public/language/sk/recent.json index 123d7f43ed..021be5650e 100644 --- a/public/language/sk/recent.json +++ b/public/language/sk/recent.json @@ -3,7 +3,7 @@ "day": "Deň", "week": "Týždeň", "month": "Mesiac", - "year": "Year", + "year": "Rok", "alltime": "All Time", "no_recent_topics": "Nie sú žiadne posledné témy", "no_popular_topics": "There are no popular topics.", diff --git a/public/language/sk/reset_password.json b/public/language/sk/reset_password.json index cafdfccd4e..b7a0650b70 100644 --- a/public/language/sk/reset_password.json +++ b/public/language/sk/reset_password.json @@ -3,7 +3,7 @@ "update_password": "Upraviť heslo", "password_changed.title": "Heslo zmenené", "password_changed.message": "

Heslo bolo úspešne zmenené, prihláste sa znovu prosím.", - "wrong_reset_code.title": "Zlý kód", + "wrong_reset_code.title": "Nesprávny kód na obnovenie", "wrong_reset_code.message": "Bol zadaný zlý kód. Zadajte ho prosím znovu, alebo si nechajte poslať nový.", "new_password": "Nové heslo", "repeat_password": "Potvrdenie hesla", diff --git a/public/language/sk/search.json b/public/language/sk/search.json index 277c0a32bc..7905005be8 100644 --- a/public/language/sk/search.json +++ b/public/language/sk/search.json @@ -1,7 +1,7 @@ { "results_matching": "%1 result(s) matching \"%2\", (%3 seconds)", "no-matches": "No matches found", - "advanced-search": "Advanced Search", + "advanced-search": "Rozšírené hľadanie", "in": "In", "titles": "Titles", "titles-posts": "Titles and Posts", diff --git a/public/language/sk/success.json b/public/language/sk/success.json index 3f5bb0b0a7..626f0bcd9f 100644 --- a/public/language/sk/success.json +++ b/public/language/sk/success.json @@ -2,5 +2,5 @@ "success": "Úspech.", "topic-post": "Úspešne ste pridali nový príspevok.", "authentication-successful": "Autorizácia prebehla úspešne.", - "settings-saved": "Nadstavenia uložené." + "settings-saved": "Nastavenia uložené." } \ No newline at end of file diff --git a/public/language/sk/tags.json b/public/language/sk/tags.json index c416d8d4ec..3b3f6d8718 100644 --- a/public/language/sk/tags.json +++ b/public/language/sk/tags.json @@ -1,7 +1,7 @@ { "no_tag_topics": "There are no topics with this tag.", - "tags": "Tags", + "tags": "Tagy", "enter_tags_here": "Enter tags here, between %1 and %2 characters each.", - "enter_tags_here_short": "Enter tags...", - "no_tags": "There are no tags yet." + "enter_tags_here_short": "Zadaj tagy...", + "no_tags": "Nie sú tu zatiaľ žiadne tagy" } \ No newline at end of file diff --git a/public/language/sk/user.json b/public/language/sk/user.json index 50d1ee152f..83b60897f6 100644 --- a/public/language/sk/user.json +++ b/public/language/sk/user.json @@ -2,8 +2,8 @@ "banned": "Zakázaný", "offline": "Offline", "username": "Uživateľské meno", - "joindate": "Join Date", - "postcount": "Post Count", + "joindate": "Dátum registrácie", + "postcount": "Počet príspevkov", "email": "Email", "confirm_email": "Confirm Email", "ban_account": "Ban Account", diff --git a/public/language/sk/users.json b/public/language/sk/users.json index 0b4cad215b..1de5062fac 100644 --- a/public/language/sk/users.json +++ b/public/language/sk/users.json @@ -16,6 +16,6 @@ "popular_topics": "Popular Topics", "unread_topics": "Unread Topics", "categories": "Categories", - "tags": "Tags", + "tags": "Tagy", "map": "Map" } \ No newline at end of file diff --git a/public/language/sl/error.json b/public/language/sl/error.json index cbe0e2eb20..b4b0dc8897 100644 --- a/public/language/sl/error.json +++ b/public/language/sl/error.json @@ -48,7 +48,6 @@ "not-enough-tags": "Ni dovolj oznak. Tema mora vsebovati vsaj %1 znak(ov)", "too-many-tags": "Preveč oznak. Tema ne sme imeti več kot %1 znak(ov)", "file-too-big": "Največja dovoljena velikost datoteke je %1 kB - prosimo naložite manjšo datoteko", - "cant-vote-self-post": "Ne morete glasovati za svojo objavo", "already-favourited": "To objavo ste že dodali med priljubljene", "already-unfavourited": "To objavo ste že odstranili iz priljubljenih", "cant-ban-other-admins": "Ne morete blokirati drugih administratorjev!", diff --git a/public/language/sr/error.json b/public/language/sr/error.json index 3384a2f3cd..cb440dbe73 100644 --- a/public/language/sr/error.json +++ b/public/language/sr/error.json @@ -48,7 +48,6 @@ "not-enough-tags": "Not enough tags. Topics must have at least %1 tag(s)", "too-many-tags": "Too many tags. Topics can't have more than %1 tag(s)", "file-too-big": "Maximum allowed file size is %1 kB - please upload a smaller file", - "cant-vote-self-post": "You cannot vote for your own post", "already-favourited": "You have already favourited this post", "already-unfavourited": "You have already unfavourited this post", "cant-ban-other-admins": "You can't ban other admins!", diff --git a/public/language/sv/error.json b/public/language/sv/error.json index 4eca880dd4..5692e2b5a6 100644 --- a/public/language/sv/error.json +++ b/public/language/sv/error.json @@ -48,7 +48,6 @@ "not-enough-tags": "Ej tillräckligt många märkord. Ämnen måste ha minst %1 märkord", "too-many-tags": "För många märkord. Ämnen kan ej har mer än %1 märkord", "file-too-big": "Den maximalt tillåtna filstorleken är %1 kB - ladda upp en mindre fil", - "cant-vote-self-post": "Du kan inte rösta på ditt eget inlägg.", "already-favourited": "Du har redan favoriserat det här inlägget", "already-unfavourited": "Du har redan avfavoriserat det här inlägget", "cant-ban-other-admins": "Du kan inte bannlysa andra administratörer.", diff --git a/public/language/th/error.json b/public/language/th/error.json index de4b2a8bc3..3194dc9366 100644 --- a/public/language/th/error.json +++ b/public/language/th/error.json @@ -48,7 +48,6 @@ "not-enough-tags": "Not enough tags. Topics must have at least %1 tag(s)", "too-many-tags": "Too many tags. Topics can't have more than %1 tag(s)", "file-too-big": "Maximum allowed file size is %1 kB - please upload a smaller file", - "cant-vote-self-post": "You cannot vote for your own post", "already-favourited": "You have already favourited this post", "already-unfavourited": "You have already unfavourited this post", "cant-ban-other-admins": "You can't ban other admins!", diff --git a/public/language/tr/error.json b/public/language/tr/error.json index 1d3fbce4c7..25bac5bd4b 100644 --- a/public/language/tr/error.json +++ b/public/language/tr/error.json @@ -48,7 +48,6 @@ "not-enough-tags": "Yeterince etiket yok. Başlılar en az %1 etikete sahip olmalıdır", "too-many-tags": "Etiket sayısı çok fazla. Başlıklar en fazla %1 etikete sahip olabilir", "file-too-big": "İzin verilen en büyük dosya boyutu %1 kb - lütfen daha küçük bir dosya yükleyin", - "cant-vote-self-post": "Kendi iletinize oy veremezsiniz", "already-favourited": "Bu iletiyi zaten favorilerinize eklediniz", "already-unfavourited": "Bu iletiyi zaten favorilerinizden çıkardınız", "cant-ban-other-admins": "Başka yöneticileri yasaklayamazsınız!", diff --git a/public/language/tr/modules.json b/public/language/tr/modules.json index da7c7a156c..00bdcf3fd3 100644 --- a/public/language/tr/modules.json +++ b/public/language/tr/modules.json @@ -27,7 +27,7 @@ "bootbox.ok": "Tamam", "bootbox.cancel": "İptal", "bootbox.confirm": "Onayla", - "cover.dragging_title": "Cover Photo Positioning", - "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"", - "cover.saved": "Cover photo image and position saved" + "cover.dragging_title": "Kapak Görseli Konumlandırma", + "cover.dragging_message": "Kapak görselini istediğin pozisyona getir ve kaydet", + "cover.saved": "Kapak görseli ve pozisyonu kaydedildi" } \ No newline at end of file diff --git a/public/language/tr/notifications.json b/public/language/tr/notifications.json index 052d30bcaa..6abf6053fd 100644 --- a/public/language/tr/notifications.json +++ b/public/language/tr/notifications.json @@ -12,7 +12,7 @@ "you_have_unread_notifications": "Okunmamış bildirimleriniz var.", "new_message_from": "%1 size bir mesaj gönderdi", "upvoted_your_post_in": "%1 iletinizi beğendi. %2", - "moved_your_post": "%1 has moved your post to %2", + "moved_your_post": "%1 senin iletin %2 taşındı", "moved_your_topic": "%1 has moved %2", "favourited_your_post_in": "%1 iletinizi favorilerine ekledi. %2.", "user_flagged_post_in": "%1 bir iletiyi bayrakladı. %2", diff --git a/public/language/tr/topic.json b/public/language/tr/topic.json index d8f6627461..7aa94ffc10 100644 --- a/public/language/tr/topic.json +++ b/public/language/tr/topic.json @@ -96,9 +96,9 @@ "newest_to_oldest": "En yeniden en eskiye", "most_votes": "En çok oy", "most_posts": "En sık yayın", - "stale.title": "Create new topic instead?", + "stale.title": "Bunun yerine yeni bir başlık oluşturun?", "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", - "stale.create": "Create a new topic", + "stale.create": "Yeni bir başlık yarat", "stale.reply_anyway": "Reply to this topic anyway", "stale.link_back": "Re: [%1](%2)", "spam": "Gereksiz", diff --git a/public/language/tr/user.json b/public/language/tr/user.json index 861dfb90b5..a87f8bda93 100644 --- a/public/language/tr/user.json +++ b/public/language/tr/user.json @@ -30,7 +30,7 @@ "signature": "İmza", "birthday": "Doğum Tarihi", "chat": "Sohbet", - "chat_with": "Chat with %1", + "chat_with": "%1 ile Sohbet", "follow": "Takip Et", "unfollow": "Takip etme", "more": "Daha Fazla", @@ -58,7 +58,7 @@ "upload_picture": "Resim Yükle", "upload_a_picture": "Bir Resim Yükle", "remove_uploaded_picture": "Yüklenmiş fotoğrafı kaldır", - "image_spec": "You may only upload PNG, JPG, or BMP files", + "image_spec": "Sadece PNG, JPG veya BMP dosyalarını yükleyebilirsin.", "settings": "Ayarlar", "show_email": "E-postamı göster", "show_fullname": "Tam ismimi göster", @@ -92,11 +92,11 @@ "grouptitle": "Göstermek istediğiniz gurup başlığını seçin", "no-group-title": "Grup başlığı yok", "select-skin": "Bir deri şeçin", - "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.", - "custom_route": "Custom Homepage Route", - "custom_route_help": "Enter a route name here, without any preceding slash (e.g. \"recent\", or \"popular\")", + "select-homepage": "Bir anasayfa seçin", + "homepage": "Anasayfa", + "homepage_description": "Anasayfa olarak kullanacağınız sayfayı seçin veya \"Hiçbiri\" diyerek varsayılan sayfayı kullanın.", + "custom_route": "Özel anasayfa yolu", + "custom_route_help": "Herhangi bir eğik çizgi olmadan, burada bir yol adını girin (örneğin \"yeniler\" veya \"popüler\")", "sso.title": "Tek giriş servisleri", "sso.associated": "Birleştirilmiş", "sso.not-associated": "Birleştirmek için buraya tıklayın" diff --git a/public/language/vi/error.json b/public/language/vi/error.json index 52652fc78b..af9159d7b1 100644 --- a/public/language/vi/error.json +++ b/public/language/vi/error.json @@ -48,7 +48,6 @@ "not-enough-tags": "Not enough tags. Topics must have at least %1 tag(s)", "too-many-tags": "Too many tags. Topics can't have more than %1 tag(s)", "file-too-big": "Maximum allowed file size is %1 kB - please upload a smaller file", - "cant-vote-self-post": "Bạn không thể vote cho chính bài viết của bạn", "already-favourited": "Bạn đã bấm yêu thích cho bài viết này rồi", "already-unfavourited": "Bạn đã bỏ thích bài này rồi", "cant-ban-other-admins": "Bạn không thể ban được các admin khác", diff --git a/public/language/zh_CN/error.json b/public/language/zh_CN/error.json index 19a90c10df..7af774c65f 100644 --- a/public/language/zh_CN/error.json +++ b/public/language/zh_CN/error.json @@ -48,7 +48,6 @@ "not-enough-tags": "没有足够的话题标签。主题必须有至少 %1 个话题标签", "too-many-tags": "过多话题标签。主题不能超过 %1 个话题标签", "file-too-big": "上传文件的大小限制为 %1 KB - 请缩减文件大小", - "cant-vote-self-post": "您不能给自己的帖子投票。", "already-favourited": "您已收藏该帖", "already-unfavourited": "您已取消收藏此帖", "cant-ban-other-admins": "您不能封禁其他管理员!", @@ -59,8 +58,8 @@ "group-name-too-short": "小组名太短", "group-already-exists": "小组已存在", "group-name-change-not-allowed": "不允许更改小组名称", - "group-already-member": "Already part of this group", - "group-not-member": "Not a member of this group", + "group-already-member": "已经是此小组的成员", + "group-not-member": "不是此小组的成员", "group-needs-owner": "小组需要指定至少一名组长", "group-already-invited": "您已邀请该用户", "group-already-requested": "已提交您的请求", diff --git a/public/language/zh_CN/global.json b/public/language/zh_CN/global.json index e0709a7cb2..37ddb13778 100644 --- a/public/language/zh_CN/global.json +++ b/public/language/zh_CN/global.json @@ -56,8 +56,8 @@ "posted_ago_by_guest": "游客发布于 %1", "posted_ago_by": "%2 发布于 %1", "posted_ago": "发布于 %1", - "posted_in": "posted in %1", - "posted_in_by": "posted in %1 by %2", + "posted_in": "发布在 %1", + "posted_in_by": "%2 发布于 %1", "posted_in_ago": "于 %2 发布到 %1 版", "posted_in_ago_by": "%3 于 %1 发布到 %2", "posted_in_ago_by_guest": "游客于 %1 发布到 %2", diff --git a/public/language/zh_CN/modules.json b/public/language/zh_CN/modules.json index 839b1e3bc3..aae25f0135 100644 --- a/public/language/zh_CN/modules.json +++ b/public/language/zh_CN/modules.json @@ -23,11 +23,11 @@ "composer.discard": "确定想要取消此帖?", "composer.submit_and_lock": "提交并锁定", "composer.toggle_dropdown": "标为 Dropdown", - "composer.uploading": "Uploading %1", + "composer.uploading": "正在上传 %1", "bootbox.ok": "确认", "bootbox.cancel": "取消", "bootbox.confirm": "确认", - "cover.dragging_title": "Cover Photo Positioning", - "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"", - "cover.saved": "Cover photo image and position saved" + "cover.dragging_title": "设置封面照片位置", + "cover.dragging_message": "拖拽封面照片到期望的位置,然后点击“保存”", + "cover.saved": "封面照片和位置已保存" } \ No newline at end of file diff --git a/public/language/zh_CN/notifications.json b/public/language/zh_CN/notifications.json index af7275b272..7c63ac062b 100644 --- a/public/language/zh_CN/notifications.json +++ b/public/language/zh_CN/notifications.json @@ -12,8 +12,8 @@ "you_have_unread_notifications": "您有未读的通知。", "new_message_from": "来自 %1 的新消息", "upvoted_your_post_in": "%1%2 点赞了您的帖子。", - "moved_your_post": "%1 has moved your post to %2", - "moved_your_topic": "%1 has moved %2", + "moved_your_post": "您的帖子已被 %1 移动到了 %2", + "moved_your_topic": "%1 移动到了 %2", "favourited_your_post_in": "%1%2 收藏了您的帖子。", "user_flagged_post_in": "%1%2 标记了一个帖子", "user_posted_to": "%1 回复了:%2", diff --git a/public/language/zh_CN/pages.json b/public/language/zh_CN/pages.json index 52b4cdb255..fdfb4842be 100644 --- a/public/language/zh_CN/pages.json +++ b/public/language/zh_CN/pages.json @@ -24,9 +24,9 @@ "chats": "聊天", "chat": "与 %1 聊天", "account/edit": "正在编辑 \"%1\"", - "account/edit/password": "Editing password of \"%1\"", - "account/edit/username": "Editing username of \"%1\"", - "account/edit/email": "Editing email of \"%1\"", + "account/edit/password": "正在编辑 \"%1\" 的密码", + "account/edit/username": "正在编辑 \"%1\" 的用户名", + "account/edit/email": "正在编辑 \"%1\" 的电子邮箱", "account/following": "%1 关注", "account/followers": "关注 %1 的人", "account/posts": "%1 发布的帖子", @@ -37,5 +37,5 @@ "account/watched": "主题已被 %1 关注", "maintenance.text": "%1 正在进行维护。请稍后再来。", "maintenance.messageIntro": "此外,管理员留下的消息:", - "throttled.text": "%1 is currently unavailable due to excessive load. Please come back another time." + "throttled.text": "%1 因负荷超载暂不可用。请稍后再来。" } \ No newline at end of file diff --git a/public/language/zh_CN/topic.json b/public/language/zh_CN/topic.json index f5a3f1398d..c9d1abc1b5 100644 --- a/public/language/zh_CN/topic.json +++ b/public/language/zh_CN/topic.json @@ -96,12 +96,12 @@ "newest_to_oldest": "从新到旧", "most_votes": "最多投票", "most_posts": "最多回复", - "stale.title": "Create new topic instead?", - "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", - "stale.create": "Create a new topic", - "stale.reply_anyway": "Reply to this topic anyway", - "stale.link_back": "Re: [%1](%2)", - "spam": "Spam", - "offensive": "Offensive", - "custom-flag-reason": "Enter a flagging reason" + "stale.title": "接受建议,创建新主题?", + "stale.warning": "您回复的主题已经非常老了。开个新帖,然后在新帖中引用这个老帖的内容,可以吗?", + "stale.create": "创建新主题", + "stale.reply_anyway": "仍然回复此帖", + "stale.link_back": "回复: [%1](%2)", + "spam": "垃圾帖", + "offensive": "人身攻击", + "custom-flag-reason": "输入举报原因" } \ No newline at end of file diff --git a/public/language/zh_CN/user.json b/public/language/zh_CN/user.json index 93614b3486..e3a26c299d 100644 --- a/public/language/zh_CN/user.json +++ b/public/language/zh_CN/user.json @@ -30,16 +30,16 @@ "signature": "签名档", "birthday": "生日", "chat": "聊天", - "chat_with": "Chat with %1", + "chat_with": "与 %1 聊天", "follow": "关注", "unfollow": "取消关注", "more": "更多", "profile_update_success": "资料已经成功更新。", "change_picture": "更改头像", - "change_username": "Change Username", - "change_email": "Change Email", + "change_username": "更改用户名", + "change_email": "更改电子邮箱", "edit": "编辑", - "default_picture": "Default Icon", + "default_picture": "缺省图标", "uploaded_picture": "已有头像", "upload_new_picture": "上传新头像", "upload_new_picture_from_url": "从 URL 上传新图片", @@ -58,7 +58,7 @@ "upload_picture": "上传头像", "upload_a_picture": "上传头像", "remove_uploaded_picture": "删除已上传的头像", - "image_spec": "You may only upload PNG, JPG, or BMP files", + "image_spec": "您只可以上传PNG、JPG或 BMP 格式的文件", "settings": "设置", "show_email": "显示我的电子邮箱", "show_fullname": "显示我的全名", @@ -92,11 +92,11 @@ "grouptitle": "选择展示的小组称号", "no-group-title": "不展示小组称号", "select-skin": "选择皮肤", - "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.", - "custom_route": "Custom Homepage Route", - "custom_route_help": "Enter a route name here, without any preceding slash (e.g. \"recent\", or \"popular\")", + "select-homepage": "选择首页", + "homepage": "首页", + "homepage_description": "选择一个页面作为论坛的首页,否则设置为 ‘空’ 使用缺省首页。", + "custom_route": "自定义首页路由", + "custom_route_help": "输入路由名称,前面不需要斜杠 ( 例如, \"recent\" 或 \"popular\" )", "sso.title": "单点登录服务", "sso.associated": "关联到", "sso.not-associated": "点击这里关联" diff --git a/public/language/zh_TW/error.json b/public/language/zh_TW/error.json index c93171dc61..6cb00eb735 100644 --- a/public/language/zh_TW/error.json +++ b/public/language/zh_TW/error.json @@ -48,7 +48,6 @@ "not-enough-tags": "Not enough tags. Topics must have at least %1 tag(s)", "too-many-tags": "Too many tags. Topics can't have more than %1 tag(s)", "file-too-big": "Maximum allowed file size is %1 kB - please upload a smaller file", - "cant-vote-self-post": "你不能對自己的文章說讚!", "already-favourited": "你已經收藏了這篇文章", "already-unfavourited": "你已放棄收藏這篇文章", "cant-ban-other-admins": "您無法禁止其他的管理員!", From 6b21e34c762f86abe011844e4291ece3a7581485 Mon Sep 17 00:00:00 2001 From: Schamper Date: Wed, 25 Nov 2015 21:19:31 +0100 Subject: [PATCH 74/78] Also clean the minifier process options if the --debug option is used --- src/meta/js.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/meta/js.js b/src/meta/js.js index 75b82c856a..936d1da988 100644 --- a/src/meta/js.js +++ b/src/meta/js.js @@ -129,7 +129,7 @@ module.exports = function(Meta) { * Check if the parent process is running with the debug option --debug (or --debug-brk) */ var forkProcessParams = {}; - if(global.v8debug) { + if(global.v8debug || process.execArgv.indexOf('--debug') != -1) { /** * use the line below if you want to debug minifier.js script too (or even --debug-brk option, but * you'll have to setup your debugger and connect to the forked process) From 124b79f6aad79dbae0bd46c468ee892fd5a293cc Mon Sep 17 00:00:00 2001 From: barisusakli Date: Wed, 25 Nov 2015 16:00:57 -0500 Subject: [PATCH 75/78] fix user search pagination --- src/socket.io/user/search.js | 9 ++++++++- src/user/search.js | 24 +++++------------------- 2 files changed, 13 insertions(+), 20 deletions(-) diff --git a/src/socket.io/user/search.js b/src/socket.io/user/search.js index 9cce95e180..c59b2798d6 100644 --- a/src/socket.io/user/search.js +++ b/src/socket.io/user/search.js @@ -5,6 +5,7 @@ var async = require('async'); var db = require('../../database'); var user = require('../../user'); var meta = require('../../meta'); +var pagination = require('../../pagination'); module.exports = function(SocketUser) { SocketUser.search = function(socket, data, callback) { @@ -21,7 +22,13 @@ module.exports = function(SocketUser) { sortBy: data.sortBy, onlineOnly: data.onlineOnly, uid: socket.uid - }, callback); + }, function(err, result) { + if (err) { + return callback(err); + } + result.pagination = pagination.create(data.page, result.pageCount); + callback(null, result); + }); }; SocketUser.loadSearchPage = function(socket, data, callback) { diff --git a/src/user/search.js b/src/user/search.js index 322c137738..59a3cd063b 100644 --- a/src/user/search.js +++ b/src/user/search.js @@ -3,7 +3,6 @@ var async = require('async'), meta = require('../meta'), - pagination = require('../pagination'), plugins = require('../plugins'), db = require('../database'); @@ -42,9 +41,11 @@ module.exports = function(User) { searchResult.matchCount = uids.length; if (paginate) { - var pagination = User.paginate(page, uids); - uids = pagination.data; - searchResult.pagination = pagination.pagination; + var resultsPerPage = parseInt(meta.config.userSearchResultsPerPage, 10) || 20; + var start = Math.max(0, page - 1) * resultsPerPage; + var stop = start + resultsPerPage; + searchResult.pageCount = Math.ceil(uids.length / resultsPerPage); + uids = uids.slice(start, stop); } User.getUsers(uids, uid, next); @@ -57,21 +58,6 @@ module.exports = function(User) { ], callback); }; - User.paginate = function(page, data) { - var resultsPerPage = parseInt(meta.config.userSearchResultsPerPage, 10) || 20; - var start = Math.max(0, page - 1) * resultsPerPage; - var stop = start + resultsPerPage; - - var pageCount = Math.ceil(data.length / resultsPerPage); - var currentPage = Math.max(1, Math.ceil((start + 1) / resultsPerPage)); - - return { - pagination: pagination.create(currentPage, pageCount), - pageCount: pageCount, - data: data.slice(start, stop) - }; - }; - function findUids(query, searchBy, callback) { if (!query) { return callback(null, []); From e232d9e198fe711a8d4e9218ca3cb1b1ab5871be Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Wed, 25 Nov 2015 16:44:52 -0500 Subject: [PATCH 76/78] Fixed issue where page view counts kept changing ... when they should only really be updated for the hourly pageviews graph. --- public/src/admin/general/dashboard.js | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/public/src/admin/general/dashboard.js b/public/src/admin/general/dashboard.js index 3b9134b10c..7034138a45 100644 --- a/public/src/admin/general/dashboard.js +++ b/public/src/admin/general/dashboard.js @@ -332,6 +332,13 @@ define('admin/general/dashboard', ['semver'], function(semver) { graphs.traffic.scale.xLabels = getDaysArray(until); } else { graphs.traffic.scale.xLabels = getHoursArray(); + + $('#pageViewsThisMonth').html(data.monthlyPageViews.thisMonth); + $('#pageViewsLastMonth').html(data.monthlyPageViews.lastMonth); + $('#pageViewsPastDay').html(data.pastDay); + utils.addCommasToNumbers($('#pageViewsThisMonth')); + utils.addCommasToNumbers($('#pageViewsLastMonth')); + utils.addCommasToNumbers($('#pageViewsPastDay')); } for (var i = 0, ii = data.pageviews.length; i < ii; i++) { @@ -349,13 +356,6 @@ define('admin/general/dashboard', ['semver'], function(semver) { graphs.traffic.update(); currentGraph.units = units; currentGraph.until = until; - - $('#pageViewsThisMonth').html(data.monthlyPageViews.thisMonth); - $('#pageViewsLastMonth').html(data.monthlyPageViews.lastMonth); - $('#pageViewsPastDay').html(data.pastDay); - utils.addCommasToNumbers($('#pageViewsThisMonth')); - utils.addCommasToNumbers($('#pageViewsLastMonth')); - utils.addCommasToNumbers($('#pageViewsPastDay')); }); } From f673f4f186079d0a12834ac41ee95b6d5c772aa6 Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Wed, 25 Nov 2015 16:50:46 -0500 Subject: [PATCH 77/78] :dog: --- public/src/admin/general/dashboard.js | 1 - 1 file changed, 1 deletion(-) diff --git a/public/src/admin/general/dashboard.js b/public/src/admin/general/dashboard.js index 7034138a45..03af04541c 100644 --- a/public/src/admin/general/dashboard.js +++ b/public/src/admin/general/dashboard.js @@ -319,7 +319,6 @@ define('admin/general/dashboard', ['semver'], function(semver) { if (JSON.stringify(graphData.traffic) === JSON.stringify(data)) { return; } - console.log(data); graphData.traffic = data; From c3560f677c095e3b1e86c8679849ca510a24019b Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Thu, 26 Nov 2015 23:28:32 -0500 Subject: [PATCH 78/78] 0.9.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 4d882e231d..90addc82d5 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "nodebb", "license": "GPL-3.0", "description": "NodeBB Forum", - "version": "0.9.0", + "version": "0.9.1", "homepage": "http://www.nodebb.org", "repository": { "type": "git",