How to convert a decimal number to arabic word

New Here ,
Aug 27, 2017

Copy link to clipboard

Copied

Hai i have been converting a decimal number to english word using below script. Is anybody help me to convert the same to arabic word ?

var th = ['', 'thousand', 'million', 'billion', 'trillion'];

var dg = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine'];

var tn = ['ten', 'eleven', 'twelve', 'thirteen', 'fourteen', 'fifteen', 'sixteen', 'seventeen', 'eighteen', 'nineteen'];

var tw = ['twenty', 'thirty', 'forty', 'fifty', 'sixty', 'seventy', 'eighty', 'ninety'];

//-------------------------------------------------------

function num2String(s1) {

    var num = s1.toString();

    var s2 = num.split('.');

    var decPoint = '';

    var lang = '';

    if (s2.length > 1) {

        if (s2[1].length == 1)

            s2[1] = s2[1] * 10;

        if (getField("ddlDebitCurrency").value == "0" || getField("ddlDebitCurrency").value == "Others")

            decPoint = ' and ' + toWords(s2[1]) + ' ';

        else

            decPoint = ' and ' + toWords(s2[1]) + GetCurrencyDetails(getField("ddlDebitCurrency").value, 1);

    }

    if (getField("ddlDebitCurrency").value == "0" || getField("ddlDebitCurrency").value == "Others")

        lang = '' + toWords(s2[0]) + decPoint + ' only';

    else

        lang = getField("ddlDebitCurrency").value + ' ' + toWords(s2[0]) + decPoint + ' only';

    lang = lang.replace('   ', ' ');

    return lang.replace('  ', ' ');

}

//------------------------------------------------------------

//-----------------------------------------

function GetCurrencyDetails(strCurrencyCode, flgCurType) {

    var CurrencyCode = ['AED', 'ATS', 'AUD', 'BDT', 'BEF', 'BHD', 'BRL', 'CAD', 'CHF', 'CNY',

                'DEM', 'DKK', 'DZD', 'EGP', 'ESP', 'EUR', 'FRF', 'GBP', 'HKD', 'IDR',

                'INR', 'ITL', 'JOD', 'JPY', 'KRW', 'KWD', 'LKR', 'LYD', 'MAD', 'MRO',

                'MYR', 'NLG', 'NOK', 'NZD', 'OMR', 'PHP', 'PKR', 'QAR', 'RSD', 'RUB',

                'SAR', 'SEK', 'SGD', 'TND', 'TRY', 'USD', 'ZAR', 'Others'];

    var CurrencyName = ['dirham', 'schillings', 'dollars', 'taka', 'francs', 'dinar', 'real', 'dollar', 'francs', 'Yuan Renminbi',

                     'Deutsche Mark', 'krone', 'dinar', 'pound', 'pesetas', 'euro', 'francs', 'sterling', 'dollar', 'rupiah',

                     'rupee', 'lira', 'dinar', 'yen', 'won', 'dinar', 'rupee', 'Libyan Dinar', 'dirhams', 'XOF',

                     'ringgit', 'guilders', 'krone', 'dollar', 'omani', 'peso', 'rupee', 'riyal', 'dinar', 'ruble',

                     'riyal', 'krone', 'dollars', 'dinar', 'lira', 'dollar', 'rand', 'Others'];

    var CurrencySubDivision = ['fils', 'cents', 'cents', 'paisa', 'cents', 'fils', 'centavos', 'cents', 'centimens', 'fen',

                'cent', 'ore', 'centimes', 'piastres', 'cents', 'cents', 'cents', 'pence', 'cents', 'sen',

                'paise', 'cents', 'fils', 'cen', 'chon', 'fils', 'cents', 'dirham', 'centimens', 'khoum',

                'sen', 'cents', 'ore', 'cents', 'baiza', 'centavos', 'paisa', 'dirhams', 'paras', 'kopeks',

                'halala', 'ore', 'cents', 'millimes', 'kurus', 'cents', 'cents', ''];

    var x = CurrencyCode.length;

    for (var i = 0; i < x; i++) {

        if (CurrencyCode == strCurrencyCode) {

            if (flgCurType == 1) {

                return CurrencySubDivision;

            }

            else

                return CurrencyName;

        }

    }

}

