﻿// ***************************************************************************
// *
// * Copyright (C) 2008 International Business Machines
// * Corporation and others.  All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
// * Source File:<path>/common/rbnf/it.xml
// *
// ***************************************************************************
it{
    RBNFRules{
        SpelloutRules{
            "%%no-final:\n",
            "0: zero; uno; due; tre; quattro; cinque; sei; sette; otto; nove;\n",
            "10: dieci; undici; dodici; tredici; quattordici; quindici; sedici;\n",
            "17: diciasette; diciotto; diciannove;\n",
            "20: venti; vent>%%with-i-nofinal>;\n",
            "30: trenta; trent>%%with-a-nofinal>;\n",
            "40: quaranta; quarant>%%with-a-nofinal>;\n",
            "50: cinquanta; cinquant>%%with-a-nofinal>;\n",
            "60: sessanta; sessant>%%with-a-nofinal>;\n",
            "70: settanta; settant>%%with-a-nofinal>;\n",
            "80: ottanta; ottant>%%with-a-nofinal>;\n",
            "90: novanta; novant>%%with-a-nofinal>;\n",
            "100: cento; cent[>%%with-o-nofinal>];\n",
            "200: <<cento; <<cent[>%%with-o-nofinal>];\n",
            "1000: =%spellout=;\n",
            "%spellout:\n",
            "0: zero; uno; due; tre; quattro; cinque; sei; sette; otto; nove;\n",
            "10: dieci; undici; dodici; tredici; quattordici; quindici; sedici;\n",
            "17: diciasette; diciotto; diciannove;\n",
            "20: venti; vent>%%with-i>;\n",
            "30: trenta; trent>%%with-a>;\n",
            "40: quaranta; quarant>%%with-a>;\n",
            "50: cinquanta; cinquant>%%with-a>;\n",
            "60: sessanta; sessant>%%with-a>;\n",
            "70: settanta; settant>%%with-a>;\n",
            "80: ottanta; ottant>%%with-a>;\n",
            "90: novanta; novant>%%with-a>;\n",
            "100: cento; cent[>%%with-o>];\n",
            "200: <<cento; <<cent[>%%with-o>];\n",
            "1000: mille; mille>>;\n",
            "2000: <%%no-final<mila; <%%no-final<mil>%%with-a>;\n",
            "100000>>: <%%no-final<mila[ >>];\n",
            "1000000: un milione; un milione >>;\n",
            "2000000: << milioni[ >>];\n",
            "1000000000: un miliardo; un miliardo >>;\n",
            "2000000000: << miliardi[ >>];\n",
            "1000000000000: =#,##0=;\n",
            "-x: meno >>;\n",
            "x.x: << virgola >>;\n",
            "%%with-a:\n",
            "0: azero; uno; adue; atr\u00E9; aquattro; acinque; asei; asette; otto; anove;\n",
            "10: adieci; undici; adodici; atredici; aquattordici; aquindici; asedici;\n",
            "17: adiciasette; adiciotto; adiciannove;\n",
            "20: aventi; avent>%%with-i>;\n",
            "30: atrenta; atrent>%%with-a>;\n",
            "40: aquaranta; aquarant>%%with-a>;\n",
            "50: acinquanta; acinquant>%%with-a>;\n",
            "60: asessanta; asessant>%%with-a>;\n",
            "70: asettanta; asettant>%%with-a>;\n",
            "80: ottanta; ottant>%%with-a>;\n",
            "90: anovanta; anovant>%%with-a>;\n",
            "100: acento; acent[>%%with-o>];\n",
            "200: <%%with-a<cento; <%%with-a<cent[>%%with-o>];\n",
            "1000: amille; amill[>%%with-i>];\n",
            "2000: <%%with-a<mila; <%%with-a<mil[>%%with-a>];\n",
            "100000: =%spellout=;\n",
            "%%with-a-nofinal:\n",
            "0: azero; uno; adue; atre; aquattro; acinque; asei; asette; otto; anove;\n",
            "10: adieci; undici; adodici; atredici; aquattordici; aquindici; asedici;\n",
            "17: adiciasette; adiciotto; adiciannove;\n",
            "20: aventi; avent>%%with-i-nofinal>;\n",
            "30: atrenta; atrent>%%with-a-nofinal>;\n",
            "40: aquaranta; aquarant>%%with-a-nofinal>;\n",
            "50: acinquanta; acinquant>%%with-a-nofinal>;\n",
            "60: asessanta; asessant>%%with-a-nofinal>;\n",
            "70: asettanta; asettant>%%with-a-nofinal>;\n",
            "80: ottanta; ottant>%%with-a-nofinal>;\n",
            "90: anovanta; anovant>%%with-a-nofinal>;\n",
            "100: acento; acent[>%%with-o-nofinal>];\n",
            "200: <%%with-a-nofinal<cento; <%%with-a-nofinal<cent[>%%with-o-nofinal>];\n",
            "1000: =%spellout=;\n",
            "%%with-i:\n",
            "0: izero; uno; idue; itr\u00E9; iquattro; icinque; isei; isette; otto; inove;\n",
            "10: idieci; undici; idodici; itredici; iquattordici; iquindici; isedici;\n",
            "17: idiciasette; idiciotto; idiciannove;\n",
            "20: iventi; ivent>%%with-i>;\n",
            "30: itrenta; itrent>%%with-a>;\n",
            "40: iquaranta; iquarant>%%with-a>;\n",
            "50: icinquanta; icinquant>%%with-a>;\n",
            "60: isessanta; isessant>%%with-a>;\n",
            "70: isettanta; isettant>%%with-a>;\n",
            "80: ottanta; ottant>%%with-a>;\n",
            "90: inovanta; inovant>%%with-a>;\n",
            "100: icento; icent[>%%with-o>];\n",
            "200: <%%with-i<cento; <%%with-i<cent[>%%with-o>];\n",
            "1000: imille; imill[>%%with-i>];\n",
            "2000: <%%with-i<mila; <%%with-i<mil[>%%with-a>];\n",
            "100000: =%spellout=;\n",
            "%%with-i-nofinal:\n",
            "0: izero; uno; idue; itre; iquattro; icinque; isei; isette; otto; inove;\n",
            "10: idieci; undici; idodici; itredici; iquattordici; iquindici; isedici;\n",
            "17: idiciasette; idiciotto; idiciannove;\n",
            "20: iventi; ivent>%%with-i-nofinal>;\n",
            "30: itrenta; itrent>%%with-a-nofinal>;\n",
            "40: iquaranta; iquarant>%%with-a-nofinal>;\n",
            "50: icinquanta; icinquant>%%with-a-nofinal>;\n",
            "60: isessanta; isessant>%%with-a-nofinal>;\n",
            "70: isettanta; isettant>%%with-a-nofinal>;\n",
            "80: ottanta; ottant>%%with-a-nofinal>;\n",
            "90: inovanta; inovant>%%with-a-nofinal>;\n",
            "100: icento; icent[>%%with-o-nofinal>];\n",
            "200: <%%with-i-nofinal<cento; <%%with-i-nofinal<cent[>%%with-o-nofinal>];\n",
            "1000: =%spellout=;\n",
            "%%with-o:\n",
            "0: ozero; uno; odue; otr\u00E9; oquattro; ocinque; osei; osette; otto; onove;\n",
            "10: odieci; undici; ododici; otredici; oquattordici; oquindici; osedici;\n",
            "17: odiciasette; odiciotto; odiciannove;\n",
            "20: oventi; ovent>%%with-i>;\n",
            "30: otrenta; otrent>%%with-a>;\n",
            "40: oquaranta; oquarant>%%with-a>;\n",
            "50: ocinquanta; ocinquant>%%with-a>;\n",
            "60: osessanta; osessant>%%with-a>;\n",
            "70: osettanta; osettant>%%with-a>;\n",
            "80: ottanta; ottant>%%with-a>;\n",
            "90: onovanta; onovant>%%with-a>;\n",
            "100: ocento; ocent[>%%with-o>];\n",
            "200: <%%with-o<cento; <%%with-o<cent[>%%with-o>];\n",
            "1000: omille; omill[>%%with-i>];\n",
            "2000: <%%with-o<mila; <%%with-o<mil[>%%with-a>];\n",
            "100000: =%spellout=;\n",
            "%%with-o-nofinal:\n",
            "0: ozero; uno; odue; otre; oquattro; ocinque; osei; osette; otto; onove;\n",
            "10: odieci; undici; ododici; otredici; oquattordici; oquindici; osedici;\n",
            "17: odiciasette; odiciotto; odiciannove;\n",
            "20: oventi; ovent>%%with-i-nofinal>;\n",
            "30: otrenta; otrent>%%with-a-nofinal>;\n",
            "40: oquaranta; oquarant>%%with-a-nofinal>;\n",
            "50: ocinquanta; ocinquant>%%with-a-nofinal>;\n",
            "60: osessanta; osessant>%%with-a-nofinal>;\n",
            "70: osettanta; osettant>%%with-a-nofinal>;\n",
            "80: ottanta; ottant>%%with-a-nofinal>;\n",
            "90: onovanta; onovant>%%with-a-nofinal>;\n",
            "100: ocento; ocent[>%%with-o-nofinal>];\n",
            "200: <%%with-o-nofinal<cento; <%%with-o-nofinal<cent[>%%with-o-nofinal>];\n",
            "1000: =%spellout=;\n",
        }
    }
    Version{"1.4"}
}
