JSFiddle - React, Tailwind, and code Playground

by gianlucaguarini

JavaScript

const PLURALIZATION_REGEX = /\|{4}/m;

/**
 * Pluralize the sentences if the `||||` separator get detected 4 example: "My singular |||| My plural |||| My super plural"
 * @param {string} translation - translation string
 * @param {number} amount - amount to manage the pluralization
 * @return {string} a single string value out of the possible chunks
 */
function pluralize(translation, amount) {
    const isPluralized = PLURALIZATION_REGEX.exec(translation);

    if (isPluralized) {
        // take all the variations for the same vocabulary string
        const variants = translation.split(PLURALIZATION_REGEX);
        // fallback solution for values having not a specific value
        const lastVariation = variants[variants.length - 1];

        return amount > 1 ? variants[amount - 1] || lastVariation : variants[0];
    }

    return translation;
}

console.log(pluralize('foo |||| bar', 0))
console.log(pluralize('foo |||| bar', 2))