From f471a94b7a3c04f02b4b3672c0b4523a8c8287fc Mon Sep 17 00:00:00 2001 From: Ole R Date: Tue, 7 Jun 2016 14:05:13 +0200 Subject: [PATCH 01/29] Up emoji-one --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index fa353168e8..c251ae2aa8 100644 --- a/package.json +++ b/package.json @@ -51,7 +51,7 @@ "nodebb-plugin-composer-default": "4.0.2", "nodebb-plugin-dbsearch": "1.0.1", "nodebb-plugin-emoji-extended": "1.1.0", - "nodebb-plugin-emoji-one": "1.1.4", + "nodebb-plugin-emoji-one": "1.1.5", "nodebb-plugin-markdown": "5.1.5", "nodebb-plugin-mentions": "1.1.2", "nodebb-plugin-soundpack-default": "0.1.6", From 51adcc479cdd2bd428c3c53beaa78733b473d19d Mon Sep 17 00:00:00 2001 From: NodeBB Misty Date: Tue, 7 Jun 2016 09:03:33 -0400 Subject: [PATCH 02/29] Latest translations and fallbacks --- public/language/et/topic.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/public/language/et/topic.json b/public/language/et/topic.json index a9024f4db7..998356d44a 100644 --- a/public/language/et/topic.json +++ b/public/language/et/topic.json @@ -45,9 +45,9 @@ "watching": "Vaatan", "not-watching": "Ei vaata", "ignoring": "Ignoreerin", - "watching.description": "Notify me of new replies.
Show topic in unread.", - "not-watching.description": "Do not notify me of new replies.
Show topic in unread if category is not ignored.", - "ignoring.description": "Do not notify me of new replies.
Do not show topic in unread.", + "watching.description": "Teavita mind uutest vastustest.
Näita teemat lugemata teemade hulgas.", + "not-watching.description": "Ära teavita mind uutest vastustest.
Näita teemat lugemata teemade hulgas, kui kategooria on ignoreeritud.", + "ignoring.description": "Ära teavita mind uutest vastustest.
Ära näita teemat lugemata teemade hulgas.", "thread_tools.title": "Teema tööriistad", "thread_tools.markAsUnreadForAll": "Märgi mitte-loetuks", "thread_tools.pin": "Tõsta esile teema", From 1bcaf7bca3863b2a9aa2a2aacd864b3275300153 Mon Sep 17 00:00:00 2001 From: psychobunny Date: Tue, 7 Jun 2016 09:47:29 -0400 Subject: [PATCH 03/29] up'd the timeout for both default alert toasters --- public/src/app.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/public/src/app.js b/public/src/app.js index 2f61be6994..93837d6e9a 100644 --- a/public/src/app.js +++ b/public/src/app.js @@ -117,7 +117,7 @@ app.cacheBuster = null; title: '[[global:alert.success]]', message: message, type: 'success', - timeout: timeout ? timeout : 2000 + timeout: timeout ? timeout : 5000 }); }; @@ -126,7 +126,7 @@ app.cacheBuster = null; title: '[[global:alert.error]]', message: message, type: 'danger', - timeout: timeout ? timeout : 5000 + timeout: timeout ? timeout : 10000 }); }; From 4c2ee2e7360be070f272c6c447db18a247088f40 Mon Sep 17 00:00:00 2001 From: psychobunny Date: Tue, 7 Jun 2016 11:52:04 -0400 Subject: [PATCH 04/29] closes #4731 --- public/src/client/account/edit.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/public/src/client/account/edit.js b/public/src/client/account/edit.js index 385d5e0ed1..db600a2f55 100644 --- a/public/src/client/account/edit.js +++ b/public/src/client/account/edit.js @@ -174,8 +174,9 @@ define('forum/account/edit', ['forum/account/header', 'uploader', 'translator'], } else { socket.emit('user.deleteAccount', {}, function(err) { if (err) { - app.alertError(err.message); + return app.alertError(err.message); } + window.location.href = config.relative_path + '/'; }); } From 3549ce9873a7bc0f605bed10104aa692651dd9d2 Mon Sep 17 00:00:00 2001 From: psychobunny Date: Tue, 7 Jun 2016 11:57:26 -0400 Subject: [PATCH 05/29] #4731 --- public/language/en_GB/error.json | 1 + 1 file changed, 1 insertion(+) diff --git a/public/language/en_GB/error.json b/public/language/en_GB/error.json index cfbebc4c0a..7e239fb5e2 100644 --- a/public/language/en_GB/error.json +++ b/public/language/en_GB/error.json @@ -79,6 +79,7 @@ "cant-ban-other-admins": "You can't ban other admins!", "cant-remove-last-admin": "You are the only administrator. Add another user as an administrator before removing yourself as admin", + "cant-delete-admin": "Remove administrator privileges from this account before attempting to delete it.", "invalid-image-type": "Invalid image type. Allowed types are: %1", "invalid-image-extension": "Invalid image extension", From 1f3fa3a90f5fc02b3b2dc950b3a340c361206cef Mon Sep 17 00:00:00 2001 From: barisusakli Date: Wed, 8 Jun 2016 10:16:34 +0300 Subject: [PATCH 06/29] closes #4725 --- src/user/approval.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/user/approval.js b/src/user/approval.js index 94e0f097e5..8ccd5192aa 100644 --- a/src/user/approval.js +++ b/src/user/approval.js @@ -128,7 +128,7 @@ module.exports = function(User) { async.parallel([ async.apply(db.sortedSetRemove, 'registration:queue', username), async.apply(db.delete, 'registration:queue:name:' + username) - ], function(err, results) { + ], function(err) { callback(err); }); } @@ -178,11 +178,11 @@ module.exports = function(User) { if (err) { return next(null, user); } - if (response.statusCode === 200) { + if (response.statusCode === 200 && body) { user.spamData = body; - user.usernameSpam = body.username.frequency > 0 || body.username.appears > 0; - user.emailSpam = body.email.frequency > 0 || body.email.appears > 0; - user.ipSpam = body.ip.frequency > 0 || body.ip.appears > 0; + user.usernameSpam = body.username ? (body.username.frequency > 0 || body.username.appears > 0) : true; + user.emailSpam = body.email ? (body.email.frequency > 0 || body.email.appears > 0) : true; + user.ipSpam = body.ip ? (body.ip.frequency > 0 || body.ip.appears > 0) : true; } next(null, user); From c969870cb6ffe76ffebe2dce3febb921c3684987 Mon Sep 17 00:00:00 2001 From: barisusakli Date: Wed, 8 Jun 2016 10:37:46 +0300 Subject: [PATCH 07/29] removed dupe privilegeList, added missing privilege to copyPrivsFrom --- src/categories/create.js | 17 ++++++----------- src/privileges.js | 5 +++++ src/privileges/categories.js | 25 +++++++++---------------- 3 files changed, 20 insertions(+), 27 deletions(-) diff --git a/src/categories/create.js b/src/categories/create.js index afca6c6b24..dfa722c4f0 100644 --- a/src/categories/create.js +++ b/src/categories/create.js @@ -97,14 +97,14 @@ module.exports = function(Categories) { destination = results.destination; var tasks = []; - + if (copyParent && utils.isNumber(destination.parentCid)) { tasks.push(async.apply(db.sortedSetRemove, 'cid:' + destination.parentCid + ':children', toCid)); } if (copyParent && utils.isNumber(results.source.parentCid)) { tasks.push(async.apply(db.sortedSetAdd, 'cid:' + results.source.parentCid + ':children', results.source.order, toCid)); - } + } destination.description = results.source.description; destination.descriptionParsed = results.source.descriptionParsed; @@ -115,11 +115,11 @@ module.exports = function(Categories) { destination.numRecentReplies = results.source.numRecentReplies; destination.class = results.source.class; destination.imageClass = results.source.imageClass; - + if (copyParent) { - destination.parentCid = results.source.parentCid || 0; + destination.parentCid = results.source.parentCid || 0; } - + tasks.push(async.apply(db.setObject, 'category:' + toCid, destination)); async.series(tasks, next); @@ -133,12 +133,7 @@ module.exports = function(Categories) { }; Categories.copyPrivilegesFrom = function(fromCid, toCid, callback) { - var privilegeList = [ - 'find', 'read', 'topics:create', 'topics:read', 'topics:reply', 'purge', 'mods', - 'groups:find', 'groups:read', 'groups:topics:create', 'groups:topics:reply', 'groups:purge', 'groups:moderate' - ]; - - async.each(privilegeList, function(privilege, next) { + async.each(privileges.privilegeList, function(privilege, next) { copyPrivilege(privilege, fromCid, toCid, next); }, callback); }; diff --git a/src/privileges.js b/src/privileges.js index 5c12365597..152a0a0d58 100644 --- a/src/privileges.js +++ b/src/privileges.js @@ -2,6 +2,11 @@ var privileges = {}; +privileges.userPrivilegeList = ['find', 'read', 'topics:create', 'topics:read', 'topics:reply', 'purge', 'mods']; +privileges.groupPrivilegeList = ['groups:find', 'groups:read', 'groups:topics:create', 'groups:topics:read', 'groups:topics:reply', 'groups:purge', 'groups:moderate']; + +privileges.privilegeList = privileges.userPrivileges.concat(privileges.groupPrivileges); + require('./privileges/categories')(privileges); require('./privileges/topics')(privileges); require('./privileges/posts')(privileges); diff --git a/src/privileges/categories.js b/src/privileges/categories.js index 9ccc6b3b03..0f744801ac 100644 --- a/src/privileges/categories.js +++ b/src/privileges/categories.js @@ -1,14 +1,14 @@ 'use strict'; -var async = require('async'), - _ = require('underscore'), +var async = require('async'); +var _ = require('underscore'); - user = require('../user'), - categories = require('../categories'), - groups = require('../groups'), - helpers = require('./helpers'), - plugins = require('../plugins'); +var user = require('../user'); +var categories = require('../categories'); +var groups = require('../groups'); +var helpers = require('./helpers'); +var plugins = require('../plugins'); module.exports = function(privileges) { @@ -27,13 +27,6 @@ module.exports = function(privileges) { {name: 'Moderate'} ]; - var userPrivilegeList = [ - 'find', 'read', 'topics:read', 'topics:create', 'topics:reply', 'purge', 'mods' - ]; - var groupPrivilegeList = [ - 'groups:find', 'groups:read', 'groups:topics:read', 'groups:topics:create', 'groups:topics:reply', 'groups:purge', 'groups:moderate' - ]; - async.parallel({ labels: function(next) { async.parallel({ @@ -44,7 +37,7 @@ module.exports = function(privileges) { users: function(next) { var privileges; async.waterfall([ - async.apply(plugins.fireHook, 'filter:privileges.list', userPrivilegeList), + async.apply(plugins.fireHook, 'filter:privileges.list', privileges.userPrivilegeList), function(privs, next) { privileges = privs; groups.getMembersOfGroups(privs.map(function(privilege) { @@ -81,7 +74,7 @@ module.exports = function(privileges) { groups: function(next) { var privileges; async.waterfall([ - async.apply(plugins.fireHook, 'filter:privileges.groups.list', groupPrivilegeList), + async.apply(plugins.fireHook, 'filter:privileges.groups.list', privileges.groupPrivilegeList), function(privs, next) { privileges = privs; groups.getMembersOfGroups(privs.map(function(privilege) { From 73e21d1d3172a89c4645a43181efea61c20d32a3 Mon Sep 17 00:00:00 2001 From: barisusakli Date: Wed, 8 Jun 2016 10:46:33 +0300 Subject: [PATCH 08/29] closes #4720 --- src/categories/delete.js | 19 +++++++++++++------ src/groups/delete.js | 8 ++++---- 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/src/categories/delete.js b/src/categories/delete.js index c8a383037e..63f9fe324b 100644 --- a/src/categories/delete.js +++ b/src/categories/delete.js @@ -1,10 +1,12 @@ 'use strict'; -var async = require('async'), - db = require('../database'), - batch = require('../batch'), - plugins = require('../plugins'), - topics = require('../topics'); +var async = require('async'); +var db = require('../database'); +var batch = require('../batch'); +var plugins = require('../plugins'); +var topics = require('../topics'); +var privileges = require('../privileges'); +var groups = require('../groups'); module.exports = function(Categories) { @@ -42,6 +44,11 @@ module.exports = function(Categories) { 'cid:' + cid + ':children', 'category:' + cid ], next); + }, + function(next) { + async.each(privileges.privilegeList, function(privilege, next) { + groups.destroy('cid:' + cid + ':privileges:' + privilege, next); + }, next); } ], callback); } @@ -78,7 +85,7 @@ module.exports = function(Categories) { } ], next); } - ], function(err, results) { + ], function(err) { callback(err); }); } diff --git a/src/groups/delete.js b/src/groups/delete.js index 8e665249a8..ca062b364a 100644 --- a/src/groups/delete.js +++ b/src/groups/delete.js @@ -1,9 +1,9 @@ 'use strict'; -var async = require('async'), - plugins = require('../plugins'), - utils = require('../../public/src/utils'), - db = require('./../database'); +var async = require('async'); +var plugins = require('../plugins'); +var utils = require('../../public/src/utils'); +var db = require('./../database'); module.exports = function(Groups) { From ff0fee21707a68b1cea8f78cf5920c7be05c0d21 Mon Sep 17 00:00:00 2001 From: barisusakli Date: Wed, 8 Jun 2016 10:51:37 +0300 Subject: [PATCH 09/29] fix arrays --- src/privileges.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/privileges.js b/src/privileges.js index 152a0a0d58..0e82e92d06 100644 --- a/src/privileges.js +++ b/src/privileges.js @@ -5,7 +5,7 @@ var privileges = {}; privileges.userPrivilegeList = ['find', 'read', 'topics:create', 'topics:read', 'topics:reply', 'purge', 'mods']; privileges.groupPrivilegeList = ['groups:find', 'groups:read', 'groups:topics:create', 'groups:topics:read', 'groups:topics:reply', 'groups:purge', 'groups:moderate']; -privileges.privilegeList = privileges.userPrivileges.concat(privileges.groupPrivileges); +privileges.privilegeList = privileges.userPrivilegeList.concat(privileges.groupPrivilegeList); require('./privileges/categories')(privileges); require('./privileges/topics')(privileges); From 8f594de4c27e55656649656ee6cf70e2f2e1cb8d Mon Sep 17 00:00:00 2001 From: barisusakli Date: Wed, 8 Jun 2016 11:44:15 +0300 Subject: [PATCH 10/29] fix privs --- src/privileges/categories.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/privileges/categories.js b/src/privileges/categories.js index 0f744801ac..8b556f68f8 100644 --- a/src/privileges/categories.js +++ b/src/privileges/categories.js @@ -35,11 +35,11 @@ module.exports = function(privileges) { }, next); }, users: function(next) { - var privileges; + var privs; async.waterfall([ async.apply(plugins.fireHook, 'filter:privileges.list', privileges.userPrivilegeList), - function(privs, next) { - privileges = privs; + function(_privs, next) { + privs = _privs; groups.getMembersOfGroups(privs.map(function(privilege) { return 'cid:' + cid + ':privileges:' + privilege; }), next); @@ -72,11 +72,11 @@ module.exports = function(privileges) { ], next); }, groups: function(next) { - var privileges; + var privs; async.waterfall([ async.apply(plugins.fireHook, 'filter:privileges.groups.list', privileges.groupPrivilegeList), - function(privs, next) { - privileges = privs; + function(_privs, next) { + privs = _privs; groups.getMembersOfGroups(privs.map(function(privilege) { return 'cid:' + cid + ':privileges:' + privilege; }), next); From 09ce48ad33b0d9bf07412021b33f218802c54015 Mon Sep 17 00:00:00 2001 From: barisusakli Date: Wed, 8 Jun 2016 11:52:55 +0300 Subject: [PATCH 11/29] fix privs --- src/privileges/categories.js | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/privileges/categories.js b/src/privileges/categories.js index 8b556f68f8..382d89e4e4 100644 --- a/src/privileges/categories.js +++ b/src/privileges/categories.js @@ -35,12 +35,12 @@ module.exports = function(privileges) { }, next); }, users: function(next) { - var privs; + var userPrivileges; async.waterfall([ async.apply(plugins.fireHook, 'filter:privileges.list', privileges.userPrivilegeList), function(_privs, next) { - privs = _privs; - groups.getMembersOfGroups(privs.map(function(privilege) { + userPrivileges = _privs; + groups.getMembersOfGroups(userPrivileges.map(function(privilege) { return 'cid:' + cid + ':privileges:' + privilege; }), next); }, @@ -61,8 +61,8 @@ module.exports = function(privileges) { memberData.forEach(function(member) { member.privileges = {}; - for(var x=0,numPrivs=privileges.length;x Date: Wed, 8 Jun 2016 11:53:12 +0300 Subject: [PATCH 12/29] closes #4677 --- src/topics/create.js | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/src/topics/create.js b/src/topics/create.js index 01a8ea5f5f..a173c1d661 100644 --- a/src/topics/create.js +++ b/src/topics/create.js @@ -112,11 +112,9 @@ module.exports = function(Topics) { if (!canCreate) { return next(new Error('[[error:no-privileges]]')); } - - if (!guestHandleValid(data)) { - return next(new Error('[[error:guest-handle-invalid]]')); - } - + guestHandleValid(data, next); + }, + function (next) { user.isReadyToPost(data.uid, data.cid, next); }, function(next) { @@ -212,11 +210,9 @@ module.exports = function(Topics) { if (!results.canReply) { return next(new Error('[[error:no-privileges]]')); } - - if (!guestHandleValid(data)) { - return next(new Error('[[error:guest-handle-invalid]]')); - } - + guestHandleValid(data, next); + }, + function(next) { user.isReadyToPost(uid, cid, next); }, function(next) { @@ -316,12 +312,19 @@ module.exports = function(Topics) { callback(); } - function guestHandleValid(data) { - if (parseInt(meta.config.allowGuestHandles, 10) === 1 && parseInt(data.uid, 10) === 0 && - data.handle && data.handle.length > meta.config.maximumUsernameLength) { - return false; + function guestHandleValid(data, callback) { + if (parseInt(meta.config.allowGuestHandles, 10) === 1 && parseInt(data.uid, 10) === 0 && data.handle) { + if (data.handle.length > meta.config.maximumUsernameLength) { + return callback(new Error('[[error:guest-handle-invalid]]')); + } + user.existsBySlug(utils.slugify(data.handle), function(err, exists) { + if (err || exists) { + return callback(err || new Error('[[error:username-taken]]')); + } + callback(); + }); } - return true; + callback(); } }; From 0e92880dd48b3d07c2e43dd6fe37ece9e8bbb96a Mon Sep 17 00:00:00 2001 From: barisusakli Date: Wed, 8 Jun 2016 13:34:41 +0300 Subject: [PATCH 13/29] fix previousUrl being set to current url --- public/src/ajaxify.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/public/src/ajaxify.js b/public/src/ajaxify.js index 4f452f7b08..639669602d 100644 --- a/public/src/ajaxify.js +++ b/public/src/ajaxify.js @@ -61,12 +61,12 @@ $(document).ready(function() { apiXHR.abort(); } - url = ajaxify.start(url, quiet); - if (!window.location.pathname.match(/\/(403|404)$/g)) { app.previousUrl = window.location.href; } + url = ajaxify.start(url, quiet); + $('body').removeClass(ajaxify.data.bodyClass); $('#footer, #content').removeClass('hide').addClass('ajaxifying'); From 5494d9a8b89db79e3b8c7d1b5db69b540377a952 Mon Sep 17 00:00:00 2001 From: NodeBB Misty Date: Wed, 8 Jun 2016 09:02:30 -0400 Subject: [PATCH 14/29] Latest translations and fallbacks --- public/language/ar/error.json | 6 ++++++ public/language/bg/error.json | 8 +++++++- public/language/bn/error.json | 6 ++++++ public/language/cs/error.json | 6 ++++++ public/language/da/error.json | 6 ++++++ public/language/de/error.json | 6 ++++++ public/language/el/error.json | 6 ++++++ public/language/en@pirate/error.json | 6 ++++++ public/language/en_US/error.json | 6 ++++++ public/language/es/error.json | 6 ++++++ public/language/et/error.json | 6 ++++++ public/language/fa_IR/error.json | 6 ++++++ public/language/fi/error.json | 6 ++++++ public/language/fr/error.json | 6 ++++++ public/language/gl/error.json | 6 ++++++ public/language/he/error.json | 6 ++++++ public/language/hu/error.json | 6 ++++++ public/language/id/error.json | 6 ++++++ public/language/it/error.json | 6 ++++++ public/language/ja/error.json | 6 ++++++ public/language/ko/error.json | 6 ++++++ public/language/lt/error.json | 6 ++++++ public/language/ms/error.json | 6 ++++++ public/language/nb/error.json | 6 ++++++ public/language/nl/error.json | 6 ++++++ public/language/pl/error.json | 6 ++++++ public/language/pt_BR/error.json | 6 ++++++ public/language/ro/error.json | 6 ++++++ public/language/ru/error.json | 14 ++++++++++---- public/language/ru/global.json | 8 ++++---- public/language/ru/groups.json | 2 +- public/language/ru/login.json | 2 +- public/language/ru/notifications.json | 8 ++++---- public/language/ru/pages.json | 8 ++++---- public/language/ru/topic.json | 24 ++++++++++++------------ public/language/ru/unread.json | 6 +++--- public/language/ru/user.json | 18 +++++++++--------- public/language/rw/error.json | 6 ++++++ public/language/sc/error.json | 6 ++++++ public/language/sk/error.json | 6 ++++++ public/language/sl/error.json | 6 ++++++ public/language/sr/error.json | 6 ++++++ public/language/sv/error.json | 6 ++++++ public/language/th/error.json | 6 ++++++ public/language/tr/error.json | 6 ++++++ public/language/vi/error.json | 6 ++++++ public/language/zh_CN/error.json | 6 ++++++ public/language/zh_TW/error.json | 6 ++++++ 48 files changed, 283 insertions(+), 43 deletions(-) diff --git a/public/language/ar/error.json b/public/language/ar/error.json index 3bf837409e..a302d3af7e 100644 --- a/public/language/ar/error.json +++ b/public/language/ar/error.json @@ -40,6 +40,12 @@ "category-disabled": "قائمة معطلة", "topic-locked": "الموضوع مقفول", "post-edit-duration-expired": "You are only allowed to edit posts for %1 second(s) after posting", + "post-edit-duration-expired-minutes": "You are only allowed to edit posts for %1 minute(s) after posting", + "post-edit-duration-expired-minutes-seconds": "You are only allowed to edit posts for %1 minute(s) %2 second(s) after posting", + "post-edit-duration-expired-hours": "You are only allowed to edit posts for %1 hour(s) after posting", + "post-edit-duration-expired-hours-minutes": "You are only allowed to edit posts for %1 hour(s) %2 minute(s) after posting", + "post-edit-duration-expired-days": "You are only allowed to edit posts for %1 day(s) after posting", + "post-edit-duration-expired-days-hours": "You are only allowed to edit posts for %1 day(s) %2 hour(s) after posting", "content-too-short": "Please enter a longer post. Posts should contain at least %1 character(s).", "content-too-long": "Please enter a shorter post. Posts can't be longer than %1 character(s).", "title-too-short": "Please enter a longer title. Titles should contain at least %1 character(s).", diff --git a/public/language/bg/error.json b/public/language/bg/error.json index e802137ceb..686b68fa5b 100644 --- a/public/language/bg/error.json +++ b/public/language/bg/error.json @@ -1,5 +1,5 @@ { - "invalid-data": "Невалидни данни", + "invalid-data": "Грешни данни", "not-logged-in": "Изглежда не сте влезли в системата.", "account-locked": "Вашият акаунт беше заключен временно", "search-requires-login": "Търсенето изисква акаунт – моля, влезте или се регистрирайте.", @@ -40,6 +40,12 @@ "category-disabled": "Категорията е изключена", "topic-locked": "Темата е заключена", "post-edit-duration-expired": "Можете да редактирате публикациите си до %1 секунда/и, след като ги пуснете", + "post-edit-duration-expired-minutes": "Можете да редактирате публикациите си до %1 минута/и, след като ги пуснете", + "post-edit-duration-expired-minutes-seconds": "Можете да редактирате публикациите си до %1 минута/и и %2 секунда/и, след като ги пуснете", + "post-edit-duration-expired-hours": "Можете да редактирате публикациите си до %1 час(а), след като ги пуснете", + "post-edit-duration-expired-hours-minutes": "Можете да редактирате публикациите си до %1 час(а) и %2 минута/и, след като ги пуснете", + "post-edit-duration-expired-days": "Можете да редактирате публикациите си до %1 ден(а), след като ги пуснете", + "post-edit-duration-expired-days-hours": "Можете да редактирате публикациите си до %1 ден(а) и %2 час(а), след като ги пуснете", "content-too-short": "Моля, въведете по-дълъг текст на публикацията. Публикациите трябва да съдържат поне %1 символ(а).", "content-too-long": "Моля, въведете по-кратък текст на публикацията. Публикациите трябва да съдържат не повече от %1 символ(а).", "title-too-short": "Моля, въведете по-дълго заглавие. Заглавията трябва да съдържат поне %1 символ(а).", diff --git a/public/language/bn/error.json b/public/language/bn/error.json index 9ab8ec0dda..ed7079bf49 100644 --- a/public/language/bn/error.json +++ b/public/language/bn/error.json @@ -40,6 +40,12 @@ "category-disabled": "বিভাগটি নিষ্ক্রিয়", "topic-locked": "টপিক বন্ধ", "post-edit-duration-expired": "You are only allowed to edit posts for %1 second(s) after posting", + "post-edit-duration-expired-minutes": "You are only allowed to edit posts for %1 minute(s) after posting", + "post-edit-duration-expired-minutes-seconds": "You are only allowed to edit posts for %1 minute(s) %2 second(s) after posting", + "post-edit-duration-expired-hours": "You are only allowed to edit posts for %1 hour(s) after posting", + "post-edit-duration-expired-hours-minutes": "You are only allowed to edit posts for %1 hour(s) %2 minute(s) after posting", + "post-edit-duration-expired-days": "You are only allowed to edit posts for %1 day(s) after posting", + "post-edit-duration-expired-days-hours": "You are only allowed to edit posts for %1 day(s) %2 hour(s) after posting", "content-too-short": "Please enter a longer post. Posts should contain at least %1 character(s).", "content-too-long": "Please enter a shorter post. Posts can't be longer than %1 character(s).", "title-too-short": "Please enter a longer title. Titles should contain at least %1 character(s).", diff --git a/public/language/cs/error.json b/public/language/cs/error.json index dff0f5465c..83c5ac583f 100644 --- a/public/language/cs/error.json +++ b/public/language/cs/error.json @@ -40,6 +40,12 @@ "category-disabled": "Kategorie zakázána", "topic-locked": "Téma uzamčeno", "post-edit-duration-expired": "You are only allowed to edit posts for %1 second(s) after posting", + "post-edit-duration-expired-minutes": "You are only allowed to edit posts for %1 minute(s) after posting", + "post-edit-duration-expired-minutes-seconds": "You are only allowed to edit posts for %1 minute(s) %2 second(s) after posting", + "post-edit-duration-expired-hours": "You are only allowed to edit posts for %1 hour(s) after posting", + "post-edit-duration-expired-hours-minutes": "You are only allowed to edit posts for %1 hour(s) %2 minute(s) after posting", + "post-edit-duration-expired-days": "You are only allowed to edit posts for %1 day(s) after posting", + "post-edit-duration-expired-days-hours": "You are only allowed to edit posts for %1 day(s) %2 hour(s) after posting", "content-too-short": "Please enter a longer post. Posts should contain at least %1 character(s).", "content-too-long": "Please enter a shorter post. Posts can't be longer than %1 character(s).", "title-too-short": "Please enter a longer title. Titles should contain at least %1 character(s).", diff --git a/public/language/da/error.json b/public/language/da/error.json index ae1c3278db..fd0b021221 100644 --- a/public/language/da/error.json +++ b/public/language/da/error.json @@ -40,6 +40,12 @@ "category-disabled": "Kategorien er deaktiveret", "topic-locked": "Tråden er låst", "post-edit-duration-expired": "Du kan kun redigere indlæg i %1 sekund(er) efter indlæg", + "post-edit-duration-expired-minutes": "You are only allowed to edit posts for %1 minute(s) after posting", + "post-edit-duration-expired-minutes-seconds": "You are only allowed to edit posts for %1 minute(s) %2 second(s) after posting", + "post-edit-duration-expired-hours": "You are only allowed to edit posts for %1 hour(s) after posting", + "post-edit-duration-expired-hours-minutes": "You are only allowed to edit posts for %1 hour(s) %2 minute(s) after posting", + "post-edit-duration-expired-days": "You are only allowed to edit posts for %1 day(s) after posting", + "post-edit-duration-expired-days-hours": "You are only allowed to edit posts for %1 day(s) %2 hour(s) after posting", "content-too-short": "Venligst indtast et længere indlæg. Indlægget skal mindst indeholde %1 karakter(er).", "content-too-long": "Venligt indtast et kortere indlæg. Indlæg kan ikke være længere end %1 karakter(er).", "title-too-short": "Venligst indtast en længere titel. Titlen skal mindst indeholde %1 karakter(er).", diff --git a/public/language/de/error.json b/public/language/de/error.json index 524d0f786d..8e0d25fc2d 100644 --- a/public/language/de/error.json +++ b/public/language/de/error.json @@ -40,6 +40,12 @@ "category-disabled": "Kategorie ist deaktiviert", "topic-locked": "Thema ist gesperrt", "post-edit-duration-expired": "Entschuldigung, du darfst Beiträge nur %1 Sekunde(n) nach dem Veröffentlichen editieren.", + "post-edit-duration-expired-minutes": "You are only allowed to edit posts for %1 minute(s) after posting", + "post-edit-duration-expired-minutes-seconds": "You are only allowed to edit posts for %1 minute(s) %2 second(s) after posting", + "post-edit-duration-expired-hours": "You are only allowed to edit posts for %1 hour(s) after posting", + "post-edit-duration-expired-hours-minutes": "You are only allowed to edit posts for %1 hour(s) %2 minute(s) after posting", + "post-edit-duration-expired-days": "You are only allowed to edit posts for %1 day(s) after posting", + "post-edit-duration-expired-days-hours": "You are only allowed to edit posts for %1 day(s) %2 hour(s) after posting", "content-too-short": "Bitte schreibe einen längeren Beitrag. Beiträge sollten mindestens %1 Zeichen enthalten.", "content-too-long": "Bitte schreibe einen kürzeren Beitrag. Beiträge können nicht länger als %1 Zeichen sein.", "title-too-short": "Bitte gebe einen längeren Titel ein. Ein Titel muss mindestens %1 Zeichen enthalten.", diff --git a/public/language/el/error.json b/public/language/el/error.json index 568829bb63..917c04c4cf 100644 --- a/public/language/el/error.json +++ b/public/language/el/error.json @@ -40,6 +40,12 @@ "category-disabled": "Η κατηγορία έχει απενεργοποιηθεί", "topic-locked": "Το θέμα έχει κλειδωθεί", "post-edit-duration-expired": "You are only allowed to edit posts for %1 second(s) after posting", + "post-edit-duration-expired-minutes": "You are only allowed to edit posts for %1 minute(s) after posting", + "post-edit-duration-expired-minutes-seconds": "You are only allowed to edit posts for %1 minute(s) %2 second(s) after posting", + "post-edit-duration-expired-hours": "You are only allowed to edit posts for %1 hour(s) after posting", + "post-edit-duration-expired-hours-minutes": "You are only allowed to edit posts for %1 hour(s) %2 minute(s) after posting", + "post-edit-duration-expired-days": "You are only allowed to edit posts for %1 day(s) after posting", + "post-edit-duration-expired-days-hours": "You are only allowed to edit posts for %1 day(s) %2 hour(s) after posting", "content-too-short": "Please enter a longer post. Posts should contain at least %1 character(s).", "content-too-long": "Please enter a shorter post. Posts can't be longer than %1 character(s).", "title-too-short": "Please enter a longer title. Titles should contain at least %1 character(s).", diff --git a/public/language/en@pirate/error.json b/public/language/en@pirate/error.json index 66eb9b04ba..20979833e9 100644 --- a/public/language/en@pirate/error.json +++ b/public/language/en@pirate/error.json @@ -40,6 +40,12 @@ "category-disabled": "Category disabled", "topic-locked": "Topic Locked", "post-edit-duration-expired": "You are only allowed to edit posts for %1 second(s) after posting", + "post-edit-duration-expired-minutes": "You are only allowed to edit posts for %1 minute(s) after posting", + "post-edit-duration-expired-minutes-seconds": "You are only allowed to edit posts for %1 minute(s) %2 second(s) after posting", + "post-edit-duration-expired-hours": "You are only allowed to edit posts for %1 hour(s) after posting", + "post-edit-duration-expired-hours-minutes": "You are only allowed to edit posts for %1 hour(s) %2 minute(s) after posting", + "post-edit-duration-expired-days": "You are only allowed to edit posts for %1 day(s) after posting", + "post-edit-duration-expired-days-hours": "You are only allowed to edit posts for %1 day(s) %2 hour(s) after posting", "content-too-short": "Please enter a longer post. Posts should contain at least %1 character(s).", "content-too-long": "Please enter a shorter post. Posts can't be longer than %1 character(s).", "title-too-short": "Please enter a longer title. Titles should contain at least %1 character(s).", diff --git a/public/language/en_US/error.json b/public/language/en_US/error.json index 66eb9b04ba..20979833e9 100644 --- a/public/language/en_US/error.json +++ b/public/language/en_US/error.json @@ -40,6 +40,12 @@ "category-disabled": "Category disabled", "topic-locked": "Topic Locked", "post-edit-duration-expired": "You are only allowed to edit posts for %1 second(s) after posting", + "post-edit-duration-expired-minutes": "You are only allowed to edit posts for %1 minute(s) after posting", + "post-edit-duration-expired-minutes-seconds": "You are only allowed to edit posts for %1 minute(s) %2 second(s) after posting", + "post-edit-duration-expired-hours": "You are only allowed to edit posts for %1 hour(s) after posting", + "post-edit-duration-expired-hours-minutes": "You are only allowed to edit posts for %1 hour(s) %2 minute(s) after posting", + "post-edit-duration-expired-days": "You are only allowed to edit posts for %1 day(s) after posting", + "post-edit-duration-expired-days-hours": "You are only allowed to edit posts for %1 day(s) %2 hour(s) after posting", "content-too-short": "Please enter a longer post. Posts should contain at least %1 character(s).", "content-too-long": "Please enter a shorter post. Posts can't be longer than %1 character(s).", "title-too-short": "Please enter a longer title. Titles should contain at least %1 character(s).", diff --git a/public/language/es/error.json b/public/language/es/error.json index 91303b3f99..cb5c6d495f 100644 --- a/public/language/es/error.json +++ b/public/language/es/error.json @@ -40,6 +40,12 @@ "category-disabled": "Categoría deshabilitada", "topic-locked": "Tema bloqueado", "post-edit-duration-expired": "Sólo puedes editar mensajes durante %1 segundo(s) después de haberlo escrito", + "post-edit-duration-expired-minutes": "You are only allowed to edit posts for %1 minute(s) after posting", + "post-edit-duration-expired-minutes-seconds": "You are only allowed to edit posts for %1 minute(s) %2 second(s) after posting", + "post-edit-duration-expired-hours": "You are only allowed to edit posts for %1 hour(s) after posting", + "post-edit-duration-expired-hours-minutes": "You are only allowed to edit posts for %1 hour(s) %2 minute(s) after posting", + "post-edit-duration-expired-days": "You are only allowed to edit posts for %1 day(s) after posting", + "post-edit-duration-expired-days-hours": "You are only allowed to edit posts for %1 day(s) %2 hour(s) after posting", "content-too-short": "Por favor introduzca una publicación más larga. Las publicaciones deben contener al menos %1 caractere(s).", "content-too-long": "Por favor introduzca un mensaje más corto. Los mensajes no pueden exceder los %1 caractere(s).", "title-too-short": "Por favor introduzca un título más largo. Los títulos deben contener al menos %1 caractere(s).", diff --git a/public/language/et/error.json b/public/language/et/error.json index 62e3902f8a..bde8c23ecf 100644 --- a/public/language/et/error.json +++ b/public/language/et/error.json @@ -40,6 +40,12 @@ "category-disabled": "Kategooria keelatud", "topic-locked": "Teema lukustatud", "post-edit-duration-expired": "Te peate ootama %1 sekund(it), enne kui oma postitust muudate.", + "post-edit-duration-expired-minutes": "You are only allowed to edit posts for %1 minute(s) after posting", + "post-edit-duration-expired-minutes-seconds": "You are only allowed to edit posts for %1 minute(s) %2 second(s) after posting", + "post-edit-duration-expired-hours": "You are only allowed to edit posts for %1 hour(s) after posting", + "post-edit-duration-expired-hours-minutes": "You are only allowed to edit posts for %1 hour(s) %2 minute(s) after posting", + "post-edit-duration-expired-days": "You are only allowed to edit posts for %1 day(s) after posting", + "post-edit-duration-expired-days-hours": "You are only allowed to edit posts for %1 day(s) %2 hour(s) after posting", "content-too-short": "Palun tehke pikem postitus. Postituse pikkus peab olema vähemalt %1 tähemärk(i).", "content-too-long": "Palun tehke lühem postitus. Postituse pikkus peab olema vähem kui %1 tähemärk(i).", "title-too-short": "Palun sisesta pikem pealkiri. Pealkirjad ei saa olla lühemad kui %1 tähemärk(i).", diff --git a/public/language/fa_IR/error.json b/public/language/fa_IR/error.json index 7ee878ae8f..edeaf57d4e 100644 --- a/public/language/fa_IR/error.json +++ b/public/language/fa_IR/error.json @@ -40,6 +40,12 @@ "category-disabled": "دسته غیر‌فعال شد.", "topic-locked": "موضوع بسته شد.", "post-edit-duration-expired": "شما تنها می توانید %1 ثانیه پس از فرستادن پست آن‌را ویرایش کنید", + "post-edit-duration-expired-minutes": "You are only allowed to edit posts for %1 minute(s) after posting", + "post-edit-duration-expired-minutes-seconds": "You are only allowed to edit posts for %1 minute(s) %2 second(s) after posting", + "post-edit-duration-expired-hours": "You are only allowed to edit posts for %1 hour(s) after posting", + "post-edit-duration-expired-hours-minutes": "You are only allowed to edit posts for %1 hour(s) %2 minute(s) after posting", + "post-edit-duration-expired-days": "You are only allowed to edit posts for %1 day(s) after posting", + "post-edit-duration-expired-days-hours": "You are only allowed to edit posts for %1 day(s) %2 hour(s) after posting", "content-too-short": "خواهشمندیم پست بلندتری بنویسید. پست‌ها دست‌کم باید %1 کاراکتر داشته باشند.", "content-too-long": "لطفا طول مطلب را کوتاه تر کنید. طول پست نمیتواند بیشتر از %1 کاراکتر باشد.", "title-too-short": "لطفا یک عنوان بلندتر وارد کنید. عنوان باید حداقل %1 کاراکتر داشته باشد.", diff --git a/public/language/fi/error.json b/public/language/fi/error.json index 21a027b171..b77c547492 100644 --- a/public/language/fi/error.json +++ b/public/language/fi/error.json @@ -40,6 +40,12 @@ "category-disabled": "Kategoria ei ole käytössä", "topic-locked": "Aihe lukittu", "post-edit-duration-expired": "You are only allowed to edit posts for %1 second(s) after posting", + "post-edit-duration-expired-minutes": "You are only allowed to edit posts for %1 minute(s) after posting", + "post-edit-duration-expired-minutes-seconds": "You are only allowed to edit posts for %1 minute(s) %2 second(s) after posting", + "post-edit-duration-expired-hours": "You are only allowed to edit posts for %1 hour(s) after posting", + "post-edit-duration-expired-hours-minutes": "You are only allowed to edit posts for %1 hour(s) %2 minute(s) after posting", + "post-edit-duration-expired-days": "You are only allowed to edit posts for %1 day(s) after posting", + "post-edit-duration-expired-days-hours": "You are only allowed to edit posts for %1 day(s) %2 hour(s) after posting", "content-too-short": "Ole hyvä ja syötä pidempi viesti. Sen pitäisi sisältää ainakin %1 merkki(ä).", "content-too-long": "Ole hyvä ja syötä lyhyempi viesti. Sen voi sisältää vain %1 merkki(ä).", "title-too-short": "Ole hyä ja syötä pidempi otsikko. Sen pitäisi sisältää anakin %1 merkki(ä).", diff --git a/public/language/fr/error.json b/public/language/fr/error.json index 93267ba5e5..bf8d05bfcf 100644 --- a/public/language/fr/error.json +++ b/public/language/fr/error.json @@ -40,6 +40,12 @@ "category-disabled": "Catégorie désactivée", "topic-locked": "Sujet verrouillé", "post-edit-duration-expired": "Vous ne pouvez modifier un message que %1 seconde(s) après l'avoir posté.", + "post-edit-duration-expired-minutes": "Vous ne pouvez éditer un message que %1 minute(s) après l'avoir posté.", + "post-edit-duration-expired-minutes-seconds": "Vous ne pouvez éditer un message que %1 minute(s) et %2 seconde(s) après l'avoir posté.", + "post-edit-duration-expired-hours": "Vous ne pouvez éditer un message que %1 heure(s) après l'avoir posté.", + "post-edit-duration-expired-hours-minutes": "Vous ne pouvez éditer un message que %1 heure(s) et %2 minute(s) après l'avoir posté.", + "post-edit-duration-expired-days": "Vous ne pouvez éditer un message que %1 jours(s) après l'avoir posté.", + "post-edit-duration-expired-days-hours": "Vous ne pouvez éditer un message que %1 jours(s) et %2 heures(s) après l'avoir posté.", "content-too-short": "Veuillez entrer un message plus long. %1 caractère(s) minimum.", "content-too-long": "Veuillez poster un message plus cours. Les messages ne peuvent être plus long que %1 caractère(s).", "title-too-short": "Veuillez entrer un titre plus long. %1 caractère(s) minimum.", diff --git a/public/language/gl/error.json b/public/language/gl/error.json index 910ae77dfd..78aa915d91 100644 --- a/public/language/gl/error.json +++ b/public/language/gl/error.json @@ -40,6 +40,12 @@ "category-disabled": "Categoría deshabilitada", "topic-locked": "Tema Pechado", "post-edit-duration-expired": "Só podes editar as publicacións %1 segundo(s) despois de envialas. ", + "post-edit-duration-expired-minutes": "You are only allowed to edit posts for %1 minute(s) after posting", + "post-edit-duration-expired-minutes-seconds": "You are only allowed to edit posts for %1 minute(s) %2 second(s) after posting", + "post-edit-duration-expired-hours": "You are only allowed to edit posts for %1 hour(s) after posting", + "post-edit-duration-expired-hours-minutes": "You are only allowed to edit posts for %1 hour(s) %2 minute(s) after posting", + "post-edit-duration-expired-days": "You are only allowed to edit posts for %1 day(s) after posting", + "post-edit-duration-expired-days-hours": "You are only allowed to edit posts for %1 day(s) %2 hour(s) after posting", "content-too-short": "Por favor, introduce unha publicación máis longa. Debe conter %1 carácter(es) como mínimo.", "content-too-long": "Por favor, introduce unha publicación máis curta. As publicacións non poden conter máis de %1 carácter(es).", "title-too-short": "Por favor, introduce un título máis longo. Os títulos deben conter %1 carácter(es) como mínimo.", diff --git a/public/language/he/error.json b/public/language/he/error.json index 28c0d099fe..298d413201 100644 --- a/public/language/he/error.json +++ b/public/language/he/error.json @@ -40,6 +40,12 @@ "category-disabled": "קטגוריה לא פעילה", "topic-locked": "נושא נעול", "post-edit-duration-expired": "אתה רשאי לערוך פוסטים רק ל-%1 שניות לאחר הפרסום", + "post-edit-duration-expired-minutes": "You are only allowed to edit posts for %1 minute(s) after posting", + "post-edit-duration-expired-minutes-seconds": "You are only allowed to edit posts for %1 minute(s) %2 second(s) after posting", + "post-edit-duration-expired-hours": "You are only allowed to edit posts for %1 hour(s) after posting", + "post-edit-duration-expired-hours-minutes": "You are only allowed to edit posts for %1 hour(s) %2 minute(s) after posting", + "post-edit-duration-expired-days": "You are only allowed to edit posts for %1 day(s) after posting", + "post-edit-duration-expired-days-hours": "You are only allowed to edit posts for %1 day(s) %2 hour(s) after posting", "content-too-short": "אנא הכנס פוסט ארוך יותר. פוסטים חייבים להכיל לפחות %1 תווים.", "content-too-long": "אנא הכנס פוסט קצר יותר. פוסטים חייבים להיות קצרים יותר מ-%1 תווים.", "title-too-short": "אנא הכנס כותרת ארוכה יותר. כותרות חייבות להכיל לפחות %1 תווים.", diff --git a/public/language/hu/error.json b/public/language/hu/error.json index b629bd7e64..d1912b9a1d 100644 --- a/public/language/hu/error.json +++ b/public/language/hu/error.json @@ -40,6 +40,12 @@ "category-disabled": "Kategória kikapcsolva", "topic-locked": "Téma lezárva", "post-edit-duration-expired": "You are only allowed to edit posts for %1 second(s) after posting", + "post-edit-duration-expired-minutes": "You are only allowed to edit posts for %1 minute(s) after posting", + "post-edit-duration-expired-minutes-seconds": "You are only allowed to edit posts for %1 minute(s) %2 second(s) after posting", + "post-edit-duration-expired-hours": "You are only allowed to edit posts for %1 hour(s) after posting", + "post-edit-duration-expired-hours-minutes": "You are only allowed to edit posts for %1 hour(s) %2 minute(s) after posting", + "post-edit-duration-expired-days": "You are only allowed to edit posts for %1 day(s) after posting", + "post-edit-duration-expired-days-hours": "You are only allowed to edit posts for %1 day(s) %2 hour(s) after posting", "content-too-short": "Please enter a longer post. Posts should contain at least %1 character(s).", "content-too-long": "Please enter a shorter post. Posts can't be longer than %1 character(s).", "title-too-short": "Please enter a longer title. Titles should contain at least %1 character(s).", diff --git a/public/language/id/error.json b/public/language/id/error.json index a178804439..e41da125c3 100644 --- a/public/language/id/error.json +++ b/public/language/id/error.json @@ -40,6 +40,12 @@ "category-disabled": "Kategori ditiadakan", "topic-locked": "Topik dikunci", "post-edit-duration-expired": "You are only allowed to edit posts for %1 second(s) after posting", + "post-edit-duration-expired-minutes": "You are only allowed to edit posts for %1 minute(s) after posting", + "post-edit-duration-expired-minutes-seconds": "You are only allowed to edit posts for %1 minute(s) %2 second(s) after posting", + "post-edit-duration-expired-hours": "You are only allowed to edit posts for %1 hour(s) after posting", + "post-edit-duration-expired-hours-minutes": "You are only allowed to edit posts for %1 hour(s) %2 minute(s) after posting", + "post-edit-duration-expired-days": "You are only allowed to edit posts for %1 day(s) after posting", + "post-edit-duration-expired-days-hours": "You are only allowed to edit posts for %1 day(s) %2 hour(s) after posting", "content-too-short": "Please enter a longer post. Posts should contain at least %1 character(s).", "content-too-long": "Please enter a shorter post. Posts can't be longer than %1 character(s).", "title-too-short": "Please enter a longer title. Titles should contain at least %1 character(s).", diff --git a/public/language/it/error.json b/public/language/it/error.json index 4f8a110bc4..2c4802ca47 100644 --- a/public/language/it/error.json +++ b/public/language/it/error.json @@ -40,6 +40,12 @@ "category-disabled": "Categoria disabilitata", "topic-locked": "Discussione Bloccata", "post-edit-duration-expired": "Ti è consentito modificare un post per %1 secondi dopo averlo inviato", + "post-edit-duration-expired-minutes": "You are only allowed to edit posts for %1 minute(s) after posting", + "post-edit-duration-expired-minutes-seconds": "You are only allowed to edit posts for %1 minute(s) %2 second(s) after posting", + "post-edit-duration-expired-hours": "You are only allowed to edit posts for %1 hour(s) after posting", + "post-edit-duration-expired-hours-minutes": "You are only allowed to edit posts for %1 hour(s) %2 minute(s) after posting", + "post-edit-duration-expired-days": "You are only allowed to edit posts for %1 day(s) after posting", + "post-edit-duration-expired-days-hours": "You are only allowed to edit posts for %1 day(s) %2 hour(s) after posting", "content-too-short": "Inserisci un testo più lungo. Il messaggio deve contenere almeno %1 caratteri.", "content-too-long": "Inserisci un post più breve. I post non possono essere più lunghi di %1 caratteri.", "title-too-short": "Inserisci un titolo più lungo. I titoli devono contenere almeno %1 caratteri.", diff --git a/public/language/ja/error.json b/public/language/ja/error.json index c8e0d84b9b..a42eaa0fde 100644 --- a/public/language/ja/error.json +++ b/public/language/ja/error.json @@ -40,6 +40,12 @@ "category-disabled": "この板は無効された", "topic-locked": "スレッドがロックされた", "post-edit-duration-expired": "あなたが%1秒後に投稿を編集する事が許されます", + "post-edit-duration-expired-minutes": "You are only allowed to edit posts for %1 minute(s) after posting", + "post-edit-duration-expired-minutes-seconds": "You are only allowed to edit posts for %1 minute(s) %2 second(s) after posting", + "post-edit-duration-expired-hours": "You are only allowed to edit posts for %1 hour(s) after posting", + "post-edit-duration-expired-hours-minutes": "You are only allowed to edit posts for %1 hour(s) %2 minute(s) after posting", + "post-edit-duration-expired-days": "You are only allowed to edit posts for %1 day(s) after posting", + "post-edit-duration-expired-days-hours": "You are only allowed to edit posts for %1 day(s) %2 hour(s) after posting", "content-too-short": "より長く投稿を書いて下さい。投稿にはせめて%1文字が必要です。", "content-too-long": "より短く投稿を書いて下さい。投稿が%1文字以上が許されません。", "title-too-short": "より長くタイトルを書いて下さい。タイトルはせめて%1文字が必要です。", diff --git a/public/language/ko/error.json b/public/language/ko/error.json index cf8c9346e9..e4539ed911 100644 --- a/public/language/ko/error.json +++ b/public/language/ko/error.json @@ -40,6 +40,12 @@ "category-disabled": "비활성화된 카테고리입니다.", "topic-locked": "잠긴 주제입니다.", "post-edit-duration-expired": "게시물의 수정은 작성한 시간으로부터 %1초 후에 가능합니다.", + "post-edit-duration-expired-minutes": "You are only allowed to edit posts for %1 minute(s) after posting", + "post-edit-duration-expired-minutes-seconds": "You are only allowed to edit posts for %1 minute(s) %2 second(s) after posting", + "post-edit-duration-expired-hours": "You are only allowed to edit posts for %1 hour(s) after posting", + "post-edit-duration-expired-hours-minutes": "You are only allowed to edit posts for %1 hour(s) %2 minute(s) after posting", + "post-edit-duration-expired-days": "You are only allowed to edit posts for %1 day(s) after posting", + "post-edit-duration-expired-days-hours": "You are only allowed to edit posts for %1 day(s) %2 hour(s) after posting", "content-too-short": "게시물의 내용이 너무 짧습니다. 내용은 최소 %1자 이상이어야 합니다.", "content-too-long": "게시물의 내용이 너무 깁니다. 내용은 최대 %1자 이내로 작성할 수 있습니다.", "title-too-short": "제목이 너무 짧습니다. 제목은 최소 %1자 이상이어야 합니다.", diff --git a/public/language/lt/error.json b/public/language/lt/error.json index 735aedea42..2424628cb8 100644 --- a/public/language/lt/error.json +++ b/public/language/lt/error.json @@ -40,6 +40,12 @@ "category-disabled": "Kategorija išjungta", "topic-locked": "Tema užrakinta", "post-edit-duration-expired": "Jums galima redaguoti pranešims tik %1 sekunde(s) po parašymo", + "post-edit-duration-expired-minutes": "You are only allowed to edit posts for %1 minute(s) after posting", + "post-edit-duration-expired-minutes-seconds": "You are only allowed to edit posts for %1 minute(s) %2 second(s) after posting", + "post-edit-duration-expired-hours": "You are only allowed to edit posts for %1 hour(s) after posting", + "post-edit-duration-expired-hours-minutes": "You are only allowed to edit posts for %1 hour(s) %2 minute(s) after posting", + "post-edit-duration-expired-days": "You are only allowed to edit posts for %1 day(s) after posting", + "post-edit-duration-expired-days-hours": "You are only allowed to edit posts for %1 day(s) %2 hour(s) after posting", "content-too-short": "Prašome parašyti ilgesni pranešimą. Pranešimas turi sudaryti mažiausiai %1 simboli(us)", "content-too-long": "Prašome parašyti trumpesnį pranešimą. Pranešimas negali sudaryti daugiau %1 simboli(us)", "title-too-short": "Prašome įvesti ilgesni pavadinimą. Pavadinimas turi sudaryti mažiausiai %1 simboli(us)", diff --git a/public/language/ms/error.json b/public/language/ms/error.json index 790970710b..65b9cb304d 100644 --- a/public/language/ms/error.json +++ b/public/language/ms/error.json @@ -40,6 +40,12 @@ "category-disabled": "Kategori dilumpuhkan", "topic-locked": "Topik Dikunci", "post-edit-duration-expired": "Anda hanya dibenarkan menyunting kiriman selepas %1 saat() berlalu", + "post-edit-duration-expired-minutes": "You are only allowed to edit posts for %1 minute(s) after posting", + "post-edit-duration-expired-minutes-seconds": "You are only allowed to edit posts for %1 minute(s) %2 second(s) after posting", + "post-edit-duration-expired-hours": "You are only allowed to edit posts for %1 hour(s) after posting", + "post-edit-duration-expired-hours-minutes": "You are only allowed to edit posts for %1 hour(s) %2 minute(s) after posting", + "post-edit-duration-expired-days": "You are only allowed to edit posts for %1 day(s) after posting", + "post-edit-duration-expired-days-hours": "You are only allowed to edit posts for %1 day(s) %2 hour(s) after posting", "content-too-short": "Sila masukkan kiriman yang lebih panjang. Kiriman mesti mengandungi sekurang-kurangnya %1 aksara().", "content-too-long": "Sila masukkan kiriman yang lebih ringkas. Kiriman mesti mengandungi tidak lebih %1 aksara().", "title-too-short": "Sila masukkan tajuk yang lebih panjang. Tajuk mesti mengandungi sekurang-kurangnya %1 aksara().", diff --git a/public/language/nb/error.json b/public/language/nb/error.json index 5ebe7f9b86..e3270eeab4 100644 --- a/public/language/nb/error.json +++ b/public/language/nb/error.json @@ -40,6 +40,12 @@ "category-disabled": "Kategori deaktivert", "topic-locked": "Emne låst", "post-edit-duration-expired": "Du har bare lov til å redigere innlegg i %1 sekund(er) etter at det er sendt", + "post-edit-duration-expired-minutes": "You are only allowed to edit posts for %1 minute(s) after posting", + "post-edit-duration-expired-minutes-seconds": "You are only allowed to edit posts for %1 minute(s) %2 second(s) after posting", + "post-edit-duration-expired-hours": "You are only allowed to edit posts for %1 hour(s) after posting", + "post-edit-duration-expired-hours-minutes": "You are only allowed to edit posts for %1 hour(s) %2 minute(s) after posting", + "post-edit-duration-expired-days": "You are only allowed to edit posts for %1 day(s) after posting", + "post-edit-duration-expired-days-hours": "You are only allowed to edit posts for %1 day(s) %2 hour(s) after posting", "content-too-short": "Vennligst skriv et lengre innlegg. Innlegg må inneholde minst %1 tegn.", "content-too-long": "Vennligst skriv et kortere innlegg. Innlegg kan ikke være lengre enn %1 tegn.", "title-too-short": "Vennligst skriv en lengre tittel. Titler må inneholde minst %1 tegn.", diff --git a/public/language/nl/error.json b/public/language/nl/error.json index a469d872a5..89957ef654 100644 --- a/public/language/nl/error.json +++ b/public/language/nl/error.json @@ -40,6 +40,12 @@ "category-disabled": "Categorie uitgeschakeld", "topic-locked": "Onderwerp gesloten", "post-edit-duration-expired": "Het is slechts toegestaan om binnen %1 seconde(n) na plaatsen van het bericht, deze te bewerken.", + "post-edit-duration-expired-minutes": "You are only allowed to edit posts for %1 minute(s) after posting", + "post-edit-duration-expired-minutes-seconds": "You are only allowed to edit posts for %1 minute(s) %2 second(s) after posting", + "post-edit-duration-expired-hours": "You are only allowed to edit posts for %1 hour(s) after posting", + "post-edit-duration-expired-hours-minutes": "You are only allowed to edit posts for %1 hour(s) %2 minute(s) after posting", + "post-edit-duration-expired-days": "You are only allowed to edit posts for %1 day(s) after posting", + "post-edit-duration-expired-days-hours": "You are only allowed to edit posts for %1 day(s) %2 hour(s) after posting", "content-too-short": "Geef wat meer inhoud aan een bericht! Berichten dienen uit minimaal %1 teken(s) te bestaan.", "content-too-long": "Kort het bericht wat in, het aantal gebruikte tekens overschrijdt het ingestelde limiet want berichten mogen niet meer dan %1 teken(s) bevatten.", "title-too-short": "Geef een titel op die uit meer tekens bestaat. Titels dienen ten minste uit %1 teken(s) te bestaan.", diff --git a/public/language/pl/error.json b/public/language/pl/error.json index 46bee2204a..f9437c5e8a 100644 --- a/public/language/pl/error.json +++ b/public/language/pl/error.json @@ -40,6 +40,12 @@ "category-disabled": "Kategoria wyłączona.", "topic-locked": "Temat Zablokowany", "post-edit-duration-expired": "Możesz edytować posty tylko przez %1 sekund(y) po ich napisaniu", + "post-edit-duration-expired-minutes": "You are only allowed to edit posts for %1 minute(s) after posting", + "post-edit-duration-expired-minutes-seconds": "You are only allowed to edit posts for %1 minute(s) %2 second(s) after posting", + "post-edit-duration-expired-hours": "You are only allowed to edit posts for %1 hour(s) after posting", + "post-edit-duration-expired-hours-minutes": "You are only allowed to edit posts for %1 hour(s) %2 minute(s) after posting", + "post-edit-duration-expired-days": "You are only allowed to edit posts for %1 day(s) after posting", + "post-edit-duration-expired-days-hours": "You are only allowed to edit posts for %1 day(s) %2 hour(s) after posting", "content-too-short": "Prosimy wpisać dłuższy post. Posty powinny zawierać co najmniej %1 znaków.", "content-too-long": "Prosimy wpisać krótszy post. Posty nie mogą zawierać więcej niż %1 znaków.", "title-too-short": "Prosimy podać dłuższy tytuł. Tytuły powinny zawierać co najmniej %1 znaków.", diff --git a/public/language/pt_BR/error.json b/public/language/pt_BR/error.json index 06dc8588cd..acaa28ed59 100644 --- a/public/language/pt_BR/error.json +++ b/public/language/pt_BR/error.json @@ -40,6 +40,12 @@ "category-disabled": "Categoria desativada", "topic-locked": "Tópico Trancado", "post-edit-duration-expired": "Você só pode editar posts %1 segundo(s) após postar.", + "post-edit-duration-expired-minutes": "You are only allowed to edit posts for %1 minute(s) after posting", + "post-edit-duration-expired-minutes-seconds": "You are only allowed to edit posts for %1 minute(s) %2 second(s) after posting", + "post-edit-duration-expired-hours": "You are only allowed to edit posts for %1 hour(s) after posting", + "post-edit-duration-expired-hours-minutes": "You are only allowed to edit posts for %1 hour(s) %2 minute(s) after posting", + "post-edit-duration-expired-days": "You are only allowed to edit posts for %1 day(s) after posting", + "post-edit-duration-expired-days-hours": "You are only allowed to edit posts for %1 day(s) %2 hour(s) after posting", "content-too-short": "Por favor digite um post maior. Posts precisam conter ao menos %1 caractere(s).", "content-too-long": "Por favor digite um post mais curto. Posts não podem ser maiores que %1 caractere(s)", "title-too-short": "Por favor digite um título maior. Títulos devem conter no mínimo %1 caractere(s)", diff --git a/public/language/ro/error.json b/public/language/ro/error.json index 986fbb8f19..5535c7385b 100644 --- a/public/language/ro/error.json +++ b/public/language/ro/error.json @@ -40,6 +40,12 @@ "category-disabled": "Categorie dezactivată", "topic-locked": "Subiect Închis", "post-edit-duration-expired": "You are only allowed to edit posts for %1 second(s) after posting", + "post-edit-duration-expired-minutes": "You are only allowed to edit posts for %1 minute(s) after posting", + "post-edit-duration-expired-minutes-seconds": "You are only allowed to edit posts for %1 minute(s) %2 second(s) after posting", + "post-edit-duration-expired-hours": "You are only allowed to edit posts for %1 hour(s) after posting", + "post-edit-duration-expired-hours-minutes": "You are only allowed to edit posts for %1 hour(s) %2 minute(s) after posting", + "post-edit-duration-expired-days": "You are only allowed to edit posts for %1 day(s) after posting", + "post-edit-duration-expired-days-hours": "You are only allowed to edit posts for %1 day(s) %2 hour(s) after posting", "content-too-short": "Please enter a longer post. Posts should contain at least %1 character(s).", "content-too-long": "Please enter a shorter post. Posts can't be longer than %1 character(s).", "title-too-short": "Please enter a longer title. Titles should contain at least %1 character(s).", diff --git a/public/language/ru/error.json b/public/language/ru/error.json index 00b8d29a13..3c7c7ea73f 100644 --- a/public/language/ru/error.json +++ b/public/language/ru/error.json @@ -14,8 +14,8 @@ "invalid-password": "Неверный пароль", "invalid-username-or-password": "Пожалуйста, укажите и имя пользователя и пароль", "invalid-search-term": "Неверный поисковой запрос", - "csrf-invalid": "We were unable to log you in, likely due to an expired session. Please try again", - "invalid-pagination-value": "Invalid pagination value, must be at least %1 and at most %2", + "csrf-invalid": "Нам не удалось Вас найти из-за просроченной сессии. Попробуйте еще раз.", + "invalid-pagination-value": "Неверное значение страницы. Значение должно быть в диапазоне от %1 до %2", "username-taken": "Имя пользователя занято", "email-taken": "Email занят", "email-not-confirmed": "Ваш email не подтвержден, нажмите для подтверждения.", @@ -23,7 +23,7 @@ "no-email-to-confirm": "Этот форум требует подтверждения по E-mail. Нажмите здесь для ввода E-mail.", "email-confirm-failed": "Мы не можем подтвердить Ваш E-mail, попробуйте позже.", "confirm-email-already-sent": "Сообщение для подтверждения уже выслано на E-mail. Повторная отправка возможна через %1 мин.", - "sendmail-not-found": "The sendmail executable could not be found, please ensure it is installed and executable by the user running NodeBB.", + "sendmail-not-found": "Не можем найти sendmail, убедитесь что он установлен и управляется NodeBB.", "username-too-short": "Слишком короткое имя пользователя", "username-too-long": "Имя пользователя слишком длинное", "password-too-long": "Пароль слишком длинный", @@ -40,6 +40,12 @@ "category-disabled": "Категория отключена", "topic-locked": "Тема закрыта", "post-edit-duration-expired": "Сообщения можно редактировать только в течение %1 секунд(ы) после опубликования", + "post-edit-duration-expired-minutes": "Вы можете редактировать посты только в течение %1 минут(ы) после публикации.", + "post-edit-duration-expired-minutes-seconds": "Вы можете редактировать сообщение в течение %1 минут(ы) %2 секунд(ы) после публикации.", + "post-edit-duration-expired-hours": "Вы можете редактировать сообщения в течение %1 час(а) после публикации.", + "post-edit-duration-expired-hours-minutes": "Вы можете редактировать сообщения в течение %1 час(а) %2 минут(ы) после публикации.", + "post-edit-duration-expired-days": "Вы можете редактировать сообщения в течение %1 дня(ей) после публикации.", + "post-edit-duration-expired-days-hours": "Вы можете редактировать сообщения в течение %1 чдня(ей) и %2 час(а) после публикации.", "content-too-short": "Слишком короткое сообщение. Минимум символов: %1.", "content-too-long": "Слишком длинное сообщение. Максимум символов: %1.", "title-too-short": "Слишком короткое сообщение. Минимум символов: %1.", @@ -54,7 +60,7 @@ "file-too-big": "Слишком большой файл. Максимальный размер: %1 Кбайт.", "guest-upload-disabled": "Загрузка для гостей была отключена", "already-favourited": "Вы уже добавили это сообщение в закладки", - "already-unfavourited": "You have already unbookmarked this post", + "already-unfavourited": "Вы уже убрали из закладок этот пост", "cant-ban-other-admins": "Вы не можете забанить других администраторов!", "cant-remove-last-admin": "Вы единственный администратор. Назначьте другого пользователя администратором, прежде чем складывать с себя полномочия админа", "invalid-image-type": "Неверный формат изображения. Поддерживаемые форматы: %1", diff --git a/public/language/ru/global.json b/public/language/ru/global.json index 3c6a09c0b5..c011811dba 100644 --- a/public/language/ru/global.json +++ b/public/language/ru/global.json @@ -50,8 +50,8 @@ "topics": "Темы", "posts": "Сообщения", "best": "Лучшие", - "upvoted": "Upvoted", - "downvoted": "Downvoted", + "upvoted": "Повышение рейтинга", + "downvoted": "Понижение рейтинга", "views": "Просмотры", "reputation": "Репутация", "read_more": "читать дальше", @@ -60,12 +60,12 @@ "posted_ago_by": "сообщений %1 от %2", "posted_ago": "написал %1", "posted_in": "написал в %1", - "posted_in_by": "posted in %1 by %2", + "posted_in_by": "опубликовано в %1 %2", "posted_in_ago": "написал в %1 %2", "posted_in_ago_by": "%3 написал в %1 %2", "user_posted_ago": "%1 написал %2", "guest_posted_ago": "Гость написал %1", - "last_edited_by": "last edited by %1", + "last_edited_by": "отредактировано %1", "norecentposts": "Нет новых сообщений", "norecenttopics": "Нету новых тем", "recentposts": "Свежие записи", diff --git a/public/language/ru/groups.json b/public/language/ru/groups.json index eeeca0e8fb..53ac0687f2 100644 --- a/public/language/ru/groups.json +++ b/public/language/ru/groups.json @@ -41,7 +41,7 @@ "details.hidden": "Скрыто", "details.hidden_help": "Если включено, группа не будет показываться в списках, а пользователи должны приглашаться вручную", "details.delete_group": "Удалить группу", - "details.private_system_help": "Private groups is disabled at system level, this option does not do anything", + "details.private_system_help": "Частные группы отключены на уровне системы, эта опция ничего не даст", "event.updated": "Настройки группы обновлены", "event.deleted": "Группа \"%1\" удалена", "membership.accept-invitation": "Принять приглашение", diff --git a/public/language/ru/login.json b/public/language/ru/login.json index 43764ef23b..62a4e64f8a 100644 --- a/public/language/ru/login.json +++ b/public/language/ru/login.json @@ -5,7 +5,7 @@ "remember_me": "Запомнить меня", "forgot_password": "Забыли пароль?", "alternative_logins": "Войти через", - "failed_login_attempt": "Login Unsuccessful", + "failed_login_attempt": "Некорректный логин", "login_successful": "Вы успешно вошли!", "dont_have_account": "Нет акканута?" } \ No newline at end of file diff --git a/public/language/ru/notifications.json b/public/language/ru/notifications.json index 21c0a3b46c..eae90894d7 100644 --- a/public/language/ru/notifications.json +++ b/public/language/ru/notifications.json @@ -16,9 +16,9 @@ "upvoted_your_post_in_multiple": "%1 и %2 другие проголосовали за ваше сообщение в %3", "moved_your_post": "%1 переместил Ваше сообщение в %2", "moved_your_topic": "%1 переместил %2", - "favourited_your_post_in": "%1 has bookmarked your post in %2.", - "favourited_your_post_in_dual": "%1 and %2 have bookmarked your post in %3.", - "favourited_your_post_in_multiple": "%1 and %2 others have bookmarked your post in %3.", + "favourited_your_post_in": "%1 сделал закладкой Ваш пост в %2.", + "favourited_your_post_in_dual": "%1 и %2 добавили в закладки Ваш пост в %3.", + "favourited_your_post_in_multiple": "%1 и %2 добавили в закладки Ваш пост в %3.", "user_flagged_post_in": "%1 пометил сообщение в %2", "user_flagged_post_in_dual": "%1 и %2 пометили ваше сообщение в %3", "user_flagged_post_in_multiple": "%1 и %2 другие пометили ваше сообщение %3", @@ -30,7 +30,7 @@ "user_started_following_you_dual": "%1 и %2 подписались на вас.", "user_started_following_you_multiple": "%1 и %2 подписались на вас.", "new_register": "%1 отправил запрос на регистрацию.", - "new_register_multiple": "There are %1 registration requests awaiting review.", + "new_register_multiple": "В очереди %1 заявок на регистрацию.", "email-confirmed": "Email подтвержден", "email-confirmed-message": "Спасибо за подтверждение Вашего Email-адреса. Ваш аккаунт активирован.", "email-confirm-error-message": "Ошибка проверки Email-адреса. Возможно, код неверен, либо у него истек срок действия.", diff --git a/public/language/ru/pages.json b/public/language/ru/pages.json index 962dba881c..62ea6d05a0 100644 --- a/public/language/ru/pages.json +++ b/public/language/ru/pages.json @@ -33,14 +33,14 @@ "account/posts": "Сообщение от %1", "account/topics": "Тема создана %1", "account/groups": "%1 Групп", - "account/favourites": "%1's Bookmarked Posts", + "account/favourites": "%1 постов в закладках", "account/settings": "Настройки пользователя", "account/watched": "Тему смотрели %1", - "account/upvoted": "Posts upvoted by %1", - "account/downvoted": "Posts downvoted by %1", + "account/upvoted": "Рейтинг поста поднят %1", + "account/downvoted": "Рейтинг поста снижен %1", "account/best": "Лучшие сообщения написанные %1", "confirm": "Email подтвержден", "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/ru/topic.json b/public/language/ru/topic.json index e9ba3b041c..5c882e2719 100644 --- a/public/language/ru/topic.json +++ b/public/language/ru/topic.json @@ -26,13 +26,13 @@ "tools": "Опции", "flag": "Отметить", "locked": "Закрыт", - "bookmark_instructions": "Click here to return to the last read post in this thread.", + "bookmark_instructions": "Нажмите здесь, чтобы вернуться к последнему прочитанному сообщению в этой теме.", "flag_title": "Отметить сообщение для модерирования", "flag_success": "Это сообщение было помечено для модерации", "deleted_message": "Эта тема была удалена. Только пользователи с правами управления темами могут ее видеть.", "following_topic.message": "Теперь вы будете получать уведомления при обновлении этой темы.", "not_following_topic.message": "Вы больше не будете получать уведомления из этой темы.", - "ignoring_topic.message": "You will no longer see this topic in the unread topics list. You will be notified when you are mentioned or your post is up voted.", + "ignoring_topic.message": "Вы больше не будете видеть эту тему в списке непрочитанных тем. Вас уведомят, когда Вас упомянут или проголосуют за Ваш пост.", "login_to_subscribe": "Пожалуйста зарегистрируйтесь, или войдите под своим аккаунтом, чтобы подписаться на эту тему.", "markAsUnreadForAll.success": "Тема помечена как непрочитанная для всех.", "mark_unread": "Отметить как непрочитанное", @@ -42,12 +42,12 @@ "watch.title": "Сообщать мне об ответах в этой теме", "unwatch.title": "Не сообщать мне об ответах в этой теме", "share_this_post": "Поделиться этим Сообщением", - "watching": "Watching", - "not-watching": "Not Watching", + "watching": "Наблюдать", + "not-watching": "Не наблюдать", "ignoring": "Игнорирование", - "watching.description": "Notify me of new replies.
Show topic in unread.", - "not-watching.description": "Do not notify me of new replies.
Show topic in unread if category is not ignored.", - "ignoring.description": "Do not notify me of new replies.
Do not show topic in unread.", + "watching.description": "Сообщить мне о новых ответах.
Показать тему в непрочитанных.", + "not-watching.description": "Не уведомлять меня о новых ответах.
Показать тему в непрочитанных, если категория мной не игнорируется.", + "ignoring.description": "Не уведомлять меня о новых ответах.
Не отображать тему в непрочитанных.", "thread_tools.title": "Опции темы", "thread_tools.markAsUnreadForAll": "Отметить как непрочитанные", "thread_tools.pin": "Прикрепить тему", @@ -108,12 +108,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.title": "Создать новую тему вместо этой?", + "stale.warning": "Тема, в которую Вы пишите, очень старая. Вы хотите создать новую тему?", "stale.create": "Создать новую тему", "stale.reply_anyway": "Всё равно ответить в этой теме", - "link_back": "Re: [%1](%2)", + "link_back": "Ответ: [%1](%2)", "spam": "Спам", - "offensive": "Offensive", - "custom-flag-reason": "Enter a flagging reason" + "offensive": "Наступление", + "custom-flag-reason": "Введите другую причину" } \ No newline at end of file diff --git a/public/language/ru/unread.json b/public/language/ru/unread.json index 1317a92a45..421d8d730c 100644 --- a/public/language/ru/unread.json +++ b/public/language/ru/unread.json @@ -7,7 +7,7 @@ "all": "Все", "all_categories": "Все категории", "topics_marked_as_read.success": "Темы помечены как прочитанные!", - "all-topics": "All Topics", - "new-topics": "New Topics", - "watched-topics": "Watched Topics" + "all-topics": "Все темы", + "new-topics": "Новые темы", + "watched-topics": "Наблюдаемые темы" } \ No newline at end of file diff --git a/public/language/ru/user.json b/public/language/ru/user.json index 934d3a04da..b72ce13b4e 100644 --- a/public/language/ru/user.json +++ b/public/language/ru/user.json @@ -79,9 +79,9 @@ "has_no_posts": "Этот пользователь еще ничего не написал.", "has_no_topics": "Этот пользователь еще не размещал какие-либо темы.", "has_no_watched_topics": "Этот пользователь еще не просматривал какие-либо темы.", - "has_no_upvoted_posts": "This user hasn't upvoted any posts yet.", - "has_no_downvoted_posts": "This user hasn't downvoted any posts yet.", - "has_no_voted_posts": "This user has no voted posts", + "has_no_upvoted_posts": "Пользователь не поднимал рейтинг ни одному посту.", + "has_no_downvoted_posts": "Пользователь не понижал рейтинг ни одному посту.", + "has_no_voted_posts": "Пользователь не голосовал за сообщения.", "email_hidden": "Email скрыт", "hidden": "скрыто", "paginate_description": "Разбивать по страницам топики и посты вместо того чтобы выводить бесконечным списком", @@ -92,19 +92,19 @@ "open_links_in_new_tab": "Открывать внешние ссылки в новых вкладках", "enable_topic_searching": "Активировать поиск внутри тем", "topic_search_help": "Если опция включена, поиск в теме будет осуществляться за счёт собственного поиска, который позволит искать во всей теме, а не только в загруженных сообщениях", - "delay_image_loading": "Delay Image Loading", - "image_load_delay_help": "If enabled, images in topics will not load until they are scrolled into view", - "scroll_to_my_post": "After posting a reply, show the new post", + "delay_image_loading": "Ожидайте загрузки изображения", + "image_load_delay_help": "Если включить, изображения в темах не будут загружаться, пока они не появятся в поле зрения.", + "scroll_to_my_post": "После отправки ответа, прокрутить страницу до него.", "follow_topics_you_reply_to": "Следить за темами в которых вы отвечаете", "follow_topics_you_create": "Следить за темами которые вы создаёте", - "grouptitle": "Group Title", + "grouptitle": "Заголовок группы", "no-group-title": "Не показывать бейдж", "select-skin": "Выбрать скин", "select-homepage": "Укажите главную страницу", "homepage": "Главная страница", "homepage_description": "Укажите страницу, которую хотите использовать как главную страницу форума или 'None', что бы использовать страницу по умолчанию.", - "custom_route": "Custom Homepage Route", - "custom_route_help": "Enter a route name here, without any preceding slash (e.g. \"recent\", or \"popular\")", + "custom_route": "Другой маршрут главной страницы", + "custom_route_help": "Введите название маршрута здесь, без слешей (например, \\\"recent\\\", или \\\"popular\\\")", "sso.title": "Сервис единого входа", "sso.associated": "Связан с", "sso.not-associated": "Нажмите здесь, что бы связать себя с" diff --git a/public/language/rw/error.json b/public/language/rw/error.json index 5abd13e7b7..747a82036b 100644 --- a/public/language/rw/error.json +++ b/public/language/rw/error.json @@ -40,6 +40,12 @@ "category-disabled": "Icyiciro cyabujijwe", "topic-locked": "Ikiganiro Cyafungiranywe", "post-edit-duration-expired": "Wemerewe gusa kugira icyo uhindura ku byo washyizeho nyuma y'amasegonda (isegonda) %1 nyuma yo kubishyiraho", + "post-edit-duration-expired-minutes": "You are only allowed to edit posts for %1 minute(s) after posting", + "post-edit-duration-expired-minutes-seconds": "You are only allowed to edit posts for %1 minute(s) %2 second(s) after posting", + "post-edit-duration-expired-hours": "You are only allowed to edit posts for %1 hour(s) after posting", + "post-edit-duration-expired-hours-minutes": "You are only allowed to edit posts for %1 hour(s) %2 minute(s) after posting", + "post-edit-duration-expired-days": "You are only allowed to edit posts for %1 day(s) after posting", + "post-edit-duration-expired-days-hours": "You are only allowed to edit posts for %1 day(s) %2 hour(s) after posting", "content-too-short": "Gerageza ushyireho ikintu kirekireho. Icyo ushyiraho kigomba kuba kigizwe nibura n'inyuguti (cyangwa ibimenyetso) zigera kuri %1.", "content-too-long": "Gerageza ushyireho ibintu bigufiyaho. Icyo ushyiraho kigomba kuba kigizwe n'inyuguti (cyangwa ibimenyetso) zirenga %1. ", "title-too-short": "Gerageza ushyireho umutwe muremureho. Umutwe ugomba kuba ugizwe n'inyuguti (cyangwa ibimenyetso) zigera kuri %1. ", diff --git a/public/language/sc/error.json b/public/language/sc/error.json index 66eb9b04ba..20979833e9 100644 --- a/public/language/sc/error.json +++ b/public/language/sc/error.json @@ -40,6 +40,12 @@ "category-disabled": "Category disabled", "topic-locked": "Topic Locked", "post-edit-duration-expired": "You are only allowed to edit posts for %1 second(s) after posting", + "post-edit-duration-expired-minutes": "You are only allowed to edit posts for %1 minute(s) after posting", + "post-edit-duration-expired-minutes-seconds": "You are only allowed to edit posts for %1 minute(s) %2 second(s) after posting", + "post-edit-duration-expired-hours": "You are only allowed to edit posts for %1 hour(s) after posting", + "post-edit-duration-expired-hours-minutes": "You are only allowed to edit posts for %1 hour(s) %2 minute(s) after posting", + "post-edit-duration-expired-days": "You are only allowed to edit posts for %1 day(s) after posting", + "post-edit-duration-expired-days-hours": "You are only allowed to edit posts for %1 day(s) %2 hour(s) after posting", "content-too-short": "Please enter a longer post. Posts should contain at least %1 character(s).", "content-too-long": "Please enter a shorter post. Posts can't be longer than %1 character(s).", "title-too-short": "Please enter a longer title. Titles should contain at least %1 character(s).", diff --git a/public/language/sk/error.json b/public/language/sk/error.json index 90a82087f1..4b5a94f2aa 100644 --- a/public/language/sk/error.json +++ b/public/language/sk/error.json @@ -40,6 +40,12 @@ "category-disabled": "Kategória je znefunkčená.", "topic-locked": "Uzamknutá téma", "post-edit-duration-expired": "You are only allowed to edit posts for %1 second(s) after posting", + "post-edit-duration-expired-minutes": "You are only allowed to edit posts for %1 minute(s) after posting", + "post-edit-duration-expired-minutes-seconds": "You are only allowed to edit posts for %1 minute(s) %2 second(s) after posting", + "post-edit-duration-expired-hours": "You are only allowed to edit posts for %1 hour(s) after posting", + "post-edit-duration-expired-hours-minutes": "You are only allowed to edit posts for %1 hour(s) %2 minute(s) after posting", + "post-edit-duration-expired-days": "You are only allowed to edit posts for %1 day(s) after posting", + "post-edit-duration-expired-days-hours": "You are only allowed to edit posts for %1 day(s) %2 hour(s) after posting", "content-too-short": "Please enter a longer post. Posts should contain at least %1 character(s).", "content-too-long": "Please enter a shorter post. Posts can't be longer than %1 character(s).", "title-too-short": "Please enter a longer title. Titles should contain at least %1 character(s).", diff --git a/public/language/sl/error.json b/public/language/sl/error.json index 37a42a71fa..86e5178815 100644 --- a/public/language/sl/error.json +++ b/public/language/sl/error.json @@ -40,6 +40,12 @@ "category-disabled": "Kategorija onemogočena", "topic-locked": "Tema zaklenjena", "post-edit-duration-expired": "Urejanje objave je dovoljeno le %1 sekund po prvi objavi.", + "post-edit-duration-expired-minutes": "You are only allowed to edit posts for %1 minute(s) after posting", + "post-edit-duration-expired-minutes-seconds": "You are only allowed to edit posts for %1 minute(s) %2 second(s) after posting", + "post-edit-duration-expired-hours": "You are only allowed to edit posts for %1 hour(s) after posting", + "post-edit-duration-expired-hours-minutes": "You are only allowed to edit posts for %1 hour(s) %2 minute(s) after posting", + "post-edit-duration-expired-days": "You are only allowed to edit posts for %1 day(s) after posting", + "post-edit-duration-expired-days-hours": "You are only allowed to edit posts for %1 day(s) %2 hour(s) after posting", "content-too-short": "Prosimo napišite daljšo objavo. Objave morajo vsebovati vsaj %1 znak(ov).", "content-too-long": "Prosimo napišite krajšo objavo. Objave ne smejo vsebovati več kot %1 znak(ov).", "title-too-short": "Prosimo vnesite daljši naslov. Naslovi morajo vsebovati vsaj %1 znak(ov).", diff --git a/public/language/sr/error.json b/public/language/sr/error.json index 3b6c56c969..aa0a6956be 100644 --- a/public/language/sr/error.json +++ b/public/language/sr/error.json @@ -40,6 +40,12 @@ "category-disabled": "Category disabled", "topic-locked": "Тема је закључана", "post-edit-duration-expired": "You are only allowed to edit posts for %1 second(s) after posting", + "post-edit-duration-expired-minutes": "You are only allowed to edit posts for %1 minute(s) after posting", + "post-edit-duration-expired-minutes-seconds": "You are only allowed to edit posts for %1 minute(s) %2 second(s) after posting", + "post-edit-duration-expired-hours": "You are only allowed to edit posts for %1 hour(s) after posting", + "post-edit-duration-expired-hours-minutes": "You are only allowed to edit posts for %1 hour(s) %2 minute(s) after posting", + "post-edit-duration-expired-days": "You are only allowed to edit posts for %1 day(s) after posting", + "post-edit-duration-expired-days-hours": "You are only allowed to edit posts for %1 day(s) %2 hour(s) after posting", "content-too-short": "Please enter a longer post. Posts should contain at least %1 character(s).", "content-too-long": "Please enter a shorter post. Posts can't be longer than %1 character(s).", "title-too-short": "Please enter a longer title. Titles should contain at least %1 character(s).", diff --git a/public/language/sv/error.json b/public/language/sv/error.json index 28432eb55a..663f466e37 100644 --- a/public/language/sv/error.json +++ b/public/language/sv/error.json @@ -40,6 +40,12 @@ "category-disabled": "Kategorin inaktiverad", "topic-locked": "Ämnet låst", "post-edit-duration-expired": "Du kan endast ändra inlägg inom %1 sekund(er) efter att ha skickat det", + "post-edit-duration-expired-minutes": "You are only allowed to edit posts for %1 minute(s) after posting", + "post-edit-duration-expired-minutes-seconds": "You are only allowed to edit posts for %1 minute(s) %2 second(s) after posting", + "post-edit-duration-expired-hours": "You are only allowed to edit posts for %1 hour(s) after posting", + "post-edit-duration-expired-hours-minutes": "You are only allowed to edit posts for %1 hour(s) %2 minute(s) after posting", + "post-edit-duration-expired-days": "You are only allowed to edit posts for %1 day(s) after posting", + "post-edit-duration-expired-days-hours": "You are only allowed to edit posts for %1 day(s) %2 hour(s) after posting", "content-too-short": "Skriv ett längre inlägg. Inlägg måste innehålla minst %1 tecken.", "content-too-long": "Skriv ett kortare inlägg. Inlägg kan inte innehålla mer än %1 tecken.", "title-too-short": "Skriv en längre rubrik. Rubriker måste innehålla minst %1 tecken.", diff --git a/public/language/th/error.json b/public/language/th/error.json index 9bf0093c6b..bba7b6f6ad 100644 --- a/public/language/th/error.json +++ b/public/language/th/error.json @@ -40,6 +40,12 @@ "category-disabled": "Category นี้ถูกปิดการใช้งานแล้ว", "topic-locked": "Topic Locked", "post-edit-duration-expired": "You are only allowed to edit posts for %1 second(s) after posting", + "post-edit-duration-expired-minutes": "You are only allowed to edit posts for %1 minute(s) after posting", + "post-edit-duration-expired-minutes-seconds": "You are only allowed to edit posts for %1 minute(s) %2 second(s) after posting", + "post-edit-duration-expired-hours": "You are only allowed to edit posts for %1 hour(s) after posting", + "post-edit-duration-expired-hours-minutes": "You are only allowed to edit posts for %1 hour(s) %2 minute(s) after posting", + "post-edit-duration-expired-days": "You are only allowed to edit posts for %1 day(s) after posting", + "post-edit-duration-expired-days-hours": "You are only allowed to edit posts for %1 day(s) %2 hour(s) after posting", "content-too-short": "Please enter a longer post. Posts should contain at least %1 character(s).", "content-too-long": "Please enter a shorter post. Posts can't be longer than %1 character(s).", "title-too-short": "Please enter a longer title. Titles should contain at least %1 character(s).", diff --git a/public/language/tr/error.json b/public/language/tr/error.json index 776523067a..df5f84b8da 100644 --- a/public/language/tr/error.json +++ b/public/language/tr/error.json @@ -40,6 +40,12 @@ "category-disabled": "Kategori aktif değil", "topic-locked": "Başlık Kilitli", "post-edit-duration-expired": "Gönderilen iletiler %1 saniyeden sonra değiştirilemez", + "post-edit-duration-expired-minutes": "You are only allowed to edit posts for %1 minute(s) after posting", + "post-edit-duration-expired-minutes-seconds": "You are only allowed to edit posts for %1 minute(s) %2 second(s) after posting", + "post-edit-duration-expired-hours": "You are only allowed to edit posts for %1 hour(s) after posting", + "post-edit-duration-expired-hours-minutes": "You are only allowed to edit posts for %1 hour(s) %2 minute(s) after posting", + "post-edit-duration-expired-days": "You are only allowed to edit posts for %1 day(s) after posting", + "post-edit-duration-expired-days-hours": "You are only allowed to edit posts for %1 day(s) %2 hour(s) after posting", "content-too-short": "Lütfen daha uzun bir ileti girin. En az %1 karakter.", "content-too-long": "Lütfen daha kısa bir ileti girin. İletiler %1 karakterden uzun olamaz.", "title-too-short": "Lütfen daha uzun bir başlık girin. Başlıklar en az %1 karakter içermelidir.", diff --git a/public/language/vi/error.json b/public/language/vi/error.json index 31c13565e9..3174194992 100644 --- a/public/language/vi/error.json +++ b/public/language/vi/error.json @@ -40,6 +40,12 @@ "category-disabled": "Danh mục bị khóa", "topic-locked": "Chủ đề bị khóa", "post-edit-duration-expired": "Bạn chỉ được phép sửa bài viết sau khi đăng %1 giây.", + "post-edit-duration-expired-minutes": "You are only allowed to edit posts for %1 minute(s) after posting", + "post-edit-duration-expired-minutes-seconds": "You are only allowed to edit posts for %1 minute(s) %2 second(s) after posting", + "post-edit-duration-expired-hours": "You are only allowed to edit posts for %1 hour(s) after posting", + "post-edit-duration-expired-hours-minutes": "You are only allowed to edit posts for %1 hour(s) %2 minute(s) after posting", + "post-edit-duration-expired-days": "You are only allowed to edit posts for %1 day(s) after posting", + "post-edit-duration-expired-days-hours": "You are only allowed to edit posts for %1 day(s) %2 hour(s) after posting", "content-too-short": "Vui lòng nhập một bài viết dài hơn. Bài viết phải có tối thiểu %1 ký tự.", "content-too-long": "Vui lòng nhập một bài viết ngắn hơn. Bài viết chỉ có thể có tối đa %1 ký tự.", "title-too-short": "Vui lòng nhập tiêu đề dài hơn. Tiêu đề phải có tối thiểu %1 ký tự.", diff --git a/public/language/zh_CN/error.json b/public/language/zh_CN/error.json index c011152297..1c0009425e 100644 --- a/public/language/zh_CN/error.json +++ b/public/language/zh_CN/error.json @@ -40,6 +40,12 @@ "category-disabled": "版块已禁用", "topic-locked": "主题已锁定", "post-edit-duration-expired": "您必须在发表 %1 秒后才能修改内容", + "post-edit-duration-expired-minutes": "You are only allowed to edit posts for %1 minute(s) after posting", + "post-edit-duration-expired-minutes-seconds": "You are only allowed to edit posts for %1 minute(s) %2 second(s) after posting", + "post-edit-duration-expired-hours": "You are only allowed to edit posts for %1 hour(s) after posting", + "post-edit-duration-expired-hours-minutes": "You are only allowed to edit posts for %1 hour(s) %2 minute(s) after posting", + "post-edit-duration-expired-days": "You are only allowed to edit posts for %1 day(s) after posting", + "post-edit-duration-expired-days-hours": "You are only allowed to edit posts for %1 day(s) %2 hour(s) after posting", "content-too-short": "请增添发帖内容,不能少于 %1 个字符。", "content-too-long": "请删减发帖内容,不能超过 %1 个字符。", "title-too-short": "请增加标题,不能少于 %1 个字符。", diff --git a/public/language/zh_TW/error.json b/public/language/zh_TW/error.json index bb40b11933..dadb7e23a2 100644 --- a/public/language/zh_TW/error.json +++ b/public/language/zh_TW/error.json @@ -40,6 +40,12 @@ "category-disabled": "該類別已被關閉", "topic-locked": "該主題已被鎖定", "post-edit-duration-expired": "在張貼 %1 秒後,你才能編輯張貼文章", + "post-edit-duration-expired-minutes": "You are only allowed to edit posts for %1 minute(s) after posting", + "post-edit-duration-expired-minutes-seconds": "You are only allowed to edit posts for %1 minute(s) %2 second(s) after posting", + "post-edit-duration-expired-hours": "You are only allowed to edit posts for %1 hour(s) after posting", + "post-edit-duration-expired-hours-minutes": "You are only allowed to edit posts for %1 hour(s) %2 minute(s) after posting", + "post-edit-duration-expired-days": "You are only allowed to edit posts for %1 day(s) after posting", + "post-edit-duration-expired-days-hours": "You are only allowed to edit posts for %1 day(s) %2 hour(s) after posting", "content-too-short": "請輸入一個長一點的張貼內容。張貼內容長度不能少於 %1 字元。", "content-too-long": "請輸入一個短一點的張貼內容。張貼內容長度不能超過 %1 字元。", "title-too-short": "請輸入一個長一點的標題。標題長度不能少於 %1 字元。", From 3e23426c31b381718543b5453e36460f95feb92f Mon Sep 17 00:00:00 2001 From: psychobunny Date: Wed, 8 Jun 2016 14:53:08 -0400 Subject: [PATCH 15/29] better messaging on flags page --- src/views/admin/manage/flags.tpl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/views/admin/manage/flags.tpl b/src/views/admin/manage/flags.tpl index d5807ce88e..a7a9253163 100644 --- a/src/views/admin/manage/flags.tpl +++ b/src/views/admin/manage/flags.tpl @@ -83,8 +83,8 @@
- - + +
From 0a1dea09a08969c4a6bd8421ee9d022e299c5037 Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Wed, 8 Jun 2016 17:45:45 -0400 Subject: [PATCH 16/29] added missing dependency lib --- src/socket.io/index.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/socket.io/index.js b/src/socket.io/index.js index d590cfe716..89459c50b3 100644 --- a/src/socket.io/index.js +++ b/src/socket.io/index.js @@ -6,6 +6,7 @@ var async = require('async'); var nconf = require('nconf'); var cookieParser = require('cookie-parser')(nconf.get('secret')); var winston = require('winston'); +var url = require('url'); var db = require('../database'); var logger = require('../logger'); From c60f571d2ca18f18cb2cbc6ada2b47761f287b7f Mon Sep 17 00:00:00 2001 From: pichalite Date: Wed, 8 Jun 2016 23:21:11 +0000 Subject: [PATCH 17/29] fixes #4727 --- public/src/client/login.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/public/src/client/login.js b/public/src/client/login.js index ace40db68d..ab8dc0fe8a 100644 --- a/public/src/client/login.js +++ b/public/src/client/login.js @@ -57,10 +57,11 @@ define('forum/login', ['csrf', 'translator'], function(csrf, translator) { // Add "returnTo" data if present - if (app.previousUrl) { + if (app.previousUrl && $('#returnTo').length === 0) { var returnToEl = document.createElement('input'); returnToEl.type = 'hidden'; returnToEl.name = 'returnTo'; + returnToEl.id = 'returnTo'; returnToEl.value = app.previousUrl; $(returnToEl).appendTo(formEl); } From ae19f0ff7d5ae48464431fda9a083708865e5772 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Thu, 9 Jun 2016 14:29:54 +0300 Subject: [PATCH 18/29] closes #4713 --- src/controllers/unread.js | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/controllers/unread.js b/src/controllers/unread.js index 0fc32c390c..82efcd2dd3 100644 --- a/src/controllers/unread.js +++ b/src/controllers/unread.js @@ -2,6 +2,7 @@ 'use strict'; var async = require('async'); +var querystring = require('querystring'); var categories = require('../categories'); var privileges = require('../privileges'); @@ -47,6 +48,14 @@ unreadController.get = function(req, res, next) { return next(err); } + data.pageCount = Math.max(1, Math.ceil(data.topicCount / settings.topicsPerPage)); + data.pagination = pagination.create(page, data.pageCount, req.query); + + if (settings.usePagination && (page < 1 || page > data.pageCount)) { + req.query.page = Math.max(1, Math.min(data.pageCount, page)); + return helpers.redirect(res, '/unread?' + querystring.stringify(req.query)); + } + data.categories = results.watchedCategories.categories; data.selectedCategory = results.watchedCategories.selectedCategory; @@ -75,9 +84,6 @@ unreadController.get = function(req, res, next) { data.querystring = req.query.cid ? ('?cid=' + req.query.cid) : ''; - data.pageCount = Math.max(1, Math.ceil(data.topicCount / settings.topicsPerPage)); - data.pagination = pagination.create(page, data.pageCount, req.query); - res.render('unread', data); }); }; From ecaa3eadcbcd31e15456c58e0de3d9c2b4b7dcdc Mon Sep 17 00:00:00 2001 From: NodeBB Misty Date: Thu, 9 Jun 2016 09:02:30 -0400 Subject: [PATCH 19/29] Latest translations and fallbacks --- public/language/pt_BR/error.json | 12 ++++++------ public/language/tr/error.json | 14 +++++++------- public/language/tr/topic.json | 2 +- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/public/language/pt_BR/error.json b/public/language/pt_BR/error.json index acaa28ed59..4b7d42c828 100644 --- a/public/language/pt_BR/error.json +++ b/public/language/pt_BR/error.json @@ -40,12 +40,12 @@ "category-disabled": "Categoria desativada", "topic-locked": "Tópico Trancado", "post-edit-duration-expired": "Você só pode editar posts %1 segundo(s) após postar.", - "post-edit-duration-expired-minutes": "You are only allowed to edit posts for %1 minute(s) after posting", - "post-edit-duration-expired-minutes-seconds": "You are only allowed to edit posts for %1 minute(s) %2 second(s) after posting", - "post-edit-duration-expired-hours": "You are only allowed to edit posts for %1 hour(s) after posting", - "post-edit-duration-expired-hours-minutes": "You are only allowed to edit posts for %1 hour(s) %2 minute(s) after posting", - "post-edit-duration-expired-days": "You are only allowed to edit posts for %1 day(s) after posting", - "post-edit-duration-expired-days-hours": "You are only allowed to edit posts for %1 day(s) %2 hour(s) after posting", + "post-edit-duration-expired-minutes": "Você pode apenas editar posts por %1 minuto(s) após postar", + "post-edit-duration-expired-minutes-seconds": "Você pode apenas editar posts por %1 minuto(s) e %2 segundo(s) após postar", + "post-edit-duration-expired-hours": "Você pode apenas editar posts por %1 hora(s) após postar", + "post-edit-duration-expired-hours-minutes": "Você pode apenas editar posts por %1 hora(s) e %2 minuto(s) após postar", + "post-edit-duration-expired-days": "Você pode apenas editar posts por %1 dia(s) após postar", + "post-edit-duration-expired-days-hours": "Você pode apenas editar posts por %1 dia(s) e %2 hora(s) após postar", "content-too-short": "Por favor digite um post maior. Posts precisam conter ao menos %1 caractere(s).", "content-too-long": "Por favor digite um post mais curto. Posts não podem ser maiores que %1 caractere(s)", "title-too-short": "Por favor digite um título maior. Títulos devem conter no mínimo %1 caractere(s)", diff --git a/public/language/tr/error.json b/public/language/tr/error.json index df5f84b8da..4aeb389e15 100644 --- a/public/language/tr/error.json +++ b/public/language/tr/error.json @@ -14,7 +14,7 @@ "invalid-password": "Geçersiz Şifre", "invalid-username-or-password": "Lütfen kullanıcı ismi ve parola girin.", "invalid-search-term": "Geçersiz arama", - "csrf-invalid": "We were unable to log you in, likely due to an expired session. Please try again", + "csrf-invalid": "Büyük olasılıkla süresi dolmuş oturum nedeniyle girişinizi geçersiz kıldık. Lütfen tekrar deneyiniz.", "invalid-pagination-value": "Geçersiz sayfalama değeri, en az %1 ve en fazla %2 olabilir", "username-taken": "Kullanıcı İsmi Alınmış", "email-taken": "E-posta Alınmış", @@ -40,12 +40,12 @@ "category-disabled": "Kategori aktif değil", "topic-locked": "Başlık Kilitli", "post-edit-duration-expired": "Gönderilen iletiler %1 saniyeden sonra değiştirilemez", - "post-edit-duration-expired-minutes": "You are only allowed to edit posts for %1 minute(s) after posting", - "post-edit-duration-expired-minutes-seconds": "You are only allowed to edit posts for %1 minute(s) %2 second(s) after posting", - "post-edit-duration-expired-hours": "You are only allowed to edit posts for %1 hour(s) after posting", - "post-edit-duration-expired-hours-minutes": "You are only allowed to edit posts for %1 hour(s) %2 minute(s) after posting", - "post-edit-duration-expired-days": "You are only allowed to edit posts for %1 day(s) after posting", - "post-edit-duration-expired-days-hours": "You are only allowed to edit posts for %1 day(s) %2 hour(s) after posting", + "post-edit-duration-expired-minutes": "Gönderildikten %1 dakika(s) sonra iletini düzenlemene izin verilir.", + "post-edit-duration-expired-minutes-seconds": "Gönderildikten %1 dakika(s) %2 saniye(s) sonra iletini düzenlemene izin verilir.", + "post-edit-duration-expired-hours": "Gönderildikten %1 saat(s) sonra iletini düzenlemene izin verilir.", + "post-edit-duration-expired-hours-minutes": "Gönderildikten %1 saat(s) %2 dakika(s) sonra iletini düzenlemene izin verilir.", + "post-edit-duration-expired-days": "Gönderildikten %1 gün(s) sonra iletini düzenlemene izin verilir.", + "post-edit-duration-expired-days-hours": "Gönderildikten %1 gün(s) %2 saat(s) sonra iletini düzenlemene izin verilir.", "content-too-short": "Lütfen daha uzun bir ileti girin. En az %1 karakter.", "content-too-long": "Lütfen daha kısa bir ileti girin. İletiler %1 karakterden uzun olamaz.", "title-too-short": "Lütfen daha uzun bir başlık girin. Başlıklar en az %1 karakter içermelidir.", diff --git a/public/language/tr/topic.json b/public/language/tr/topic.json index ab96d25288..e79c6c3d4e 100644 --- a/public/language/tr/topic.json +++ b/public/language/tr/topic.json @@ -32,7 +32,7 @@ "deleted_message": "Bu başlık silindi. Sadece başlık düzenleme yetkisi olan kullanıcılar görebilir.", "following_topic.message": "Artık bir kullanıcı bu başlığa ileti gönderdiğinde bildirim alacaksınız.", "not_following_topic.message": "Artık bu başlık için bildirim almayacaksınız.", - "ignoring_topic.message": "You will no longer see this topic in the unread topics list. You will be notified when you are mentioned or your post is up voted.", + "ignoring_topic.message": "Bu başlığı okunmamış başlıklar alanında görmeyeceksin. Eğer bir iletide bahsedilirsen veya iletin oylanırsa bildiri alacaksın.", "login_to_subscribe": "Lütfen bu iletiyi başlığa üye olmak için giriş yapın.", "markAsUnreadForAll.success": "Başlık herkes için okunmadı olarak işaretlendi.", "mark_unread": "Okunmadı olarak işaretle", From 8b03199d5c2c26a74d7c0f4501a6670090bcc6f2 Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Thu, 9 Jun 2016 14:28:37 -0400 Subject: [PATCH 20/29] fixes issue where anchors to internal rss feeds would fail to resolve --- public/src/ajaxify.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/public/src/ajaxify.js b/public/src/ajaxify.js index 639669602d..4639acaeca 100644 --- a/public/src/ajaxify.js +++ b/public/src/ajaxify.js @@ -303,6 +303,10 @@ $(document).ready(function() { } } + if (internalLink && $(this).attr('href').endsWith('.rss')) { + return; + } + if (hrefEmpty(this.href) || this.protocol === 'javascript:' || $(this).attr('href') === '#') { return e.preventDefault(); } From 04f3c5b3f2c90bd29b3da2bd3fad1a61be56e253 Mon Sep 17 00:00:00 2001 From: NodeBB Misty Date: Fri, 10 Jun 2016 09:03:30 -0400 Subject: [PATCH 21/29] Latest translations and fallbacks --- public/language/de/error.json | 12 ++++++------ public/language/et/error.json | 12 ++++++------ public/language/fr/search.json | 2 +- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/public/language/de/error.json b/public/language/de/error.json index 8e0d25fc2d..a1a71d8827 100644 --- a/public/language/de/error.json +++ b/public/language/de/error.json @@ -40,12 +40,12 @@ "category-disabled": "Kategorie ist deaktiviert", "topic-locked": "Thema ist gesperrt", "post-edit-duration-expired": "Entschuldigung, du darfst Beiträge nur %1 Sekunde(n) nach dem Veröffentlichen editieren.", - "post-edit-duration-expired-minutes": "You are only allowed to edit posts for %1 minute(s) after posting", - "post-edit-duration-expired-minutes-seconds": "You are only allowed to edit posts for %1 minute(s) %2 second(s) after posting", - "post-edit-duration-expired-hours": "You are only allowed to edit posts for %1 hour(s) after posting", - "post-edit-duration-expired-hours-minutes": "You are only allowed to edit posts for %1 hour(s) %2 minute(s) after posting", - "post-edit-duration-expired-days": "You are only allowed to edit posts for %1 day(s) after posting", - "post-edit-duration-expired-days-hours": "You are only allowed to edit posts for %1 day(s) %2 hour(s) after posting", + "post-edit-duration-expired-minutes": "Du darfst Beiträge lediglich innerhalb von %1 Minuten/n nach dem Erstellen editieren", + "post-edit-duration-expired-minutes-seconds": "Du darfst Beiträge lediglich innerhalb von %1 Minuten/n und %2 Sekunden nach dem Erstellen editieren", + "post-edit-duration-expired-hours": "Du darfst Beiträge lediglich innerhalb von %1 Stunde/n nach dem Erstellen editieren", + "post-edit-duration-expired-hours-minutes": "Du darfst Beiträge lediglich innerhalb von %1 Stunde/n und %2 Minute/n nach dem Erstellen editieren", + "post-edit-duration-expired-days": "Du darfst Beiträge lediglich innerhalb von %1 Tag/en nach dem Erstellen editieren", + "post-edit-duration-expired-days-hours": "Du darfst Beiträge lediglich innerhalb von %1 Tag/en und %2 Stunde/n nach dem Erstellen editieren", "content-too-short": "Bitte schreibe einen längeren Beitrag. Beiträge sollten mindestens %1 Zeichen enthalten.", "content-too-long": "Bitte schreibe einen kürzeren Beitrag. Beiträge können nicht länger als %1 Zeichen sein.", "title-too-short": "Bitte gebe einen längeren Titel ein. Ein Titel muss mindestens %1 Zeichen enthalten.", diff --git a/public/language/et/error.json b/public/language/et/error.json index bde8c23ecf..edceafddbf 100644 --- a/public/language/et/error.json +++ b/public/language/et/error.json @@ -40,12 +40,12 @@ "category-disabled": "Kategooria keelatud", "topic-locked": "Teema lukustatud", "post-edit-duration-expired": "Te peate ootama %1 sekund(it), enne kui oma postitust muudate.", - "post-edit-duration-expired-minutes": "You are only allowed to edit posts for %1 minute(s) after posting", - "post-edit-duration-expired-minutes-seconds": "You are only allowed to edit posts for %1 minute(s) %2 second(s) after posting", - "post-edit-duration-expired-hours": "You are only allowed to edit posts for %1 hour(s) after posting", - "post-edit-duration-expired-hours-minutes": "You are only allowed to edit posts for %1 hour(s) %2 minute(s) after posting", - "post-edit-duration-expired-days": "You are only allowed to edit posts for %1 day(s) after posting", - "post-edit-duration-expired-days-hours": "You are only allowed to edit posts for %1 day(s) %2 hour(s) after posting", + "post-edit-duration-expired-minutes": "Teil on lubatud muuta oma postitusi vaid %1 minuti jooksul peale postitamist", + "post-edit-duration-expired-minutes-seconds": "Teil on lubatud muuta oma postitusi vaid %1 minuti %2 sekundi jooksul peale postitamist", + "post-edit-duration-expired-hours": "Teil on lubatud muuta oma postitusi vaid %1 tunni jooksul peale postitamist", + "post-edit-duration-expired-hours-minutes": "Teil on lubatud muuta oma postitusi vaid %1 tunni %2 minuti jooksul peale postitamist", + "post-edit-duration-expired-days": "Teil on lubatud muuta oma postitusi vaid %1 päeva jooksul peale postitamist", + "post-edit-duration-expired-days-hours": "Teil on lubatud muuta oma postitusi vaid %1 päeva %2 tunni jooksul peale postitamist", "content-too-short": "Palun tehke pikem postitus. Postituse pikkus peab olema vähemalt %1 tähemärk(i).", "content-too-long": "Palun tehke lühem postitus. Postituse pikkus peab olema vähem kui %1 tähemärk(i).", "title-too-short": "Palun sisesta pikem pealkiri. Pealkirjad ei saa olla lühemad kui %1 tähemärk(i).", diff --git a/public/language/fr/search.json b/public/language/fr/search.json index cfbabc6dd0..b371aa3097 100644 --- a/public/language/fr/search.json +++ b/public/language/fr/search.json @@ -7,7 +7,7 @@ "titles-posts": "Titres et Messages", "posted-by": "Posté par", "in-categories": "Dans les catégories", - "search-child-categories": "Chercher les sous catégories", + "search-child-categories": "Rechercher également dans les sous catégories", "reply-count": "Nombre de réponses", "at-least": "Au moins", "at-most": "Au plus", From a1b02d8356f160651061653e48e9ccd1e03284b4 Mon Sep 17 00:00:00 2001 From: NodeBB Misty Date: Sat, 11 Jun 2016 09:04:08 -0400 Subject: [PATCH 22/29] Latest translations and fallbacks --- public/language/zh_CN/error.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/public/language/zh_CN/error.json b/public/language/zh_CN/error.json index 1c0009425e..0dccf62626 100644 --- a/public/language/zh_CN/error.json +++ b/public/language/zh_CN/error.json @@ -40,12 +40,12 @@ "category-disabled": "版块已禁用", "topic-locked": "主题已锁定", "post-edit-duration-expired": "您必须在发表 %1 秒后才能修改内容", - "post-edit-duration-expired-minutes": "You are only allowed to edit posts for %1 minute(s) after posting", - "post-edit-duration-expired-minutes-seconds": "You are only allowed to edit posts for %1 minute(s) %2 second(s) after posting", - "post-edit-duration-expired-hours": "You are only allowed to edit posts for %1 hour(s) after posting", - "post-edit-duration-expired-hours-minutes": "You are only allowed to edit posts for %1 hour(s) %2 minute(s) after posting", - "post-edit-duration-expired-days": "You are only allowed to edit posts for %1 day(s) after posting", - "post-edit-duration-expired-days-hours": "You are only allowed to edit posts for %1 day(s) %2 hour(s) after posting", + "post-edit-duration-expired-minutes": "在发表 %1 分钟后才能修改内容", + "post-edit-duration-expired-minutes-seconds": "发表 %1 分 %2 秒后才能修改内容", + "post-edit-duration-expired-hours": "发表 %1 小时后才能修改内容", + "post-edit-duration-expired-hours-minutes": "发表 %1 小时 %2 分钟后才能修改内容", + "post-edit-duration-expired-days": "发表 %1 天后才能修改内容", + "post-edit-duration-expired-days-hours": "发表 %1 天 %2 小时后才能修改内容", "content-too-short": "请增添发帖内容,不能少于 %1 个字符。", "content-too-long": "请删减发帖内容,不能超过 %1 个字符。", "title-too-short": "请增加标题,不能少于 %1 个字符。", From b7d9e277418404f4df0a3b99e272a971918925fe Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Sat, 11 Jun 2016 15:22:24 -0400 Subject: [PATCH 23/29] upped markdown version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index c251ae2aa8..d0dec1282d 100644 --- a/package.json +++ b/package.json @@ -52,7 +52,7 @@ "nodebb-plugin-dbsearch": "1.0.1", "nodebb-plugin-emoji-extended": "1.1.0", "nodebb-plugin-emoji-one": "1.1.5", - "nodebb-plugin-markdown": "5.1.5", + "nodebb-plugin-markdown": "5.1.6", "nodebb-plugin-mentions": "1.1.2", "nodebb-plugin-soundpack-default": "0.1.6", "nodebb-plugin-spam-be-gone": "0.4.6", From a83427546562475fe3b300bb774727fca610dae3 Mon Sep 17 00:00:00 2001 From: Mega Date: Sun, 12 Jun 2016 07:30:49 +0500 Subject: [PATCH 24/29] Fix: utils.fileMimeType is always undefined --- public/src/utils.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/src/utils.js b/public/src/utils.js index 78e0013c25..a1ce6959a4 100644 --- a/public/src/utils.js +++ b/public/src/utils.js @@ -177,7 +177,7 @@ }, fileMimeType: function (path) { - utils.extensionToMimeType(utils.fileExtension(path)); + return utils.extensionToMimeType(utils.fileExtension(path)); }, extensionToMimeType: function(extension) { From d272912e138375bc81cd5433fff944ecf664081f Mon Sep 17 00:00:00 2001 From: NodeBB Misty Date: Sun, 12 Jun 2016 09:04:27 -0400 Subject: [PATCH 25/29] Latest translations and fallbacks --- public/language/tr/error.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/language/tr/error.json b/public/language/tr/error.json index 4aeb389e15..38d253f631 100644 --- a/public/language/tr/error.json +++ b/public/language/tr/error.json @@ -23,7 +23,7 @@ "no-email-to-confirm": "Bu forum e-posta doğrulaması gerektirir, lütfen buraya bir e-posta adresi girin", "email-confirm-failed": "E-posta adresinizi doğrulayamıyoruz. Lütfen daha sonra tekrar deneyin.", "confirm-email-already-sent": "E-mail onayı zaten gönderilmiş, yeni bir onay göndermek için lütfen 1 dakika bekleyin.", - "sendmail-not-found": "The sendmail executable could not be found, please ensure it is installed and executable by the user running NodeBB.", + "sendmail-not-found": "Sendmail yürütülemedi, lüften indirildiğinden ve NodeBB kullanıcısı tarafından uygulanabilir olduğundan emin olun.", "username-too-short": "Kullanıcı ismi çok kısa", "username-too-long": "Kullanıcı ismi çok uzun.", "password-too-long": "Parola çok uzun", From ecf0323dd073d335633063d0fef4b77a3498bb76 Mon Sep 17 00:00:00 2001 From: barisusakli Date: Mon, 13 Jun 2016 14:02:54 +0300 Subject: [PATCH 26/29] closes #4688 --- src/favourites.js | 12 ++++----- src/posts.js | 12 +++++---- src/posts/create.js | 26 +++++++++--------- src/upgrade.js | 66 ++++++++++++++++++++++++++++++++++++++++----- 4 files changed, 85 insertions(+), 31 deletions(-) diff --git a/src/favourites.js b/src/favourites.js index e5d8eb3e0a..543b41af98 100644 --- a/src/favourites.js +++ b/src/favourites.js @@ -46,8 +46,7 @@ var meta = require('./meta'); db.sortedSetAdd('users:reputation', newreputation, postData.uid); } - adjustPostVotes(postData, uid, type, unvote, function(err, votes) { - postData.votes = votes; + adjustPostVotes(postData, uid, type, unvote, function(err) { callback(err, { user: { reputation: newreputation @@ -91,11 +90,10 @@ var meta = require('./meta'); if (err) { return callback(err); } - var voteCount = parseInt(results.upvotes, 10) - parseInt(results.downvotes, 10); - - posts.updatePostVoteCount(postData, voteCount, function(err) { - callback(err, voteCount); - }); + postData.upvotes = parseInt(results.upvotes, 10); + postData.downvotes = parseInt(results.downvotes, 10); + postData.votes = postData.upvotes - postData.downvotes; + posts.updatePostVoteCount(postData, callback); }); }); } diff --git a/src/posts.js b/src/posts.js index c4703f8ae7..8a494be7c7 100644 --- a/src/posts.js +++ b/src/posts.js @@ -55,7 +55,9 @@ var plugins = require('./plugins'); if (!post) { return next(); } - + post.upvotes = parseInt(post.upvotes, 10) || 0; + post.downvotes = parseInt(post.downvotes, 10) || 0; + post.votes = post.upvotes - post.downvotes; post.timestampISO = utils.toISOString(post.timestamp); post.editedISO = parseInt(post.edited, 10) !== 0 ? utils.toISOString(post.edited) : ''; Posts.parsePost(post, next); @@ -219,14 +221,14 @@ var plugins = require('./plugins'); }); }; - Posts.updatePostVoteCount = function(postData, voteCount, callback) { + Posts.updatePostVoteCount = function(postData, callback) { if (!postData || !postData.pid || !postData.tid) { return callback(); } async.parallel([ function (next) { if (postData.uid) { - db.sortedSetAdd('uid:' + postData.uid + ':posts:votes', voteCount, postData.pid, next); + db.sortedSetAdd('uid:' + postData.uid + ':posts:votes', postData.votes, postData.pid, next); } else { next(); } @@ -240,12 +242,12 @@ var plugins = require('./plugins'); if (parseInt(mainPid, 10) === parseInt(postData.pid, 10)) { return next(); } - db.sortedSetAdd('tid:' + postData.tid + ':posts:votes', voteCount, postData.pid, next); + db.sortedSetAdd('tid:' + postData.tid + ':posts:votes', postData.votes, postData.pid, next); } ], next); }, function (next) { - Posts.setPostField(postData.pid, 'votes', voteCount, next); + Posts.setPostFields(postData.pid, {upvotes: postData.upvotes, downvotes: postData.downvotes}, next); } ], function(err) { callback(err); diff --git a/src/posts/create.js b/src/posts/create.js index 041d662915..e84fdaaf3d 100644 --- a/src/posts/create.js +++ b/src/posts/create.js @@ -1,23 +1,24 @@ 'use strict'; -var async = require('async'), - _ = require('underscore'), +var async = require('async'); +var _ = require('underscore'); - meta = require('../meta'), - db = require('../database'), - plugins = require('../plugins'), - user = require('../user'), - topics = require('../topics'), - categories = require('../categories'); +var meta = require('../meta'); +var db = require('../database'); +var plugins = require('../plugins'); +var user = require('../user'); +var topics = require('../topics'); +var categories = require('../categories'); module.exports = function(Posts) { + Posts.create = function(data, callback) { // This is an internal method, consider using Topics.reply instead - var uid = data.uid, - tid = data.tid, - content = data.content.toString(), - timestamp = data.timestamp || Date.now(); + var uid = data.uid; + var tid = data.tid; + var content = data.content.toString(); + var timestamp = data.timestamp || Date.now(); if (!uid && parseInt(uid, 10) !== 0) { return callback(new Error('[[error:invalid-uid]]')); @@ -38,7 +39,6 @@ module.exports = function(Posts) { 'content': content, 'timestamp': timestamp, 'reputation': 0, - 'votes': 0, 'editor': '', 'edited': 0, 'deleted': 0 diff --git a/src/upgrade.js b/src/upgrade.js index 0f863c757c..895520d193 100644 --- a/src/upgrade.js +++ b/src/upgrade.js @@ -10,7 +10,7 @@ var db = require('./database'), schemaDate, thisSchemaDate, // IMPORTANT: REMEMBER TO UPDATE VALUE OF latestSchema - latestSchema = Date.UTC(2016, 4, 28); + latestSchema = Date.UTC(2016, 5, 13); Upgrade.check = function(callback) { db.get('schemaDate', function(err, value) { @@ -504,7 +504,7 @@ Upgrade.upgrade = function(callback) { var groupsAPI = require('./groups'); var privilegesAPI = require('./privileges'); - + db.getSortedSetRange('categories:cid', 0, -1, function(err, cids) { async.eachSeries(cids, function(cid, next) { privilegesAPI.categories.list(cid, function(err, data) { @@ -523,13 +523,13 @@ Upgrade.upgrade = function(callback) { return next(err); }); } - + next(null); }, next); }, function(next) { async.eachSeries(users, function(user, next) { - if (user.privileges['read']) { + if (user.privileges.read) { return groupsAPI.join('cid:' + cid + ':privileges:topics:read', user.uid, function(err) { if (!err) { winston.info('cid:' + cid + ':privileges:topics:read granted to uid: ' + user.uid); @@ -538,7 +538,7 @@ Upgrade.upgrade = function(callback) { return next(err); }); } - + next(null); }, next); } @@ -552,7 +552,7 @@ Upgrade.upgrade = function(callback) { }); }, function(err) { if (err) { - return next(err); + return next(err); } winston.info('[2016/05/28] Giving topics:read privs to any group that was previously allowed to Find & Access Category - done'); @@ -563,6 +563,60 @@ Upgrade.upgrade = function(callback) { winston.info('[2016/05/28] Giving topics:read privs to any group that was previously allowed to Find & Access Category - skipped!'); next(); } + }, + function(next) { + thisSchemaDate = Date.UTC(2016, 5, 13); + + if (schemaDate < thisSchemaDate) { + updatesMade = true; + winston.info('[2016/06/13] Store upvotes/downvotes separately'); + + var batch = require('./batch'); + var posts = require('./posts'); + var count = 0; + batch.processSortedSet('posts:pid', function(pids, next) { + winston.info('upgraded ' + count + ' posts'); + count += pids.length; + async.each(pids, function(pid, next) { + async.parallel({ + upvotes: function(next) { + db.setCount('pid:' + pid + ':upvote', next); + }, + downvotes: function(next) { + db.setCount('pid:' + pid + ':downvote', next); + } + }, function(err, results) { + if (err) { + return next(err); + } + var data = {}; + + if (parseInt(results.upvotes, 10) > 0) { + data.upvotes = results.upvotes; + } + if (parseInt(results.downvotes, 10) > 0) { + data.downvotes = results.downvotes; + } + + if (Object.keys(data).length) { + posts.setPostFields(pid, data, next); + } else { + next(); + } + }, next); + }, next); + }, {}, function(err) { + if (err) { + return next(err); + } + + winston.info('[2016/06/13] Store upvotes/downvotes separately done'); + Upgrade.update(thisSchemaDate, next); + }); + } else { + winston.info('[2016/06/13] Store upvotes/downvotes separately skipped!'); + next(); + } } // Add new schema updates here // IMPORTANT: REMEMBER TO UPDATE VALUE OF latestSchema IN LINE 24!!! From 990cdb40877e4e451431f9c4f760b0389d91cace Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Mon, 13 Jun 2016 08:16:54 -0400 Subject: [PATCH 27/29] upped persona, re: nodebb/nodebb-theme-persona#289 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index d0dec1282d..c0414003fc 100644 --- a/package.json +++ b/package.json @@ -58,7 +58,7 @@ "nodebb-plugin-spam-be-gone": "0.4.6", "nodebb-rewards-essentials": "0.0.8", "nodebb-theme-lavender": "3.0.13", - "nodebb-theme-persona": "4.0.146", + "nodebb-theme-persona": "4.0.147", "nodebb-theme-vanilla": "5.0.78", "nodebb-widget-essentials": "2.0.9", "nodemailer": "2.0.0", From c330b9f0d4ec3cf6ae7a7794ff4ea77d69256c72 Mon Sep 17 00:00:00 2001 From: NodeBB Misty Date: Mon, 13 Jun 2016 09:04:03 -0400 Subject: [PATCH 28/29] Latest translations and fallbacks --- public/language/cs/category.json | 2 +- public/language/cs/error.json | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/public/language/cs/category.json b/public/language/cs/category.json index 223da66ff3..4df50da536 100644 --- a/public/language/cs/category.json +++ b/public/language/cs/category.json @@ -2,7 +2,7 @@ "category": "Kategorie", "subcategories": "Podkategorie", "new_topic_button": "Nové téma", - "guest-login-post": "Přihlásit se pro přidání", + "guest-login-post": "Přihlásit se pro přispívání", "no_topics": "V této kategorii zatím nejsou žádné příspěvky.
Můžeš být první!", "browsing": "prohlíží", "no_replies": "Nikdo ještě neodpověděl", diff --git a/public/language/cs/error.json b/public/language/cs/error.json index 83c5ac583f..1dedd003da 100644 --- a/public/language/cs/error.json +++ b/public/language/cs/error.json @@ -22,11 +22,11 @@ "email-not-confirmed-chat": "You are unable to chat until your email is confirmed, please click here to confirm your email.", "no-email-to-confirm": "This forum requires email confirmation, please click here to enter an email", "email-confirm-failed": "We could not confirm your email, please try again later.", - "confirm-email-already-sent": "Confirmation email already sent, please wait %1 minute(s) to send another one.", + "confirm-email-already-sent": "Potvrzovací email již byl odeslán. Vyčkejte %1 minut pokud chcete odeslat další.", "sendmail-not-found": "The sendmail executable could not be found, please ensure it is installed and executable by the user running NodeBB.", "username-too-short": "Uživatelské jméno je příliš krátké", "username-too-long": "Uživatelské jméno je příliš dlouhé", - "password-too-long": "Password too long", + "password-too-long": "Heslo je příliš dlouhé", "user-banned": "Uživatel byl zakázán", "user-too-new": "Sorry, you are required to wait %1 second(s) before making your first post", "blacklisted-ip": "Sorry, your IP address has been banned from this community. If you feel this is in error, please contact an administrator.", From 54d2c39c3ad0663b8b2c3302152282aeab339375 Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Mon, 13 Jun 2016 11:09:42 -0400 Subject: [PATCH 29/29] up persona --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index c0414003fc..15141d65e4 100644 --- a/package.json +++ b/package.json @@ -58,7 +58,7 @@ "nodebb-plugin-spam-be-gone": "0.4.6", "nodebb-rewards-essentials": "0.0.8", "nodebb-theme-lavender": "3.0.13", - "nodebb-theme-persona": "4.0.147", + "nodebb-theme-persona": "4.0.148", "nodebb-theme-vanilla": "5.0.78", "nodebb-widget-essentials": "2.0.9", "nodemailer": "2.0.0",