mirror of
https://github.com/glenndehaan/unifi-voucher-site.git
synced 2026-04-05 08:54:17 -04:00
Swapped mail function parameters. Replaced throw errors for log warnings. Implemented fallback language in translation.js. Added express-locale for future web i18n use
This commit is contained in:
@@ -49,7 +49,7 @@ module.exports = {
|
|||||||
send: (to, voucher) => {
|
send: (to, voucher) => {
|
||||||
return new Promise(async (resolve, reject) => {
|
return new Promise(async (resolve, reject) => {
|
||||||
// Create new translator
|
// Create new translator
|
||||||
const t = translation('en', 'email');
|
const t = translation('email');
|
||||||
|
|
||||||
// Attempt to send mail via SMTP transport
|
// Attempt to send mail via SMTP transport
|
||||||
const result = await transport.sendMail({
|
const result = await transport.sendMail({
|
||||||
|
|||||||
@@ -6,19 +6,23 @@ const fs = require('fs');
|
|||||||
/**
|
/**
|
||||||
* Import own modules
|
* Import own modules
|
||||||
*/
|
*/
|
||||||
|
const log = require('./log');
|
||||||
const variables = require('./variables');
|
const variables = require('./variables');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Translation returns translator function
|
* Translation returns translator function
|
||||||
*
|
*
|
||||||
* @param language
|
|
||||||
* @param module
|
* @param module
|
||||||
|
* @param language
|
||||||
|
* @param fallback
|
||||||
* @return {(function(key: string): (string))}
|
* @return {(function(key: string): (string))}
|
||||||
*/
|
*/
|
||||||
module.exports = (language = 'en', module) => {
|
module.exports = (module, language = 'en', fallback = 'en') => {
|
||||||
// Check if translation file exists
|
// Check if translation file exists
|
||||||
if(!fs.existsSync(`${__dirname}/../locales/${language}/${module}.json`)) {
|
if(!fs.existsSync(`${__dirname}/../locales/${language}/${module}.json`)) {
|
||||||
throw new Error(`[Translation] Missing translation file: ${__dirname}/../locales/${language}/${module}.json`);
|
log.warn(`[Translation] Missing translation file: ${__dirname}/../locales/${language}/${module}.json`);
|
||||||
|
language = fallback;
|
||||||
|
log.warn(`[Translation] Using fallback: ${__dirname}/../locales/${language}/${module}.json`);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get locales mapping
|
// Get locales mapping
|
||||||
@@ -34,7 +38,8 @@ module.exports = (language = 'en', module) => {
|
|||||||
|
|
||||||
// Check if key exists within translation file
|
// Check if key exists within translation file
|
||||||
if(typeof translations[key] === 'undefined') {
|
if(typeof translations[key] === 'undefined') {
|
||||||
throw new Error(`[Translation][${language}] Missing for key: ${key}`);
|
log.warn(`[Translation][${language}] Missing for key: ${key}`);
|
||||||
|
return `%${key}%`;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check if debugging is enabled. If enabled only return key
|
// Check if debugging is enabled. If enabled only return key
|
||||||
|
|||||||
7
package-lock.json
generated
7
package-lock.json
generated
@@ -12,6 +12,7 @@
|
|||||||
"cookie-parser": "^1.4.7",
|
"cookie-parser": "^1.4.7",
|
||||||
"ejs": "^3.1.10",
|
"ejs": "^3.1.10",
|
||||||
"express": "^4.21.1",
|
"express": "^4.21.1",
|
||||||
|
"express-locale": "^2.0.2",
|
||||||
"express-openid-connect": "^2.17.1",
|
"express-openid-connect": "^2.17.1",
|
||||||
"js-logger": "^1.6.1",
|
"js-logger": "^1.6.1",
|
||||||
"jsonwebtoken": "^9.0.2",
|
"jsonwebtoken": "^9.0.2",
|
||||||
@@ -1343,6 +1344,12 @@
|
|||||||
"node": ">= 0.10.0"
|
"node": ">= 0.10.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/express-locale": {
|
||||||
|
"version": "2.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/express-locale/-/express-locale-2.0.2.tgz",
|
||||||
|
"integrity": "sha512-z1hRa5iOwlgcM2iGpho3Mwq6DKv0534h1Ts2g2/Gct72g/YSrYSsSCHejLGjAT+hGoZOFcDUovmCkM+6YcQ4iQ==",
|
||||||
|
"license": "MIT"
|
||||||
|
},
|
||||||
"node_modules/express-openid-connect": {
|
"node_modules/express-openid-connect": {
|
||||||
"version": "2.17.1",
|
"version": "2.17.1",
|
||||||
"resolved": "https://registry.npmjs.org/express-openid-connect/-/express-openid-connect-2.17.1.tgz",
|
"resolved": "https://registry.npmjs.org/express-openid-connect/-/express-openid-connect-2.17.1.tgz",
|
||||||
|
|||||||
@@ -26,6 +26,7 @@
|
|||||||
"cookie-parser": "^1.4.7",
|
"cookie-parser": "^1.4.7",
|
||||||
"ejs": "^3.1.10",
|
"ejs": "^3.1.10",
|
||||||
"express": "^4.21.1",
|
"express": "^4.21.1",
|
||||||
|
"express-locale": "^2.0.2",
|
||||||
"express-openid-connect": "^2.17.1",
|
"express-openid-connect": "^2.17.1",
|
||||||
"js-logger": "^1.6.1",
|
"js-logger": "^1.6.1",
|
||||||
"jsonwebtoken": "^9.0.2",
|
"jsonwebtoken": "^9.0.2",
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ const crypto = require('crypto');
|
|||||||
const express = require('express');
|
const express = require('express');
|
||||||
const multer = require('multer');
|
const multer = require('multer');
|
||||||
const cookieParser = require('cookie-parser');
|
const cookieParser = require('cookie-parser');
|
||||||
|
const locale = require('express-locale');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Import own modules
|
* Import own modules
|
||||||
@@ -96,6 +97,14 @@ if(!variables.authDisabled && variables.authOidcEnabled) {
|
|||||||
oidc.init(app);
|
oidc.init(app);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Enable locale
|
||||||
|
*/
|
||||||
|
app.use(locale({
|
||||||
|
"priority": ["accept-language", "default"],
|
||||||
|
"default": "en-GB"
|
||||||
|
}));
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Enable multer
|
* Enable multer
|
||||||
*/
|
*/
|
||||||
|
|||||||
Reference in New Issue
Block a user