feat: support custom locales, minor changes

This commit is contained in:
Ash Monty 2023-03-22 20:52:24 +01:00 committed by Ash Gray
parent 49b5cf428d
commit bbe4fecd25
No known key found for this signature in database
GPG Key ID: 740B7C88251D49B6
2 changed files with 9 additions and 7 deletions

View File

@ -12,9 +12,9 @@ async function renderDataMiddleware(request, response, next) {
return next();
}
// Get user local
const reqLocale = request.locale;
const locale = util.getLocale(reqLocale.language, reqLocale.region);
// Get user locale
const reqLocale = request.cookies.preferredLocale || request.locale.toString();
const locale = util.getLocale(reqLocale);
let localeList = localeFileNames.map(locale => {
const code = locale.replace('.json', '').replace('_', '-');
@ -73,7 +73,7 @@ async function renderDataMiddleware(request, response, next) {
response.locals.localeList = localeList;
response.locals.locale = locale;
response.locals.localeString = reqLocale.toString();
response.locals.localeString = reqLocale;
// Get message cookies
response.locals.success_message = request.cookies.success_message;

View File

@ -16,8 +16,10 @@ function fullUrl(request) {
return `${request.protocol}://${request.hostname}${request.originalUrl}`;
}
function getLocale(language, region) {
const path = `${__dirname}/../locales/${language}_${region}.json`;
function getLocale(locale) {
const localeFileName = locale.replace('-', '_');
const path = `${__dirname}/../locales/${localeFileName}.json`;
if (fs.pathExistsSync(path)) {
const selectedLocale = require(path);
@ -26,7 +28,7 @@ function getLocale(language, region) {
return finalLocale;
}
logger.warn(`Could not find locale ${language}_${region}! Loading en_US`);
logger.warn(`Could not find locale ${localeFileName}! Loading en_US`);
return baseLocale;
}