#!/bin/bash

#################################################
# Nombre a lletra
# Versió nombres en rus
# Fins a 7 dígits
# 2020-08-30
#################################################

nombretot=$1

# Detectar llarg
llarg=${#nombretot}  

#################################################
# Funcions segons nombre de dígits
#################################################

#################################################
# Case unitats
#################################################

funun() {

if [ $nombre == "0" ]
then
nom1="ноль"
fi

if [ $nombre == "1" ]
then
nom1="один"
fi

if [ $nombre == "2" ]
then
nom1="два"
fi

if [ $nombre == "3" ]
then
nom1="три"
fi

if [ $nombre == "4" ]
then
nom1="четыре"
fi

if [ $nombre == "5" ]
then
nom1="пять"
fi

if [ $nombre == "6" ]
then
nom1="шесть" 
fi

if [ $nombre == "7" ]
then
nom1="семь"
fi

if [ $nombre == "8" ]
then
nom1="восемь"
fi

if [ $nombre == "9" ]
then
nom1="девять"
fi

}

#################################################
# Case desenes
#################################################

fundos() {

nombreini2=$nombre

if [ $nombreini2 == "10" ]
then
nom2="десять"
fi

if [ $nombreini2 == "11" ]
then
nom2="одиннадцать"
fi
if [ $nombreini2 == "12" ]
then
nom2="двенадцать"
fi
if [ $nombreini2 == "13" ]
then
nom2="тринадцать"
fi
if [ $nombreini2 == "14" ]
then
nom2="четырнадцать"
fi
if [ $nombreini2 == "15" ]
then
nom2="пятнадцать"
fi
if [ $nombreini2 == "16" ]
then
nom2="шестнадцать"
fi
if [ $nombreini2 == "17" ]
then
nom2="семнадцать"
fi
if [ $nombreini2 == "18" ]
then
nom2="восемнадцать"
fi
if [ $nombreini2 == "19" ]
then
nom2="девятнадцать"
fi
if [ $nombreini2 -ge "20" ]
then
nom2="двадцать"
fi
if [ $nombreini2 -ge "30" ]
then
nom2="тридцать"
fi
if [ $nombreini2 -ge "40" ]
then
nom2="сорок"
fi
if [ $nombreini2 -ge "50" ]
then
nom2="пятьдесят"
fi
if [ $nombreini2 -ge "60" ]
then
nom2="шестьдесят"
fi
if [ $nombreini2 -ge "70" ]
then
nom2="семьдесят"
fi
if [ $nombreini2 -ge "80" ]
then
nom2="восемьдесят"
fi
if [ $nombreini2 -ge "90" ]
then
nom2="девяносто"
fi

if [ ${nombreini2:1:1} -ne "0" ] 
then
if [ $nombreini2 -gt 19 ] && [ $nombreini2 -lt 30 ]
then
nombre=${nombreini2:1:1}
funun
nom2=$nom2" "$nom1
fi
if [ $nombreini2 -gt 30 ]
then
nombre=${nombreini2:1:1}
funun
nom2=$nom2" "$nom1
fi
fi

if [ ${nombreini2:0:1} == "0" ]
then
nombre=${nombreini2:1:1}
funun
nom2=$nom1
fi

}

#################################################
# Case tres dígits
#################################################

funtres() {

nombreini3=$nombre

if [ $nombreini3 -ge "100" ]
then
nom3="сто"
fi
if [ $nombreini3 -ge "200" ]
then
nom3="двести"
fi
if [ $nombreini3 -ge "300" ]
then
nom3="триста"
fi
if [ $nombreini3 -ge "400" ]
then
nom3="четыреста"
fi
if [ $nombreini3 -ge "500" ]
then
nom3="пятьсот"
fi
if [ $nombreini3 -ge "600" ]
then
nom3="шестьсот"
fi
if [ $nombreini3 -ge "700" ]
then
nom3="семьсот"
fi
if [ $nombreini3 -ge "800" ]
then
nom3="восемьсот"
fi
if [ $nombreini3 -ge "900" ]
then
nom3="девятьсот"
fi

if [ ${nombreini3:0:1} -ne "0" ] && [ ${nombreini3:1:1} == "0" ] && [ ${nombreini3:2:1} -ne "0" ]
then
nombre=${nombreini3:2:1}
funun
nom3=$nom3" "$nom1
fi

if [ ${nombreini3:0:1} -ne "0" ] && [ ${nombreini3:1:1} -ne "0" ] && [ ${nombreini3:1:2} -ne "00" ]
then
nombre=${nombreini3:1:2}
fundos
nom3=$nom3" "$nom2
fi

if [ ${nombreini3:0:2} == "00" ] && [ ${nombreini3:2:1} -ne "0" ]
then
nombre=${nombreini3:2:1}
funun
nom3=$nom1
fi

if [ ${nombreini3:0:1} == "0" ] && [ ${nombreini3:1:1} -ne "0" ]
then
nombre=${nombreini3:1:2}
fundos
nom3=$nom2
fi

}

#################################################
# Case quatre dígits
#################################################

funquatre() {

nombreini4=$nombre

if [ ${nombreini4:0:1} == "1" ] 
then
nombre=${nombreini4:1:3}
funtres
nom4=тысяча" "$nom3
fi

if [ ${nombreini4:0:1} -gt "1" ] && [ ${nombreini4:0:1} -le "4" ] 
then
nombre=${nombreini4:1:3}
funtres
nombre=${nombreini4:0:1}
funun
nom4=$nom1" "тысячи" "$nom3
fi

if [ ${nombreini4:0:1} -gt "4" ]
then
nombre=${nombreini4:1:3}
funtres
nombre=${nombreini4:0:1}
funun
nom4=$nom1" "тысяч" "$nom3
fi


}

#################################################
# Case cinc dígits
#################################################

funcinc() {

nombreini5=$nombre

if [ ${nombreini5:2:3} == "000" ]
then
nombre=${nombreini5:0:2}
fundos
nom5=$nom2" "тысяч
fi

if [ ${nombreini5:2:3} -ne "000" ]
then
nombre=${nombreini5:2:3}
funtres
nombre=${nombreini5:0:2}
fundos
nom5=$nom2" "тысяч" "$nom3
fi

}

#################################################
# Case sis dígits
#################################################

funsis() {

nombreini6=$nombre

if [ ${nombreini6:3:3} == "000" ] && [ ${nombreini6:0:3} -ne "000" ]
then
nombre=${nombreini6:0:3}
funtres
nom6=$nom3" "тысяч
fi

if [ ${nombreini6:3:3} -ne "000" ] && [ ${nombreini6:0:3} -ne "001" ] 
then
nombre=${nombreini6:0:3}
funtres
nom3ini1=$nom3
nombre=${nombreini6:3:3}
funtres
nom3fin1=$nom3
nom6=$nom3ini1" "тысяч" "$nom3fin1
fi

if [ ${nombreini6:3:3} -ne "000" ] && [ ${nombreini6:0:3} == "001" ]
then
nombre=${nombreini6:3:3}
funtres
nom6="тысяч"" "$nom3
fi

}

#################################################
# Case set dígits
#################################################

funset() {

nombreini7=$nombre

if [ ${nombreini7:0:1} == "1" ]
then
nombre=${nombreini7:1:6}
funsis
nom7="один миллион"" "$nom6
fi

if [ ${nombreini7:0:1} -gt "1" ]
then
nombre=${nombreini7:1:6}
funsis
nombre=${nombreini7:0:1}
funun
nom7=$nom1" "миллион" "$nom6
fi

}

#################################################
# Cases i crida de funcions
#################################################


# Case un dígit
if [ $llarg == 1 ]
then
nombre=$nombretot
funun
nom=$nom1
fi

# Case dos dígits
if [ $llarg == 2 ]
then
nombre=$nombretot
fundos
nom=$nom2
fi

# Case tres dígits
if [ $llarg == 3 ]
then
nombre=$nombretot
funtres
nom=$nom3
fi

# Case quatre dígits
if [ $llarg == 4 ]
then
nombre=$nombretot
funquatre
nom=$nom4
fi

# Case cinc dígits
if [ $llarg == 5 ]
then
nombre=$nombretot
funcinc
nom=$nom5
fi

# Case sis dígits
if [ $llarg == 6 ]
then
nombre=$nombretot
funsis
nom=$nom6
fi

# Case set dígits
if [ $llarg == 7 ]
then
nombre=$nombretot
funset
nom=$nom7
fi

#################################################
# Resultat
#################################################

#echo $nombre
#echo $llarg
echo $nom
echo $nombretot " = " $nom >> out.txt
echo $nom | festival --language russian --tts

