JSFiddle - React, Tailwind, and code Playground

JavaScript

Number.prototype.toSentence = function () {
    var ones = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"];
    var tens = ["", "ten", "twenty", "thirty", "fourty", "fifty", "sixty", "seventy", "eighty", "ninety"];
    var teens = ["", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen"];

    return function (lang) {
        var number = this.valueOf();

        if (parseInt(number) === number) {
            switch (lang) {
            case "en":
            default:
                return toEnglish(number);                        
            }
        } else throw new TypeError("Expected an integer.");
    };

    function toEnglish(number) {
        var sign = number < 0 ? "minus " : "";
        if (sign) number = -number; // remove the minus sign

        var hundreds = nextHundreds();
        if (!number) return sign + hundreds;

        var next = concatenate.bind(null, nextHundreds);

        var thousands = next("thousand", hundreds);
        if (!number) return sign + thousands;

        var millions = next("million", thousands);
        if (!number) return sign + millions;

        var billions = next("billion", millions);
        if (!number) return sign + billions;

        var trillions = next("trillion", billions);
        if (!number) return sign + trillions;

        var quadrillions = next("quadrillion", trillions);
        return sign + quadrillions;

        function nextHundreds() {
            var hundreds = number % 1000;
            number -= hundreds;
            number /= 1000;

            return getHundreds(hundreds);
        }
    }

    function concatenate(next, unit, prev) {
        next = next();

        if (next !== "zero") {
            next += " " + unit;
            if (prev !== "zero") next += ", " + prev;
        } else next = prev;

        return next;
    }

    function getHundreds(hundreds) {
        var number = hundreds % 100;
       ...