Skip to content

Commit

Permalink
Can translate all messages dynamically;
Browse files Browse the repository at this point in the history
  • Loading branch information
Maxime Magné committed Jul 24, 2020
1 parent 936aea2 commit d3c93ff
Show file tree
Hide file tree
Showing 5 changed files with 30 additions and 11 deletions.
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
# HearthJS

### v2.6.2
- Can set a lang key for all translations used in schema

### v2.6.1
- Can update listening port for HTTPS

Expand Down
21 changes: 14 additions & 7 deletions lib/api.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ const validation = require('./validation')
const addon = require('./addon')
const logger = require('./logger')
const cluster = require('cluster')
const translate = require('./translate')

const api = {
_apiList: {},
Expand Down Expand Up @@ -211,7 +212,7 @@ const api = {

// Return error if there is
if (result.valid === false) {
return res.json(this.createResponse(false, {}, result.message))
return res.json(this.createResponse(req, false, {}, result.message))
}

this._execBefore(req, res, schema)
Expand Down Expand Up @@ -258,7 +259,7 @@ const api = {
this._mayExec(req, res, schema.before, 'before', (err) => {
if (err) {
logger.log(err.toString(), 'error')
return res.json(this.createResponse(false, {}, err.toString()))
return res.json(this.createResponse(req, false, {}, err.toString()))
}

if (schema.query !== undefined) {
Expand All @@ -268,7 +269,7 @@ const api = {
database.exec(schema.query, req, model, (err, result, formatted) => {
if (err) {
logger.log(err.toString(), 'error')
return res.json(this.createResponse(false, {}, 'An error occured'))
return res.json(this.createResponse(req, false, {}, 'An error occured'))
}

// Execute after
Expand All @@ -292,10 +293,10 @@ const api = {
this._mayExec(req, res, schema.after, 'after', data, (err, newData) => {
if (err) {
logger.log(err.toString(), 'error')
return res.json(this.createResponse(false, {}, err.toString()))
return res.json(this.createResponse(req, false, {}, err.toString()))
}
data = (newData !== undefined) ? newData : data
return res.json(this.createResponse(true, data, (schema.successMsg === undefined) ? '' : schema.successMsg))
return res.json(this.createResponse(req, true, data, (schema.successMsg === undefined) ? '' : schema.successMsg))
})
},

Expand Down Expand Up @@ -332,11 +333,17 @@ const api = {
* @param {Object} data Data to return
* @param {String} message Message to send
*/
createResponse: function (success, data, message) {
createResponse: function (req, success, data, message) {
let lang = ''

if (server._projectServerFile['getLang'] !== undefined) {
lang = server._projectServerFile['getLang'].apply(null, [req])
}

return {
success: success,
data: data,
message: message
message: translate.tr(message, lang)
}
},

Expand Down
5 changes: 3 additions & 2 deletions lib/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ const db = require('./database')
const converter = require('./converter')
const datasets = require('./datasets')
const cron = require('./cron')
const t = require('./translate').t
const translate = require('./translate')
const logger = require('./logger')
const testClient = require('./testClient')
const express = require('express')
Expand All @@ -17,7 +17,8 @@ const hearth = {
db: db,
converter: converter,
datasets: datasets,
t: t,
t: translate.t,
tr: translate.tr,
logger: logger,
cron: cron,
httpClient: testClient,
Expand Down
10 changes: 9 additions & 1 deletion lib/translate.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,20 @@ let parseOptions = {
let indentation = 0

const translate = {
/**
* Use this function as a marker to find all your translations
* @param {String} key Key to return
*/
t: function (key) {
return key
},

/**
* Return the translated value for key in lang
* @param {String} key Key to translate
* @param {String} lang Optional lang
*/
t: function (key, lang) {
tr: function (key, lang) {
if (translations[lang] === undefined && translations[defaultLanguage] === undefined) {
// No language exists, return the key
return key
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "hearthjs",
"version": "2.6.1",
"version": "2.6.2",
"description": "A NodeJS server framework to build fast Rest API",
"main": "lib/index.js",
"bin": "bin/hearthjs",
Expand Down

0 comments on commit d3c93ff

Please sign in to comment.