Page 1 of 1

Numbers to Leters (Babel Translate)

Posted: Wed Oct 20, 2004 6:58 pm
by Manolo
Code updated For 5.20+

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 :idea:

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
Manolo :D

Posted: Wed Oct 20, 2004 8:02 pm
by Blade
Italian:
(Haven't tried the program, but the translation is correct...)

Code: Select all



*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 "



Posted: Thu Oct 21, 2004 10:51 am
by Manolo
UPDATE 21-Oct-2004 - See the first post

New language OK: ITALIAN

Thanks to Blade

Manolo

Posted: Thu Oct 21, 2004 10:56 am
by gnozal
I didn't test the program, but I think

Code: Select all

*Letras\Dec1[8]="EIGTHY " 
*Letras\Dec1[9]="QUATRE-VINGT"
should be

Code: Select all

*Letras\Dec1[8]="QUATRE-VINGT " 
*Letras\Dec1[9]="QUATRE-VINGT-DIX"

Posted: Thu Oct 21, 2004 11:07 am
by Manolo
Thanks gnozal

Changed for this and incorporate to the code

Code: Select all


*Letras\Dec1[9]="QUATRE-VINGT-"
Manolo

Posted: Thu Oct 28, 2004 6:11 pm
by rob6523
A dutch update:

*Letras\Dec1[8]="TACHTIG"

*Letras\Ext[6]=" CENT"

*Letras\Ext[9]="EEN MILJOEN "


Rob.

Posted: Thu Oct 28, 2004 6:21 pm
by Manolo
Thanks rob6523

:lol:
Manolo