Adds SFRA 6.0
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
'use strict';
|
||||
|
||||
var path = require('path');
|
||||
var properties = require('properties-parser');
|
||||
const locale = 'x_default';
|
||||
|
||||
function msg(key, bundleName, defaultValue) {
|
||||
let bundlePath;
|
||||
let props;
|
||||
const resourceDirPath = './cartridges/app_storefront_base/cartridge/templates/resources/';
|
||||
if (!key) {
|
||||
return defaultValue;
|
||||
}
|
||||
if (bundleName) {
|
||||
if (locale !== 'x_default') {
|
||||
bundlePath = path.resolve(resourceDirPath + bundleName + '_' + locale + '.properties');
|
||||
try {
|
||||
props = properties.read(bundlePath);
|
||||
if (props[key]) {
|
||||
return props[key];
|
||||
}
|
||||
} catch (e) {
|
||||
// continue
|
||||
}
|
||||
}
|
||||
bundlePath = path.resolve(resourceDirPath + bundleName + '.properties');
|
||||
try {
|
||||
props = properties.read(bundlePath);
|
||||
if (props[key]) {
|
||||
return props[key];
|
||||
}
|
||||
} catch (e) {
|
||||
// continue
|
||||
}
|
||||
}
|
||||
return defaultValue || key;
|
||||
}
|
||||
|
||||
function msgf() {
|
||||
// pass through to msg if there are no extra format arguments
|
||||
if (arguments.length < 4) {
|
||||
return msg.apply(null, arguments);
|
||||
}
|
||||
let args = Array.prototype.slice.call(arguments);
|
||||
let value = msg.apply(null, args.slice(0, 3));
|
||||
return value.replace(/{(\d)}/g, function (match, p) {
|
||||
let position = Number(p);
|
||||
if (args[position + 3]) {
|
||||
return args[position + 3];
|
||||
// if no arguments found, return the original placeholder
|
||||
}
|
||||
return match;
|
||||
});
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
msg: msg,
|
||||
msgf: msgf,
|
||||
locale: locale
|
||||
};
|
Reference in New Issue
Block a user