mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-11-02 20:16:04 +01:00
feat: get rid of disk access
This commit is contained in:
@@ -7,6 +7,14 @@ var async = require('async');
|
|||||||
var Languages = module.exports;
|
var Languages = module.exports;
|
||||||
var languagesPath = path.join(__dirname, '../build/public/language');
|
var languagesPath = path.join(__dirname, '../build/public/language');
|
||||||
|
|
||||||
|
Languages.timeagoCodes = [
|
||||||
|
'af', 'ar', 'az-short', 'az', 'bg', 'bs', 'ca', 'cs', 'cy', 'da', 'de-short', 'de', 'dv',
|
||||||
|
'el', 'en-short', 'en', 'es-short', 'es', 'et', 'eu', 'fa-short', 'fa', 'fi', 'fr-short', 'fr',
|
||||||
|
'gl', 'he', 'hr', 'hu', 'hy', 'id', 'is', 'it-short', 'it', 'ja', 'jv', 'ko', 'ky', 'lt', 'lv',
|
||||||
|
'mk', 'nl', 'no', 'pl', 'pt-br-short', 'pt-br', 'pt-short', 'pt', 'ro', 'rs', 'ru', 'rw', 'si',
|
||||||
|
'sk', 'sl', 'sr', 'sv', 'th', 'tr-short', 'tr', 'uk', 'uz', 'vi', 'zh-CN', 'zh-TW',
|
||||||
|
];
|
||||||
|
|
||||||
Languages.get = function (language, namespace, callback) {
|
Languages.get = function (language, namespace, callback) {
|
||||||
fs.readFile(path.join(languagesPath, language, namespace + '.json'), { encoding: 'utf-8' }, function (err, data) {
|
fs.readFile(path.join(languagesPath, language, namespace + '.json'), { encoding: 'utf-8' }, function (err, data) {
|
||||||
if (err) {
|
if (err) {
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
var path = require('path');
|
|
||||||
var async = require('async');
|
var async = require('async');
|
||||||
var nconf = require('nconf');
|
var nconf = require('nconf');
|
||||||
var jsesc = require('jsesc');
|
var jsesc = require('jsesc');
|
||||||
@@ -17,7 +16,6 @@ var translator = require('../translator');
|
|||||||
var privileges = require('../privileges');
|
var privileges = require('../privileges');
|
||||||
var languages = require('../languages');
|
var languages = require('../languages');
|
||||||
var utils = require('../utils');
|
var utils = require('../utils');
|
||||||
var file = require('../file');
|
|
||||||
|
|
||||||
var controllers = {
|
var controllers = {
|
||||||
api: require('../controllers/api'),
|
api: require('../controllers/api'),
|
||||||
@@ -239,20 +237,18 @@ module.exports = function (middleware) {
|
|||||||
async.parallel({
|
async.parallel({
|
||||||
scripts: async.apply(plugins.fireHook, 'filter:scripts.get', []),
|
scripts: async.apply(plugins.fireHook, 'filter:scripts.get', []),
|
||||||
timeagoLocale: (next) => {
|
timeagoLocale: (next) => {
|
||||||
const userLang = res.locals.config.userLang;
|
|
||||||
const pathToLocaleFile = '/vendor/jquery/timeago/locales/jquery.timeago.' + utils.userLangToTimeagoCode(userLang) + '.js';
|
|
||||||
|
|
||||||
async.waterfall([
|
async.waterfall([
|
||||||
async.apply(languages.list),
|
async.apply(languages.listCodes),
|
||||||
(languages, next) => {
|
(languageCodes, next) => {
|
||||||
if (!languages.some(obj => obj.code === userLang)) {
|
const userLang = res.locals.config.userLang;
|
||||||
return next(null, false);
|
const timeagoCode = utils.userLangToTimeagoCode(userLang);
|
||||||
}
|
|
||||||
|
|
||||||
file.exists(path.join(__dirname, '../../public', pathToLocaleFile), next);
|
if (languageCodes.includes(userLang) && languages.timeagoCodes.includes(timeagoCode)) {
|
||||||
},
|
const pathToLocaleFile = '/vendor/jquery/timeago/locales/jquery.timeago.' + timeagoCode + '.js';
|
||||||
(exists, next) => {
|
next(null, (nconf.get('relative_path') + '/assets' + pathToLocaleFile));
|
||||||
next(null, exists ? (nconf.get('relative_path') + '/assets' + pathToLocaleFile) : null);
|
} else {
|
||||||
|
next(null, false);
|
||||||
|
}
|
||||||
},
|
},
|
||||||
], next);
|
], next);
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user