laravel-i18n-react
Version:
A Vite plugin to load Laravel localization files and provide them to React applications.
28 lines (27 loc) • 925 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = replacer;
/**
* Make the place-holder replacements on a line.
*
* @param message
* @param replacements
*/
function replacer(message, replacements) {
if (!replacements)
return message;
const patterns = Object.entries(replacements).flatMap(([key, value]) => [
{ pattern: new RegExp(`:${key}`, 'g'), replacement: value.toString() },
{ pattern: new RegExp(`:${key.toUpperCase()}`, 'g'), replacement: value.toString().toUpperCase() },
{ pattern: new RegExp(`:${capitalize(key)}`, 'g'), replacement: capitalize(value.toString()) }
]);
return patterns.reduce((result, { pattern, replacement }) => result.replace(pattern, replacement), message);
}
/**
* Capitalizing string.
*
* @param str
*/
function capitalize(str) {
return str ? str[0].toUpperCase() + str.slice(1) : '';
}