Anyone printing cheque 'amount in words' in LA Spanish?

Gordon_SaundersGordon_Saunders Member Posts: 2
Hi, I am an english-speaking developer in New Zealand, with a client asking for cheque (check) printing in Mexico. Can anyone help with code for the grammer rules for Latin American Spanish? I need to correctly handle amounts up to MXN 999,999.99

Cheers

Comments

  • ara3nara3n Member Posts: 9,256
    Hello Gordon

    Here is a US Check text constants with Mexicon Language.
    OBJECT Report 1401 Check
    {
          Text000@1000 : TextConst 'ENU=Preview is not allowed.;ESM=No est  permitida la vista preliminar.;FRC=Impossible d''afficher … l''‚cran.;ENC=Preview is not allowed.';
          Text001@1001 : TextConst 'ENU=Last Check No. must be filled in.;ESM=Debe rellenar el £lt. n§ cheque.;FRC=Le num‚ro du dernier chŠque doit ˆtre renseign‚.;ENC=Last Cheque No. must be filled in.';
          Text002@1002 : TextConst 'ENU=Filters on %1 and %2 are not allowed.;ESM=No est n permitidos filtros en %1 y %2.;FRC=Les filtres sur %1 et %2 ne sont pas permis.;ENC=Filters on %1 and %2 are not allowed.';
          Text003@1003 : TextConst 'ENU=XXXXXXXXXXXXXXXX;ESM=XXXXXXXXXXXXXXXX;FRC=XXXXXXXXXXXXXXXX;ENC=XXXXXXXXXXXXXXXX';
          Text004@1004 : TextConst 'ENU=must be entered.;ESM=se debe introducir.;FRC=doit ˆtre entr‚;ENC=must be entered.';
          Text005@1005 : TextConst 'ENU=The Bank Account and the General Journal Line must have the same currency.;ESM=El banco y el registro l¡nea deben tener la misma divisa.;FRC=Le compte de banque et la ligne du journal g‚n‚ral doivent avoir la mˆme devise.;ENC=The Bank Account and the General Journal Line must have the same currency.';
          Text006@1006 : TextConst 'ENU=Salesperson;ESM=Vendedor;FRC=Repr‚sentant;ENC=Salesperson';
          Text007@1007 : TextConst 'ENU=Purchaser;ESM=Comprador;FRC=Acheteur;ENC=Purchaser';
          Text008@1008 : TextConst 'ENU=Both Bank Accounts must have the same currency.;ESM=Ambos bancos deben tener la misma divisa.;FRC=Les deux comptes de banque doivent avoir la mˆme devise.;ENC=Both Bank Accounts must have the same currency.';
          Text009@1009 : TextConst 'ENU=Our Contact;ESM=Ntro. contacto;FRC=Notre contact;ENC=Our Contact';
          Text010@1010 : TextConst 'ENU=XXXXXXXXXX;ESM=XXXXXXXXXX;FRC=XXXXXXXXXX;ENC=XXXXXXXXXX';
          Text011@1011 : TextConst 'ENU=XXXX;ESM=XXXX;FRC=XXXX;ENC=XXXX';
          Text012@1012 : TextConst 'ENU=XX.XXXXXXXXXX.XXXX;ESM=XX.XXXXXXXXXX.XXXX;FRC=XX.XXXXXXXXXX.XXXX;ENC=XX.XXXXXXXXXX.XXXX';
          Text013@1013 : TextConst 'ENU=%1 already exists.;ESM=Ya existe %1.;FRC=%1 existe d‚j….;ENC=%1 already exists.';
          Text014@1014 : TextConst 'ENU=Check for %1 %2;ESM=Cheque para %1 %2;FRC=V‚rifiez pour %1 %2;ENC=Cheque for %1 %2';
          Text015@1015 : TextConst 'ENU=Payment;ESM=Pago;FRC=Paiement;ENC=Payment';
          Text016@1016 : TextConst 'ENU=In the Check report, One Check per Vendor and Document No.\;ESM=En informe de cheques, Un cheque por proveedor y n§ documento\;FRC=Dans l''‚tat ChŠque, un chŠque par fournisseur et par nø document\;ENC=In the Cheque report, One Cheque per Vendor and Document No.\';
          Text017@1017 : TextConst 'ENU=must not be activated when Applies-to ID is specified in the journal lines.;ESM=no se debe activar cuando se ha usado Liquidar por Id en las l¡neas de diario.;FRC=ne doit pas ˆtre activ‚ lorsque "Code r‚f‚rence" est sp‚cifi‚ dans les lignes du journal.;ENC=must not be activated when Applies-to ID is specified in the journal lines.';
          Text018@1018 : TextConst 'ENU=XXX;ESM=XXX;FRC=XXX;ENC=XXX';
          Text019@1019 : TextConst 'ENU=Total;ESM=Total;FRC=Total;ENC=Total';
          Text020@1020 : TextConst 'ENU=The total amount of check %1 is %2. The amount must be positive.;ESM=El importe del cheque %1 es %2. El importe debe ser positivo.;FRC=Le montant total du chŠque %1 est de %2. Le montant doit ˆtre positif.;ENC=The total amount of cheque %1 is %2. The amount must be positive.';
          Text021@1021 : TextConst 'ENU=VOID VOID VOID VOID VOID VOID VOID VOID VOID VOID VOID VOID VOID VOID VOID VOID;ESM=ANULADO ANULADO ANULADO ANULADO ANULADO ANULADO ANULADO ANULADO ANULADO ANULADO;FRC=ANNUL? ANNUL? ANNUL? ANNUL? ANNUL? ANNUL? ANNUL? ANNUL? ANNUL? ANNUL? ANNUL? ANNUL?;ENC=VOID VOID VOID VOID VOID VOID VOID VOID VOID VOID VOID VOID VOID VOID VOID VOID';
          Text022@1022 : TextConst 'ENU=NON-NEGOTIABLE;ESM=NO NEGOCIABLE;FRC=NON N?GOCIABLE;ENC=NON-NEGOTIABLE';
          Text023@1023 : TextConst 'ENU=Test print;ESM=Test impresi¢n;FRC=?preuve;ENC=Test print';
          Text024@1024 : TextConst 'ENU=XXXX.XX;ESM=XXXX.XX;FRC=XXXX.XX;ENC=XXXX.XX';
          Text025@1025 : TextConst 'ENU=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX;ESM=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX;FRC=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX;ENC=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';
          Text026@1026 : TextConst 'ENU=ZERO;ESM=CERO;FRC=Z?RO;ENC=ZERO';
          Text027@1027 : TextConst 'ENU=HUNDRED;ESM=CIEN;FRC=CENT;ENC=HUNDRED';
          Text028@1028 : TextConst 'ENU=AND;ESM=Y;FRC=ET;ENC=AND';
          Text029@1029 : TextConst 'ENU=%1 results in a written number that is too long.;ESM=El resultado de %1 es un n£mero escrito demasiado largo.;FRC=%1 r‚sultats dans un nombre ‚crit qui est trop long.;ENC=%1 results in a written number that is too long.';
          Text030@1030 : TextConst 'ENU=" is already applied to %1 %2 for customer %3.";ESM=" ya hay sido liquidado por %1 %2 para el cliente %3.";FRC=" est d‚j… appliqu‚ … %1 %2 pour le client %3.";ENC=" is already applied to %1 %2 for customer %3."';
          Text031@1031 : TextConst 'ENU=" is already applied to %1 %2 for vendor %3.";ESM=" ya se ha liquidado a %1 %2 para el proveedor %3.";FRC=" est d‚j… appliqu‚ … %1 %2 pour le fournisseur %3.";ENC=" is already applied to %1 %2 for vendor %3."';
          Text032@1032 : TextConst 'ENU=ONE;ESM=UN;FRC=UN;ENC=ONE';
          Text033@1033 : TextConst 'ENU=TWO;ESM=DOS;FRC=DEUX;ENC=TWO';
          Text034@1034 : TextConst 'ENU=THREE;ESM=TRES;FRC=TROIS;ENC=THREE';
          Text035@1035 : TextConst 'ENU=FOUR;ESM=CUATRO;FRC=QUATRE;ENC=FOUR';
          Text036@1036 : TextConst 'ENU=FIVE;ESM=CINCO;FRC=CINQ;ENC=FIVE';
          Text037@1037 : TextConst 'ENU=SIX;ESM=SEIS;FRC=SIX;ENC=SIX';
          Text038@1038 : TextConst 'ENU=SEVEN;ESM=SIETE;FRC=SEPT;ENC=SEVEN';
          Text039@1039 : TextConst 'ENU=EIGHT;ESM=OCHO;FRC=HUIT;ENC=EIGHT';
          Text040@1040 : TextConst 'ENU=NINE;ESM=NUEVE;FRC=NEUF;ENC=NINE';
          Text041@1041 : TextConst 'ENU=TEN;ESM=DIEZ;FRC=DIX;ENC=TEN';
          Text042@1042 : TextConst 'ENU=ELEVEN;ESM=ONCE;FRC=ONZE;ENC=ELEVEN';
          Text043@1043 : TextConst 'ENU=TWELVE;ESM=DOCE;FRC=DOUZE;ENC=TWELVE';
          Text044@1044 : TextConst 'ENU=THIRTEEN;ESM=TRECE;FRC=TREIZE;ENC=THIRTEEN';
          Text045@1045 : TextConst 'ENU=FOURTEEN;ESM=CATORCE;FRC=QUATORZE;ENC=FOURTEEN';
          Text046@1046 : TextConst 'ENU=FIFTEEN;ESM=QUINCE;FRC=QUINZE;ENC=FIFTEEN';
          Text047@1047 : TextConst 'ENU=SIXTEEN;ESM=DIECIS?IS;FRC=SEIZE;ENC=SIXTEEN';
          Text048@1048 : TextConst 'ENU=SEVENTEEN;ESM=DIECISIETE;FRC=DIX-SEPT;ENC=SEVENTEEN';
          Text049@1049 : TextConst 'ENU=EIGHTEEN;ESM=DIECIOCHO;FRC=DIX-HUIT;ENC=EIGHTEEN';
          Text050@1050 : TextConst 'ENU=NINETEEN;ESM=DIECINUEVE;FRC=DIX-NEUF;ENC=NINETEEN';
          Text051@1051 : TextConst 'ENU=TWENTY;ESM=VEINTE;FRC=VINGT;ENC=TWENTY';
          Text052@1052 : TextConst 'ENU=THIRTY;ESM=TREINTA;FRC=TRENTE;ENC=THIRTY';
          Text053@1053 : TextConst 'ENU=FORTY;ESM=CUARENTA;FRC=QUARANTE;ENC=FORTY';
          Text054@1054 : TextConst 'ENU=FIFTY;ESM=CINCUENTA;FRC=CINQUANTE;ENC=FIFTY';
          Text055@1055 : TextConst 'ENU=SIXTY;ESM=SESENTA;FRC=SOIXANTE;ENC=SIXTY';
          Text056@1056 : TextConst 'ENU=SEVENTY;ESM=SETENTA;FRC=SOIXANTE-DIX;ENC=SEVENTY';
          Text057@1057 : TextConst 'ENU=EIGHTY;ESM=OCHENTA;FRC=QUATRE-VINGTS;ENC=EIGHTY';
          Text058@1058 : TextConst 'ENU=NINETY;ESM=NOVENTA;FRC=QUATRE-VINGT-DIX;ENC=NINETY';
          Text059@1059 : TextConst 'ENU=THOUSAND;ESM=MIL;FRC=MILLE;ENC=THOUSAND';
          Text060@1060 : TextConst 'ENU=MILLION;ESM=MILLàN;FRC=MILLION;ENC=MILLION';
          Text061@1061 : TextConst 'ENU=BILLION;ESM=MIL MILLONES;FRC=MILLIARD;ENC=BILLION';
    
    
    [/code]
    Ahmed Rashed Amini
    Independent Consultant/Developer


    blog: https://dynamicsuser.net/nav/b/ara3n
  • dulamandulaman Member Posts: 73
    Hello Gordon.

    I am not Mexican but I can speak fluent Spanish and there is a syntax error in the given translation.

    The line
    Text030@1030 : TextConst 'ENU=" is already applied to %1 %2 for customer %3.";ESM=" ya hay sido liquidado por %1 %2 para el cliente %3.";FRC=" est d‚j… appliqu‚ … %1 %2 pour le client %3.";ENC=" is already applied to %1 %2 for customer %3."';
    

    Should read:
    Text030@1030 : TextConst 'ENU=" is already applied to %1 %2 for customer %3.";ESM=" ya ha sido liquidado por %1 %2 para el cliente %3.";FRC=" est d‚j… appliqu‚ … %1 %2 pour le client %3.";ENC=" is already applied to %1 %2 for customer %3."';
    

    Note that there is a slight difference between "hay" and "ha".
    -- dulaman
    "I don't want to believe. I want to know." (Carl Sagan)
  • ara3nara3n Member Posts: 9,256
    I looked at Spanish Tradition db and it has

    ya hay sido liquidado por %1 %2 para el cliente %3.

    My guess, the Mexican langauge pack was coppied from Spanish Traditional.
    Ahmed Rashed Amini
    Independent Consultant/Developer


    blog: https://dynamicsuser.net/nav/b/ara3n
  • bhalpinbhalpin Member Posts: 309
    For 5.0 onward, this works for me.

    Report 10400 "Check Translation Management" can translate numbers to Spanish (and French & two English versions):

    Example:
    Var ChTrMgt - Report 10400
    Var Result - Text(80) Dimensions: 2
    Var MyAmount - Decimal
    
    Code: ChTrMgt.FormatNoText(Result,MyAmount,2058,''); // (3084 = French,1033 = English, 4105 = CDN English)
    

    And, if you want to remove the leading * it adds for a check amount, add this line:
    Result[1] := DELCHR(Result[1],'<','*');
    
Sign In or Register to comment.