From be00a1c01372861f6754a9639a5bd6770a46b82a Mon Sep 17 00:00:00 2001
From: Peter Jaszkowiak
Date: Wed, 20 Dec 2017 13:56:14 -0700
Subject: [PATCH 01/18] Support for using yarn instead of npm, include unread
counts on cold load (#6179)
* Close #6178
* Support for package managers besides npm
- Also fixes issue where upgrade-plugins wouldn't work
---
public/src/client/footer.js | 1 +
src/cli/index.js | 13 +++++---
src/{meta => cli}/package-install.js | 18 +++++++++--
src/cli/upgrade-plugins.js | 26 +++++++++------
src/cli/upgrade.js | 4 +--
src/middleware/header.js | 47 +++++++++++++++++++++++++++-
src/navigation/index.js | 11 ++++---
src/plugins/install.js | 29 ++++++++++++++---
8 files changed, 121 insertions(+), 28 deletions(-)
rename src/{meta => cli}/package-install.js (86%)
diff --git a/public/src/client/footer.js b/public/src/client/footer.js
index 7dcdade78b..7bc187921e 100644
--- a/public/src/client/footer.js
+++ b/public/src/client/footer.js
@@ -75,6 +75,7 @@ define('forum/footer', ['notifications', 'chat', 'components', 'translator'], fu
socket.on('event:new_post', onNewPost);
}
+ // DEPRECATED: remove in 1.8.0
if (app.user.uid) {
socket.emit('user.getUnreadCounts', function (err, data) {
if (err) {
diff --git a/src/cli/index.js b/src/cli/index.js
index 0bc95a7c6d..aa7ef2c257 100644
--- a/src/cli/index.js
+++ b/src/cli/index.js
@@ -3,7 +3,7 @@
var fs = require('fs');
var path = require('path');
-var packageInstall = require('../meta/package-install');
+var packageInstall = require('./package-install');
var dirname = require('./paths').baseDir;
// check to make sure dependencies are installed
@@ -12,12 +12,17 @@ try {
} catch (e) {
if (e.code === 'ENOENT') {
console.warn('package.json not found.');
- console.log('Populating package.json...\n');
+ console.log('Populating package.json...');
packageInstall.updatePackageFile();
packageInstall.preserveExtraneousPlugins();
- console.log('OK'.green + '\n'.reset);
+ try {
+ require('colors');
+ console.log('OK'.green);
+ } catch (e) {
+ console.log('OK');
+ }
} else {
throw e;
}
@@ -33,7 +38,7 @@ try {
console.warn('Dependencies not yet installed.');
console.log('Installing them now...\n');
- packageInstall.npmInstallProduction();
+ packageInstall.installAll();
require('colors');
console.log('OK'.green + '\n'.reset);
diff --git a/src/meta/package-install.js b/src/cli/package-install.js
similarity index 86%
rename from src/meta/package-install.js
rename to src/cli/package-install.js
index 4dba482b70..5f6f9917a5 100644
--- a/src/meta/package-install.js
+++ b/src/cli/package-install.js
@@ -29,15 +29,27 @@ function updatePackageFile() {
exports.updatePackageFile = updatePackageFile;
-function npmInstallProduction() {
+function installAll() {
process.stdout.write('\n');
- cproc.execSync('npm i --production', {
+
+ var prod = global.env !== 'development';
+ var command = 'npm install';
+ try {
+ var packageManager = require('nconf').get('package_manager');
+ if (packageManager === 'yarn') {
+ command = 'yarn';
+ }
+ } catch (e) {
+ // ignore
+ }
+
+ cproc.execSync(command + (prod ? ' --production' : ''), {
cwd: path.join(__dirname, '../../'),
stdio: [0, 1, 2],
});
}
-exports.npmInstallProduction = npmInstallProduction;
+exports.installAll = installAll;
function preserveExtraneousPlugins() {
// Skip if `node_modules/` is not found or inaccessible
diff --git a/src/cli/upgrade-plugins.js b/src/cli/upgrade-plugins.js
index e67f634f31..3be00cb5d1 100644
--- a/src/cli/upgrade-plugins.js
+++ b/src/cli/upgrade-plugins.js
@@ -7,9 +7,18 @@ var cproc = require('child_process');
var semver = require('semver');
var fs = require('fs');
var path = require('path');
+var nconf = require('nconf');
var paths = require('./paths');
+var packageManager = nconf.get('package_manager');
+var packageManagerExecutable = packageManager === 'yarn' ? 'yarn' : 'npm';
+var packageManagerInstallArgs = packageManager === 'yarn' ? ['add'] : ['install', '--save'];
+
+if (process.platform === 'win32') {
+ packageManagerExecutable += '.cmd';
+}
+
var dirname = paths.baseDir;
function getModuleVersions(modules, callback) {
@@ -85,7 +94,7 @@ function getInstalledPlugins(callback) {
}
function getCurrentVersion(callback) {
- fs.readFile(path.join(dirname, 'package.json'), { encoding: 'utf-8' }, function (err, pkg) {
+ fs.readFile(path.join(dirname, 'install/package.json'), { encoding: 'utf-8' }, function (err, pkg) {
if (err) {
return callback(err);
}
@@ -106,8 +115,8 @@ function checkPlugins(standalone, callback) {
async.waterfall([
async.apply(async.parallel, {
- plugins: async.apply(getInstalledPlugins),
- version: async.apply(getCurrentVersion),
+ plugins: getInstalledPlugins,
+ version: getCurrentVersion,
}),
function (payload, next) {
var toCheck = Object.keys(payload.plugins);
@@ -194,13 +203,12 @@ function upgradePlugins(callback) {
if (['y', 'Y', 'yes', 'YES'].indexOf(result.upgrade) !== -1) {
console.log('\nUpgrading packages...');
- var args = ['i'];
- found.forEach(function (suggestObj) {
- args.push(suggestObj.name + '@' + suggestObj.suggested);
- });
+ var args = packageManagerInstallArgs.concat(found.map(function (suggestObj) {
+ return suggestObj.name + '@' + suggestObj.suggested;
+ }));
- cproc.execFile((process.platform === 'win32') ? 'npm.cmd' : 'npm', args, { stdio: 'ignore' }, function (err) {
- callback(err, true);
+ cproc.execFile(packageManagerExecutable, args, { stdio: 'ignore' }, function (err) {
+ callback(err, false);
});
} else {
console.log('Package upgrades skipped'.yellow + '. Check for upgrades at any time by running "'.reset + './nodebb upgrade -p'.green + '".'.reset);
diff --git a/src/cli/upgrade.js b/src/cli/upgrade.js
index 783681bb10..e5ab2b6c0c 100644
--- a/src/cli/upgrade.js
+++ b/src/cli/upgrade.js
@@ -3,7 +3,7 @@
var async = require('async');
var nconf = require('nconf');
-var packageInstall = require('../meta/package-install');
+var packageInstall = require('./package-install');
var upgrade = require('../upgrade');
var build = require('../meta/build');
var db = require('../database');
@@ -22,7 +22,7 @@ var steps = {
install: {
message: 'Bringing base dependencies up to date...',
handler: function (next) {
- packageInstall.npmInstallProduction();
+ packageInstall.installAll();
next();
},
},
diff --git a/src/middleware/header.js b/src/middleware/header.js
index 3824ff6fc3..5a896fcdd7 100644
--- a/src/middleware/header.js
+++ b/src/middleware/header.js
@@ -6,6 +6,8 @@ var jsesc = require('jsesc');
var db = require('../database');
var user = require('../user');
+var topics = require('../topics');
+var messaging = require('../messaging');
var meta = require('../meta');
var plugins = require('../plugins');
var navigation = require('../navigation');
@@ -109,10 +111,16 @@ module.exports = function (middleware) {
next(null, translated);
});
},
- navigation: async.apply(navigation.get),
+ navigation: navigation.get,
tags: async.apply(meta.tags.parse, req, data, res.locals.metaTags, res.locals.linkTags),
banned: async.apply(user.isBanned, req.uid),
banReason: async.apply(user.getBannedReason, req.uid),
+
+ unreadTopicCount: async.apply(topics.getTotalUnread, req.uid),
+ unreadNewTopicCount: async.apply(topics.getTotalUnread, req.uid, 'new'),
+ unreadWatchedTopicCount: async.apply(topics.getTotalUnread, req.uid, 'watched'),
+ unreadChatCount: async.apply(messaging.getUnreadCount, req.uid),
+ unreadNotificationCount: async.apply(user.notifications.getUnreadCount, req.uid),
}, next);
},
function (results, next) {
@@ -131,8 +139,45 @@ module.exports = function (middleware) {
setBootswatchCSS(templateValues, res.locals.config);
+ var unreadCount = {
+ topic: results.unreadTopicCount || 0,
+ newTopic: results.unreadNewTopicCount || 0,
+ watchedTopic: results.unreadWatchedTopicCount || 0,
+ chat: results.unreadChatCount || 0,
+ notification: results.unreadNotificationCount || 0,
+ };
+ Object.keys(unreadCount).forEach(function (key) {
+ if (unreadCount[key] > 99) {
+ unreadCount[key] = '99+';
+ }
+ });
+
+ results.navigation = results.navigation.map(function (item) {
+ if (item.originalRoute === '/unread' && results.unreadTopicCount > 0) {
+ return Object.assign({}, item, {
+ content: unreadCount.topic,
+ iconClass: item.iconClass + ' unread-count',
+ });
+ }
+ if (item.originalRoute === '/unread/new' && results.unreadNewTopicCount > 0) {
+ return Object.assign({}, item, {
+ content: unreadCount.newTopic,
+ iconClass: item.iconClass + ' unread-count',
+ });
+ }
+ if (item.originalRoute === '/unread/watched' && results.unreadWatchedTopicCount > 0) {
+ return Object.assign({}, item, {
+ content: unreadCount.watchedTopic,
+ iconClass: item.iconClass + ' unread-count',
+ });
+ }
+
+ return item;
+ });
+
templateValues.browserTitle = results.browserTitle;
templateValues.navigation = results.navigation;
+ templateValues.unreadCount = unreadCount;
templateValues.metaTags = results.tags.meta;
templateValues.linkTags = results.tags.link;
templateValues.isAdmin = results.user.isAdmin;
diff --git a/src/navigation/index.js b/src/navigation/index.js
index 9aec34dd25..0712ce79f5 100644
--- a/src/navigation/index.js
+++ b/src/navigation/index.js
@@ -19,15 +19,16 @@ navigation.get = function (callback) {
data = data.filter(function (item) {
return item && item.enabled;
}).map(function (item) {
+ item.originalRoute = item.route;
+
if (!item.route.startsWith('http')) {
item.route = nconf.get('relative_path') + item.route;
}
- for (var i in item) {
- if (item.hasOwnProperty(i)) {
- item[i] = translator.unescape(item[i]);
- }
- }
+ Object.keys(item).forEach(function (key) {
+ item[key] = translator.unescape(item[key]);
+ });
+
return item;
});
diff --git a/src/plugins/install.js b/src/plugins/install.js
index 7bd407ca08..da03fd8d71 100644
--- a/src/plugins/install.js
+++ b/src/plugins/install.js
@@ -13,6 +13,23 @@ var meta = require('../meta');
var pubsub = require('../pubsub');
var events = require('../events');
+var packageManager = nconf.get('package_manager') === 'yarn' ? 'yarn' : 'npm';
+var packageManagerExecutable = packageManager;
+var packageManagerCommands = {
+ yarn: {
+ install: 'add',
+ uninstall: 'remove',
+ },
+ npm: {
+ install: 'install',
+ uninstall: 'uninstall',
+ },
+};
+
+if (process.platform === 'win32') {
+ packageManagerExecutable += '.cmd';
+}
+
module.exports = function (Plugins) {
if (nconf.get('isPrimary') === 'true') {
pubsub.on('plugins:toggleInstall', function (data) {
@@ -95,7 +112,7 @@ module.exports = function (Plugins) {
setImmediate(next);
},
function (next) {
- runNpmCommand(type, id, version || 'latest', next);
+ runPackageManagerCommand(type, id, version || 'latest', next);
},
function (next) {
Plugins.get(id, next);
@@ -107,8 +124,12 @@ module.exports = function (Plugins) {
], callback);
}
- function runNpmCommand(command, pkgName, version, callback) {
- cproc.execFile((process.platform === 'win32') ? 'npm.cmd' : 'npm', [command, pkgName + (command === 'install' ? '@' + version : ''), '--save'], function (err, stdout) {
+ function runPackageManagerCommand(command, pkgName, version, callback) {
+ cproc.execFile(packageManagerExecutable, [
+ packageManagerCommands[packageManager][command],
+ pkgName + (command === 'install' ? '@' + version : ''),
+ '--save',
+ ], function (err, stdout) {
if (err) {
return callback(err);
}
@@ -125,7 +146,7 @@ module.exports = function (Plugins) {
function upgrade(id, version, callback) {
async.waterfall([
- async.apply(runNpmCommand, 'install', id, version || 'latest'),
+ async.apply(runPackageManagerCommand, 'install', id, version || 'latest'),
function (next) {
Plugins.isActive(id, next);
},
From c12b42180d084ebcf2105130b2d14872cda42a76 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?=
Date: Wed, 20 Dec 2017 22:08:44 -0500
Subject: [PATCH 02/18] closes #6189
---
public/src/modules/notifications.js | 16 ++++++-------
public/src/modules/translator.js | 36 +++++++++++++++++------------
2 files changed, 29 insertions(+), 23 deletions(-)
diff --git a/public/src/modules/notifications.js b/public/src/modules/notifications.js
index a215c19475..8ce876eebe 100644
--- a/public/src/modules/notifications.js
+++ b/public/src/modules/notifications.js
@@ -137,14 +137,14 @@ define('notifications', ['sounds', 'translator', 'components', 'navigator', 'ben
return parseInt(a.datetime, 10) > parseInt(b.datetime, 10) ? -1 : 1;
});
- translator.toggleTimeagoShorthand();
- for (var i = 0; i < notifs.length; i += 1) {
- notifs[i].timeago = $.timeago(new Date(parseInt(notifs[i].datetime, 10)));
- }
- translator.toggleTimeagoShorthand();
-
- Benchpress.parse('partials/notifications_list', { notifications: notifs }, function (html) {
- notifList.translateHtml(html);
+ translator.toggleTimeagoShorthand(function () {
+ for (var i = 0; i < notifs.length; i += 1) {
+ notifs[i].timeago = $.timeago(new Date(parseInt(notifs[i].datetime, 10)));
+ }
+ translator.toggleTimeagoShorthand();
+ Benchpress.parse('partials/notifications_list', { notifications: notifs }, function (html) {
+ notifList.translateHtml(html);
+ });
});
});
};
diff --git a/public/src/modules/translator.js b/public/src/modules/translator.js
index 817f6095b6..6376d9e4d0 100644
--- a/public/src/modules/translator.js
+++ b/public/src/modules/translator.js
@@ -576,23 +576,29 @@
adaptor.getTranslations(language, namespace, callback);
},
- toggleTimeagoShorthand: function toggleTimeagoShorthand() {
- var tmp = assign({}, jQuery.timeago.settings.strings);
- jQuery.timeago.settings.strings = assign({}, adaptor.timeagoShort);
- adaptor.timeagoShort = assign({}, tmp);
+ toggleTimeagoShorthand: function toggleTimeagoShorthand(callback) {
+ function toggle() {
+ var tmp = assign({}, jQuery.timeago.settings.strings);
+ jQuery.timeago.settings.strings = assign({}, adaptor.timeagoShort);
+ adaptor.timeagoShort = assign({}, tmp);
+ if (typeof callback === 'function') {
+ callback();
+ }
+ }
+
+ if (!adaptor.timeagoShort) {
+ var languageCode = utils.userLangToTimeagoCode(config.userLang);
+ var originalSettings = assign({}, jQuery.timeago.settings.strings);
+ jQuery.getScript(config.relative_path + '/assets/vendor/jquery/timeago/locales/jquery.timeago.' + languageCode + '-short.js').done(function () {
+ adaptor.timeagoShort = assign({}, jQuery.timeago.settings.strings);
+ jQuery.timeago.settings.strings = assign({}, originalSettings);
+ toggle();
+ });
+ } else {
+ toggle();
+ }
},
prepareDOM: function prepareDOM() {
- // Load the appropriate timeago locale file,
- // and correct NodeBB language codes to timeago codes, if necessary
- var languageCode = utils.userLangToTimeagoCode(config.userLang);
-
- adaptor.timeagoShort = assign({}, jQuery.timeago.settings.strings);
-
- jQuery.getScript(config.relative_path + '/assets/vendor/jquery/timeago/locales/jquery.timeago.' + languageCode + '-short.js').done(function () {
- // Switch back to long-form
- adaptor.toggleTimeagoShorthand();
- });
-
// Add directional code if necessary
adaptor.translate('[[language:dir]]', function (value) {
if (value && !$('html').attr('data-dir')) {
From 75f97c1180a885f4e2e0089a6ea0a1b5a14fb0a8 Mon Sep 17 00:00:00 2001
From: Julian Lam
Date: Thu, 21 Dec 2017 12:55:07 -0500
Subject: [PATCH 03/18] bump persona
---
install/package.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/install/package.json b/install/package.json
index af744e25b6..f87313afed 100644
--- a/install/package.json
+++ b/install/package.json
@@ -69,7 +69,7 @@
"nodebb-plugin-spam-be-gone": "0.5.1",
"nodebb-rewards-essentials": "0.0.9",
"nodebb-theme-lavender": "5.0.0",
- "nodebb-theme-persona": "7.2.7",
+ "nodebb-theme-persona": "7.2.8",
"nodebb-theme-slick": "1.1.2",
"nodebb-theme-vanilla": "8.1.4",
"nodebb-widget-essentials": "4.0.1",
From 23dbb42130a4cb0a43dc4abdb4131715721a6edf Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?=
Date: Mon, 25 Dec 2017 11:06:52 -0500
Subject: [PATCH 04/18] closes #6182
---
src/socket.io/user/ban.js | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/src/socket.io/user/ban.js b/src/socket.io/user/ban.js
index a61a9b83ee..66f98eb061 100644
--- a/src/socket.io/user/ban.js
+++ b/src/socket.io/user/ban.js
@@ -1,6 +1,7 @@
'use strict';
var async = require('async');
+var winston = require('winston');
var user = require('../../user');
var meta = require('../../meta');
@@ -112,7 +113,12 @@ module.exports = function (SocketUser) {
reason: reason,
};
- emailer.send('banned', uid, data, next);
+ emailer.send('banned', uid, data, function (err) {
+ if (err) {
+ winston.error('[emailer.send] ' + err.message);
+ }
+ next();
+ });
},
function (next) {
user.ban(uid, until, reason, next);
From c3f56e2ab584ebbd292686cb2c93f2845fd314ca Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?=
Date: Mon, 25 Dec 2017 22:26:24 -0500
Subject: [PATCH 05/18] closes #6197
---
src/upgrade.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/upgrade.js b/src/upgrade.js
index ae0d70a4c0..f30a5f43d4 100644
--- a/src/upgrade.js
+++ b/src/upgrade.js
@@ -205,7 +205,7 @@ Upgrade.incrementProgress = function (value) {
if (this.total) {
percentage = Math.floor((this.current / this.total) * 100) + '%';
filled = Math.floor((this.current / this.total) * 15);
- unfilled = Math.min(0, 15 - filled);
+ unfilled = Math.max(0, 15 - filled);
}
readline.cursorTo(process.stdout, 0);
From 4217d06ad0d876e02cc60240089434aefc5a7f16 Mon Sep 17 00:00:00 2001
From: "Misty (Bot)"
Date: Tue, 26 Dec 2017 09:24:52 +0000
Subject: [PATCH 06/18] Latest translations and fallbacks
---
public/language/vi/admin/admin.json | 2 +-
public/language/vi/admin/advanced/cache.json | 2 +-
public/language/vi/admin/settings/email.json | 2 +-
public/language/vi/category.json | 6 +-
public/language/vi/email.json | 10 ++--
public/language/vi/error.json | 20 +++----
public/language/vi/global.json | 4 +-
public/language/vi/language.json | 4 +-
public/language/vi/notifications.json | 58 ++++++++++----------
public/language/vi/pages.json | 4 +-
public/language/vi/search.json | 4 +-
public/language/vi/success.json | 2 +-
public/language/vi/topic.json | 20 +++----
public/language/vi/unread.json | 6 +-
public/language/vi/user.json | 46 ++++++++--------
15 files changed, 95 insertions(+), 95 deletions(-)
diff --git a/public/language/vi/admin/admin.json b/public/language/vi/admin/admin.json
index 726cef0e8b..8fdf8c210a 100644
--- a/public/language/vi/admin/admin.json
+++ b/public/language/vi/admin/admin.json
@@ -1,5 +1,5 @@
{
- "alert.confirm-reload": "Bạn có thật sự muốn tải lại NodeBB",
+ "alert.confirm-reload": "Bạn có thật sự muốn xác lập lại NodeBB",
"alert.confirm-restart": "Bạn có thật sự muốn khởi động lại NodeBB",
"acp-title": "%1 | Bảng điểu khiển",
diff --git a/public/language/vi/admin/advanced/cache.json b/public/language/vi/admin/advanced/cache.json
index 505b1a4510..d8b94de7a9 100644
--- a/public/language/vi/admin/advanced/cache.json
+++ b/public/language/vi/admin/advanced/cache.json
@@ -1,5 +1,5 @@
{
- "post-cache": "Cache bài viết",
+ "post-cache": "Bộ nhớ đệm bài viết",
"posts-in-cache": "Cache cho bài viết",
"average-post-size": "Kích thước bài viết",
"length-to-max": "Độ dài / Tối Đa",
diff --git a/public/language/vi/admin/settings/email.json b/public/language/vi/admin/settings/email.json
index 50ad2e06ea..96fb624791 100644
--- a/public/language/vi/admin/settings/email.json
+++ b/public/language/vi/admin/settings/email.json
@@ -1,5 +1,5 @@
{
- "email-settings": "Email Settings",
+ "email-settings": "Thiết lập Email",
"address": "Email Address",
"address-help": "The following email address refers to the email that the recipient will see in the \"From\" and \"Reply To\" fields.",
"from": "From Name",
diff --git a/public/language/vi/category.json b/public/language/vi/category.json
index 494fa8b153..f9cf6a500a 100644
--- a/public/language/vi/category.json
+++ b/public/language/vi/category.json
@@ -8,13 +8,13 @@
"no_replies": "Chưa có bình luận nào",
"no_new_posts": "Không có bài mới.",
"share_this_category": "Chia sẻ chuyên mục này",
- "watch": "Theo dõi",
+ "watch": "Quan tâm",
"ignore": "Bỏ qua",
- "watching": "Đang theo dõi",
+ "watching": "Đang quan tâm",
"ignoring": "Bỏ qua",
"watching.description": "Hiện các chủ đề chưa đọc",
"ignoring.description": "Không hiện những chủ đề chưa đọc",
"watch.message": "Bạn đang theo dõi các cập nhật ở chuyên mục này và các chuyên mục con",
"ignore.message": "Bạn đang bỏ qua các cập nhật ở chuyên mục này và các chuyên mục con",
- "watched-categories": "Các chuyên mục đã xem"
+ "watched-categories": "Các chuyên mục đã quan tâm"
}
\ No newline at end of file
diff --git a/public/language/vi/email.json b/public/language/vi/email.json
index 5199f136a5..0dc0cc8be6 100644
--- a/public/language/vi/email.json
+++ b/public/language/vi/email.json
@@ -30,12 +30,12 @@
"notif.chat.unsub.info": "Thông báo tin nhắn này được gửi tới dựa theo cài đặt theo dõi của bạn.",
"notif.post.cta": "Nhấn vào đây để đọc toàn bộ chủ đề",
"notif.post.unsub.info": "Thông báo bài viết này được gửi cho bạn dựa tên thiết lập nhận thông báo của bạn",
- "notif.cta": "Click here to go to forum",
+ "notif.cta": "Click vào đây để đi đến diễn đàn",
"test.text1": "Đây là email kiểm tra xem chức năng gửi mail trên hệ thống NodeBB của bạn có hoạt động tốt hay không.",
"unsub.cta": "Nhấn vào đây để thay đổi cài đặt.",
- "banned.subject": "You have been banned from %1",
- "banned.text1": "The user %1 has been banned from %2.",
- "banned.text2": "This ban will last until %1.",
- "banned.text3": "This is the reason why you have been banned:",
+ "banned.subject": "Bạn đã bị cấm khỏi %1",
+ "banned.text1": "Người dùng %1 đã bị cấm khỏi %2",
+ "banned.text2": "Lệnh cấm sẽ kéo dài đến %1.",
+ "banned.text3": "Đây là lý do tại sao bạn bị cấm:",
"closing": "Xin cảm ơn!"
}
\ No newline at end of file
diff --git a/public/language/vi/error.json b/public/language/vi/error.json
index 894ab8a3c6..490b661dd3 100644
--- a/public/language/vi/error.json
+++ b/public/language/vi/error.json
@@ -1,20 +1,20 @@
{
"invalid-data": "Dữ liệu không hợp lệ",
- "invalid-json": "Invalid JSON",
+ "invalid-json": "JSON không hợp lệ",
"not-logged-in": "Có vẻ bạn chưa đăng nhập.",
"account-locked": "Tài khoản của bạn đang tạm thời bị khóa",
"search-requires-login": "Bạn cần phải có tài khoản để tìm kiếm - vui lòng đăng nhập hoặc đăng ký.",
- "goback": "Press back to return to the previous page",
+ "goback": "Nhấn back để quay về trang trước",
"invalid-cid": "ID chuyên mục không hợp lệ",
"invalid-tid": "ID chủ đề không hợp lệ",
"invalid-pid": "ID bài viết không hợp lệ",
"invalid-uid": "ID tài khoản không hợp lệ",
"invalid-username": "Tên đăng nhập không hợp lệ",
"invalid-email": "Email không hợp lệ",
- "invalid-title": "Invalid title",
+ "invalid-title": "Tiêu đề không hợp lệ",
"invalid-user-data": "Dữ liệu tài khoản không hợp lệ",
"invalid-password": "Mật khẩu không hợp lệ",
- "invalid-login-credentials": "Invalid login credentials",
+ "invalid-login-credentials": "Thông tin đăng nhập không hợp lệ",
"invalid-username-or-password": "Xin hãy nhập cả tên đăng nhập và mật khẩu",
"invalid-search-term": "Từ khóa không hợp lệ",
"csrf-invalid": "Hệ thống không cho phép bạn đăng nhập, có vẻ như phiên đăng nhập cũ đã hết hạn. Hãy thử đăng nhập lại",
@@ -33,7 +33,7 @@
"password-too-long": "Mật khẩu quá dài",
"user-banned": "Tài khoản bị ban",
"user-banned-reason": "Xin lỗi, tài khoản này đã bị khóa (Lí do: %1)",
- "user-banned-reason-until": "Sorry, this account has been banned until %1 (Reason: %2)",
+ "user-banned-reason-until": "Rất tiếc, tài khoản này đã bị cấm cho đến %1 (Lý do: %2)",
"user-too-new": "Rất tiếc, bạn phải chờ %1 giây để đăng bài viết đầu tiên.",
"blacklisted-ip": "Rất tiếc, địa chỉ IP của bạn đã bị cấm khỏi cộng đồng. Nếu bạn cảm thấy có gì không đúng, hãy liên lạc với người quản trị.",
"ban-expiry-missing": "Vui lòng cung cấp ngày hết hạn của lệnh cấm",
@@ -81,7 +81,7 @@
"cant-ban-other-admins": "Bạn không thể cấm được các quản trị viên khác",
"cant-remove-last-admin": "Bạn là quản trị viên duy nhất. Hãy cho thành viên khác làm quản trị viên trước khi huỷ bỏ quyền quản trị của bạn.",
"cant-delete-admin": "Hủy quyền quản trị của tài khoản này trước khi xóa",
- "invalid-image": "Invalid image",
+ "invalid-image": "Hình ảnh không hợp lệ",
"invalid-image-type": "Định dạng ảnh không hợp lệ. Những định dạng được cho phép là: %1",
"invalid-image-extension": "Định dạng ảnh không hợp lệ",
"invalid-file-type": "Định dạng file không hợp lệ. Những định dạng được cho phép là: %1",
@@ -109,7 +109,7 @@
"chat-disabled": "Hệ thống chat đã bị vô hiệu hoá",
"too-many-messages": "Bạn đã gửi quá nhiều tin nhắn, vui lòng đợi trong giây lát.",
"invalid-chat-message": "Tin nhắn không hợp lệ",
- "chat-message-too-long": "Chat messages can not be longer than %1 characters.",
+ "chat-message-too-long": "Thông điệp không thể dài hơn %1 chữ.",
"cant-edit-chat-message": "Bạn không được phép chỉnh sửa tin nhắn này",
"cant-remove-last-user": "Bạn không thể xoá thành viên cuối cùng",
"cant-delete-chat-message": "Bạn không được phép xoá tin nhắn này",
@@ -119,13 +119,13 @@
"not-enough-reputation-to-downvote": "Bạn không có đủ phiếu tín nhiệm để downvote bài này",
"not-enough-reputation-to-flag": "Bạn không đủ tín nhiệm để đánh dấu bài viết này",
"already-flagged": "Bạn đã gắn cờ cho bài viết này",
- "self-vote": "You cannot vote on your own post",
+ "self-vote": "Bạn không thể tự bầu cho bài đăng của mình",
"reload-failed": "NodeBB gặp lỗi trong khi tải lại: \"%1\". NodeBB sẽ tiếp tục hoạt động với dữ liệu trước đó, tuy nhiên bạn nên tháo gỡ những gì bạn vừa thực hiện trước khi tải lại.",
"registration-error": "Lỗi đăng kí",
"parse-error": "Có gì không ổn khi nhận kết quả từ máy chủ",
"wrong-login-type-email": "Xin vui lòng sửa dụng email của bạn để đăng nhập",
"wrong-login-type-username": "Vui lòng sử dụng tên đăng nhập của bạn để đăng nhập",
- "sso-registration-disabled": "Registration has been disabled for %1 accounts, please register with an email address first",
+ "sso-registration-disabled": "Không thể đăng ký với tài khoản %1, vui lòng đăng ký với địa chỉ email của bạn",
"invite-maximum-met": "Bạn đã sử dụng hết số lượng lời mời bạn có thể gửi (%1 đã gửi trên tổng số %2 được cho phép)",
"no-session-found": "Không tìm thấy phiên đăng nhập!",
"not-in-room": "Thành viên không có trong phòng",
@@ -135,5 +135,5 @@
"invalid-home-page-route": "Đường dẫn trang chủ không hợp lệ",
"invalid-session": "Không đúng session",
"invalid-session-text": "Có vẻ như phiên đăng nhập của bạn đã không còn hoạt động nữa, hoặc không còn đúng với thông tin trên máy chủ. Vui lòng tải lại trang này",
- "no-topics-selected": "No topics selected!"
+ "no-topics-selected": "Không có chủ đề nào đang được chọn!"
}
\ No newline at end of file
diff --git a/public/language/vi/global.json b/public/language/vi/global.json
index bca009cd8c..5049b7bed2 100644
--- a/public/language/vi/global.json
+++ b/public/language/vi/global.json
@@ -104,6 +104,6 @@
"cookies.accept": "Đã rõ!",
"cookies.learn_more": "Xem thêm",
"edited": "Đã cập nhật",
- "disabled": "Disabled",
- "select": "Select"
+ "disabled": "Bị khóa",
+ "select": "Chọn"
}
\ No newline at end of file
diff --git a/public/language/vi/language.json b/public/language/vi/language.json
index f0787f748a..e6b933b8af 100644
--- a/public/language/vi/language.json
+++ b/public/language/vi/language.json
@@ -1,5 +1,5 @@
{
- "name": "Tiếng Việt",
+ "name": "Tiếng Anh (Anh Quốc/Ca-na-da)",
"code": "vi",
- "dir": "ltr"
+ "dir": "Trái qua phải"
}
\ No newline at end of file
diff --git a/public/language/vi/notifications.json b/public/language/vi/notifications.json
index 1f3e674954..3605d52d4a 100644
--- a/public/language/vi/notifications.json
+++ b/public/language/vi/notifications.json
@@ -9,17 +9,17 @@
"continue_to": "Tiếp tục tới %1",
"return_to": "Quay lại %1",
"new_notification": "Thông báo mới",
- "new_notification_from": "You have a new Notification from %1",
+ "new_notification_from": "Bạn nhận được 1 thông báo từ %1",
"you_have_unread_notifications": "Bạn có thông báo chưa đọc",
- "all": "All",
- "topics": "Topics",
- "replies": "Replies",
- "chat": "Chats",
- "follows": "Follows",
- "upvote": "Upvotes",
- "new-flags": "New Flags",
- "my-flags": "Flags assigned to me",
- "bans": "Bans",
+ "all": "Toàn bộ",
+ "topics": "Chủ đề",
+ "replies": "Phản hồi",
+ "chat": "Thông điệp",
+ "follows": "Lượt theo dõi",
+ "upvote": "Lượt thích",
+ "new-flags": "Cảnh báo mới",
+ "my-flags": "Cảnh báo dành cho tôi",
+ "bans": "Cấm",
"new_message_from": "Tin nhắn mới từ %1",
"upvoted_your_post_in": "%1 đã bình chọn bài của bạn trong %2.",
"upvoted_your_post_in_dual": "%1 và %2 đã tán thành với bài viết của bạn trong %3.",
@@ -29,9 +29,9 @@
"user_flagged_post_in": "%1 gắn cờ 1 bài trong %2",
"user_flagged_post_in_dual": "%1 và %2 đã gắn cờ một bài viết trong %3",
"user_flagged_post_in_multiple": "%1 và %2 người khác đã gắn cờ bài viết của bạn trong %3",
- "user_flagged_user": "%1 flagged a user profile (%2)",
- "user_flagged_user_dual": "%1 and %2 flagged a user profile (%3)",
- "user_flagged_user_multiple": "%1 and %2 others flagged a user profile (%3)",
+ "user_flagged_user": "%1 đã cảnh báo một người dùng (%2)",
+ "user_flagged_user_dual": "%1 và %2 đã cảnh báo một người dùng (%3)",
+ "user_flagged_user_multiple": "%1 và %2 người khác đã cảnh báo người dùng (%3)",
"user_posted_to": "%1 đã trả lời %2",
"user_posted_to_dual": "%1 và %2 đã trả lời: %3",
"user_posted_to_multiple": "%1 và %2 người khác đã trả lời: %3",
@@ -41,24 +41,24 @@
"user_started_following_you_multiple": "%1 và %2 người khác đã bắt đầu theo dõi bạn.",
"new_register": "%1 đã gửi một yêu cầu tham gia.",
"new_register_multiple": "Có %1 đơn đăng ký đang chờ xem xét.",
- "flag_assigned_to_you": "Flag %1 has been assigned to you",
- "post_awaiting_review": "Post awaiting review",
+ "flag_assigned_to_you": "Cảnh báo %1 đã được ghi nhận đối với bạn",
+ "post_awaiting_review": "Bài đăng đang chờ xét duyệt",
"email-confirmed": "Đã xác nhận email",
"email-confirmed-message": "Cảm ơn bạn đã xác nhận địa chỉ email của bạn. Tài khoản của bạn đã được kích hoạt đầy đủ.",
"email-confirm-error-message": "Đã có lỗi khi xác nhận địa chỉ email. Có thể đoạn mã không đúng hoặc đã hết hạn.",
"email-confirm-sent": "Email xác nhận đã gửi.",
- "none": "None",
- "notification_only": "Notification Only",
- "email_only": "Email Only",
- "notification_and_email": "Notification & Email",
- "notificationType_upvote": "When someone upvotes your post",
- "notificationType_new-topic": "When someone you follow posts a topic",
- "notificationType_new-reply": "When a new reply is posted in a topic you are watching",
- "notificationType_follow": "When someone starts following you",
- "notificationType_new-chat": "When you receive a chat message",
- "notificationType_group-invite": "When you receive a group invite",
- "notificationType_new-register": "When someone gets added to registration queue",
- "notificationType_post-queue": "When a new post is queued",
- "notificationType_new-post-flag": "When a post is flagged",
- "notificationType_new-user-flag": "When a user is flagged"
+ "none": "Hoàn toàn không",
+ "notification_only": "Chỉ thông báo",
+ "email_only": "Chỉ email",
+ "notification_and_email": "Cả thông báo & email",
+ "notificationType_upvote": "Khi ai đó thích bài đăng của bạn",
+ "notificationType_new-topic": "Khi người bạn theo dõi đăng một chủ đề",
+ "notificationType_new-reply": "Khi phản hồi được đăng trong chủ đề bạn đang quan tâm",
+ "notificationType_follow": "Khi ai đó theo dõi bạn",
+ "notificationType_new-chat": "Khi bạn nhận được thông điệp chat",
+ "notificationType_group-invite": "Khi bạn nhận được lời mời gia nhập nhóm",
+ "notificationType_new-register": "Khi ai đó được thêm vào lượt chờ đăng ký",
+ "notificationType_post-queue": "Khi bài đăng được thêm vào lượt chờ",
+ "notificationType_new-post-flag": "Khi bài đăng được cảnh báo",
+ "notificationType_new-user-flag": "Khi người dùng bị cảnh báo"
}
\ No newline at end of file
diff --git a/public/language/vi/pages.json b/public/language/vi/pages.json
index febfef2060..c70ca5e399 100644
--- a/public/language/vi/pages.json
+++ b/public/language/vi/pages.json
@@ -43,8 +43,8 @@
"account/groups": "Nhóm của %1",
"account/bookmarks": "Đã bookmark %1's chủ đề",
"account/settings": "Thiết lập",
- "account/watched": "Chủ đề %1 đang theo dõi",
- "account/ignored": "Topics ignored by %1",
+ "account/watched": "Chủ đề được quan tâm bởi %1",
+ "account/ignored": "Các chủ đề đã bị phớt lờ bởi %1",
"account/upvoted": "Bài viết %1 tán thành",
"account/downvoted": "Bài viết %1 phản đối",
"account/best": "Bài viết hay nhất của %1",
diff --git a/public/language/vi/search.json b/public/language/vi/search.json
index 7e4211c2c8..fc4e78954b 100644
--- a/public/language/vi/search.json
+++ b/public/language/vi/search.json
@@ -8,11 +8,11 @@
"posted-by": "Đăng bởi",
"in-categories": "Nằm trong chuyên mục",
"search-child-categories": "Tìm kiếm chuyên mục con",
- "has-tags": "Has tags",
+ "has-tags": "Có thẻ bên trong",
"reply-count": "Số lượt trả lời",
"at-least": "Tối thiểu",
"at-most": "Tối đa",
- "relevance": "Relevance",
+ "relevance": "Mức độ liên quan",
"post-time": "Thời điểm đăng bài",
"newer-than": "Mới hơn",
"older-than": "Cũ hơn",
diff --git a/public/language/vi/success.json b/public/language/vi/success.json
index aff07d84ad..5b5e438697 100644
--- a/public/language/vi/success.json
+++ b/public/language/vi/success.json
@@ -1,7 +1,7 @@
{
"success": "Thành công",
"topic-post": "Bạn đã gửi bài thành công",
- "post-queued": "Your post is queued for approval.",
+ "post-queued": "Bài đăng của bạn đang được chờ xét duyệt.",
"authentication-successful": "Xác thực thành công",
"settings-saved": "Đã lưu thiết lập"
}
\ No newline at end of file
diff --git a/public/language/vi/topic.json b/public/language/vi/topic.json
index 6f8290fa75..c59553269d 100644
--- a/public/language/vi/topic.json
+++ b/public/language/vi/topic.json
@@ -14,7 +14,7 @@
"quote": "Trích dẫn",
"reply": "Trả lời",
"replies_to_this_post": "%1 trả lời",
- "one_reply_to_this_post": "1 Reply",
+ "one_reply_to_this_post": "1 Phản hồi",
"last_reply_time": "Trả lời cuối cùng",
"reply-as-topic": "Trả lời dưới dạng chủ đề",
"guest-login-reply": "Hãy đăng nhập để trả lời",
@@ -40,13 +40,13 @@
"markAsUnreadForAll.success": "Chủ đề đã được đánh dấu là chưa đọc toàn bộ",
"mark_unread": "Đánh dấu chưa đọc",
"mark_unread.success": "Chủ đề đã được đánh dấu chưa đọc.",
- "watch": "Theo dõi",
- "unwatch": "Ngừng theo dõi",
+ "watch": "Quan tâm",
+ "unwatch": "Ngừng quan tâm",
"watch.title": "Được thông báo khi có trả lời mới trong chủ đề này",
- "unwatch.title": "Ngừng theo dõi chủ đề này",
+ "unwatch.title": "Ngừng quan tâm chủ đề này",
"share_this_post": "Chia sẻ bài viết này",
- "watching": "Đang xem",
- "not-watching": "Không xem",
+ "watching": "Đang quan tâm",
+ "not-watching": "Không để ý",
"ignoring": "Bỏ qua",
"watching.description": "Thông báo cho tôi các trả lời mới.
Hiển thị các mục chưa đọc",
"not-watching.description": "Không thông báo tôi các trả lời mới.
Hiển thị mục chưa đọc nếu danh mục bị bỏ qua.",
@@ -59,7 +59,7 @@
"thread_tools.unlock": "Mở khóa chủ đề",
"thread_tools.move": "Chuyển chủ đề",
"thread_tools.move_all": "Chuyển tất cả",
- "thread_tools.select_category": "Select Category",
+ "thread_tools.select_category": "Chọn chuyện mục",
"thread_tools.fork": "Tạo bản sao chủ đề",
"thread_tools.delete": "Xóa chủ đề",
"thread_tools.delete-posts": "Xoá bài viết",
@@ -68,8 +68,8 @@
"thread_tools.restore_confirm": "Bạn có muốn phục hồi chủ đề này?",
"thread_tools.purge": "Xóa hẳn chủ đề",
"thread_tools.purge_confirm": "Bạn có muốn xóa hẳn chủ đề này?",
- "thread_tools.merge_topics": "Merge Topics",
- "thread_tools.merge": "Merge",
+ "thread_tools.merge_topics": "Xác nhập chủ đề",
+ "thread_tools.merge": "Xác nhập",
"topic_move_success": "Đã chuyển thành công chủ đề này sang %1",
"post_delete_confirm": "Bạn có chắc là muốn xóa bài gửi này không?",
"post_restore_confirm": "Bạn có chắc là muốn phục hồi bài gửi này không?",
@@ -91,7 +91,7 @@
"fork_pid_count": "%1 bài viết(s) đã được gửi",
"fork_success": "Tạo bản sao thành công! Nhấn vào đây để chuyển tới chủ đề vừa tạo.",
"delete_posts_instruction": "Chọn những bài viết bạn muốn xoá",
- "merge_topics_instruction": "Click the topics you want to merge",
+ "merge_topics_instruction": "Click vào các chủ đề bạn muốn xác nhập",
"composer.title_placeholder": "Nhập tiêu đề cho chủ đề của bạn tại đây...",
"composer.handle_placeholder": "Tên",
"composer.discard": "Huỷ bỏ",
diff --git a/public/language/vi/unread.json b/public/language/vi/unread.json
index e0609d5e04..3c9d149bac 100644
--- a/public/language/vi/unread.json
+++ b/public/language/vi/unread.json
@@ -9,7 +9,7 @@
"topics_marked_as_read.success": "Chủ đề được đánh dấu đã đọc",
"all-topics": "Toàn bộ chủ đề",
"new-topics": "Các chủ đề mới",
- "watched-topics": "Các chủ đề đã xem",
- "unreplied-topics": "Unreplied Topics",
- "multiple-categories-selected": "Multiple Selected"
+ "watched-topics": "Các chủ đề đuợc quan tâm",
+ "unreplied-topics": "Chủ đề chưa có phản hồi nào",
+ "multiple-categories-selected": "Chọn nhiều cùng lúc"
}
\ No newline at end of file
diff --git a/public/language/vi/user.json b/public/language/vi/user.json
index fb7413330f..03fb99398e 100644
--- a/public/language/vi/user.json
+++ b/public/language/vi/user.json
@@ -24,17 +24,17 @@
"profile_views": "Số lượt người ghé thăm",
"reputation": "Mức uy tín",
"bookmarks": "Bookmarks",
- "watched": "Đã theo dõi",
- "ignored": "Ignored",
+ "watched": "Đã quan tâm",
+ "ignored": "Phớt lờ",
"followers": "Số người theo dõi",
"following": "Đang theo dõi",
"aboutme": "Giới thiệu bản thân",
"signature": "Chữ ký",
"birthday": "Ngày sinh ",
"chat": "Chat",
- "chat_with": "Continue chat with %1",
- "new_chat_with": "Start new chat with %1",
- "flag-profile": "Flag Profile",
+ "chat_with": "Tiếp tục chat với %1",
+ "new_chat_with": "Bắt đầu chat với %1",
+ "flag-profile": "Cảnh báo người dùng",
"follow": "Theo dõi",
"unfollow": "Hủy theo dõi",
"more": "Xem thêm",
@@ -61,14 +61,14 @@
"username_taken_workaround": "Tên truy cập này đã tồn tại, vì vậy chúng tôi đã sửa đổi nó một chút. Tên truy cập của bạn giờ là %1",
"password_same_as_username": "Mật khẩu của bạn trùng với tên đăng nhập, vui lòng chọn một mật khẩu khác.",
"password_same_as_email": "Mật khẩu của bạn trùng với email của bạn, hãy chọn mật khẩu khác.",
- "weak_password": "Weak password.",
+ "weak_password": "Mật khẩu yếu",
"upload_picture": "Tải lên hình ảnh",
"upload_a_picture": "Tải lên một hình ảnh",
"remove_uploaded_picture": "Xoá ảnh đã tải lên",
"upload_cover_picture": "Tải ảnh bìa lên",
- "remove_cover_picture_confirm": "Are you sure you want to remove the cover picture?",
- "crop_picture": "Crop picture",
- "upload_cropped_picture": "Crop and upload",
+ "remove_cover_picture_confirm": "Bạn có thật sự muốn xóa hình ảnh này?",
+ "crop_picture": "Cắt nhỏ hình ảnh",
+ "upload_cropped_picture": "Cắt nhỏ và đăng tải",
"settings": "Thiết lập",
"show_email": "Hiện Email của tôi",
"show_fullname": "Hiện tên đầy đủ",
@@ -84,8 +84,8 @@
"follows_no_one": "Người dùng này hiện chưa theo dõi ai :(",
"has_no_posts": "Thành viên này chưa đăng bài viết nào cả.",
"has_no_topics": "Thành viên này chưa đăng chủ đề nào cả.",
- "has_no_watched_topics": "Thành viên này chưa theo dõi chủ đề nào cả.",
- "has_no_ignored_topics": "This user hasn't ignored any topics yet.",
+ "has_no_watched_topics": "Thành viên này chưa quan tâm chủ đề nào cả.",
+ "has_no_ignored_topics": "Người dùng này chưa bỏ qua bất cứ chủ đề nào.",
"has_no_upvoted_posts": "Thành viên này chưa tán thành bài viết nào cả.",
"has_no_downvoted_posts": "Thành viên này chưa phản đối bài viết nào cả.",
"has_no_voted_posts": "Thành viên này không có bài viết nào được tán thành.",
@@ -94,18 +94,18 @@
"paginate_description": "Phân trang chủ đề và bài viết thay vì sử dụng cuộn vô hạn",
"topics_per_page": "Số chủ đề trong một trang",
"posts_per_page": "Số bài viết trong một trang",
- "max_items_per_page": "Maximum %1",
+ "max_items_per_page": "Tối đa %1",
"notification_sounds": "Phát âm thanh khi bạn nhận được thông báo mới",
"notifications_and_sounds": "Thông báo & Âm thanh",
"incoming-message-sound": "Âm báo tin nhắn tới",
"outgoing-message-sound": "Âm báo tin nhắn đi",
"notification-sound": "Âm thanh thông báo",
"no-sound": "Không có âm thanh",
- "upvote-notif-freq": "Upvote Notification Frequency",
- "upvote-notif-freq.all": "All Upvotes",
- "upvote-notif-freq.everyTen": "Every Ten Upvotes",
- "upvote-notif-freq.logarithmic": "On 10, 100, 1000...",
- "upvote-notif-freq.disabled": "Disabled",
+ "upvote-notif-freq": "Tần suất thông báo lượt thích",
+ "upvote-notif-freq.all": "Toàn bộ lượt thích",
+ "upvote-notif-freq.everyTen": "Mỗi 10 lượt thích",
+ "upvote-notif-freq.logarithmic": "Cứ mỗi 10, 100, 1000...",
+ "upvote-notif-freq.disabled": "Bị khóa",
"browsing": "Đang xem cài đặt",
"open_links_in_new_tab": "Mở link trong tab mới.",
"enable_topic_searching": "Bật In-topic Searching",
@@ -113,8 +113,8 @@
"delay_image_loading": "Việc tải ảnh đang bị chậm",
"image_load_delay_help": "Nếu được bật, toàn bộ ảnh trong chủ đề sẽ chỉ được tải khi người dùng kéo chuột tới",
"scroll_to_my_post": "Sau khi đăng một trả lời thì hiển thị bài viết mới",
- "follow_topics_you_reply_to": "Theo dõi những chủ đề mà bạn đã bình luận",
- "follow_topics_you_create": "Theo dõi những chủ đề do bạn t",
+ "follow_topics_you_reply_to": "Những chủ đề bạn quan tâm và từng bình luận",
+ "follow_topics_you_create": "Theo dõi chủ đề bạn tạo",
"grouptitle": "Tên nhóm",
"no-group-title": "Không có tên nhóm",
"select-skin": "Chọn một giao diện",
@@ -126,9 +126,9 @@
"sso.title": "Đăng nhập một lần",
"sso.associated": "Đã liên kết với",
"sso.not-associated": "Nhấn vào đây để liên kết với",
- "sso.dissociate": "Dissociate",
- "sso.dissociate-confirm-title": "Confirm Dissociation",
- "sso.dissociate-confirm": "Are you sure you wish to dissociate your account from %1?",
+ "sso.dissociate": "Tách khỏi",
+ "sso.dissociate-confirm-title": "Xác nhận việc tách khỏi",
+ "sso.dissociate-confirm": "Bạn có chắc chắn muốn tách tài khoản của mình khỏi %1?",
"info.latest-flags": "Cờ mới nhất",
"info.no-flags": "Không có bài viết nào bị gắn c",
"info.ban-history": "Lịch sử khóa tài khoản gần đây",
@@ -141,5 +141,5 @@
"info.email-history": "Lịch sử email",
"info.moderation-note": "Ghi chú quản lí",
"info.moderation-note.success": "Đã lưu ghi chú quản l",
- "info.moderation-note.add": "Add note"
+ "info.moderation-note.add": "Thêm ghi chú"
}
\ No newline at end of file
From 783d2eb073fc1c58c367790d571e0523154cd3ac Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?=
Date: Tue, 26 Dec 2017 12:00:06 -0500
Subject: [PATCH 07/18] remove console.log
---
public/src/modules/alerts.js | 1 -
1 file changed, 1 deletion(-)
diff --git a/public/src/modules/alerts.js b/public/src/modules/alerts.js
index 62f6da940e..0094c88f96 100644
--- a/public/src/modules/alerts.js
+++ b/public/src/modules/alerts.js
@@ -117,7 +117,6 @@ define('alerts', ['translator', 'components', 'benchpress'], function (translato
alert
.on('mouseenter', function () {
$(this).css('transition-duration', 0);
- console.log(this);
});
}
From 9628956a561c1597e6783bda8cd1dce5b0e3788d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?=
Date: Wed, 27 Dec 2017 11:55:45 -0500
Subject: [PATCH 08/18] closes #6199
global widgets will appear after page widgets
---
src/widgets/index.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/widgets/index.js b/src/widgets/index.js
index 968a5e7a9e..1d60664247 100644
--- a/src/widgets/index.js
+++ b/src/widgets/index.js
@@ -31,7 +31,7 @@ widgets.render = function (uid, options, callback) {
var returnData = {};
async.each(locations, function (location, done) {
- widgetsByLocation[location] = (data.global[location] || []).concat(data[options.template][location] || []);
+ widgetsByLocation[location] = (data[options.template][location] || []).concat(data.global[location] || []);
if (!widgetsByLocation[location].length) {
return done(null, { location: location, widgets: [] });
From 53e7aa0e70a358c9546cfed1e104eea505fa5e92 Mon Sep 17 00:00:00 2001
From: Julian Lam
Date: Wed, 27 Dec 2017 14:12:52 -0500
Subject: [PATCH 09/18] bump emoji plugin @pitaj
---
install/package.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/install/package.json b/install/package.json
index f87313afed..5192c5a862 100644
--- a/install/package.json
+++ b/install/package.json
@@ -61,7 +61,7 @@
"nconf": "^0.9.1",
"nodebb-plugin-composer-default": "6.0.7",
"nodebb-plugin-dbsearch": "2.0.9",
- "nodebb-plugin-emoji": "2.0.7",
+ "nodebb-plugin-emoji": "2.0.8",
"nodebb-plugin-emoji-android": "2.0.0",
"nodebb-plugin-markdown": "8.2.2",
"nodebb-plugin-mentions": "2.2.2",
From f9202aeb05d4f12ec92881737ae31cb702a523df Mon Sep 17 00:00:00 2001
From: Julian Lam
Date: Wed, 27 Dec 2017 14:14:10 -0500
Subject: [PATCH 10/18] reading_comprehension--; @pitaj
---
install/package.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/install/package.json b/install/package.json
index 5192c5a862..edb46a26f7 100644
--- a/install/package.json
+++ b/install/package.json
@@ -61,7 +61,7 @@
"nconf": "^0.9.1",
"nodebb-plugin-composer-default": "6.0.7",
"nodebb-plugin-dbsearch": "2.0.9",
- "nodebb-plugin-emoji": "2.0.8",
+ "nodebb-plugin-emoji": "2.0.9",
"nodebb-plugin-emoji-android": "2.0.0",
"nodebb-plugin-markdown": "8.2.2",
"nodebb-plugin-mentions": "2.2.2",
From cadea35cff311dcba106edf7c2b411ac9da37dab Mon Sep 17 00:00:00 2001
From: "Misty (Bot)"
Date: Wed, 27 Dec 2017 21:48:01 +0000
Subject: [PATCH 11/18] Incremented version number - v1.7.3
---
install/package.json | 168 +++++++++++++++++++++----------------------
1 file changed, 84 insertions(+), 84 deletions(-)
diff --git a/install/package.json b/install/package.json
index edb46a26f7..c51992816c 100644
--- a/install/package.json
+++ b/install/package.json
@@ -2,7 +2,7 @@
"name": "nodebb",
"license": "GPL-3.0",
"description": "NodeBB Forum",
- "version": "1.7.2",
+ "version": "1.7.3",
"homepage": "http://www.nodebb.org",
"repository": {
"type": "git",
@@ -17,89 +17,89 @@
"coveralls": "nyc report --reporter=text-lcov | coveralls && rm -r coverage"
},
"dependencies": {
- "ace-builds": "^1.2.9",
- "async": "2.6.0",
- "autoprefixer": "7.1.6",
- "bcryptjs": "2.4.3",
- "benchpressjs": "^1.2.0",
- "body-parser": "^1.18.2",
- "bootstrap": "^3.3.7",
- "chart.js": "^2.7.0",
- "colors": "^1.1.2",
- "compression": "^1.7.1",
- "commander": "^2.11.0",
- "connect-ensure-login": "^0.1.1",
- "connect-flash": "^0.1.1",
- "connect-mongo": "2.0.0",
- "connect-multiparty": "^2.1.0",
- "connect-redis": "3.3.2",
- "cookie-parser": "^1.4.3",
- "cron": "^1.3.0",
- "cropperjs": "^1.1.3",
- "csurf": "^1.9.0",
- "daemon": "^1.1.0",
- "express": "^4.16.2",
- "express-session": "^1.15.6",
- "express-useragent": "1.0.8",
- "graceful-fs": "^4.1.11",
- "html-to-text": "3.3.0",
- "ipaddr.js": "^1.5.4",
- "jimp": "0.2.28",
- "jquery": "^3.2.1",
- "jsesc": "2.5.1",
- "json-2-csv": "^2.1.2",
- "less": "^2.7.2",
- "lodash": "^4.17.4",
- "logrotate-stream": "^0.2.5",
- "lru-cache": "4.1.1",
- "material-design-lite": "^1.3.0",
- "mime": "^2.0.3",
- "mkdirp": "^0.5.1",
- "mongodb": "2.2.33",
- "morgan": "^1.9.0",
- "mousetrap": "^1.6.1",
- "nconf": "^0.9.1",
- "nodebb-plugin-composer-default": "6.0.7",
- "nodebb-plugin-dbsearch": "2.0.9",
- "nodebb-plugin-emoji": "2.0.9",
- "nodebb-plugin-emoji-android": "2.0.0",
- "nodebb-plugin-markdown": "8.2.2",
- "nodebb-plugin-mentions": "2.2.2",
- "nodebb-plugin-soundpack-default": "1.0.0",
- "nodebb-plugin-spam-be-gone": "0.5.1",
- "nodebb-rewards-essentials": "0.0.9",
- "nodebb-theme-lavender": "5.0.0",
- "nodebb-theme-persona": "7.2.8",
- "nodebb-theme-slick": "1.1.2",
- "nodebb-theme-vanilla": "8.1.4",
- "nodebb-widget-essentials": "4.0.1",
- "nodemailer": "4.4.0",
- "passport": "^0.4.0",
- "passport-local": "1.0.0",
- "postcss": "6.0.14",
- "postcss-clean": "1.1.0",
- "promise-polyfill": "^6.0.2",
- "prompt": "^1.0.0",
- "redis": "2.8.0",
- "request": "2.83.0",
- "rimraf": "2.6.2",
- "rss": "^1.2.2",
- "sanitize-html": "^1.14.1",
- "semver": "^5.4.1",
- "serve-favicon": "^2.4.5",
- "sitemap": "^1.13.0",
- "socket.io": "2.0.4",
- "socket.io-client": "2.0.4",
- "socket.io-redis": "5.2.0",
- "socketio-wildcard": "2.0.0",
- "spdx-license-list": "^3.0.1",
- "toobusy-js": "^0.5.1",
- "uglify-js": "^3.1.5",
- "validator": "9.1.2",
- "winston": "^2.4.0",
- "xml": "^1.0.1",
- "xregexp": "3.2.0",
- "zxcvbn": "^4.4.2"
+ "ace-builds": "^1.2.9",
+ "async": "2.6.0",
+ "autoprefixer": "7.1.6",
+ "bcryptjs": "2.4.3",
+ "benchpressjs": "^1.2.0",
+ "body-parser": "^1.18.2",
+ "bootstrap": "^3.3.7",
+ "chart.js": "^2.7.0",
+ "colors": "^1.1.2",
+ "compression": "^1.7.1",
+ "commander": "^2.11.0",
+ "connect-ensure-login": "^0.1.1",
+ "connect-flash": "^0.1.1",
+ "connect-mongo": "2.0.0",
+ "connect-multiparty": "^2.1.0",
+ "connect-redis": "3.3.2",
+ "cookie-parser": "^1.4.3",
+ "cron": "^1.3.0",
+ "cropperjs": "^1.1.3",
+ "csurf": "^1.9.0",
+ "daemon": "^1.1.0",
+ "express": "^4.16.2",
+ "express-session": "^1.15.6",
+ "express-useragent": "1.0.8",
+ "graceful-fs": "^4.1.11",
+ "html-to-text": "3.3.0",
+ "ipaddr.js": "^1.5.4",
+ "jimp": "0.2.28",
+ "jquery": "^3.2.1",
+ "jsesc": "2.5.1",
+ "json-2-csv": "^2.1.2",
+ "less": "^2.7.2",
+ "lodash": "^4.17.4",
+ "logrotate-stream": "^0.2.5",
+ "lru-cache": "4.1.1",
+ "material-design-lite": "^1.3.0",
+ "mime": "^2.0.3",
+ "mkdirp": "^0.5.1",
+ "mongodb": "2.2.33",
+ "morgan": "^1.9.0",
+ "mousetrap": "^1.6.1",
+ "nconf": "^0.9.1",
+ "nodebb-plugin-composer-default": "6.0.7",
+ "nodebb-plugin-dbsearch": "2.0.9",
+ "nodebb-plugin-emoji": "2.0.9",
+ "nodebb-plugin-emoji-android": "2.0.0",
+ "nodebb-plugin-markdown": "8.2.2",
+ "nodebb-plugin-mentions": "2.2.2",
+ "nodebb-plugin-soundpack-default": "1.0.0",
+ "nodebb-plugin-spam-be-gone": "0.5.1",
+ "nodebb-rewards-essentials": "0.0.9",
+ "nodebb-theme-lavender": "5.0.0",
+ "nodebb-theme-persona": "7.2.8",
+ "nodebb-theme-slick": "1.1.2",
+ "nodebb-theme-vanilla": "8.1.4",
+ "nodebb-widget-essentials": "4.0.1",
+ "nodemailer": "4.4.0",
+ "passport": "^0.4.0",
+ "passport-local": "1.0.0",
+ "postcss": "6.0.14",
+ "postcss-clean": "1.1.0",
+ "promise-polyfill": "^6.0.2",
+ "prompt": "^1.0.0",
+ "redis": "2.8.0",
+ "request": "2.83.0",
+ "rimraf": "2.6.2",
+ "rss": "^1.2.2",
+ "sanitize-html": "^1.14.1",
+ "semver": "^5.4.1",
+ "serve-favicon": "^2.4.5",
+ "sitemap": "^1.13.0",
+ "socket.io": "2.0.4",
+ "socket.io-client": "2.0.4",
+ "socket.io-redis": "5.2.0",
+ "socketio-wildcard": "2.0.0",
+ "spdx-license-list": "^3.0.1",
+ "toobusy-js": "^0.5.1",
+ "uglify-js": "^3.1.5",
+ "validator": "9.1.2",
+ "winston": "^2.4.0",
+ "xml": "^1.0.1",
+ "xregexp": "3.2.0",
+ "zxcvbn": "^4.4.2"
},
"devDependencies": {
"coveralls": "^3.0.0",
From e563e8ac82ad44ee113da20a0eaa0e83a6cc22f8 Mon Sep 17 00:00:00 2001
From: "Misty (Bot)"
Date: Fri, 29 Dec 2017 09:24:50 +0000
Subject: [PATCH 12/18] Latest translations and fallbacks
---
.../cs/admin/appearance/customise.json | 8 ++---
.../language/cs/admin/manage/post-queue.json | 2 +-
public/language/cs/admin/menu.json | 4 +--
.../cs/admin/settings/notifications.json | 2 +-
.../cs/admin/settings/pagination.json | 4 +--
public/language/cs/admin/settings/post.json | 4 +--
public/language/cs/admin/settings/user.json | 4 +--
public/language/cs/email.json | 2 +-
public/language/cs/error.json | 10 +++---
public/language/cs/flags.json | 8 ++---
public/language/cs/notifications.json | 32 +++++++++----------
public/language/cs/pages.json | 2 +-
public/language/cs/topic.json | 6 ++--
public/language/cs/unread.json | 4 +--
public/language/cs/user.json | 20 ++++++------
public/language/nl/email.json | 4 +--
public/language/nl/error.json | 6 ++--
public/language/nl/notifications.json | 30 ++++++++---------
public/language/nl/topic.json | 6 ++--
public/language/nl/user.json | 10 +++---
20 files changed, 84 insertions(+), 84 deletions(-)
diff --git a/public/language/cs/admin/appearance/customise.json b/public/language/cs/admin/appearance/customise.json
index c22a869f80..0cd4e0f8da 100644
--- a/public/language/cs/admin/appearance/customise.json
+++ b/public/language/cs/admin/appearance/customise.json
@@ -3,12 +3,12 @@
"custom-css.description": "Zadejte vlastní deklarace CSS, které budou použity na všechny ostatních styly.",
"custom-css.enable": "Povolit uživatelské CSS",
- "custom-js": "Custom Javascript",
- "custom-js.description": "Enter your own javascript here. It will be executed after the page is loaded completely.",
- "custom-js.enable": "Enable Custom Javascript",
+ "custom-js": "Uživatelský Javascript",
+ "custom-js.description": "Zadejte zde váš javascriptový kód. Bude spuštěn, jakmile se stránka plně načte.",
+ "custom-js.enable": "Povolit uživatelský Javascript",
"custom-header": "Uživatelská hlavička",
- "custom-header.description": "Enter custom HTML here (ex. Meta Tags, etc.), which will be appended to the <head>
section of your forum's markup. Script tags are allowed, but are discouraged, as the Custom Javascript tab is available.",
+ "custom-header.description": "Zde zadejte uživatelské HTML (mimo Meta Tags, atd.), které bude připojeno k části značek <head>
vašeho fóra.. Značky pro „script” jsou povoleny, ale nedoporučujeme je, neboť je dostupný Uživatelský Javascript .",
"custom-header.enable": "Povolit uživatelskou hlavičku",
"custom-css.livereload": "Povolit aktuální znovu načtení",
diff --git a/public/language/cs/admin/manage/post-queue.json b/public/language/cs/admin/manage/post-queue.json
index 57fe1f8ab7..e46490b1b7 100644
--- a/public/language/cs/admin/manage/post-queue.json
+++ b/public/language/cs/admin/manage/post-queue.json
@@ -7,5 +7,5 @@
"content": "Obsah",
"posted": "Přidáno",
"reply-to": "Odpovědět na \"%1\"",
- "content-editable": "You can click on individual content to edit before posting."
+ "content-editable": "Kvůli úpravám a před odesláním příspěvku můžete klikat na obsah."
}
\ No newline at end of file
diff --git a/public/language/cs/admin/menu.json b/public/language/cs/admin/menu.json
index 8b9812e514..7de94b7a5c 100644
--- a/public/language/cs/admin/menu.json
+++ b/public/language/cs/admin/menu.json
@@ -39,7 +39,7 @@
"section-appearance": "Vzhled",
"appearance/themes": "Motivy",
"appearance/skins": "Vzhledy",
- "appearance/customise": "Custom Content (HTML/JS/CSS)",
+ "appearance/customise": "Uživatelský obsah (HTML/JS/CSS)",
"section-extend": "Rozšířit",
"extend/plugins": "Rozšíření",
@@ -65,7 +65,7 @@
"logout": "Odhlásit",
"view-forum": "Zobrazit fórum",
- "search.placeholder": "Search for settings",
+ "search.placeholder": "Hledat nastavení",
"search.no-results": "Žádné výsledky…",
"search.search-forum": "Prohledat fórum pro ",
"search.keep-typing": "Pište dále pro zobrazení výsledků…",
diff --git a/public/language/cs/admin/settings/notifications.json b/public/language/cs/admin/settings/notifications.json
index fd95917606..39bc83bdcb 100644
--- a/public/language/cs/admin/settings/notifications.json
+++ b/public/language/cs/admin/settings/notifications.json
@@ -2,5 +2,5 @@
"notifications": "Oznámení",
"welcome-notification": "Uvítání",
"welcome-notification-link": "Odkaz na uvítání",
- "welcome-notification-uid": "Welcome Notification User (UID)"
+ "welcome-notification-uid": "Uvítání uživatele (UID)"
}
\ No newline at end of file
diff --git a/public/language/cs/admin/settings/pagination.json b/public/language/cs/admin/settings/pagination.json
index dc1faf68da..34052b2a9c 100644
--- a/public/language/cs/admin/settings/pagination.json
+++ b/public/language/cs/admin/settings/pagination.json
@@ -3,9 +3,9 @@
"enable": "Stránkovat témata a příspěvky namísto nekonečného posouvání",
"topics": "Stránkování témat",
"posts-per-page": "Příspěvků na stránku",
- "max-posts-per-page": "Maximum posts per page",
+ "max-posts-per-page": "Maximální množství příspěvků na stránku",
"categories": "Stránkování kategorii",
"topics-per-page": "Témat na stránku",
- "max-topics-per-page": "Maximum topics per page",
+ "max-topics-per-page": "Maximální množství témat na stránku",
"initial-num-load": "Počáteční počet témat pro načtení u nepřečtených, posledních a polulárních"
}
\ No newline at end of file
diff --git a/public/language/cs/admin/settings/post.json b/public/language/cs/admin/settings/post.json
index 67d297b33b..de8832b501 100644
--- a/public/language/cs/admin/settings/post.json
+++ b/public/language/cs/admin/settings/post.json
@@ -3,8 +3,8 @@
"sorting.post-default": "Výchozí třídění příspěvků",
"sorting.oldest-to-newest": "Od nejstarších po nejnovější",
"sorting.newest-to-oldest": "Od nejnovějších po nejstarší",
- "sorting.most-votes": "Dle hlasování",
- "sorting.most-posts": "Most Posts",
+ "sorting.most-votes": "Dle počtu hlasů",
+ "sorting.most-posts": "Dle počtu příspěvků",
"sorting.topic-default": "Výchozí třídění tématu",
"restrictions": "Omezení příspěvků",
"restrictions.post-queue": "Povolit frontu pro příspěvky",
diff --git a/public/language/cs/admin/settings/user.json b/public/language/cs/admin/settings/user.json
index 2ad41f23cf..e683492860 100644
--- a/public/language/cs/admin/settings/user.json
+++ b/public/language/cs/admin/settings/user.json
@@ -19,8 +19,8 @@
"themes": "Motivy",
"disable-user-skins": "Zabránit uživateli ve výběru vlastního vzhledu",
"account-protection": "Ochrana účtu",
- "admin-relogin-duration": "Admin relogin duration (minutes)",
- "admin-relogin-duration-help": "After a set amount of time accessing the admin section will require re-login, set to 0 to disable",
+ "admin-relogin-duration": "Doba pro opětovné přihlášení správce (minuty)",
+ "admin-relogin-duration-help": "Po nastavení počtu přístupu do správcovské části, bude vyžadováno opětovné přihlášení. Pro zakázání, nastavte na 0.",
"login-attempts": "Počet pokusů o přihlášení za hodinu",
"login-attempts-help": "Překročí-li pokusy o přihlášení uživatele/ů tuto hranici, účet bude uzamknut na určený čas",
"lockout-duration": "Délka blokování účtu (v minutách)",
diff --git a/public/language/cs/email.json b/public/language/cs/email.json
index 1d1efa10e9..b330291160 100644
--- a/public/language/cs/email.json
+++ b/public/language/cs/email.json
@@ -30,7 +30,7 @@
"notif.chat.unsub.info": "Toto upozornění na chat vám bylo odesláno na základě vašeho nastavení odběru.",
"notif.post.cta": "Klikněte zde pro přečtené celého tématu",
"notif.post.unsub.info": "Toto upozornění na příspěvek vám bylo odesláno na základě vašeho nastavení odběru.",
- "notif.cta": "Click here to go to forum",
+ "notif.cta": "Pro přejití na fórum, klikněte zde",
"test.text1": "Tento testovací e-mail slouží k ověření, že je e-mailer správně nastaven pro práci s NodeBB.",
"unsub.cta": "Chcete-li změnit tyto nastavení, klikněte zde.",
"banned.subject": "Byl jste zablokován od %1",
diff --git a/public/language/cs/error.json b/public/language/cs/error.json
index 43ea641999..18576ee9bc 100644
--- a/public/language/cs/error.json
+++ b/public/language/cs/error.json
@@ -11,7 +11,7 @@
"invalid-uid": "Neplatné ID uživatele",
"invalid-username": "Neplatné uživatelské jméno",
"invalid-email": "Neplatný e-mail",
- "invalid-title": "Invalid title",
+ "invalid-title": "Neplatný název",
"invalid-user-data": "Neplatná uživatelská data",
"invalid-password": "Neplatné heslo",
"invalid-login-credentials": "Neplatné přihlašovací údaje",
@@ -81,7 +81,7 @@
"cant-ban-other-admins": "Nemůžete zablokovat jiné správce.",
"cant-remove-last-admin": "Jste jediným správcem. Před vlastním odebráním oprávnění správce nejdříve přidejte jiného uživatele jako správce",
"cant-delete-admin": "Před odstraněním účtu mu nejprve odeberte oprávnění správce.",
- "invalid-image": "Invalid image",
+ "invalid-image": "Neplatný obrázek",
"invalid-image-type": "Neplatný typ obrázku. Povolené typy jsou: %1",
"invalid-image-extension": "Neplatná přípona obrázku",
"invalid-file-type": "Neplatný typ souboru. Povolené typy jsou: %1",
@@ -119,13 +119,13 @@
"not-enough-reputation-to-downvote": "Nemáte dostatečnou reputaci pro vyjádření nesouhlasu u tohoto příspěvku",
"not-enough-reputation-to-flag": "Pro označení tohoto příspěvku nemáte dostatečnou reputaci",
"already-flagged": "Tento příspěvek jste již označil",
- "self-vote": "You cannot vote on your own post",
+ "self-vote": "U svého vlastního příspěvku nemůžete hlasovat",
"reload-failed": "Vyskytla se chyba v NodeBB při znovu načtení: \"%1\". NodeBB bude pokračovat v běhu na straně klienta, nicméně byste měl/a přenastavit zpět to, co jste udělal/a před opětovným načtením.",
"registration-error": "Chyba při registraci",
"parse-error": "Při analýze odpovědi serveru nastala chyba",
"wrong-login-type-email": "Pro přihlášení použijte vaši e-mailovou adresu",
"wrong-login-type-username": "Pro přihlášení použijte vaše uživatelské jméno",
- "sso-registration-disabled": "Registration has been disabled for %1 accounts, please register with an email address first",
+ "sso-registration-disabled": "Registrace byla zakázána pro účty - %1. Nejprve si zaregistrujte e-mailovou adresu",
"invite-maximum-met": "Již jste pozval/a maximálně možný počet lidí (%1 z %2).",
"no-session-found": "Nebyla nalezena relace s přihlášením.",
"not-in-room": "Uživatel není přítomen v místnosti",
@@ -135,5 +135,5 @@
"invalid-home-page-route": "Neplatná cesta k domovské stránkce",
"invalid-session": "Nesoulad v relacích",
"invalid-session-text": "Zdá se, že vše relace s přihlášením již není aktivní nebo již neodpovídá s relací na serveru. Obnovte prosím tuto stránku.",
- "no-topics-selected": "No topics selected!"
+ "no-topics-selected": "Žádná vybraná témata."
}
\ No newline at end of file
diff --git a/public/language/cs/flags.json b/public/language/cs/flags.json
index e221f6965b..eb37572f8a 100644
--- a/public/language/cs/flags.json
+++ b/public/language/cs/flags.json
@@ -54,11 +54,11 @@
"modal-body": "Zadejte váš důvod k označení %1 %2 pro kontrolu. Nebo použijte tlačítko je-li dostupné.",
"modal-reason-spam": "Spam",
"modal-reason-offensive": "Urážlivé",
- "modal-reason-other": "Other (specify below)",
+ "modal-reason-other": "Jiné (popište níže)",
"modal-reason-custom": "Důvod ohlášení tohoto obsahu…",
"modal-submit": "Předat hlášení",
"modal-submit-success": "Obsah byl označen pro moderaci.",
- "modal-submit-confirm": "Confirm Submission",
- "modal-submit-confirm-text": "You have a custom reason specified already. Are you sure you wish to submit via quick-report?",
- "modal-submit-confirm-text-help": "Submitting a quick report will overwrite any custom reasons defined."
+ "modal-submit-confirm": "Potvrdit hlášení",
+ "modal-submit-confirm-text": "Již jste zadal/a nějaký důvod. Jste si jist/a, že chcete nahlásit pomocí rychlé zprávy?",
+ "modal-submit-confirm-text-help": "Zaslání rychlé zprávy přepíše jiné zadané důvody."
}
\ No newline at end of file
diff --git a/public/language/cs/notifications.json b/public/language/cs/notifications.json
index 8182ae3f47..284b394c6f 100644
--- a/public/language/cs/notifications.json
+++ b/public/language/cs/notifications.json
@@ -8,8 +8,8 @@
"outgoing_link_message": "Opouštíte %1",
"continue_to": "Pokračovat na %1",
"return_to": "Vrátit se na %1",
- "new_notification": "Nové upozornění",
- "new_notification_from": "You have a new Notification from %1",
+ "new_notification": "Nové oznámení",
+ "new_notification_from": "Máte nové upozornění od %1",
"you_have_unread_notifications": "Máte nepřečtená upozornění.",
"all": "Vše",
"topics": "Témata",
@@ -47,18 +47,18 @@
"email-confirmed-message": "Děkujeme za ověření vaší e-mailové adresy. Váš účet je nyní aktivní.",
"email-confirm-error-message": "Nastal problém s ověřením vaší e-mailové adresy. Kód je pravděpodobně neplatný nebo jeho platnost vypršela.",
"email-confirm-sent": "Ověřovací e-mail odeslán.",
- "none": "None",
- "notification_only": "Notification Only",
- "email_only": "Email Only",
- "notification_and_email": "Notification & Email",
- "notificationType_upvote": "When someone upvotes your post",
- "notificationType_new-topic": "When someone you follow posts a topic",
- "notificationType_new-reply": "When a new reply is posted in a topic you are watching",
- "notificationType_follow": "When someone starts following you",
- "notificationType_new-chat": "When you receive a chat message",
- "notificationType_group-invite": "When you receive a group invite",
- "notificationType_new-register": "When someone gets added to registration queue",
- "notificationType_post-queue": "When a new post is queued",
- "notificationType_new-post-flag": "When a post is flagged",
- "notificationType_new-user-flag": "When a user is flagged"
+ "none": "Nic",
+ "notification_only": "Jen oznámení",
+ "email_only": "Jen e-mail",
+ "notification_and_email": "Oznámení a e-mail",
+ "notificationType_upvote": "Vyjádří-li někdo souhlas s vaším příspěvkem",
+ "notificationType_new-topic": "Začne-li někdo sledovat příspěvky a téma",
+ "notificationType_new-reply": "Bude-li přidán nový příspěvek v tématu, které sledujete",
+ "notificationType_follow": "Začne-li vás někdo sledovat",
+ "notificationType_new-chat": "Obdržíte-li novou konverzační zprávu",
+ "notificationType_group-invite": "Obdržíte-li pozvání ke skupině",
+ "notificationType_new-register": "Bude-li někdo přidán do registrační fronty",
+ "notificationType_post-queue": "Bude-li přidán nový příspěvek do fronty",
+ "notificationType_new-post-flag": "Bude-li příspěvek označen",
+ "notificationType_new-user-flag": "Bude-li uživatel označen"
}
\ No newline at end of file
diff --git a/public/language/cs/pages.json b/public/language/cs/pages.json
index 8a0270a9db..befc7ceba3 100644
--- a/public/language/cs/pages.json
+++ b/public/language/cs/pages.json
@@ -44,7 +44,7 @@
"account/bookmarks": "%1's zazáložkované příspěvky",
"account/settings": "Uživatelské nastavení",
"account/watched": "Témata sledovaná uživatelem %1",
- "account/ignored": "Topics ignored by %1",
+ "account/ignored": "Témata ignorovaná uživatelem %1",
"account/upvoted": "Souhlasí s příspěvkem %1",
"account/downvoted": "Nesouhlasí s příspěvkem %1",
"account/best": "Nejlepší příspěvky od %1",
diff --git a/public/language/cs/topic.json b/public/language/cs/topic.json
index 7cedca5e24..80e7561e26 100644
--- a/public/language/cs/topic.json
+++ b/public/language/cs/topic.json
@@ -68,8 +68,8 @@
"thread_tools.restore_confirm": "Jste si jist/a, že chcete toto téma obnovit?",
"thread_tools.purge": "Vyčistit téma",
"thread_tools.purge_confirm": "Jste si jist/a, že chcete vyčistit toto téma?",
- "thread_tools.merge_topics": "Merge Topics",
- "thread_tools.merge": "Merge",
+ "thread_tools.merge_topics": "Sloučit témata",
+ "thread_tools.merge": "Sloučit",
"topic_move_success": "Toto téma bylo úspěšně přesunuto do %1",
"post_delete_confirm": "Jste si jist/a, že chcete odstranit tento příspěvek?",
"post_restore_confirm": "Jste si jist/a, že chcete obnovit tento příspěvek?",
@@ -91,7 +91,7 @@
"fork_pid_count": "Vybráno %1 příspěvek/ů",
"fork_success": "Téma úspěšně rozděleno. Pro přejití na rozdělené téma, zde klikněte.",
"delete_posts_instruction": "Klikněte na příspěvek, který chcete odstranit/vyčistit",
- "merge_topics_instruction": "Click the topics you want to merge",
+ "merge_topics_instruction": "Pro sloučení témat, klikněte na ně",
"composer.title_placeholder": "Zadejte název tématu…",
"composer.handle_placeholder": "Jméno",
"composer.discard": "Zrušit",
diff --git a/public/language/cs/unread.json b/public/language/cs/unread.json
index 60381d5efd..35035c5cb0 100644
--- a/public/language/cs/unread.json
+++ b/public/language/cs/unread.json
@@ -10,6 +10,6 @@
"all-topics": "Všechna témata",
"new-topics": "Nová témata",
"watched-topics": "Sledovaná témata",
- "unreplied-topics": "Unreplied Topics",
- "multiple-categories-selected": "Multiple Selected"
+ "unreplied-topics": "Neodpovězené témata",
+ "multiple-categories-selected": "Vícenásobný výběr"
}
\ No newline at end of file
diff --git a/public/language/cs/user.json b/public/language/cs/user.json
index 0042eb8ec6..8fce80c61c 100644
--- a/public/language/cs/user.json
+++ b/public/language/cs/user.json
@@ -25,7 +25,7 @@
"reputation": "Reputace",
"bookmarks": "Záložky",
"watched": "Sledován",
- "ignored": "Ignored",
+ "ignored": "Ignorován",
"followers": "Sledují ho",
"following": "Sleduje",
"aboutme": "O mně",
@@ -85,7 +85,7 @@
"has_no_posts": "Tento uživatel ještě nic nenapsal.",
"has_no_topics": "Tento uživatel ještě nezaložil žádné téma.",
"has_no_watched_topics": "Tento uživatel zatím nesleduje žádná témata.",
- "has_no_ignored_topics": "This user hasn't ignored any topics yet.",
+ "has_no_ignored_topics": "Tento uživatel ještě neignoruje žádné témata.",
"has_no_upvoted_posts": "Tento uživatel zatím nevyjádřil souhlas u žádného příspěvku.",
"has_no_downvoted_posts": "Tento uživatel zatím nevyjádřil nesouhlas u žádného příspěvku.",
"has_no_voted_posts": "Tento uživatel nemá žádné hlasovací příspěvky",
@@ -101,11 +101,11 @@
"outgoing-message-sound": "Zvuk odchozí zprávy",
"notification-sound": "Zvuk oznámení",
"no-sound": "Bez zvuku",
- "upvote-notif-freq": "Upvote Notification Frequency",
- "upvote-notif-freq.all": "All Upvotes",
- "upvote-notif-freq.everyTen": "Every Ten Upvotes",
- "upvote-notif-freq.logarithmic": "On 10, 100, 1000...",
- "upvote-notif-freq.disabled": "Disabled",
+ "upvote-notif-freq": "Frekvence upozornění na souhlasy",
+ "upvote-notif-freq.all": "Všechny souhlasy",
+ "upvote-notif-freq.everyTen": "Každý desátý souhlas",
+ "upvote-notif-freq.logarithmic": "Dle 10, 100, 1000...",
+ "upvote-notif-freq.disabled": "Zakázáno",
"browsing": "Nastavení prohlížení",
"open_links_in_new_tab": "Otevřít odchozí odkaz v nové záložce",
"enable_topic_searching": "Povolit vyhledávání v tématu",
@@ -126,9 +126,9 @@
"sso.title": "Služby jednotného přihlášení",
"sso.associated": "Přiřazeno k",
"sso.not-associated": "Zde klikněte pro přiřazení k",
- "sso.dissociate": "Dissociate",
- "sso.dissociate-confirm-title": "Confirm Dissociation",
- "sso.dissociate-confirm": "Are you sure you wish to dissociate your account from %1?",
+ "sso.dissociate": "Odloučit",
+ "sso.dissociate-confirm-title": "Potvrdit odloučení",
+ "sso.dissociate-confirm": "Jste si jist/a, že chcete odloučit váš účet z %1?",
"info.latest-flags": "Poslední označené",
"info.no-flags": "Nebyly nalezeny žádné označené příspěvky",
"info.ban-history": "Poslední historie blokovaných",
diff --git a/public/language/nl/email.json b/public/language/nl/email.json
index 48f35a2c6f..bd474f945e 100644
--- a/public/language/nl/email.json
+++ b/public/language/nl/email.json
@@ -18,7 +18,7 @@
"reset.notify.text2": "Neem onmiddellijk contact met een beheerder op wanneer je hiervoor geen toestemming hebt gegeven.",
"digest.notifications": "Er zijn ongelezen notificaties van %1:",
"digest.latest_topics": "De meest recente onderwerpen van %1",
- "digest.cta": "Klik hier om deze website te bezoeken %1 ",
+ "digest.cta": "Klik hier om %1 te bezoeken ",
"digest.unsub.info": "Deze samenvatting hebben we naar je verzonden omdat je dat hebt ingesteld.",
"digest.no_topics": "In de afgelopen %1 zijn er geen actieve onderwerpen geweest.",
"digest.day": "dag",
@@ -30,7 +30,7 @@
"notif.chat.unsub.info": "Deze notificatie is verzonden vanwege de gebruikersinstellingen voor abonnementen.",
"notif.post.cta": "Klik hier om het volledige bericht te lezen",
"notif.post.unsub.info": "Deze notificatie is door ons verzonden vanwege gebruikersinstellingen voor abonnementen en berichten.",
- "notif.cta": "Click here to go to forum",
+ "notif.cta": "Klik hier om naar het forum te gaan",
"test.text1": "Dit is een testbericht om te verifiëren dat NodeBB de e-mailberichtservice correct heeft opgezet.",
"unsub.cta": "Klik hier om deze instellingen te wijzigen",
"banned.subject": "U bent verbannen van %1",
diff --git a/public/language/nl/error.json b/public/language/nl/error.json
index 460254c097..48931aa461 100644
--- a/public/language/nl/error.json
+++ b/public/language/nl/error.json
@@ -119,13 +119,13 @@
"not-enough-reputation-to-downvote": "Je hebt onvoldoende reputatie om een negatieve stem uit te mogen brengen",
"not-enough-reputation-to-flag": "Je hebt onvoldoende reputatie om dit bericht aan de beheerders te mogen melden",
"already-flagged": "Je hebt deze post al gerapporteerd",
- "self-vote": "You cannot vote on your own post",
+ "self-vote": "Het is niet mogelijk om op je eigen bericht te stemmen",
"reload-failed": "Tijdens het herladen van \"%1\" is NodeBB een fout of probleem tegengekomen. NodeBB blijft operationeel. Echter het is verstandig om de oorzaak te onderzoeken en wellicht de vorige actie, voor het herladen, ongedaan te maken.",
"registration-error": "Fout tijdens registratie",
"parse-error": "Tijdens het verwerken van het antwoord van de server is er iets misgegaan.",
"wrong-login-type-email": "Gebruik je e-mailadres om in te loggen",
"wrong-login-type-username": "Gebruik je gebruikersnaam om in te loggen",
- "sso-registration-disabled": "Registration has been disabled for %1 accounts, please register with an email address first",
+ "sso-registration-disabled": "Registratie is uitgeschakeld voor %1 accounts, registreer eerst met een e-mailadres",
"invite-maximum-met": "Je heb het maximum aantal mensen uitgenodigd (%1 van de %2).",
"no-session-found": "Geen login sessie gevonden!",
"not-in-room": "Gebruiker niet in de chat",
@@ -135,5 +135,5 @@
"invalid-home-page-route": "Onbekende homepage route",
"invalid-session": "Verkeerde sessie combinatie",
"invalid-session-text": "Het lijkt erop dat je login sessie niet meer actief is of niet langer synchroon is met de server. Ververs de pagina.",
- "no-topics-selected": "No topics selected!"
+ "no-topics-selected": "Geen onderwerpen geselecteerd!"
}
\ No newline at end of file
diff --git a/public/language/nl/notifications.json b/public/language/nl/notifications.json
index c19dbaef83..78ec3289b5 100644
--- a/public/language/nl/notifications.json
+++ b/public/language/nl/notifications.json
@@ -9,7 +9,7 @@
"continue_to": "Door naar %1",
"return_to": "Terug naar %1",
"new_notification": "Nieuwe notificatie",
- "new_notification_from": "You have a new Notification from %1",
+ "new_notification_from": "Je hebt een nieuwe notificatie van %1",
"you_have_unread_notifications": "Je hebt nieuwe notificaties.",
"all": "Alles",
"topics": "Onderwerpen",
@@ -47,18 +47,18 @@
"email-confirmed-message": "Bedankt voor het bevestigen van je e-mailadres. Je account is nu volledig geactiveerd.",
"email-confirm-error-message": "Er was een probleem met het bevestigen van dit e-mailadres. Misschien is de code niet goed ingevoerd of was de beschikbare tijd inmiddels verstreken.",
"email-confirm-sent": "Bevestigingsmail verstuurd.",
- "none": "None",
- "notification_only": "Notification Only",
- "email_only": "Email Only",
- "notification_and_email": "Notification & Email",
- "notificationType_upvote": "When someone upvotes your post",
- "notificationType_new-topic": "When someone you follow posts a topic",
- "notificationType_new-reply": "When a new reply is posted in a topic you are watching",
- "notificationType_follow": "When someone starts following you",
- "notificationType_new-chat": "When you receive a chat message",
- "notificationType_group-invite": "When you receive a group invite",
- "notificationType_new-register": "When someone gets added to registration queue",
- "notificationType_post-queue": "When a new post is queued",
- "notificationType_new-post-flag": "When a post is flagged",
- "notificationType_new-user-flag": "When a user is flagged"
+ "none": "Geen",
+ "notification_only": "Alleen notificatie",
+ "email_only": "Alleen e-mail",
+ "notification_and_email": "Notificatie & e-mail",
+ "notificationType_upvote": "Als iemand positief stemt voor je bericht",
+ "notificationType_new-topic": "Wanneer iemand die jij volgt een onderwerp post",
+ "notificationType_new-reply": "Als een nieuwe reactie komt op een onderwerp dat je volgt",
+ "notificationType_follow": "Als iemand begint met jou te volgen",
+ "notificationType_new-chat": "Als je een chat-bericht ontvangt",
+ "notificationType_group-invite": "Als je een uitnodiging voor een groep ontvangt",
+ "notificationType_new-register": "Als iemand wordt toegevoegd aan een registratiewachtrij",
+ "notificationType_post-queue": "Als een bericht aan de wachtrij wordt toegevoegd",
+ "notificationType_new-post-flag": "Als een bericht wordt gevlagd",
+ "notificationType_new-user-flag": "Als een gebruiker wordt gevlagd"
}
\ No newline at end of file
diff --git a/public/language/nl/topic.json b/public/language/nl/topic.json
index b1d33fd9da..29b4eb9e75 100644
--- a/public/language/nl/topic.json
+++ b/public/language/nl/topic.json
@@ -68,8 +68,8 @@
"thread_tools.restore_confirm": "Zeker weten dit onderwerp te herstellen?",
"thread_tools.purge": "Wis onderwerp ",
"thread_tools.purge_confirm": "Weet je zeker dat je dit onderwerp wil verwijderen?",
- "thread_tools.merge_topics": "Merge Topics",
- "thread_tools.merge": "Merge",
+ "thread_tools.merge_topics": "Onderwerpen samenvoegen",
+ "thread_tools.merge": "Samenvoegen",
"topic_move_success": "Verplaatsen van onderwerp naar %1 succesvol",
"post_delete_confirm": "Is het absoluut de bedoeling dit bericht te verwijderen?",
"post_restore_confirm": "Is het de bedoeling dit bericht te herstellen?",
@@ -91,7 +91,7 @@
"fork_pid_count": "%1 bericht(en) geselecteerd",
"fork_success": "Onderwerp is succesvol afgesplitst. Klik hier om het nieuwe onderwerp te zien.",
"delete_posts_instruction": "Klik op de berichten die verwijderd moeten worden",
- "merge_topics_instruction": "Click the topics you want to merge",
+ "merge_topics_instruction": "Klik op de onderwerpen die samengevoegd moeten worden",
"composer.title_placeholder": "Voer hier de titel van het onderwerp in...",
"composer.handle_placeholder": "Naam",
"composer.discard": "Annuleren",
diff --git a/public/language/nl/user.json b/public/language/nl/user.json
index 6351ae8827..9c2af5d6f5 100644
--- a/public/language/nl/user.json
+++ b/public/language/nl/user.json
@@ -101,11 +101,11 @@
"outgoing-message-sound": "Uitgaand bericht geluid",
"notification-sound": "Notificatie geluid",
"no-sound": "Geen geluid",
- "upvote-notif-freq": "Upvote Notification Frequency",
- "upvote-notif-freq.all": "All Upvotes",
- "upvote-notif-freq.everyTen": "Every Ten Upvotes",
- "upvote-notif-freq.logarithmic": "On 10, 100, 1000...",
- "upvote-notif-freq.disabled": "Disabled",
+ "upvote-notif-freq": "Notificatie frequentie voor Upvotes",
+ "upvote-notif-freq.all": "Alle Upvotes",
+ "upvote-notif-freq.everyTen": "Elke tien Upvotes",
+ "upvote-notif-freq.logarithmic": "Bij 10, 100, 1000...",
+ "upvote-notif-freq.disabled": "Uitgeschakeld",
"browsing": "Instellingen voor bladeren",
"open_links_in_new_tab": "Open uitgaande links naar een externe site in een nieuw tabblad",
"enable_topic_searching": "Inschakelen mogelijkheid op onderwerp te kunnen zoeken",
From 2661a31227c54c6a2716f2d41d4ff644a3652a29 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?=
Date: Fri, 29 Dec 2017 13:27:07 -0500
Subject: [PATCH 13/18] closes #6202
---
src/notifications.js | 2 +-
src/topics/follow.js | 2 ++
2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/notifications.js b/src/notifications.js
index 6a7940d50d..4bf9782e61 100644
--- a/src/notifications.js
+++ b/src/notifications.js
@@ -220,7 +220,7 @@ function pushToUids(uids, notification, callback) {
async.eachLimit(uids, 3, function (uid, next) {
emailer.send('notification', uid, {
path: notification.path,
- subject: '[[notifications:new_notification_from, ' + meta.config.title + ']]',
+ subject: notification.subject || '[[notifications:new_notification_from, ' + meta.config.title + ']]',
intro: utils.stripHTMLTags(notification.bodyShort),
body: utils.stripHTMLTags(notification.bodyLong || ''),
showUnsubscribe: true,
diff --git a/src/topics/follow.js b/src/topics/follow.js
index cf8754bcc5..aad9c0f079 100644
--- a/src/topics/follow.js
+++ b/src/topics/follow.js
@@ -9,6 +9,7 @@ var notifications = require('../notifications');
var privileges = require('../privileges');
var plugins = require('../plugins');
var utils = require('../utils');
+var meta = require('../meta');
module.exports = function (Topics) {
Topics.toggleFollow = function (tid, uid, callback) {
@@ -219,6 +220,7 @@ module.exports = function (Topics) {
notifications.create({
type: 'new-reply',
+ subject: '[' + (meta.config.title || 'NodeBB') + '] ' + title,
bodyShort: '[[notifications:user_posted_to, ' + postData.user.username + ', ' + titleEscaped + ']]',
bodyLong: postData.content,
pid: postData.pid,
From 1fd0b760b15945a418c338e3a0d2a36f5b02bedb Mon Sep 17 00:00:00 2001
From: "Misty (Bot)"
Date: Sat, 30 Dec 2017 09:25:45 +0000
Subject: [PATCH 14/18] Latest translations and fallbacks
---
public/language/fr/admin/appearance/customise.json | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/public/language/fr/admin/appearance/customise.json b/public/language/fr/admin/appearance/customise.json
index ada04f6546..187f799efb 100644
--- a/public/language/fr/admin/appearance/customise.json
+++ b/public/language/fr/admin/appearance/customise.json
@@ -3,9 +3,9 @@
"custom-css.description": "Entrez vos propres déclarations de CSS ici, elles seront appliquées après tous les autres styles.",
"custom-css.enable": "Activer les CSS personnalisés",
- "custom-js": "Custom Javascript",
- "custom-js.description": "Enter your own javascript here. It will be executed after the page is loaded completely.",
- "custom-js.enable": "Enable Custom Javascript",
+ "custom-js": "Javascript personnalisé",
+ "custom-js.description": "Entrez votre Javascript ici. Celui-ci sera exécute après le chargement complet de la page.",
+ "custom-js.enable": "Activer le Javascript personnalisé",
"custom-header": "En-tête personnalisé",
"custom-header.description": "Enter custom HTML here (ex. Meta Tags, etc.), which will be appended to the <head>
section of your forum's markup. Script tags are allowed, but are discouraged, as the Custom Javascript tab is available.",
From cbaa9772336fc2355d2767727949fff1104edfb3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?=
Date: Sat, 30 Dec 2017 11:41:31 -0500
Subject: [PATCH 15/18] fix type on mongodb if key has expireAt
---
src/database/mongo/main.js | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/database/mongo/main.js b/src/database/mongo/main.js
index 278ae6c413..509f19006b 100644
--- a/src/database/mongo/main.js
+++ b/src/database/mongo/main.js
@@ -108,6 +108,7 @@ module.exports = function (db, module) {
if (!data) {
return callback(null, null);
}
+ delete data.expireAt;
var keys = Object.keys(data);
if (keys.length === 4 && data.hasOwnProperty('_key') && data.hasOwnProperty('score') && data.hasOwnProperty('value')) {
return callback(null, 'zset');
From 64cbb331b7a093f1423a995692b211d42a1c5ea1 Mon Sep 17 00:00:00 2001
From: "Misty (Bot)"
Date: Sun, 31 Dec 2017 09:24:49 +0000
Subject: [PATCH 16/18] Latest translations and fallbacks
---
public/language/it/email.json | 10 +++++-----
public/language/it/error.json | 18 +++++++++---------
public/language/it/flags.json | 26 +++++++++++++-------------
public/language/it/global.json | 4 ++--
public/language/it/groups.json | 4 ++--
public/language/it/notifications.json | 8 ++++----
public/language/it/pages.json | 4 ++--
public/language/it/register.json | 2 +-
public/language/it/search.json | 2 +-
public/language/it/success.json | 2 +-
public/language/it/topic.json | 14 +++++++-------
public/language/it/unread.json | 4 ++--
public/language/it/user.json | 22 +++++++++++-----------
13 files changed, 60 insertions(+), 60 deletions(-)
diff --git a/public/language/it/email.json b/public/language/it/email.json
index bcada51df4..f6fdaef532 100644
--- a/public/language/it/email.json
+++ b/public/language/it/email.json
@@ -13,7 +13,7 @@
"reset.text1": "Abbiamo ricevuto una richiesta di reset della tua password, probabilmente perché l'hai dimenticata. Se non è così si prega di ignorare questa email.",
"reset.text2": "Per confermare il reset della password per favore clicca il seguente link:",
"reset.cta": "Clicca qui per resettare la tua password",
- "reset.notify.subject": "Possword modificata con successo.",
+ "reset.notify.subject": "Password modificata con successo.",
"reset.notify.text1": "Ti informiamo che in data %1, la password è stata cambiata con successo.",
"reset.notify.text2": "Se non hai autorizzato questo, per favore notifica immediatamente un amministratore.",
"digest.notifications": "Hai una notifica non letta da %1:",
@@ -33,9 +33,9 @@
"notif.cta": "Vai alla discussione",
"test.text1": "Questa è una email di test per verificare che il servizio di invio email è configurato correttamente sul tuo NodeBB.",
"unsub.cta": "Clicca qui per modificare queste impostazioni",
- "banned.subject": "You have been banned from %1",
- "banned.text1": "The user %1 has been banned from %2.",
- "banned.text2": "This ban will last until %1.",
- "banned.text3": "This is the reason why you have been banned:",
+ "banned.subject": "Sei stato bannato da %1",
+ "banned.text1": "%1 è stato bannato da %2",
+ "banned.text2": "Questo ban durerà fino a %1.",
+ "banned.text3": "Il motivo del ban è:",
"closing": "Grazie!"
}
\ No newline at end of file
diff --git a/public/language/it/error.json b/public/language/it/error.json
index 9fa55ff42e..0ad1f963ca 100644
--- a/public/language/it/error.json
+++ b/public/language/it/error.json
@@ -11,10 +11,10 @@
"invalid-uid": "ID Utente non valido",
"invalid-username": "Nome utente non valido",
"invalid-email": "Email non valida",
- "invalid-title": "Invalid title",
+ "invalid-title": "Titolo non Valido",
"invalid-user-data": "Dati Utente non validi",
"invalid-password": "Password non valida",
- "invalid-login-credentials": "Invalid login credentials",
+ "invalid-login-credentials": "Credenziali non Valide",
"invalid-username-or-password": "Si prega di specificare sia un nome utente che una password",
"invalid-search-term": "Termine di ricerca non valido",
"csrf-invalid": "Non siamo riusciti a farti connettere, probabilmente perché la sessione è scaduta. Per favore riprova.",
@@ -66,7 +66,7 @@
"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.",
"title-too-long": "Inserisci un titolo più corto. I titoli non possono essere più lunghi di %1 caratteri.",
- "category-not-selected": "Category not selected.",
+ "category-not-selected": "Categoria non selezionata.",
"too-many-posts": "È possibile inserire un Post ogni %1 secondi - si prega di attendere prima di postare di nuovo",
"too-many-posts-newbie": "Come nuovo utente puoi postare solamente una volta ogni %1 secondi finché non hai raggiunto un livello di reputazione %2 - per favore attendi prima di scrivere ancora",
"tag-too-short": "Inserisci un tag più lungo. I tag devono contenere almeno %1 caratteri.",
@@ -76,12 +76,12 @@
"still-uploading": "Per favore attendere il completamento degli uploads.",
"file-too-big": "La dimensione massima consentita è di %1 kB - si prega di caricare un file più piccolo",
"guest-upload-disabled": "Il caricamento da ospite è stato disattivato",
- "already-bookmarked": "You have already bookmarked this post",
- "already-unbookmarked": "You have already unbookmarked this post",
+ "already-bookmarked": "Hai già aggiunto questa discussione ai preferiti.",
+ "already-unbookmarked": "Hai già rimosso questa discussione dai preferiti",
"cant-ban-other-admins": "Non puoi bannare altri amministratori!",
"cant-remove-last-admin": "Sei l'unico Amministratore. Aggiungi un altro amministratore prima di rimuovere il tuo ruolo",
"cant-delete-admin": "Togli i privilegi amministrativi da questo account prima di provare ad eliminarlo.",
- "invalid-image": "Invalid image",
+ "invalid-image": "Immagine non Valida",
"invalid-image-type": "Tipo dell'immagine non valido. I tipi permessi sono: %1",
"invalid-image-extension": "Estensione immagine non valida",
"invalid-file-type": "Tipo di file non valido. I formati consentiti sono: %1",
@@ -109,7 +109,7 @@
"chat-disabled": "Il sistema di chat è stato disabilitato",
"too-many-messages": "Hai inviato troppi messaggi, aspetta un attimo.",
"invalid-chat-message": "Messaggio chat non valido",
- "chat-message-too-long": "Chat messages can not be longer than %1 characters.",
+ "chat-message-too-long": "I messaggi in chat non possono superare i %1 caratteri.",
"cant-edit-chat-message": "Non ti è permesso di modificare questo messaggio",
"cant-remove-last-user": "Non puoi rimuovere l'ultimo utente",
"cant-delete-chat-message": "Non ti è permesso di eliminare questo messaggio",
@@ -119,7 +119,7 @@
"not-enough-reputation-to-downvote": "Non hai i privilegi per votare negativamente questo post",
"not-enough-reputation-to-flag": "Tu non hai abbastanza reputazione per segnalare questo Post",
"already-flagged": "Hai già messo marcato questo post",
- "self-vote": "You cannot vote on your own post",
+ "self-vote": "Non puoi votare la tua stessa discussione",
"reload-failed": "NodeBB ha incontrato un problema durante il ricaricamento: \"%1\". NodeBB continuerà a servire gli assets esistenti lato client, così puoi annullare quello che hai fatto prima di ricaricare.",
"registration-error": "Errore nella registrazione",
"parse-error": "Qualcosa è andato storto durante l'analisi della risposta proveniente dal server",
@@ -135,5 +135,5 @@
"invalid-home-page-route": "Percorso della pagina iniziale non valido",
"invalid-session": "Discrepanza della sessione",
"invalid-session-text": "Sembra che la tua sessione non sia più attiva, oppure non corrisponde con il server. Per favore ricarica la pagina.",
- "no-topics-selected": "No topics selected!"
+ "no-topics-selected": "Nessuna discussione selezionata!"
}
\ No newline at end of file
diff --git a/public/language/it/flags.json b/public/language/it/flags.json
index d05a5b25a8..14aaf7af02 100644
--- a/public/language/it/flags.json
+++ b/public/language/it/flags.json
@@ -27,12 +27,12 @@
"quick-links": "Quick Links",
"flagged-user": "Flagged User",
- "view-profile": "View Profile",
+ "view-profile": "Vedi Profilo",
"start-new-chat": "Start New Chat",
"go-to-target": "View Flag Target",
- "user-view": "View Profile",
- "user-edit": "Edit Profile",
+ "user-view": "Vedi Profilo",
+ "user-edit": "Modifica Profilo",
"notes": "Flag Notes",
"add-note": "Add Note",
@@ -44,21 +44,21 @@
"state-all": "All states",
"state-open": "New/Open",
- "state-wip": "Work in Progress",
- "state-resolved": "Resolved",
+ "state-wip": "Lavori in Corso",
+ "state-resolved": "Risolto",
"state-rejected": "Rejected",
- "no-assignee": "Not Assigned",
+ "no-assignee": "Non Assegnato",
"note-added": "Note Added",
- "modal-title": "Report Inappropriate Content",
+ "modal-title": "Segnala Contenuto Inappropriato",
"modal-body": "Please specify your reason for flagging %1 %2 for review. Alternatively, use one of the quick report buttons if applicable.",
"modal-reason-spam": "Spam",
- "modal-reason-offensive": "Offensive",
- "modal-reason-other": "Other (specify below)",
- "modal-reason-custom": "Reason for reporting this content...",
- "modal-submit": "Submit Report",
- "modal-submit-success": "Content has been flagged for moderation.",
- "modal-submit-confirm": "Confirm Submission",
+ "modal-reason-offensive": "Offensivo",
+ "modal-reason-other": "Altro (Specificare di seguito)",
+ "modal-reason-custom": "Motivazione della segnalazione...",
+ "modal-submit": "Invia la Segnalazione",
+ "modal-submit-success": "Il contenuto è stato segnalato.",
+ "modal-submit-confirm": "Conferma la Segnalazione",
"modal-submit-confirm-text": "You have a custom reason specified already. Are you sure you wish to submit via quick-report?",
"modal-submit-confirm-text-help": "Submitting a quick report will overwrite any custom reasons defined."
}
\ No newline at end of file
diff --git a/public/language/it/global.json b/public/language/it/global.json
index 7325219082..4279338d8d 100644
--- a/public/language/it/global.json
+++ b/public/language/it/global.json
@@ -104,6 +104,6 @@
"cookies.accept": "Ho capito!",
"cookies.learn_more": "Scopri di più",
"edited": "Modificato",
- "disabled": "Disabled",
- "select": "Select"
+ "disabled": "Disabilitato",
+ "select": "Seleziona"
}
\ No newline at end of file
diff --git a/public/language/it/groups.json b/public/language/it/groups.json
index 835ada672f..53f27c12c4 100644
--- a/public/language/it/groups.json
+++ b/public/language/it/groups.json
@@ -27,7 +27,7 @@
"details.disableJoinRequests": "Disabilita le richieste d'adesione",
"details.grant": "Concedi / Rimuovi la Proprietà",
"details.kick": "Espelli",
- "details.kick_confirm": "Are you sure you want to remove this member from the group?",
+ "details.kick_confirm": "Sei sicuro di voler rimuovere questo membro dal gruppo?",
"details.owner_options": "Amministratore del Grupo",
"details.group_name": "Nome Gruppo",
"details.member_count": "Totale Membri",
@@ -53,6 +53,6 @@
"new-group.group_name": "Nome Gruppo:",
"upload-group-cover": "Carica copertina del gruppo",
"bulk-invite-instructions": "Inserisci una lista di nomi utente da invitare in questo gruppo separati da virgole",
- "bulk-invite": "Bulk Invite",
+ "bulk-invite": "Invita in Massa",
"remove_group_cover_confirm": "Sei sicuro di voler rimuovere l'immagine copertina?"
}
\ No newline at end of file
diff --git a/public/language/it/notifications.json b/public/language/it/notifications.json
index 5aa5225d1b..338a970c00 100644
--- a/public/language/it/notifications.json
+++ b/public/language/it/notifications.json
@@ -47,10 +47,10 @@
"email-confirmed-message": "Grazie per aver validato la tua email. Il tuo account è ora completamente attivato.",
"email-confirm-error-message": "C'è stato un problema nella validazione del tuo indirizzo email. Potrebbe essere il codice non valido o scaduto.",
"email-confirm-sent": "Email di conferma inviata.",
- "none": "None",
- "notification_only": "Notification Only",
- "email_only": "Email Only",
- "notification_and_email": "Notification & Email",
+ "none": "Nessuna Notifica",
+ "notification_only": "Solo Notifiche",
+ "email_only": "Solo Email",
+ "notification_and_email": "Email e Notifica",
"notificationType_upvote": "When someone upvotes your post",
"notificationType_new-topic": "When someone you follow posts a topic",
"notificationType_new-reply": "When a new reply is posted in a topic you are watching",
diff --git a/public/language/it/pages.json b/public/language/it/pages.json
index 0b1be5dc1e..0be5a17a98 100644
--- a/public/language/it/pages.json
+++ b/public/language/it/pages.json
@@ -7,7 +7,7 @@
"popular-alltime": "Discussioni più popolari di sempre",
"recent": "Discussioni Recenti",
"moderator-tools": "Moderator Tools",
- "flagged-content": "Flagged Content",
+ "flagged-content": "Contenuti Segnalati",
"ip-blacklist": "Lista nera degli IP",
"post-queue": "Post Queue",
"users/online": "Utenti Online",
@@ -44,7 +44,7 @@
"account/bookmarks": "%1 Post tra i favoriti",
"account/settings": "Impostazioni Utente",
"account/watched": "Discussioni osservate da %1",
- "account/ignored": "Topics ignored by %1",
+ "account/ignored": "Discussioni ignorate da %1",
"account/upvoted": "Post apprezzati da %1",
"account/downvoted": "Post votati negativamente da %1",
"account/best": "I migliori post di %1",
diff --git a/public/language/it/register.json b/public/language/it/register.json
index e3afd5aed2..49de769d43 100644
--- a/public/language/it/register.json
+++ b/public/language/it/register.json
@@ -1,5 +1,5 @@
{
- "register": "Registrazione",
+ "register": "Registrati",
"cancel_registration": "Cancella Registrazione",
"help.email": "Come opzione predefinita, il tuo indirizzo email non verrà reso pubblico.",
"help.username_restrictions": "Un nome utente unico, di almeno %1 caratteri e al massimo di %2. Gli altri utenti ti possono menzionare usando @username.",
diff --git a/public/language/it/search.json b/public/language/it/search.json
index 980e2c28ba..dc33a58737 100644
--- a/public/language/it/search.json
+++ b/public/language/it/search.json
@@ -12,7 +12,7 @@
"reply-count": "Numero Risposte",
"at-least": "Almeno",
"at-most": "Al massimo",
- "relevance": "Relevance",
+ "relevance": "Rilevanza",
"post-time": "Ora invio",
"newer-than": "Più nuovi di",
"older-than": "Più vecchi di",
diff --git a/public/language/it/success.json b/public/language/it/success.json
index cf8dd4cad5..35f6d5b2a9 100644
--- a/public/language/it/success.json
+++ b/public/language/it/success.json
@@ -1,7 +1,7 @@
{
"success": "Riuscito",
"topic-post": "Hai postato correttamente.",
- "post-queued": "Your post is queued for approval.",
+ "post-queued": "La tua discussione è in attesa di approvazione.",
"authentication-successful": "Autenticazione Riuscita",
"settings-saved": "Impostazioni salvate!"
}
\ No newline at end of file
diff --git a/public/language/it/topic.json b/public/language/it/topic.json
index 747ba4876b..5b15970770 100644
--- a/public/language/it/topic.json
+++ b/public/language/it/topic.json
@@ -13,9 +13,9 @@
"notify_me": "Ricevi notifiche di nuove risposte in questa discussione",
"quote": "Cita",
"reply": "Rispondi",
- "replies_to_this_post": "%1 Replies",
- "one_reply_to_this_post": "1 Reply",
- "last_reply_time": "Last reply",
+ "replies_to_this_post": "%1 Risposte",
+ "one_reply_to_this_post": "1 Risposta",
+ "last_reply_time": "Ultima Risposta",
"reply-as-topic": "Topic risposta",
"guest-login-reply": "Effettua il Log in per rispondere",
"edit": "Modifica",
@@ -59,7 +59,7 @@
"thread_tools.unlock": "Sblocca Discussione",
"thread_tools.move": "Sposta Discussione",
"thread_tools.move_all": "Sposta Tutto",
- "thread_tools.select_category": "Select Category",
+ "thread_tools.select_category": "Seleziona Categoria",
"thread_tools.fork": "Dividi Discussione",
"thread_tools.delete": "Elimina Discussione",
"thread_tools.delete-posts": "Cancella post",
@@ -68,8 +68,8 @@
"thread_tools.restore_confirm": "Sei sicuro di voler ripristinare questa discussione?",
"thread_tools.purge": "Svuota Discussione",
"thread_tools.purge_confirm": "Sei sicuro di voler svuotare questa discussione?",
- "thread_tools.merge_topics": "Merge Topics",
- "thread_tools.merge": "Merge",
+ "thread_tools.merge_topics": "Unisci le Discussioni",
+ "thread_tools.merge": "Unisci",
"topic_move_success": "Questa discussione è stata correttamente spostata in %1",
"post_delete_confirm": "Sei sicuro di voler cancellare questo post?",
"post_restore_confirm": "Sei sicuro di voler ripristinare questo post?",
@@ -91,7 +91,7 @@
"fork_pid_count": "%1 post selezionati",
"fork_success": "Topic Diviso con successo ! Clicca qui per andare al Topic Diviso.",
"delete_posts_instruction": "Clicca sui post che vuoi cancellare/eliminare",
- "merge_topics_instruction": "Click the topics you want to merge",
+ "merge_topics_instruction": "Clicca sulle discussioni che vuoi unire",
"composer.title_placeholder": "Inserisci qui il titolo della discussione...",
"composer.handle_placeholder": "Nome",
"composer.discard": "Annulla",
diff --git a/public/language/it/unread.json b/public/language/it/unread.json
index c1244d0fe3..2f2afebd23 100644
--- a/public/language/it/unread.json
+++ b/public/language/it/unread.json
@@ -10,6 +10,6 @@
"all-topics": "Tutte le Discussioni",
"new-topics": "Nuova Discussione",
"watched-topics": "Discussioni seguite",
- "unreplied-topics": "Nessuna Risposta",
- "multiple-categories-selected": "Multiple Selected"
+ "unreplied-topics": "Discussioni Senza Risposta",
+ "multiple-categories-selected": "Più Categorie"
}
\ No newline at end of file
diff --git a/public/language/it/user.json b/public/language/it/user.json
index a24f325d24..d3b66bfa4a 100644
--- a/public/language/it/user.json
+++ b/public/language/it/user.json
@@ -19,13 +19,13 @@
"location": "Località",
"age": "Età",
"joined": "Iscrizione",
- "lastonline": "Ultima volta in linea",
+ "lastonline": "Ultimo Accesso",
"profile": "Profilo",
"profile_views": "Visite al profilo",
"reputation": "Reputazione",
- "bookmarks": "Favoriti",
+ "bookmarks": "Preferiti",
"watched": "Osservati",
- "ignored": "Ignored",
+ "ignored": "Ignorati",
"followers": "Da chi è seguito",
"following": "Chi segue",
"aboutme": "Su di me",
@@ -61,7 +61,7 @@
"username_taken_workaround": "Il nome utente che hai richiesto era già stato utilizzato, quindi lo abbiamo modificato leggermente. Ora il tuo è %1",
"password_same_as_username": "La tua password è uguale al tuo username, per piacere scegli un'altra password",
"password_same_as_email": "La tua password sembra coincidere con la tua email, per favore fornisci un'altra password.",
- "weak_password": "Weak password.",
+ "weak_password": "Password debole.",
"upload_picture": "Carica foto",
"upload_a_picture": "Carica una foto",
"remove_uploaded_picture": "Elimina foto caricata",
@@ -85,7 +85,7 @@
"has_no_posts": "Questo utente non ha ancora scritto niente.",
"has_no_topics": "Questo utente non ha ancora avviato discussioni.",
"has_no_watched_topics": "Questo utente non sta osservando discussioni.",
- "has_no_ignored_topics": "This user hasn't ignored any topics yet.",
+ "has_no_ignored_topics": "Questo utente non sta ignorando discussioni.",
"has_no_upvoted_posts": "Questo utente non ha ancora apprezzato nessun post.",
"has_no_downvoted_posts": "Questo utente non ha ancora votato negativamente alcun post",
"has_no_voted_posts": "Questo utente non ha post votati",
@@ -94,18 +94,18 @@
"paginate_description": "Non utilizzare lo scroll infinito per discussioni e messaggi",
"topics_per_page": "Discussioni per Pagina",
"posts_per_page": "Post per Pagina",
- "max_items_per_page": "Maximum %1",
+ "max_items_per_page": "Massimo %1",
"notification_sounds": "Riproduci un suono quando si riceve una notifica",
"notifications_and_sounds": "Notifiche e Suoni",
"incoming-message-sound": "Suono messaggio in entrata",
"outgoing-message-sound": "Suono messaggio in uscita",
"notification-sound": "Suono di notifica",
"no-sound": "Nessun suono",
- "upvote-notif-freq": "Upvote Notification Frequency",
- "upvote-notif-freq.all": "All Upvotes",
- "upvote-notif-freq.everyTen": "Every Ten Upvotes",
- "upvote-notif-freq.logarithmic": "On 10, 100, 1000...",
- "upvote-notif-freq.disabled": "Disabled",
+ "upvote-notif-freq": "Frequenza Notifiche dei Mi Piace ",
+ "upvote-notif-freq.all": "Tutti i Mi Piace",
+ "upvote-notif-freq.everyTen": "Ogni Dieci Mi Piace",
+ "upvote-notif-freq.logarithmic": "Ogni 10, 100, 1000...",
+ "upvote-notif-freq.disabled": "Disabilitate",
"browsing": "Impostazioni di Navigazione",
"open_links_in_new_tab": "Apri i link web in una nuova pagina",
"enable_topic_searching": "Abilita la ricerca negli argomenti",
From a524f9b55ffe6efe027a4c3a610f4053b0d3654e Mon Sep 17 00:00:00 2001
From: "Misty (Bot)"
Date: Mon, 1 Jan 2018 09:25:13 +0000
Subject: [PATCH 17/18] Latest translations and fallbacks
---
public/language/it/modules.json | 2 +-
public/language/it/notifications.json | 16 ++++++++--------
2 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/public/language/it/modules.json b/public/language/it/modules.json
index 5fcef5d582..d379688576 100644
--- a/public/language/it/modules.json
+++ b/public/language/it/modules.json
@@ -20,7 +20,7 @@
"chat.three_months": "3 Mesi",
"chat.delete_message_confirm": "Sei sicuro di voler eliminare questo messaggio?",
"chat.add-users-to-room": "Aggiungi utenti alla stanza",
- "chat.confirm-chat-with-dnd-user": "This user has set their status to DnD(Do not disturb). Do you still want to chat with them?",
+ "chat.confirm-chat-with-dnd-user": "Questo utente ha impostato il suo stato su Non Disturbare. Sei sicuro di voler iniziare una conversazione?",
"composer.compose": "Componi",
"composer.show_preview": "Visualizza Anteprima",
"composer.hide_preview": "Nascondi Anteprima",
diff --git a/public/language/it/notifications.json b/public/language/it/notifications.json
index 338a970c00..7a1b0c4b36 100644
--- a/public/language/it/notifications.json
+++ b/public/language/it/notifications.json
@@ -29,9 +29,9 @@
"user_flagged_post_in": "%1 ha segnalato un post in %2",
"user_flagged_post_in_dual": "%1 e %2 hanno segnalato un post in %3",
"user_flagged_post_in_multiple": "%1 ed altri %2 hanno segnalato un post in %3",
- "user_flagged_user": "%1 flagged a user profile (%2)",
- "user_flagged_user_dual": "%1 and %2 flagged a user profile (%3)",
- "user_flagged_user_multiple": "%1 and %2 others flagged a user profile (%3)",
+ "user_flagged_user": "%1 ha segnalato un utente (%2)",
+ "user_flagged_user_dual": "%1 e %2 hanno segnalato un utente (%3)",
+ "user_flagged_user_multiple": "%1 e altri %2 hanno segnalato un utente (%3)",
"user_posted_to": "%1 ha postato una risposta a: %2",
"user_posted_to_dual": "%1 e %2 hanno postato una risposta su: %3",
"user_posted_to_multiple": "%1 ed altri %2 hanno postato una risposta su: %3",
@@ -42,7 +42,7 @@
"new_register": "%1 ha inviato una richiesta di registrazione.",
"new_register_multiple": "Ci sono %1 richieste di registrazione che attendono di essere esaminate.",
"flag_assigned_to_you": "Flag %1 has been assigned to you",
- "post_awaiting_review": "Post awaiting review",
+ "post_awaiting_review": "Post in attesa di revisione",
"email-confirmed": "Email Confermata",
"email-confirmed-message": "Grazie per aver validato la tua email. Il tuo account è ora completamente attivato.",
"email-confirm-error-message": "C'è stato un problema nella validazione del tuo indirizzo email. Potrebbe essere il codice non valido o scaduto.",
@@ -51,14 +51,14 @@
"notification_only": "Solo Notifiche",
"email_only": "Solo Email",
"notification_and_email": "Email e Notifica",
- "notificationType_upvote": "When someone upvotes your post",
+ "notificationType_upvote": "Quando il tuo post riceve un Mi Piace",
"notificationType_new-topic": "When someone you follow posts a topic",
"notificationType_new-reply": "When a new reply is posted in a topic you are watching",
"notificationType_follow": "When someone starts following you",
"notificationType_new-chat": "When you receive a chat message",
"notificationType_group-invite": "When you receive a group invite",
"notificationType_new-register": "When someone gets added to registration queue",
- "notificationType_post-queue": "When a new post is queued",
- "notificationType_new-post-flag": "When a post is flagged",
- "notificationType_new-user-flag": "When a user is flagged"
+ "notificationType_post-queue": "Quando un nuovo post è in attesa di revisione",
+ "notificationType_new-post-flag": "Quando un post viene segnalato",
+ "notificationType_new-user-flag": "Quando un utente viene segnalato"
}
\ No newline at end of file
From 9b5e0f9e95ca4d44c15ea388bea4abc715bac446 Mon Sep 17 00:00:00 2001
From: Julian Lam
Date: Tue, 2 Jan 2018 14:45:21 -0500
Subject: [PATCH 18/18] updated upgrade logic to not break ACP restart flow
---
src/cli/package-install.js | 2 +-
src/cli/upgrade-plugins.js | 2 +-
src/cli/upgrade.js | 6 ++----
src/meta/build.js | 2 +-
4 files changed, 5 insertions(+), 7 deletions(-)
diff --git a/src/cli/package-install.js b/src/cli/package-install.js
index 5f6f9917a5..e923094b05 100644
--- a/src/cli/package-install.js
+++ b/src/cli/package-install.js
@@ -30,7 +30,7 @@ function updatePackageFile() {
exports.updatePackageFile = updatePackageFile;
function installAll() {
- process.stdout.write('\n');
+ process.stdout.write(' started\n'.green);
var prod = global.env !== 'development';
var command = 'npm install';
diff --git a/src/cli/upgrade-plugins.js b/src/cli/upgrade-plugins.js
index 3be00cb5d1..a61a711bf7 100644
--- a/src/cli/upgrade-plugins.js
+++ b/src/cli/upgrade-plugins.js
@@ -212,7 +212,7 @@ function upgradePlugins(callback) {
});
} else {
console.log('Package upgrades skipped'.yellow + '. Check for upgrades at any time by running "'.reset + './nodebb upgrade -p'.green + '".'.reset);
- callback(null, true);
+ callback();
}
});
});
diff --git a/src/cli/upgrade.js b/src/cli/upgrade.js
index e5ab2b6c0c..2462f1f168 100644
--- a/src/cli/upgrade.js
+++ b/src/cli/upgrade.js
@@ -16,6 +16,7 @@ var steps = {
handler: function (next) {
packageInstall.updatePackageFile();
packageInstall.preserveExtraneousPlugins();
+ process.stdout.write(' OK\n'.green);
next();
},
},
@@ -54,11 +55,8 @@ function runSteps(tasks) {
tasks = tasks.map(function (key, i) {
return function (next) {
process.stdout.write('\n' + ((i + 1) + '. ').bold + steps[key].message.yellow);
- return steps[key].handler(function (err, inhibitOk) {
+ return steps[key].handler(function (err) {
if (err) { return next(err); }
- if (!inhibitOk) {
- process.stdout.write(' OK'.green + '\n'.reset);
- }
next();
});
};
diff --git a/src/meta/build.js b/src/meta/build.js
index 2beb5f8af9..552c9aa55c 100644
--- a/src/meta/build.js
+++ b/src/meta/build.js
@@ -212,7 +212,7 @@ function build(targets, callback) {
}
winston.info('[build] Asset compilation successful. Completed in ' + totalTime + 'sec.');
- callback(null, true);
+ callback();
});
}