//-----------------------------------------

//--------------------------------------------------

function toWords(s) {

    s = s.toString();

    s = s.replace(/[\, ]/g, '');

    if (s != parseFloat(s)) return 'not a number';

    var x = s.indexOf('.');

    if (x == -1) x = s.length;

    if (x > 15) return 'too big';

    var n = s.split('');

    var str = '';

    var sk = 0;

    for (var i = 0; i < x; i++) {

        if ((x - i) % 3 == 2) {

            if (n == '1') {

                str += tn[Number(n[i + 1])] + ' ';

                i++;

                sk = 1;

            }

            else if (n != 0) {

                str += tw[n - 2] + ' ';

                sk = 1;

            }

        }

        else if (n != 0) {

            str += dg[n] + ' ';

            if ((x - i) % 3 == 0) str += 'hundred ';

            sk = 1;

        }

        if ((x - i) % 3 == 1) {

            if (sk) str += th[(x - i - 1) / 3] + ' ';

            sk = 0;

        }

    }

    if (x != s.length) {

        var y = s.length;

        str += 'point ';

        for (var i = x + 1; i < y; i++) str += dg[n] + ' ';

    }

    return str.replace(/\s+/g, ' ');

}

TOPICS
Acrobat SDK and JavaScript, Windows

Views

176

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more

How to convert a decimal number to arabic word

New Here ,
Aug 27, 2017

Copy link to clipboard

Copied

Hai i have been converting a decimal number to english word using below script. Is anybody help me to convert the same to arabic word ?

var th = ['', 'thousand', 'million', 'billion', 'trillion'];

var dg = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine'];

var tn = ['ten', 'eleven', 'twelve', 'thirteen', 'fourteen', 'fifteen', 'sixteen', 'seventeen', 'eighteen', 'nineteen'];

var tw = ['twenty', 'thirty', 'forty', 'fifty', 'sixty', 'seventy', 'eighty', 'ninety'];

//-------------------------------------------------------

function num2String(s1) {

    var num = s1.toString();

    var s2 = num.split('.');

    var decPoint = '';

    var lang = '';

    if (s2.length > 1) {

        if (s2[1].length == 1)

            s2[1] = s2[1] * 10;

        if (getField("ddlDebitCurrency").value == "0" || getField("ddlDebitCurrency").value == "Others")

            decPoint = ' and ' + toWords(s2[1]) + ' ';

        else

            decPoint = ' and ' + toWords(s2[1]) + GetCurrencyDetails(getField("ddlDebitCurrency").value, 1);

    }

    if (getField("ddlDebitCurrency").value == "0" || getField("ddlDebitCurrency").value == "Others")

        lang = '' + toWords(s2[0]) + decPoint + ' only';

    else

        lang = getField("ddlDebitCurrency").value + ' ' + toWords(s2[0]) + decPoint + ' only';

    lang = lang.replace('   ', ' ');

    return lang.replace('  ', ' ');

}

//------------------------------------------------------------

//-----------------------------------------

