UPDATE: 28-OCT-2004 - New Code
Thanks to blade, gnozal and
rob6523 for Duch (Partial? or Full??)
Hi,
Sorry for the long code.
Only work correctly in Spanish, Portuguese, English and ITALIAN. For the others languages I need help to code or change.
Comment the PureVision functions and callback for correct compilation of all ussers. (Sorry for the inconvenience).
Please, send you colaboration and checking
This is only one

Code: Select all
;-Init Includes
; Init_PVDynamic()
;-PureVision Global Variables and Constants
#PB_Flat =$8000
#PB_Image_BorderRaised =$1
Global BubbleTipStyle.l
BubbleTipStyle=0
;-Window Constants
Enumeration 1
#Window_Babel
EndEnumeration
#WindowIndex=#PB_Compiler_EnumerationValue
;-Gadget Constants
Enumeration 1
;Window_Babel
#Gadget_Babel_Language
#Gadget_Babel_Option3
#Gadget_Babel_Option4
#Gadget_Babel_Option5
#Gadget_Babel_Option6
#Gadget_Babel_Option7
#Gadget_Babel_Option8
#Gadget_Babel_Option9
#Gadget_Babel_Option10
#Gadget_Babel_Text10
#Gadget_Babel_String11
#Gadget_Babel_Button13
#Gadget_Babel_String15
EndEnumeration
#GadgetIndex=#PB_Compiler_EnumerationValue
Procedure.l Window_Babel()
If OpenWindow(#Window_Babel,175,0,662,180,"Babel Numbers To Leters",#PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_Invisible)
TextGadget(#Gadget_Babel_Language,10,0,110,20,"Select Language")
OptionGadget(#Gadget_Babel_Option3,10,25,100,15,"Spanish")
OptionGadget(#Gadget_Babel_Option4,10,45,100,15,"Portuguese")
OptionGadget(#Gadget_Babel_Option5,10,65,100,15,"English")
OptionGadget(#Gadget_Babel_Option6,10,85,100,15,"French")
OptionGadget(#Gadget_Babel_Option7,10,105,100,15,"German")
OptionGadget(#Gadget_Babel_Option8,10,125,100,15,"Duch")
OptionGadget(#Gadget_Babel_Option9,10,145,100,15,"Norwegian")
OptionGadget(#Gadget_Babel_Option10,10,165,100,15,"Italian")
TextGadget(#Gadget_Babel_Text10,150,0,75,20,"Numbers")
StringGadget(#Gadget_Babel_String11,150,25,160,20,"")
ButtonGadget(#Gadget_Babel_Button13,325,15,90,30,"Translate")
EditorGadget(#Gadget_Babel_String15,150,55,505,105)
; PVDynamic_AddColorGadget(#Gadget_Babel_String15,8421376,0)
HideWindow(#Window_Babel,0)
ProcedureReturn WindowID(#Window_Babel)
EndIf
EndProcedure
;Procedure WindowCallback(WindowID,Message,wParam,lParam)
; ReturnValue=#PB_ProcessPureBasicEvents
; If Message=#WM_CTLCOLORSTATIC Or Message=#WM_CTLCOLOREDIT Or Message=#WM_CTLCOLORLISTBOX
; ReturnValue=PVDynamic_ColorGadget(lParam,wParam)
; EndIf
; ProcedureReturn ReturnValue
;EndProcedure
Structure Letras
Uni.s[10]
Dec.s[11]
Dec1.s[11]
Cen.s[10]
Ext.s[12]
EndStructure
Global Idio.s, entero.s
Procedure Lang(*Letras.Letras,Idioma.s)
*Letras\Ext[11]="EUROS "
If Idioma="1" ;Spanish
*Letras\Uni[1]="UN"
*Letras\Uni[2]="DOS"
*Letras\Uni[3]="TRES"
*Letras\Uni[4]="CUATRO"
*Letras\Uni[5]="CINCO"
*Letras\Uni[6]="SEIS"
*Letras\Uni[7]="SIETE"
*Letras\Uni[8]="OCHO"
*Letras\Uni[9]="NUEVE"
*Letras\Dec[1]="DIEZ"
*Letras\Dec[2]="ONCE"
*Letras\Dec[3]="DOCE"
*Letras\Dec[4]="TRECE"
*Letras\Dec[5]="CATORCE"
*Letras\Dec[6]="QUINCE"
*Letras\Dec[7]="DIECI"+*Letras\Uni[6]
*Letras\Dec[8]="DIECI"+*Letras\Uni[7]
*Letras\Dec[9]="DIECI"+*Letras\Uni[8]
*Letras\Dec[10]="DIECI"+*Letras\Uni[9]
*Letras\Dec1[1]="VEINTE"
*Letras\Dec1[2]="VEINTI"
*Letras\Dec1[3]="TREINTA"
*Letras\Dec1[4]="CUARENTA"
*Letras\Dec1[5]="CINCUENTA"
*Letras\Dec1[6]="SESENTA"
*Letras\Dec1[7]="SETENTA"
*Letras\Dec1[8]="OCHENTA"
*Letras\Dec1[9]="NOVENTA"
*Letras\Cen[1]="CIENTO"
*Letras\Cen[2]="DOSC"
*Letras\Cen[3]="TRESC"
*Letras\Cen[4]="CUATROC"
*Letras\Cen[5]="QUIN"
*Letras\Cen[6]="SEISC"
*Letras\Cen[7]="SETEC"
*Letras\Cen[8]="OCHOC"
*Letras\Cen[9]="NOVEC"
*Letras\Ext[1]="CIEN "
*Letras\Ext[2]="IENTOS "
*Letras\Ext[3]="";dejar este valor si se quita moneda"O"
*Letras\Ext[4]=" Y "
*Letras\Ext[5]="CON "
*Letras\Ext[6]=" CENTIMOS"
*Letras\Ext[7]=" MIL "
*Letras\Ext[8]=" MIL "
*Letras\Ext[9]="UN MILLON "
*Letras\Ext[10]=" MILLONES "
ElseIf Idio="2" ;Portuguese
*Letras\Uni[1]="UM"
*Letras\Uni[2]="DOIS"
*Letras\Uni[3]="TRÊS"
*Letras\Uni[4]="QUATRO"
*Letras\Uni[5]="CINCO"
*Letras\Uni[6]="SEIS"
*Letras\Uni[7]="SETE"
*Letras\Uni[8]="OITO"
*Letras\Uni[9]="NOVE"
*Letras\Dec[1]="DEZ"
*Letras\Dec[2]="ONZE"
*Letras\Dec[3]="DOZE"
*Letras\Dec[4]="TREZE"
*Letras\Dec[5]="CATORZE"
*Letras\Dec[6]="QUINZE"
*Letras\Dec[7]="DEZA"+*Letras\Uni[6]
*Letras\Dec[8]="DEZA"+*Letras\Uni[7]
*Letras\Dec[9]="DEZA"+*Letras\Uni[8]
*Letras\Dec[10]="DEZA"+*Letras\Uni[9]
*Letras\Dec1[1]="VINTE"
*Letras\Dec1[2]="VINTE"
*Letras\Dec1[3]="TRINTA"
*Letras\Dec1[4]="QUARENTA"
*Letras\Dec1[5]="CINQUENTA"
*Letras\Dec1[6]="SESENTA"
*Letras\Dec1[7]="SETENTA"
*Letras\Dec1[8]="OITENTA"
*Letras\Dec1[9]="NOVENTA"
*Letras\Cen[1]="CENTO"
*Letras\Cen[2]="DUZ"
*Letras\Cen[3]="TREZ"
*Letras\Cen[4]="QUATROC"
*Letras\Cen[5]="QUINH"
*Letras\Cen[6]="SEISC"
*Letras\Cen[7]="SETEC"
*Letras\Cen[8]="OITOC"
*Letras\Cen[9]="NOVEC"
*Letras\Ext[1]="CEM "
*Letras\Ext[2]="ENTOS "
*Letras\Ext[3]=""
*Letras\Ext[4]=" E "
*Letras\Ext[5]="CON "
*Letras\Ext[6]=" CÊNTIMOS"
*Letras\Ext[7]=" MIL "
*Letras\Ext[8]=" MIL "
*Letras\Ext[9]="UM MILHÃO "
*Letras\Ext[10]=" MILHÕES "
ElseIf Idio="3";English
*Letras\Uni[1]="ONE"
*Letras\Uni[2]="TWO"
*Letras\Uni[3]="THREE"
*Letras\Uni[4]="FOUR"
*Letras\Uni[5]="FIVE"
*Letras\Uni[6]="SIX"
*Letras\Uni[7]="SEVEN"
*Letras\Uni[8]="EIGHT"
*Letras\Uni[9]="NINE"
*Letras\Dec[1]="TEN"
*Letras\Dec[2]="ELEVEN"
*Letras\Dec[3]="TWELVE"
*Letras\Dec[4]="THIRTEEN"
*Letras\Dec[5]="FOURTEEN"
*Letras\Dec[6]="FIFTEEN"
*Letras\Dec[7]="SIXTEEN"
*Letras\Dec[8]="SEVENTEEN"
*Letras\Dec[9]="EIGHTEEN"
*Letras\Dec[10]="NINETEEN"
*Letras\Dec1[1]="TWENTY "
*Letras\Dec1[2]="TWENTY "
*Letras\Dec1[3]="THIRTY "
*Letras\Dec1[4]="FORTY "
*Letras\Dec1[5]="FIFTY "
*Letras\Dec1[6]="SIXTY "
*Letras\Dec1[7]="SEVENTY "
*Letras\Dec1[8]="EIGTHY "
*Letras\Dec1[9]="NINETY "
*Letras\Cen[1]="ONE"
*Letras\Cen[2]="TWO"
*Letras\Cen[3]="THREE"
*Letras\Cen[4]="FOUR"
*Letras\Cen[5]="FIVE"
*Letras\Cen[6]="SIX"
*Letras\Cen[7]="SEVEN"
*Letras\Cen[8]="EIGHT"
*Letras\Cen[9]="NINE"
*Letras\Ext[1]="ONE HUNDRED "
*Letras\Ext[2]=" HUNDRED "
*Letras\Ext[3]=""
*Letras\Ext[4]=" "
*Letras\Ext[5]="WITH "
*Letras\Ext[6]=" CENTS"
*Letras\Ext[7]=" THOUSAND "
*Letras\Ext[8]=" THOUSANDS "
*Letras\Ext[9]="ONE MILLION "
*Letras\Ext[10]=" MILLIONS "
ElseIf Idio="4";French
*Letras\Uni[1]="UN"
*Letras\Uni[2]="DEUX"
*Letras\Uni[3]="TROIS"
*Letras\Uni[4]="QUATRE"
*Letras\Uni[5]="CINQ"
*Letras\Uni[6]="SIX"
*Letras\Uni[7]="SEPT"
*Letras\Uni[8]="HUIT"
*Letras\Uni[9]="NEUF"
*Letras\Dec[1]="DIX"
*Letras\Dec[2]="ONZE"
*Letras\Dec[3]="DOUZE"
*Letras\Dec[4]="TREIZE"
*Letras\Dec[5]="QUATORZE"
*Letras\Dec[6]="QUINZE"
*Letras\Dec[7]="SEIZE"
*Letras\Dec[8]="DIX-"+*Letras\Uni[7]
*Letras\Dec[9]="DIX-"+*Letras\Uni[8]
*Letras\Dec[10]="DIX-"+*Letras\Uni[9]
*Letras\Dec1[1]="VINGT "
*Letras\Dec1[2]="VINGT "
*Letras\Dec1[3]="TRENTE "
*Letras\Dec1[4]="QUARANTE "
*Letras\Dec1[5]="CINQUANTE "
*Letras\Dec1[6]="SOIXANTE "
*Letras\Dec1[7]="SOIXANTE-DIX "
*Letras\Dec1[8]="QUATRE-VINGT "
*Letras\Dec1[9]="QUATRE-VINGT-"
*Letras\Cen[1]="CENT"
*Letras\Cen[2]=*Letras\Uni[2]
*Letras\Cen[3]=*Letras\Uni[3]
*Letras\Cen[4]=*Letras\Uni[4]
*Letras\Cen[5]=*Letras\Uni[5]
*Letras\Cen[6]=*Letras\Uni[6]
*Letras\Cen[7]=*Letras\Uni[7]
*Letras\Cen[8]=*Letras\Uni[8]
*Letras\Cen[9]=*Letras\Uni[9]
*Letras\Ext[1]="CENT "
*Letras\Ext[2]=" CENT "
*Letras\Ext[3]=""
*Letras\Ext[4]=" "
*Letras\Ext[5]="ET "
*Letras\Ext[6]=" CENTIMES"
*Letras\Ext[7]="MILLE "
*Letras\Ext[8]=" MILLE "
*Letras\Ext[9]="UN MILLION "
*Letras\Ext[10]=" MILLIONS "
ElseIf Idio="5";German
*Letras\Uni[1]="EINE"
*Letras\Uni[2]="ZWEI"
*Letras\Uni[3]="DREI"
*Letras\Uni[4]="VIER"
*Letras\Uni[5]="FÜNF"
*Letras\Uni[6]="SECHS"
*Letras\Uni[7]="SIEBEN"
*Letras\Uni[8]="ACHT"
*Letras\Uni[9]="NEUN"
*Letras\Dec[1]="ZEHN"
*Letras\Dec[2]="ELF"
*Letras\Dec[3]="ZWÖLF"
*Letras\Dec[4]=*Letras\Uni[3]+*Letras\Dec[1]
*Letras\Dec[5]=*Letras\Uni[4]+*Letras\Dec[1]
*Letras\Dec[6]=*Letras\Uni[5]+*Letras\Dec[1]
*Letras\Dec[7]=*Letras\Uni[6]+*Letras\Dec[1]
*Letras\Dec[8]=*Letras\Uni[7]+*Letras\Dec[1]
*Letras\Dec[9]=*Letras\Uni[8]+*Letras\Dec[1]
*Letras\Dec[10]=*Letras\Uni[5]+*Letras\Dec[1]
*Letras\Dec1[1]="ZWANZIG"
*Letras\Dec1[2]="ZWANZIG"
*Letras\Dec1[3]="DREISSIG"
*Letras\Dec1[4]="VIERZIG"
*Letras\Dec1[5]="FÜNFZIG"
*Letras\Dec1[6]="SECHZIG"
*Letras\Dec1[7]="SIEBZIG"
*Letras\Dec1[8]="EIGTHY"
*Letras\Dec1[9]="NEUNZIG"
*Letras\Cen[1]=*Letras\Uni[1]
*Letras\Cen[2]=*Letras\Uni[2]
*Letras\Cen[3]=*Letras\Uni[3]
*Letras\Cen[4]=*Letras\Uni[4]
*Letras\Cen[5]=*Letras\Uni[5]
*Letras\Cen[6]=*Letras\Uni[6]
*Letras\Cen[7]=*Letras\Uni[7]
*Letras\Cen[8]=*Letras\Uni[8]
*Letras\Cen[9]=*Letras\Uni[9]
*Letras\Ext[1]="EIN HUNDERT "
*Letras\Ext[2]="HUNDERT "
*Letras\Ext[3]=""
*Letras\Ext[4]="-UND-"
*Letras\Ext[5]="UND "
*Letras\Ext[6]=" CENT"
*Letras\Ext[7]="TAUSENDE "
*Letras\Ext[8]="TAUSENDE "
*Letras\Ext[9]="EINE MILLION "
*Letras\Ext[10]=" MILLIONEN "
ElseIf Idio="6" ;Duch
*Letras\Uni[1]="EEN"
*Letras\Uni[2]="TWEE"
*Letras\Uni[3]="DRIE"
*Letras\Uni[4]="VIER"
*Letras\Uni[5]="VIJF"
*Letras\Uni[6]="ZES"
*Letras\Uni[7]="ZEVEN"
*Letras\Uni[8]="ACHT"
*Letras\Uni[9]="NEGEN"
*Letras\Dec[1]="TIEN"
*Letras\Dec[2]="ELF"
*Letras\Dec[3]="TWAALF"
*Letras\Dec[4]="DER"+*Letras\Dec[1]
*Letras\Dec[5]="VEER"+*Letras\Dec[1]
*Letras\Dec[6]=*Letras\Uni[5]+*Letras\Dec[1]
*Letras\Dec[7]=*Letras\Uni[6]+*Letras\Dec[1]
*Letras\Dec[8]=*Letras\Uni[7]+*Letras\Dec[1]
*Letras\Dec[9]=*Letras\Uni[8]+*Letras\Dec[1]
*Letras\Dec[10]=*Letras\Uni[9]+*Letras\Dec[1]
*Letras\Dec1[1]="TWINTIG "
*Letras\Dec1[2]="TWINTIG"
*Letras\Dec1[3]="DERTIG "
*Letras\Dec1[4]="VEERTIG "
*Letras\Dec1[5]=*Letras\Uni[5]+"TIG"
*Letras\Dec1[6]=*Letras\Uni[6]+"TIG"
*Letras\Dec1[7]=*Letras\Uni[7]+"TIG"
*Letras\Dec1[8]="TACHTIG"
*Letras\Dec1[9]=*Letras\Uni[9]+"TIG"
*Letras\Cen[1]="HONDERD EN"
*Letras\Cen[2]=*Letras\Uni[2];+*Letras\Dec[1]
*Letras\Cen[3]=*Letras\Uni[3];+*Letras\Dec[1]
*Letras\Cen[4]=*Letras\Uni[4];+*Letras\Dec[1]
*Letras\Cen[5]=*Letras\Uni[5];+*Letras\Dec[1]
*Letras\Cen[6]=*Letras\Uni[6];+*Letras\Dec[1]
*Letras\Cen[7]=*Letras\Uni[7];+*Letras\Dec[1]
*Letras\Cen[8]=*Letras\Uni[8];+*Letras\Dec[1]
*Letras\Cen[9]=*Letras\Uni[9];+*Letras\Dec[1]
*Letras\Ext[1]="EEN HONDERD "
*Letras\Ext[2]=" HONDERD "
*Letras\Ext[3]=""
*Letras\Ext[4]="-EN-"
*Letras\Ext[5]="EN "
*Letras\Ext[6]=" CENT"
*Letras\Ext[7]="EEN DUIZEND "
*Letras\Ext[8]="DUIZEND "
*Letras\Ext[9]="EEN MILJOEN "
*Letras\Ext[10]=" MILJOEN "
ElseIf Idio="7";Norwegian
*Letras\Uni[1]="EN"
*Letras\Uni[2]="TO"
*Letras\Uni[3]="TRE"
*Letras\Uni[4]="FIRE"
*Letras\Uni[5]="FEM"
*Letras\Uni[6]="SEKS"
*Letras\Uni[7]="SYV"
*Letras\Uni[8]="Ã…TTE"
*Letras\Uni[9]="NI"
*Letras\Dec[1]="TI"
*Letras\Dec[2]="ELLEVE"
*Letras\Dec[3]="TOLV"
*Letras\Dec[4]="TRETTEN"
*Letras\Dec[5]="FJORTEN"
*Letras\Dec[6]="FEMTEN"
*Letras\Dec[7]="SEKSTEN"
*Letras\Dec[8]="SYTTEN"
*Letras\Dec[9]="ATTEN"
*Letras\Dec[10]="NITTEN"
*Letras\Dec1[1]="TJUE"
*Letras\Dec1[2]="TJUE"
*Letras\Dec1[3]="TRETTI"
*Letras\Dec1[4]="FØRTI"
*Letras\Dec1[5]="FEMTI"
*Letras\Dec1[6]="SEKSTI"
*Letras\Dec1[7]="SYTTI"
*Letras\Dec1[8]="EIGTHY"
*Letras\Dec1[9]="NITTI"
*Letras\Cen[1]="ETT HUNDRE OG "
*Letras\Cen[2]=*Letras\Uni[2]
*Letras\Cen[3]=*Letras\Uni[3]
*Letras\Cen[4]=*Letras\Uni[4]
*Letras\Cen[5]=*Letras\Uni[5]
*Letras\Cen[6]=*Letras\Uni[6]
*Letras\Cen[7]=*Letras\Uni[7]
*Letras\Cen[8]=*Letras\Uni[8]
*Letras\Cen[9]=*Letras\Uni[9]
*Letras\Ext[1]="ETT HUNDRE OG "
*Letras\Ext[2]=" HUNDRE OG "
*Letras\Ext[3]=""
*Letras\Ext[4]=" "
*Letras\Ext[5]=" "
*Letras\Ext[6]=" CENTS"
*Letras\Ext[7]="ett TUSEN "
*Letras\Ext[8]=" TUSEN "
*Letras\Ext[9]="EN MILLION "
*Letras\Ext[10]=" MILLIONER "
ElseIf Idio="8";Italian
*Letras\Uni[1]="UNO"
*Letras\Uni[2]="DUE"
*Letras\Uni[3]="TRE"
*Letras\Uni[4]="QUATTRO"
*Letras\Uni[5]="CINQUE"
*Letras\Uni[6]="SEI"
*Letras\Uni[7]="SETTE"
*Letras\Uni[8]="OTTO"
*Letras\Uni[9]="NOVE"
*Letras\Dec[1]="DIECI"
*Letras\Dec[2]="UNDICI"
*Letras\Dec[3]="DODICI"
*Letras\Dec[4]="TREDICI"
*Letras\Dec[5]="QUATTORDICI"
*Letras\Dec[6]="QUINDICI"
*Letras\Dec[7]="SEDICI"
*Letras\Dec[8]="DICIASsETTE"
*Letras\Dec[9]="DICIOTTO"
*Letras\Dec[10]="DICIANNOVE"
*Letras\Dec1[1]="VENTI "
*Letras\Dec1[2]="VENTI "
*Letras\Dec1[3]="TRENTA "
*Letras\Dec1[4]="QUARANTA "
*Letras\Dec1[5]="CINQUANTA "
*Letras\Dec1[6]="SESSANTA "
*Letras\Dec1[7]="SETTANTA "
*Letras\Dec1[8]="OTTANTA "
*Letras\Dec1[9]="NOVANTA "
*Letras\Cen[1]="CENTO"
*Letras\Cen[2]="DUE"
*Letras\Cen[3]="TRE"
*Letras\Cen[4]="QUATTRO"
*Letras\Cen[5]="CINQUE"
*Letras\Cen[6]="SEI"
*Letras\Cen[7]="SETTE"
*Letras\Cen[8]="OTTO"
*Letras\Cen[9]="NOVE"
*Letras\Ext[1]="CENTO "
*Letras\Ext[2]=" CENTO "
*Letras\Ext[3]=""
*Letras\Ext[4]=" "
*Letras\Ext[5]="E "
*Letras\Ext[6]=" CENTESIMI"
*Letras\Ext[7]=" MIGLIAIO "
*Letras\Ext[8]=" MIGLIAIA "
*Letras\Ext[9]="UN MILIONE "
*Letras\Ext[10]=" MILIONI "
EndIf
EndProcedure
Procedure.s Descifra(VARIABLE$)
Lang(@Letras.Letras,Idio.s)
Dim SAL$(4)
UD=0 : DC=0 : DU=0 : CT=0
Select Len(VARIABLE$)
Case 1
UD = Val(Mid(VARIABLE$, 1, 1)) ;--Unidad
Case 2
DC = Val(Mid(VARIABLE$, 1, 1)) ;--Decena
DU = Val(Mid(VARIABLE$, 1, 2)) ;--Decena + Unidad
UD = Val(Mid(VARIABLE$, 2, 1)) ;--Unidad
Case 3
CT = Val(Mid(VARIABLE$, 1, 1)) ;--Centena
DC = Val(Mid(VARIABLE$, 2, 1)) ;--Decena
DU = Val(Mid(VARIABLE$, 2, 2)) ;--Decena + Unidad
UD = Val(Mid(VARIABLE$, 3, 1)) ;--Unidad
EndSelect
;------------------------------------------------
;--Tratamiento de Centenas
;------------------------------------------------
If VARIABLE$ = "100"
SAL$(1) = Letras\Ext[1]
Else
If CT <>0
If CT=1
SAL$(1)= Letras\Cen[Ct]+" "
Else
SAL$(1) = Letras\Cen[Ct]+Letras\Ext[2]
EndIf
EndIf
EndIf
;------------------------------------------------
;--Tratamiento de Decenas
;------------------------------------------------
If DC <> 0
If DU => 10 And DU < 16
SAL$(2) = Letras\Dec[Du-9]
Else
If DU=>16 And DU < 20
SAL$(2) = Letras\Dec[Du-9]
Else
If DC=2
If UD=0
If CT=0 : SAL$(2) = Letras\Dec1[Dc]: Else : SAL$(2) = Letras\Dec1[Dc-1] : EndIf
Else
If Idio="5" Or Idio="6"
SAL$(3)=Letras\Uni[Ud]+Letras\Ext[4]+Letras\Dec1[Dc]
Else
If Idio="4" And Dc=9
SAL$(3)=Letras\Dec1[Dc]+Letras\Dec[Ud+1]
Else
SAL$(3)= Letras\Dec1[Dc]+Letras\Uni[Ud]
EndIf
EndIf
If Idio="1" And Len(entero)=2
SAL$(3)+Letras\Ext[3]
EndIf
EndIf
Else
If UD=0 And Idio<>"4"
SAL$(3) = Letras\Dec1[Dc]+Letras\Uni[Ud]
Else
If Idio="5" Or Idio="6"
SAL$(3)= Letras\Uni[Ud]+Letras\Ext[4]+Letras\Dec1[Dc]
ElseIf Idio="4" And Dc=9
SAL$(3)=Letras\Dec1[Dc]+Letras\Dec[Ud+1]
Else
SAL$(3)= Letras\Dec1[Dc]+Letras\Ext[4]+Letras\Uni[Ud]
EndIf
If Idio="1" And Len(entero)=2
SAL$(3)+Letras\Ext[3]
EndIf
EndIf
EndIf
EndIf
EndIf
EndIf
;-----------------------------------------------
;--Tratamiento de Unidades
;-----------------------------------------------
If UD<>0 And DC=0
If UD=1 And Longitud<=3
SAL$(4)=Letras\Uni[Ud]+Letras\Ext[3]
Else
SAL$(4)=Letras\Uni[Ud]
EndIf
EndIf
Descifrar$ = SAL$(1) + SAL$(2) + SAL$(3) + SAL$(4)
ProcedureReturn Descifrar$
EndProcedure
;----------------------------------------------
;--Composicion de la cifra final
;----------------------------------------------
Procedure.s Transforma(num.s)
Lang(@Letras.Letras,Idio.s )
res = FindString(num,".",1);Change to comma if input is in european
If res>0
entero.s = Mid(num,1,res-1)
Longitud = Len(entero)
decimal.s = Mid(num,res+1,Len(num))
resultado.s = Letras\Ext[11]+Letras\Ext[5]+Descifra(decimal)+Letras\Ext[6]
Else
resultado.s = Letras\Ext[11]
entero.s=num
EndIf
For i = 1 To Len(entero)-3 Step 3
lon = lon+3
letra.s = Mid(entero, Len(entero)-i-1, 3)
resultado.s = Descifra(letra)+" "+resultado.s
Select lon
Case 3
If Len(entero)>6 And Mid(entero, Len(entero)-5, 3)="000"
resultado.s = " "+resultado.s
Else
If Len(entero)=4 And Mid(entero, Len(entero)-i-2, 1)="1"
resultado.s = Letras\Ext[7]+resultado.s
Else
resultado.s = Letras\Ext[8]+resultado.s
EndIf
EndIf
Case 6
If Len(entero)=7 And Mid(entero, Len(entero)-i-2, 1)="1"
resultado.s = Letras\Ext[9]+resultado.s
Else
resultado.s = Letras\Ext[10]+resultado.s
EndIf
Case 9
resultado.s = Letras\Ext[7]+resultado.s
EndSelect
Next
dif = Len(entero)-lon
If dif<>0 And lon>0
If Mid(entero, 1, dif)<>"1"
resultado.s = Descifra(Mid(entero, 1, dif))+resultado.s
EndIf
Else
resultado.s = Descifra(Mid(entero, 1, dif))+" "+resultado.s
EndIf
ProcedureReturn resultado.s
EndProcedure
;-Main Loop
If Window_Babel()
; SetWindowCallback(@WindowCallback())
quitBabel=0
Repeat
EventID=WaitWindowEvent()
Select EventID
Case #PB_Event_CloseWindow
If EventWindow()=#Window_Babel
quitBabel=1
EndIf
Case #PB_Event_Gadget
Select EventGadget()
Case #Gadget_Babel_Option3;Spanish
Idio.s="1"
Case #Gadget_Babel_Option4;Portuguese
Idio.s="2"
Case #Gadget_Babel_Option5;English
Idio.s="3"
Case #Gadget_Babel_Option6;French
Idio.s="4"
Case #Gadget_Babel_Option7;German
Idio.s="5"
Case #Gadget_Babel_Option8;Duch
Idio.s="6"
Case #Gadget_Babel_Option9;Norwegian
Idio.s="7"
Case #Gadget_Babel_Option10;Italian
Idio.s="8"
Case #Gadget_Babel_Button13
SetGadgetText(#Gadget_Babel_String15,"")
salida.s=Transforma(GetGadgetText(#Gadget_Babel_String11))
If Len(salida)<61
SetGadgetText(#Gadget_Babel_String15,salida)
Else
r=FindString(salida," ",50)
salida=Mid(salida,1,r)+Chr(13)+Chr(10)+Mid(salida,r+1,Len(salida))
SetGadgetText(#Gadget_Babel_String15,salida)
EndIf
EndSelect
EndSelect
Until quitBabel
CloseWindow(#Window_Babel)
EndIf
End
