i18n refactoring, locale loaders, custom strings, fix #231
This commit is contained in:
36
server/api/controller/locale.js
Normal file
36
server/api/controller/locale.js
Normal file
@@ -0,0 +1,36 @@
|
||||
const merge = require('lodash/merge')
|
||||
const config = require('../../config')
|
||||
const path = require('path')
|
||||
const fs = require('fs')
|
||||
const log = require('../../log')
|
||||
|
||||
const localeController = {
|
||||
async get (req, res) {
|
||||
const locale = req.params.locale
|
||||
const locales = require('../../../locales/index')
|
||||
|
||||
// check if this locale exists
|
||||
if (!locales[locale]) {
|
||||
return res.sendStatus(404)
|
||||
}
|
||||
|
||||
const defaultLocaleMessages = require(`../../../locales/${locale}.json`)
|
||||
|
||||
// check if we have a user custom messages
|
||||
let customLocaleMessages = {}
|
||||
const customLocalePath = path.resolve(config.user_locale, `${locale}.json`)
|
||||
if (config.user_locale && fs.existsSync(customLocalePath)) {
|
||||
try {
|
||||
customLocaleMessages = require(customLocalePath)
|
||||
} catch (e) {
|
||||
log.error(`Error reading custom locale messages: ${e}`)
|
||||
}
|
||||
}
|
||||
|
||||
const ret = merge(defaultLocaleMessages, customLocaleMessages)
|
||||
return res.json(ret)
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = localeController
|
||||
Reference in New Issue
Block a user