function GetCurrencyDetails(strCurrencyCode, flgCurType) {

    var CurrencyCode = ['AED', 'ATS', 'AUD', 'BDT', 'BEF', 'BHD', 'BRL', 'CAD', 'CHF', 'CNY',

                'DEM', 'DKK', 'DZD', 'EGP', 'ESP', 'EUR', 'FRF', 'GBP', 'HKD', 'IDR',

                'INR', 'ITL', 'JOD', 'JPY', 'KRW', 'KWD', 'LKR', 'LYD', 'MAD', 'MRO',

                'MYR', 'NLG', 'NOK', 'NZD', 'OMR', 'PHP', 'PKR', 'QAR', 'RSD', 'RUB',

                'SAR', 'SEK', 'SGD', 'TND', 'TRY', 'USD', 'ZAR', 'Others'];

    var CurrencyName = ['dirham', 'schillings', 'dollars', 'taka', 'francs', 'dinar', 'real', 'dollar', 'francs', 'Yuan Renminbi',

                     'Deutsche Mark', 'krone', 'dinar', 'pound', 'pesetas', 'euro', 'francs', 'sterling', 'dollar', 'rupiah',

                     'rupee', 'lira', 'dinar', 'yen', 'won', 'dinar', 'rupee', 'Libyan Dinar', 'dirhams', 'XOF',

                     'ringgit', 'guilders', 'krone', 'dollar', 'omani', 'peso', 'rupee', 'riyal', 'dinar', 'ruble',

                     'riyal', 'krone', 'dollars', 'dinar', 'lira', 'dollar', 'rand', 'Others'];

    var CurrencySubDivision = ['fils', 'cents', 'cents', 'paisa', 'cents', 'fils', 'centavos', 'cents', 'centimens', 'fen',

                'cent', 'ore', 'centimes', 'piastres', 'cents', 'cents', 'cents', 'pence', 'cents', 'sen',

                'paise', 'cents', 'fils', 'cen', 'chon', 'fils', 'cents', 'dirham', 'centimens', 'khoum',

                'sen', 'cents', 'ore', 'cents', 'baiza', 'centavos', 'paisa', 'dirhams', 'paras', 'kopeks',

                'halala', 'ore', 'cents', 'millimes', 'kurus', 'cents', 'cents', ''];

    var x = CurrencyCode.length;

    for (var i = 0; i < x; i++) {

        if (CurrencyCode == strCurrencyCode) {

            if (flgCurType == 1) {

                return CurrencySubDivision;

            }

            else

                return CurrencyName;

        }

    }

}

//-----------------------------------------

//--------------------------------------------------

function toWords(s) {

    s = s.toString();

    s = s.replace(/[\, ]/g, '');

    if (s != parseFloat(s)) return 'not a number';

    var x = s.indexOf('.');

    if (x == -1) x = s.length;

    if (x > 15) return 'too big';

    var n = s.split('');

    var str = '';

    var sk = 0;

    for (var i = 0; i < x; i++) {

        if ((x - i) % 3 == 2) {

            if (n == '1') {

                str += tn[Number(n[i + 1])] + ' ';

                i++;

                sk = 1;

            }

            else if (n != 0) {

                str += tw[n - 2] + ' ';

                sk = 1;

            }

        }

        else if (n != 0) {

            str += dg[n] + ' ';

            if ((x - i) % 3 == 0) str += 'hundred ';

            sk = 1;

        }

        if ((x - i) % 3 == 1) {

            if (sk) str += th[(x - i - 1) / 3] + ' ';

            sk = 0;

        }

    }

    if (x != s.length) {

        var y = s.length;

        str += 'point ';

        for (var i = x + 1; i < y; i++) str += dg[n] + ' ';

    }

    return str.replace(/\s+/g, ' ');

}

TOPICS
Acrobat SDK and JavaScript, Windows

Views

177

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Aug 27, 2017 0
try67 LATEST
Most Valuable Participant ,
Aug 28, 2017

Copy link to clipboard

Copied

That is a very complicated task. For starters, the smaller numbers in Arabic need to be written before the larger ones. So "41" is "one-and-forty", not "forty-one"... On top of that there's the issue of encoding the Arabic text in the code.

This task is also not something that is specific to PDF files, but requires generic JS code.

You can try searching online and see if there are pre-written functions that do it. Don't expect the people posting here to do it for you, unless you're willing to hire someone to do so.

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Aug 28, 2017 0