Suffissi ordinali internazionali

Un helper di Handlebars per stampare i suffissi ordinali in inglese o italiano



const suffissoItalianoMaschile = '°';

const suffissoItalianoFemminile = 'a';

// Definire i suffissi ordinali per inglese

const suffissiInglesi = {

    1: 'st',

    2: 'nd',

    3: 'rd',

    default: 'th'

};

// Helper per ottenere il suffisso ordinale in base alla lingua e al genere

Handlebars.registerHelper('ordinal', function(numero, lingua, genere) {

    numero = parseInt(numero, 10);  // Assicurati che numero sia un intero

    if (lingua === 'it' || lingua === 'it-IT') {

        if (genere === 'f') {

            return numero + suffissoItalianoFemminile;

        }

        if (genere === 'm') {

            return numero + suffissoItalianoMaschile;

        }

    }

    if (lingua === 'en' || lingua === 'en-US') {

        if (numero % 10 === 1 && numero % 100 !== 11) {

            return numero + suffissiInglesi[1];

        } else if (numero % 10 === 2 && numero % 100 !== 12) {

            return numero + suffissiInglesi[2];

        } else if (numero % 10 === 3 && numero % 100 !== 13) {

            return numero + suffissiInglesi[3];

        } else {

            return numero + suffissiInglesi.default;

        }

    }

    return numero;

});